Needed:

foo-2.0-i686-pc-linux-gnu-bin.tar.gz
foo-2.2.3-i686-pc-linux-gnu-bin.tar.gz
globus_openssl-0.1-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus-data-management-client-2.2.3-src_bundle.tar.gz
globus-data-management-server-2.2.3-src_bundle.tar.gz

1. gpt-install foo-2.0-i686-pc-linux-gnu-bin.tar.gz into an empty $GLOBUS_LOCATION.

2. Run gpt-bundle -native -bn=newfoo -bv=1.0 -bl=2.0 -verbose \
globus_ssl_utils-gcc32_pgm globus_common-gcc32_pgm

3. Confirm you get bundle newfoo-2.0-i686-pc-linux-gnu-bin.tar.gz and
newfoo-2.0-i686-pc-linux-gnu-rpm.tar.gz.

4. Untar bundles and confirm that the packagelist file contains:

globus_ssl_utils_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_ssl_utils-2.1-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_ssl_utils-2.1-i686-pc-linux-gnu-gcc32-pgm.tar.gz
globus_openssl-0.1-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_openssl-0.1-i686-pc-linux-gnu-gcc32-pgm.tar.gz
globus_core_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_common_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_common-2.0-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_common-2.0-i686-pc-linux-gnu-gcc32-pgm.tar.gz

with no blank lines.

5. Examine the file newfoo-2.0.gpt-bundle.xml and confirm the following:

   a. The name is newfoo.

   b. The version is Age=0 Minor=0 and Major=1.

   c. The version label is "2.0".

   d. Every package has a flavor of gcc32, a package type, and a
   package version attribute.  These should match the package list
   described in 4.

6. Run gpt-bundle -native -bn=newfoo -bv=1.0 -bl=2.0 -template \
globus_ssl_utils-gcc32_pgm globus_common-gcc32_pgm

7. Examine the file BundleTemplateXML_FILE.xml and confirm that the
bundle name, version, and version label are the same as 5.  The
package list element should show the packages globus_common and
globus_ssl_utils with flavor gcc32 and package type 'pgm'.

8.  Copy the file BundleTemplateXML_FILE.xml to template.xml and fill
in the Description, ContactInfo, BundleDocs, and BundleStability. Also
remove the fake package "PACKAGE NAME" from the package list.

9. Run  gpt-bundle  -debug -xml=template.xml -bundledef=tst.

10 Confirm  that the file tst.gpt-bundle.xml contains the following:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE GPTBundleData SYSTEM "gpt_bundle.dtd">
<GPTBundleData Name="newfoo" >
<BundleInfo >
<Description >I am a description242502352</Description>
<ContactInfo ContactEmail="mbletzin@ncsa.uiuc.edu" ContactName="Michael Bletzinger" />
<BundleDocs BundleDocsDesc="docs.xml" BundleDocsURL="http://www.ncsa.uiuc.edu" />
</BundleInfo>
<BundleReleaseInfo >
<BundleStability Release="alpha" />
<BundleVersion Age="0" Major="1" Minor="0" />
<VersionLabel >2.0</VersionLabel>
<TypeOfBundle ContentsType="gpt" />
</BundleReleaseInfo>
<PackageList >
<IncludedPackages >
<Package PackageFlavor="noflavor" PackageName="globus_ssl_utils_setup" PackageType="pgm" PackageVersion="2.0" />
<Package PackageFlavor="gcc32" PackageName="globus_ssl_utils" PackageType="rtl" PackageVersion="2.1" />
<Package PackageFlavor="gcc32" PackageName="globus_ssl_utils" PackageType="pgm" PackageVersion="2.1" />
<Package PackageFlavor="gcc32" PackageName="globus_openssl" PackageType="rtl" PackageVersion="0.1" />
<Package PackageFlavor="gcc32" PackageName="globus_openssl" PackageType="pgm" PackageVersion="0.1" />
<Package PackageFlavor="noflavor" PackageName="globus_core_setup" PackageType="pgm" PackageVersion="2.0" />
<Package PackageFlavor="noflavor" PackageName="globus_common_setup" PackageType="pgm" PackageVersion="2.0" />
<Package PackageFlavor="gcc32" PackageName="globus_common" PackageType="rtl" PackageVersion="2.0" />
<Package PackageFlavor="gcc32" PackageName="globus_common" PackageType="pgm" PackageVersion="2.0" />
</IncludedPackages>
<ExcludedPackages >
</ExcludedPackages>
<PackageFlags >
</PackageFlags>
</PackageList>
</GPTBundleData>
 
