Globus: Accessing the Globus Alliance's Code via CVS
This page contains instructions for experienced developers who want to checkout code directly from CVS that has not yet been released.
For example, a developer has been told "Bug X has been fixed in CVS and will show up in the 5.0.5 release" and the developer wants to try it in CVS to make sure it works as expected before the 5.0.5 release ships.
DISCLAIMER
Globus Toolkit® development releases are available by anonymous CVS. Development releases contain code developed by many sources that has not yet undergone the testing and validation process for a stable release of the Globus Toolkit. Our goal is for the development release to always be in a state that will compile cleanly, but transient problems may occasionally arise. A description of how the Globus Alliance's core development team uses the CVS repository (including details on branches and concurrent development procedures) is available.
As an experienced developer, you should already be subscribed to gt-dev@globus.org, where porting and development issues are discussed. If not, subscribe by visiting http://dev.globus.org/wiki/Mailing_Lists. To minimize confusion for the majority of subscribers there who do not use CVS, we ask that you preface any comments to gt-dev@globus.org by stating that you use code from CVS.
Note that there is no implied obligation by the Globus Alliance to provide support or resolve problems that users might encounter with development code. Use of the development release is subject to terms of the Globus Toolkit Public License. Users wishing to contribute bug patches or discuss features should do so through the developers-discuss mailing list.
- Accessing Remote CVS for GT 5.0
- Accessing Remote CVS for GT 4.0
- Accessing Remote CVS for GT 3.2
- Flow for make-packages
- CVS Options
Accessing Remote CVS for GT 5.0
| 1 |
Set your CVSROOT to: :pserver:anonymous@cvs.globus.org:/home/globdev/CVS/globus-packages |
| 2 |
Check out the packaging directory: cvs co -r <tag> packaging Where
For example: cvs co -r globus_5_0_branch packaging |
| 3 |
If you are checking out fait_accompli/installer.sh This script creates an installer subdirectory which will have a configure script that will create a Makefile. Read the INSTALL file for installation details. It simply involves running: configure make make install |
| 4 |
Alternatively, you may use the See the Flow for make-packages and CVS Options for more information about using this script. |
Accessing Remote CVS for GT 4.0
| 1 |
Set your CVSROOT to: :pserver:anonymous@cvs.globus.org:/home/globdev/CVS/globus-packages |
| 2 |
Check out the packaging directory: cvs co -r <tag> packaging Where
For example: cvs co -r globus_4_0_branch packaging |
| 3 |
If you are checking out fait_accompli/installer.sh --t2=<tag> --t4=<tag> (See Specifying tags for information about
This script creates an installer subdirectory which will have a configure script that will create a Makefile. Read the INSTALL file for installation details. It simply involves running: configure make make install |
| 4 |
Alternatively, you may use the See the Flow for make-packages and CVS Options for more information about using this script. |
Accessing Remote CVS for GT 3.2
| 1 | Set your CVSROOT to: :pserver:anonymous@cvs.globus.org:/home/globdev/CVS/globus-packages. |
| 2 | Check out the packaging directory:
cvs co <tag> packaging Where
cvs co -r globus_3_2_branch packaging |
| 3 | If you are checking out To do this, your choices are running one of the following:
This will create an installer subdirectory using
the code from CVS. You may then change into that directory and run |
| 4 | Alternatively, you may use the See the Flow for make-packages and CVS Options for more information about using this script. |
Flow for make-packages
The flow of control in make-packages.pl is as follows:
| Stage | Description |
|---|---|
| 1 | Cleanup old build directories. |
| 2 | Checkout CVS source trees. This step creates one subdirectory of source-trees/ per
CVS archive. |
| 3 | Build prerequisite tools (like autotools and globus_core). The autotools prerequisite is installed under The Grid Packaging Tool
(GPT) prerequisite is installed under 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. |
| 4 | Create GPT packages from CVS subdirectories. This step creates the
|
| 5 | Create GPT bundles from packages. This step will create bundle-output. |
| 6 | By default, make-packages.pl stops after creating bundles.
If you specify --install=/directory/name, it installs
the bundles. |
CVS options for make-packages
If you decide to use the make-packages.pl script directly, the following are
various options. The --help and --man options are
also available.
- Checking out anonymously
- Specifying tags
- Turning off steps
- Specifying a subset of code to build
- Examples
Checking out anonymously
If you specify --anonymous, the CVS checkout will be anonymous,
otherwise it will use ssh checkouts.
Specifying tags
To specify tags, use the following options:
--t2=- Specifies tags to use for GT2 and autotools.
--t3=- Specifies tags for GT3 and cbindings (that are not included in GT2).
--t4=- This will specify tags to use for GT4 (that were not included in GT2 or GT3).
Turning off steps
You can also turn off the some of the steps of the make-packages.pl flow if
you want to skip them:
--no-updates -n- Inhibits CVS checkouts/updates
--skippackage- Does not make GPT packages
--skipbundle- Does not create bundles.
The design intent is for you to be able to start and stop the tool where you
want. For example, you can create source bundles on one machine, then ship
them to another for building. On the second machine, you would use --skippackage and --skipbundle,
but then specify --install.
Specifying a subset of code to build
Many 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 make-packages.pl.
Keep the following in mind when using these options:
- The CVS archives are defined in the
%cvs_archiveshash at the top ofmake-packages.pl. - There is a subdirectory of
etc/per archive. - The
package-listfile contains a list of packages and their CVS subdirectory. - The
bundlesfile contains a list of bundles and their constituent packages.
Examples
The following are a few examples of using options with the make-packages.pl script:
Example A
make-packages.pl --anonymous --bundles=globus-data-management-server --install=/tmp/inst
These options checkout CVS anonymously, then make the globus-data-management-server bundle and install it into /tmp/inst.
Example B
make-packages.pl --t4=globus_x_y_z --anonymous --skippackage --skipbundle
These options checkout CVS anonymously using the globus_x_y_z tag and do
not make any packages or bundles. The CVS checkouts will be under source-trees.
Example C
make-packages.pl --anonymous --packages=globus_xio
These options checkout CVS anonymously, then create the globus_xio package.
It will be stored in package-output/.
Example D
make-packages.pl -n --bundles=globus-gsi
These options do not update CVS but do make the globus-gsi bundle. You must
already have CVS checkouts in source-trees to use this option.