GSI-OpenSSH/GPT Procedures
From Globus
The following instructions create new GPT packages for release. All GSI-OpenSSH packages must be updated together and released as a bundle. These instructions assume the GSI-OpenSSH GPT branch in CVS is ready. Refer to the CVS Procedures for preparing the GPT branch. The following instructions also assume you've prepared a GSI-OpenSSH CVS workspace according to the CVS Procedures and that your workspace is up-to-date and without uncommitted local modifications.
Contents |
Making a new GSI-OpenSSH GPT base package
Change to your gpt-branch directory.
cd gpt-branch
Determine a new version number for the package to have. Review the FTP site (ftp://ftp.globus.org/pub/gsissh/GPT) and the CVS repository
cvs status -v Makefile.in
to get an idea of what versions are already released and which string you should use. It should be of the form X.Y. I will refer to the version number you choose as <versionNumber>.
Update the following files in ./ to use <versionNumber> as their new version number:
- make_gpt_dist
- pkg_data_src.gpt
- version.h
You should also update the gsi_openssh_setup Setup Dependency in pkg_data_src.gpt corresponding to <versionNumber> as we will be creating a new setup package for this release.
Define ${CurrentTag} and ${PreviousTag} for future use. These tags should use the convention 'OPENSSH_GSI_GPT_<versionNumber>', where periods are converted to underscores (_). ${CurrentTag} is for the new version you are created; ${PreviousTag} is for the previous version; so if you are creating version 4.5, you should do:
export CurrentTag=OPENSSH_GSI_GPT_4_5 export PreviousTag=OPENSSH_GSI_GPT_4_4
Review the changes that occurred between this version and the previous version in the repository and update Announcement.txt in CVS. View the changes using the diff feature of CVS.
cvs diff -r ${PreviousTag}
If any other instructions ask you to review any changes between the previous version of the GSI-OpenSSH package and the current version, use this command to do so.
Commit your changes to the repository and tag the working directory (including a GT4 tag to indicate that this new release should be included in future GT4 releases).
cvs commit
cvs tag ${CurrentTag}
cvs tag -F GT4
We are now ready to create the source package. (Make sure you have a clean workspace in this step.)
Verify that you have the Globus autotools in your $PATH (i.e., 'which autoconf' returns $GLOBUS_LOCATION/bin/autoconf). If not, install them:
pushd /tmp cvs -d \ :pserver:anonymous@cvs.globus.org:/home/globdev/CVS/globus-packages \ co autotools cd autotools ./install-autotools $GLOBUS_LOCATION . $GLOBUS_LOCATION/etc/globus-user-env.sh popd
Verify that your autoconf version is 2.59:
autoconf --version
If the Globus autoconf version has updated to 2.60 or later, you'll need to update the manpage paths in the filelist (see http://www.bogofilter.org/pipermail/bogofilter-dev/2006-August/003362.html).
Now make the package:
./make_gpt_dist
A file named 'gsi_openssh-<versionNumber>-src.tar.gz' should now exist in ./. This is the GSI-OpenSSH GPT source package for your selected version.
Making a new GSI-OpenSSH GPT setup package
Change to the setup directory in your workspace.
cd ../setup
Peruse any changes that occurred between the previous version of the GSI-OpenSSH package and the current version you made in the last section. Of particular interest wrt. the setup package are any changes that occurred to the configuration files (moduli, ssh_config, sshd_config, ssh_prng_cmds.in), the configuration file man pages (ssh_config.5, sshd_config.5), or the installation/setup procedure itself. Integrate any of these changes into the files in the setup directory.
Determine a new version number for the package to have. Use the same version number for the setup package as you did for the main GSI-OpenSSH GPT package. I will refer to the version number you choose as <versionNumber>.
Update the following files in ./ to use <versionNumber> as their new version number:
- make_gpt_dist
- pkg_data_src.gpt
Commit your changes to the repository and tag the working directory.
cvs commit
cvs tag ${CurrentTag}
cvs tag -F GT4
We are now ready to create the source package.
Run make_gpt_dist to create the package.
./make_gpt_dist
A file named 'gsi_openssh_setup-<versionNumber>-src.tar.gz' should now exist in ./. This is the GSI-OpenSSH GPT source setup package for your selected version.
Making a new GSI-OpenSSH GPT compat package
Change to the compat directory.
cd ../compat
Peruse any changes that occurred between the previous version of the GSI-OpenSSH package and the current version you made in the last section. Of particular interest wrt. the compat package are any changes that occurred to the install-files target of Makefile.in. Integrate any changes to the install targets to filelist and pkg_data_src.gpt.
Determine a new version number for the package to have. Use the same version number for the compat package as you did for the main GSI-OpenSSH GPT package. I will refer to the version number you choose as <versionNumber>.
Update the following files in ./ to use <versionNumber> as their new version number:
- make_gpt_dist
- pkg_data_src.gpt
Commit your changes to the repository and tag the working directory.
cvs commit
cvs tag ${CurrentTag}
We are now ready to create the compat package.
Run make_gpt_dist to create the package.
./make_gpt_dist
A file named 'gsi_openssh_compat-<versionNumber>-src.tar.gz' should now exist in ./. This is the GSI-OpenSSH GPT source compat package for your selected version.
Setting up the GSI-OpenSSH GPT bundle module
Change to the bundle directory.
cd ../bundle
You should use the same version number for the bundle as you did for the GSI-OpenSSH GPT packages. Update the following files in ./ to use that version number:
- scripts/version.sh
I will refer to this as <version>.
Commit your changes to the repository and tag the working directory.
cvs commit
cvs tag ${CurrentTag}
Making a new GSI-OpenSSH GPT source bundle
If it's not already installed, install GPT version 2.2.10, appropriately setting your GPT_LOCATION.
It's assumed that you have already made the necessary changes to the bundle module. If you have (and you should have! bad developer! bad bad bad!) I will refer to the version number you wish to bundle as <version>. When <version> is used in a CVS tag, convert periods in that string to underscores.
You should still be in the bundle directory at this point.
Make a work/ and work/sources/ directory in the current directory and place the main and setup source packages in it.
mkdir -p work/sources/ mv ../*/gsi_openssh*.tar.gz work/sources/
Create the source bundle.
./scripts/make-src-bundle
A file named 'gsi_openssh_bundle-<version>-src.tar.gz' should now exist in the current directory. This is the GSI-OpenSSH GPT source bundle for your selected version.
Let the world know about the new release
Please note that regardless of whether version X.Y hits the streets, there will never be another release made by the GSI-OpenSSH development team using that version number.
Upload the source bundle and packages to the FTP site. The FTP site can be accessed via SSH.
mkdir 4.1 mv gsi_openssh_bundle-4.1-src.tar.gz work/sources/gsi_openssh* 4.1 scp -r 4.1 ftp.globus.org:/disks/ftp.globus.org/pub/gsissh/GPT
Follow the conventions present in the current hierarchy. This means making a directory <versionNumber> for the new version you are uploading, and placing copies of the bundle files in that directory. Redirect latest-stable to point to the new version's directory.
Update the web site to point to the new release. The GSI-OpenSSH site can be accessed on AFS at /afs/ncsa.uiuc.edu/web/grid.ncsa.uiuc.edu/htdocs/ssh/.
You will definitely have to change index.html and download.html to reflect the new version on the FTP site. Also, update history.html for this release. If you've made any dramatic changes to the packages and/or bundles, you should also update the instructions in the other pages present in this directory.
Update configure_options.txt on the web site with the output of './configure -help' for this new release, to capture any new OpenSSH configure options.
Verify the links work on the FTP site and web site.
Send a release announcement to the gsi-openssh-announce@globus.org mailing list. Add sha1 and md5 checksums to the bottom of Announcement.txt before sending.
Take care to tailor the release announcement to match the new version. For a list of changes made to the underlying source code, coordinate with the individual whose CVS trunk tag you used to make the new source base package.
Add the new version number to Bugzilla.