11. Run gpt-bundle -native -bn=newfee -bv=3.0 -bl=4.0 -bs=production \
-xml=template.xml -bundledef=tst globus_ssl_utils-gcc32_pgm
globus_common-gcc32_pgm.

12 Confirm in the file tst.gpt-bundle.xml that the bundle version,
name, version label, and stability was overriden.  All of the other
edited fields from template.xml (URL, Description, etc.) should be the same.


13. Run gpt-bundle  -xml=template.xml.

14. Confirm that the packagelist file contains the following:

globus_ssl_utils_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_ssl_utils-2.1-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_ssl_utils-2.1-i686-pc-linux-gnu-gcc32-pgm.tar.gz
globus_openssl-0.1-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_openssl-0.1-i686-pc-linux-gnu-gcc32-pgm.tar.gz
globus_core_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_common_setup-2.0-i686-pc-linux-gnu-noflavor-pgm.tar.gz
globus_common-2.0-i686-pc-linux-gnu-gcc32-rtl.tar.gz
globus_common-2.0-i686-pc-linux-gnu-gcc32-pgm.tar.gz

15. Remove $GLOBUS_LOCATION. 

16. gpt-install foo version 2.2.3.

17. Run gpt-bundle -xml=template.xml.

18. Confirm that it errors out on globus_ssl_utils.

19. Edit template.xml to remove globus_ssl_utils.

20 Run gpt-bundle  -verbose -bv=1.1 -bl=2.2.3 -xml=template.xml globus_proxy_utils globus_gsi_cert_utils

21. Confirm that the following was packaged:

globus_common-gcc32-pgm
globus_proxy_utils-gcc32-pgm
globus_gsi_cert_utils-gcc32-pgm
globus_gsi_cert_utils-gcc32-rtl
globus_common-gcc32-rtl
globus_common_setup-noflavor-pgm
globus_gsi_openssl_error-gcc32-rtl
globus_openssl-gcc32-rtl
globus_openssl_module-gcc32-rtl
globus_trusted_ca_42864e48_setup-noflavor-pgm
globus_openssl-gcc32-pgm
globus_gsi_callback-gcc32-rtl
globus_gsi_proxy_ssl-gcc32-rtl
globus_gsi_sysconfig-gcc32-rtl
globus_gsi_credential-gcc32-rtl
globus_gsi_proxy_core-gcc32-rtl

22. Run gpt-bundle -verbose -bv=1.1 -bl=2.2.3 \
-exclude=globus_gsi_callback -exclude=globus_gsi_credential \
-exclude=globus_gsi_sysconfig -xml=template.xml globus_proxy_utils \
globus_gsi_cert_utils

23. Confirm that the three packages were not included in the bundle.

24.  Run gpt-bundle -verbose -bv=1.1 -bl=2.2.3 -nosetups \
-xml=template.xml globus_proxy_utils globus_gsi_cert_utils

25. Confirm that no setup packages (globus_common_setup and
trusted_ca_*_setup) were included in the bundle.

26. Run gpt-bundle -verbose -bv=1.1 -bl=2.2.3 -nodeps \
-xml=template.xml globus_proxy_utils globus_gsi_cert_utils.

27. Confirm that only the globus_proxy_utils and globus_gsi_cert_utils
packages were bundled.

28. Run gpt-bundle -verbose -bv=1.1 -bl=2.2.3 -bundledef=newtemp1 \
-xml=template.xml globus_proxy_utils globus_gsi_cert_utils

