This document covers:
Set your CVSROOT
to
cvs.globus.org:/home/globdev/CVS/globus-packages.
cvs co packaging
.
First, checkout packaging from the branch you're using to release.
Bump version numbers as necessary. If you need to bump the version number, edit installer.sh. Also bump the version numbers in fait_accompli/binary.configure.in and fait_accompli/installer.configure.in. If nobody has done so yet, make sure the globus-version command in globus_common has the correct version also.
Then run the installer.sh script to create the all source installer:
fait_accompli/installer.sh
If the contributions haven't changed from the previous release, you may get them from the FTP site under the contrib/ subdirectory for the previous release.
When the release of GTx.y.z is done (no more release candidates), tag the copy of CVS used to create the installers:
cd source-trees for f in *; do cd $f cvs tag globus_x_y_z cd .. done
Create a source installer as above. Make sure to save a .tar.gz and .tar.bz2 of it before you build the binaries.
Configure with:
./configure --prefix=$HOME/globus-x-y-z --enable-drs \ --enable-wsgram-condor --enable-wsgram-pbs --enable-wsgram-lsf \ --with-iodbc=/path/to/iodbc
Build the software:
make
Create the binary installer:
fait_accompli/bundle-binaries $HOME/globus-x-y-z
The binary installer will be in the tmp/ subdirectory of packaging. Rename it as appropriate for the platform by listing the processor type (ia32, ia64, sun4u, x86_64, etc.) and operating system (redhat9, solaris9, sles8, etc.)
Finally, add the same contribs as were in the source installer
make-packages.pl supports --help
and --man
options for explaining options.
The flow of control in m-p.pl is as follows:
By default, m-p.pl will stop after creating bundles. If you specify
--install=/directory/name
, it will install the bundles.
If you specify --binary
, it will also create binaries.
The CVS checkouts will create one subdirectory of
source-trees/
per CVS archive. The packaging step will
create the source-output
and package-output
subdirectories. source-output
is used as an intermediate
step; package-output
contains the GPT packages
themselves. The bundling step will create bundle-output
.
You can also turn off the earlier steps if you want to skip them.
--no-updates
will inhibit CVS checkouts/updates. If you
specify --skippackage
, it will not make GPT packages.
With --skipbundle
, bundles will not be created.
The design intent is for you to be able to start and stop the tool
where you want. You can create source bundles on one machine, then
ship them to another for building. On the second machine, you'd
--skippackage
and --skipbundle
, but could
specify --install
and --binary
.
The autotools prerequisite is installed under
packaging/source-trees/autotools/autotools/bin
. The GPT
prerequisite is installed under
packaging/gpt-*
. Currently it is gpt-3.0.1, though that
may be upgraded in the future.
source-trees/autotools
or gpt-*
.
This may be necessary, for instance, if you hit control C during
the build of autotools, and this winds up fooling the
auto-detection of make-packages.
If you specify --anonymous
, the CVS checkout will be
anonymous, otherwise it will use ssh checkouts.
To specify tags, use --t2=
and --t3=
.
t2
will specify tags to use for GT2 and autotools, while
t3
specifies tags for GT3 and cbindings.
Often times you just want to build what you're working on. The
--packages=
, --bundles=
, and
--trees
options are designed to restrict the working set
of m-p.pl.
The CVS archives are defined in the %cvs_archives
hash
at the top of m-p.pl. There is a subdirectory of etc/
per archive. The package-list
file contains a list of
packages and their CVS subdirectory. The bundles
file
contains a list of bundles and their constituent packages.
A few examples:
make-packages.pl --trees=gt2
make-packages.pl --trees=gt3 --packages=index
make-packages.pl -n --bundles=globus-gsi
m-p.pl stores package and bundle information in the etc/
subdirectory. To add a new package to the builds, you can edit the
package-list
file in the corresponding subdirectory of
etc/. To add the package to a bundle, you must also list the new
package in the bundles file under the appropriate entries.
The format for package-list
is:
GPT package name | CVS subdir | Packaging type | Patch file |
globus_cyrus-sasl | gsi/sasl/patch-n-build | pnb | cyrus-sasl-1.5.27.tar.gz |
The package names must be the same as the resulting
GPT package name. If the build type is not "pnb", then Patch file
should not be specified. The default build type is listed in the
build-default
file in the appropriate etc/
subdirectory.
First, create the update package. Make sure you update the version strings in the package metadata first. Any update package must have a later version number than the previous release of that package. Update the major version number if you break backwards compatibility.
Note: If this is a security advisory, please also see the policy at Security Vulnerability Handling.
The command will be something like:
make-packages.pl -n --packages=grim
Next, put it on cvs.globus.org and email infrastructure@globus.org to have
it moved to the FTP site:
scp package-output/grim-0.4-src.tar.gz cvs.globus.org:
Then update the advisories.txt page:
export CVSROOT=cvs.globus.org:/home/globdev/CVS/alliance-web
cvs co alliance/toolkit/advisories.txt
[edit]
cvs commit alliance/toolkit/advisories.txt
Finally, verify that the advisories webpage lists your update, and it is downloadable.