The Bundle Definition File

The file newfoo-2.0.gpt-bundle.xml from the previous example is a typical bundle definition file. It is in an XML document that follows this DTD. The bundle definition file is not only a product of gpt-bundle but can also be an input. The file can be used as a template for a group of bundles. With this use, the data in the file is overriden by gpt-bundle command line options.

Lets take a closer look at the definition file.


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE GPTBundleData SYSTEM "gpt_bundle.dtd">
<GPTBundleData Name="newfoo" >
<BundleInfo >
<Description >EMPTY</Description>
<ContactInfo ContactEmail="EMPTY" ContactName="EMPTY" />
<BundleDocs BundleDocsDesc="EMPTY" BundleDocsURL="EMPTY" />
</BundleInfo>
<BundleReleaseInfo >
<BundleStability Release="EMPTY" />
<BundleVersion Age="0" Major="1" Minor="0" />
<VersionLabel >2.0</VersionLabel>
<TypeOfBundle ContentsType="gpt" />
</BundleReleaseInfo>

This section is the top of the definition file and contains data that pertains to the bundle as a whole. For this particular file, several of the elements contain "EMPTY" which indicates that they need to be edited. As mentioned previously, several of these elements can also be set from the gpt-bundle command line. The following table describes these elements.

Table 6.1. Bundle Definition Elements

Element or AttributeDescriptiongpt-bundle Command Line Switch
GPTBundleData NameName of the bundle-bn="NAME"
ContactInfo ContactEmailEmail address for questions about the bundleNone
ContactInfo ContactNameName of the bundle ownerNone
BundleDocs BundleDocsDesc

Explanation on how to get documentation on the bundle

None
BundleDocs BundleDocsURL

URL to online bundle documentation

None
BundleStability Release

Stability of the software released with this bundle. Usually one of "Experimental", "Alpha", "Beta", or "Production"

-bs="STABILITY"
BundleVersion Age, Major, and MinorGPT internal version number of the bundle. Age is not currently used-bv="MAJOR.MINOR"
VersionLabel

The user friendly version number of the bundle. Can be any CDATA string.

-bl="LABEL"

The element TypeOfBundle is generated by GPT.

The next section is a list of packages:


<PackageList >
<IncludedPackages >
<Package PackageFlavor="gcc32" PackageName="globus_common" PackageType="pgm" PackageVersion="3.5" />
<Package PackageFlavor="gcc32" PackageName="globus_common" PackageType="rtl" PackageVersion="3.5" />
<Package PackageFlavor="noflavor" PackageName="globus_common_setup" PackageType="pgm" PackageVersion="2.1" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_callback" PackageType="rtl" PackageVersion="0.3" />
<Package PackageFlavor="gcc32" PackageName="globus_gsi_cert_utils" PackageType="pgm" PackageVersion="0.4" />

Each package is listed with its build flavor, package name, and GPT version. The version is of the form MAJOR.MINOR. The version listed in the definition is overidden by the version of the package actually found in the installation when the bundle definition file is regenerated by gpt-bundle. Packages can also be added to this section by listing them on the command line.


<ExcludedPackages >
</ExcludedPackages>

This section has the same format as IncludedPackages but lists packages that should be excluded. The default behavior for gpt-bundle is to bundle the entire dependency tree of an included package. Listing packages in the ExcludedPackages section allows the dependency to be pruned. Packages can also be added to this section by using the gpt-bundle command line switch -exclude='PACKAGE_NAME'.