29. Run gpt-bundle -verbose -bv=1.1 -bl=2.2.3 -bundledef=newtemp2 \
-nodeps -xml=template.xml globus_proxy_utils globus_gsi_cert_utils

30.  Untar the globus-management source bundlesinto a subdirectory called sources.

31. Run gpt-bundle -verbose -srcdir=sources -xml=newtemp1.gpt-bundle.xml 


32. Untar the bundle and confirm that the packaging_list file contains:

globus_proxy_utils
globus_gsi_proxy_core
globus_gsi_credential
globus_gsi_callback
globus_gsi_sysconfig
globus_gsi_cert_utils
globus_gsi_openssl_error
globus_openssl_module
globus_gsi_proxy_ssl-0.1.tar.gz
globus_trusted_ca_42864e48_setup-0.5.tar.gz
globus_openssl-0.10.tar.gz
globus_common_setup-2.1.tar.gz
globus_common-3.5.tar.gz

In this order.

33. Confirm that the file newfoo.gpt_bundle.xml contains:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE GPTBundleData SYSTEM "gpt_bundle.dtd">
<GPTBundleData Name="newfoo" >
<BundleInfo >
<Description >I am a description242502352</Description>
<ContactInfo ContactEmail="mbletzin@ncsa.uiuc.edu" ContactName="Michael Bletzinger" />
<BundleDocs BundleDocsDesc="docs.xml" BundleDocsURL="http://www.ncsa.uiuc.edu" />
</BundleInfo>
<BundleReleaseInfo >
<BundleStability Release="alpha" />
<BundleVersion Age="0" Major="1" Minor="1" />
<VersionLabel >2.2.3</VersionLabel>
<TypeOfBundle ContentsType="src" />
</BundleReleaseInfo>
<PackageList >
<IncludedPackages >
<Package PackageFlavor="gcc32" PackageName="globus_proxy_utils" PackageType="pgm" PackageVersion="0.5" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_proxy_core" PackageType="rtl" PackageVersion="0.3" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_credential" PackageType="rtl" PackageVersion="0.5" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_callback" PackageType="rtl" PackageVersion="0.3" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_sysconfig" PackageType="rtl" PackageVersion="0.3" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_cert_utils" PackageType="rtl" PackageVersion="0.4" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_openssl_error" PackageType="rtl" PackageVersion="0.2" />
<Package PackageFlavor="gcc32" PackageName="globus_openssl_module" PackageType="rtl" PackageVersion="0.2" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_proxy_ssl" PackageType="rtl" PackageVersion="0.1" />
<Package PackageFlavor="noflavor" PackageName="globus_trusted_ca_42864e48_setup" PackageType="pgm" PackageVersion="0.5" />
<Package PackageFlavor="gcc32" PackageName="globus_openssl" PackageType="rtl" PackageVersion="0.10" />
<Package PackageFlavor="noflavor" PackageName="globus_common_setup" PackageType="pgm" PackageVersion="2.1" />
<Package PackageFlavor="gcc32" PackageName="globus_common" PackageType="rtl" PackageVersion="3.5" />
</IncludedPackages>
<ExcludedPackages >
</ExcludedPackages>
<PackageFlags >
</PackageFlags>
</PackageList>
</GPTBundleData>

34. Run gpt-bundle -verbose -srcdir=sources -xml=newtemp2.gpt-bundle.xml.

35.  Confirm that only globus_proxy_utils and globus_gsi_cert_utils
were bundled.

36. Edit newtemp2.gpt-bundle.xml and remove the NoDeps element.

37.  Run gpt-bundle -verbose -srcdir=sources -bundledef=tst \
-xml=newtemp2.gpt-bundle.xml

38. Confirm that in tst.gpt_bundle.xml, all packages have version
numbers, and that the globus_proxy_utils and globus_gsi_cert_utils
packages have package types and flavors.  All other packages should
have 'ANY' as flavor and package type.

