---
name: "gpt-bundle"
section: "8"
platform: "linux"
package: "grid-packaging-tools"
version: "3.6.2-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/gpt-bundle"
---

# gpt-bundle(8)

Creates binary or source bundles from an installation or a collection of source packages.

## NAME

gpt-bundle - Creates binary or source bundles from an installation or a collection of source packages.

## SYNOPSIS

**gpt-bundle** \[options\] packages

```
  Options:
     -verbose                       Print copious output
     -help                          Print usage
     -man                           Print man page.
     -version                       Print GPT version.
     -srcdir=PATH                   Directory containing source packages
     -tmpdir=PATH                   Directory used to create binary packages
     -installdir=PATH               Directory containing an installation
     -bn=NAME                       Name of the bundle
     -bv=MAJOR.MINOR                Version of the bundle
     -bs=STABILITY                  Stability of the bundle contents
     -bl=VERSION                    Version Label of the bundle
     -native                        Create bundles of native pkgs (RPMs only).
     -all                           Bundle everything in the package directory..
     -nodeps                        Don't include any dependent packages.
     -nosetups                      Don't include dependent setup packages.
     -template                      Outputs empty Bundle Def XML file.
     -bundledef=FILE                Outputs XML file with command line values.
     -exclude=PACKAGE               Don't include PACKAGE in bundle
     -config=FILE                   Use bundle options stored in FILE
     -xml=FILE                      XML bundle description file
     -output=FILE                   Name of the bundle file,
     -rpmprefix=PATH                Absolute path encoded in the RPM.
     -buildnumber=NUMBER            Build number used for pgm_static packages
     -rpmlicense=LABEL              License Label added to the RPM header
     [packages]                     List of packages to be bundled
```

## DESCRIPTION

**gpt-bundle** Creates binary or source bundles from an installation or a collection of source packages.  These bundles can then distributed be installed using *gpt-install* or *gpt-build*. A bundle consists of a collection of packages and a XML formatted description file.

The script accepts a list of packages from the command line or from an inputed bundle description file.  It expands this list to include all of the packages that the listed packages depend on. It then uses this expanded list to create a new bundle description file which is then added to the collection of packages to form a bundle.

**gpt-bundle** assumes that all of the packages needed to create a source bundle are found in one subdirectory identified by the *-srcdir* switch.

**gpt-bundle** assumes that all of the packages need to create a binary bundle are installed in a location identified by the *-installdir* flag or `$GLOBUS_LOCATION`.

The list of packages that can be entered from the command line are of the form *NAME-FLAVOR-PACKAGE\_TYPE*.  The wildcard character '\*' can also be used.

## OPTIONS

- **-srcdir=PATH**

  Specifies where the directory containing your source packages is. If this is used, a source bundle will be created.  Note that this flag is required to create source bundles.

- **-installdir=PATH**

  Specifies where the installation used for creating binary bundles is. `$GLOBUS_LOCATION` is the default.

- **-xml=FILE**

  Specifies the input bundle description file.  A new file will be generated using the contents of this file and included in the bundle.

- **-bundlename=NAME**

  The name of the bundle.  This name is stored in the bundle description file and used as part of the bundle filename if **-output** is not specified.

- **-bundleversion=MAJOR.MINOR**

  This is the bundle version number.  It is stored in the bundle description file and used for bundle updates.  It is also used for the bundle filename if **-bundlelabel** is not specified.

- **-bundlelabel=VERSION**

  This is the bundle version label. It is stored in the bundle description file as a string and so can accomodate any versioning scheme.  The label is used in user queries, and as part of the bundle filename.

- **-bundlestability=STABILITY**

  This is the bundle version stability.  It is a field that is used to indicate the stability of this version of the bundle.  The field can have values of **experimental**, **alpha**, **beta**, or **production**.  The default vaule is experimental.  The field is stored in the bundle description file and used for user queries.

- **-tmpdir=PATH**

  Specifies the where the directory is that **gpt-bundle** should use to store generated binary packages.

- **-all**

  Tells **gpt-bundle** to bundle all of the packages in the source package directory or installation.

- **-native**

  Tells **gpt-bundle** to also bundle packages that are in the native format of the operating system.  Presently this only works for RPMS on linux.  **gpt-bundle** will output two bundle giving the native bundle a platform specific extension such as -rpm.

- **-nodeps**

  Tells **gpt-bundle** to only include the packages specified--do not check for or include dependencies.

- **-nosetups**

  Tells **gpt-bundle** to exclude any packages that are pulled in by a setup dependencies.  Note that setup packages that are listed on the command line will still be added to the bundle..

- **-exclude=package1,package2,...**

  This option excludes the listed packages from the created bundle.  It can be specified multiple times with the final listing used being an aggregate of all the listed packages.  This option can be abbreviated as '-exclude=package1,package2,...'.

- **-output=FILE**

  This is an alternative way to specify the bundle name.  The output file is put in the directory from which **gpt-bundle** was invoked if no path was given, in a directory relative it if a relative path was given, or in the absolute location, if given.

- **-template**

  Creates an empty Bundle XML that can be modified and used to create a new bundle.

- **-bundledef=FILE**

  Creates an XML file with name equal to **FILE**.gpt-bundle.xml.  This file will contain a GPT Bundle definition with values set to those  passed in on the command line.

- **-rpmprefix=\<path\_to\_installation**\>

  This should be set to the path to your GLOBUS\_LOCATION.  GPT will use a value of "/usr/grid" if this option is not specified.

- **-rpmlicense=\<label**\>

  Provides an alternate copyright label for the rpms. The default is whatever GPT was configured with.

- **-help**

  Print a brief help message and exits.

- **-buildnumber=\<number**\>

  Build number used to version static packages.

- **-man**

  Prints the manual page and exits.

- **-version**

  Prints the version of GPT and exits.

## Bundle Definition File Overrides

The *-bundle\** switches can be used to override content in the bundle definition file inputted by the *-xml* switch.  The relationship between the switches and the bundle definition file contents is shown in the following table:

```
  I<Switch>         I<Element>         I<Attribute>
  -bundlename       GPTBundleData      Name
  -bundleversion    BundleReleaseInfo  Major, Minor
  -bundlelabel      BundleReleaseInfo  VersionLabel
  -bundlestability  VersionStability   Release
```

## Bundle Names and Versions

**gpt-bundle** encourages a naming convention for bundle filenames. The convention can be overriden using the *-output* switch.  The convention is as follows:

```
  NAME-VERSION-src_bundle.tar.gz for source bundles
  NAME-VERSION-ARCH-gpt.tar.gz for gpt binary bundles. ARCH is the platform ID.
  NAME-VERSION-ARCH-rpm.tar.gz for rpm binary bundles.
```

NAME comes from the *-bundlename* switch.  VERSION comes from the *-bundlelabel* switch.  If this switch is not used then VERSION comes from the *-bundleversion* switch.

Unless overrided by the switches previously mentioned, the values for can also be extracted from the bundle definition file inputted by the *-xml* switch.

## SEE ALSO

[*gpt-build*(8)](/gpt-build/8.md) [*gpt-install*(8)](/gpt-install/8.md) [*gpt-pkg*(8)](/gpt-pkg/8.md)

## AUTHOR

Michael Bletzinger \<mbletzin@ncsa.uiuc.edu\>,  Eric Blau \<blau@mcs.anl.gov\> and Patrick Duda \<pduda@ncsa.uiuc.edu\>
