gbp-buildpackage

Name

gbp-buildpackage -- Build Debian packages from a Git repository

Synopsis

gbp buildpackage [--git-[no-]ignore-new] [--git-[no-]ignore-untracked] [--git-tag] [--git-verbose] [--git-color=[auto|on|off]] [--git-color-scheme=COLOR_SCHEME] [--git-notify=[auto|on|off]] [--git-upstream-branch=TREEISH] [--git-debian-branch=BRANCH_NAME] [--git-ignore-branch] [--git-[no-]submodules] [--git-builder=BUILD_CMD] [--git-cleaner=CLEAN_CMD] [--git-[no-]pbuilder] [--git-[no-]qemubuilder] [--git-dist=DIST] [--git-arch=ARCH] [--git-[no-]pbuilder-autoconf] [--git-pbuilder-options=PBUILDER_OPTIONS] [--git-[no-]sign-tags] [--git-keyid=GPG-KEYID] [--git-posttag=COMMAND] [--git-postbuild=COMMAND] [--git-postexport=COMMAND] [--git-prebuild=COMMAND] [--git-[no-]build] [--git-[no-]hooks] [--git-debian-tag=tag-format] [--git-upstream-tag=tag-format] [--git-debian-tag-msg=tag-msg-format] [--git-force-create] [--git-no-create-orig] [--git-upstream-tree=[TAG|BRANCH|TREEISH]] [--git-tarball-dir=DIRECTORY] [--git-compression=TYPE] [--git-compression-level=LEVEL] [--git-export-dir=DIRECTORY] [--git-export=TREEISH] [--git-[no-]pristine-tar] [--git-[no-]pristine-tar-commit] [--git-[no-]-purge] [--git-dont-purge] [--git-tag-only] [--git-retag]

DESCRIPTION

gbp buildpackage is used to build Debian source and .deb packages from a Git repository.

gbp buildpackage will, in order:

OPTIONS

--git-[no-]ignore-new

Don't abort if there are uncommitted changes in the source tree or the current branch doesn't match the DEBIAN-BRANCH.

--git-[no-]ignore-untracked

Don't abort if there are untracked files in the source tree. Uncommitted changes to tracked files cause an error normally.

--git-tag

Add a git tag after a successful build. This is a command line only option that cannot be specified via gbp.conf.

--git-builder=BUILD_CMD

Use BUILD_CMD instead of debuild -i -I.

--git-cleaner=CLEAN_CMD

Use CLEAN_CMD instead of debuild clean.

--git-pbuilder

Build package using git-pbuilder. Note that this overwrites any --git-builder and --git-cleaner options.

--git-qemubuilder

Build package using git-pbuilder with qemubuilder. Note that this overwrites any --git-builder and --git-cleaner options.

--git-dist=DIST

Build for distribution DIST when using --git-pbuilder. If unset build for the unstable distribution. The special value DEP14 will set the distribution to build for from the branch name. I.e. if you're starting the build from a branch named debian/wheezy-backports the distribution is set to wheezy-backports. If the branch is named downstream/sid the distribution would be set to downstream_sid.

--git-arch=ARCH

Build for architecture ARCH when using --git-pbuilder. If unset no architecture is passed to git-pbuilder.

--git-pbuilder-autoconf

Whether to try to autoconfigure git-pbuilder or to rely on the settings in .pbuilderrc. See the git-pbuilder manpage for details.

--git-pbuilder-options

Options to pass to pbuilder

--git-verbose

verbose execution

--git-color=[auto|on|off]

Whether to use colored output.

--git-notify=[auto|on|off]

Whether to send a desktop notification after the build.

--git-color-scheme=COLOR_SCHEME

Colors to use in output (when color is enabled). The format for COLOR_SCHEME is '<debug>:<info>:<warning>:<error>'. Numerical values and color names are accepted, empty fields imply the default color. For example --git-color-scheme='cyan:34::' would show debug messages in cyan, info messages in blue and other messages in default (i.e. warning and error messages in red).

--git-upstream-branch=BRANCH_NAME

Branch to build the orig tarball from if --git-upstream-tree is set to BRANCH. Default is upstream.

--git-debian-branch=BRANCH_NAME

If you're not on this branch when invoking gbp buildpackage it will fail. Default is master. This is done to make sure you don't accidentally release from a topic branch. Not being on this branch will be ignored when using --git-ignore-new.

--git-ignore-branch

Don't check if the current branch matches DEBIAN-BRANCH.

--git-[no-]sign-tags

GPG sign all created tags.

--git-[no-]submodules

Include git submodules in the orig tarball.

--git-keyid=GPG-KEYID

Use this keyid for gpg signing tags.

--git-posttag=COMMAND

Execute COMMAND after tagging a new version.

Exported environment variables are: GBP_TAG (the name of the generated tag), GBP_BRANCH (the branch the package was build from) and GBP_SHA1 (the sha1 of the commit the tag was created at).

--git-postbuild=COMMAND

Execute COMMAND after successful build.

Exported environment variables are: GBP_CHANGES_FILE (the name of the generated changes file), GBP_BUILD_DIR (the build dir).

--git-postexport=COMMAND

Execute COMMAND after exporting the source tree - valid only if --git-export-dir has been specified.

Exported environment variables are: GBP_GIT_DIR (the repository the package is being built from), GBP_TMP_DIR (the temporary directory where the sources have been initially exported).

--git-prebuild=COMMAND

Execute COMMAND from the build directory before calling debuild or the application specified via --git-builder.

Exported environment variables are: GBP_GIT_DIR (the repository the package is being built from), GBP_BUILD_DIR (the build dir).

--git-[no-]build

Enable builder. Note: --git-no-build causes the postbuild hook to be disabled, too.

--git-[no-]hooks

Enable running all (cleaner, postexport, prebuild, postbuild, and posttag) hooks. Note: the --git-builder command is not affected by this option.

--git-debian-tag=TAG-FORMAT

Use this tag format when tagging Debian versions, default is debian/%(version)s.

--git-upstream-tag=TAG-FORMAT

Use this tag format when looking for tags of upstream versions, default is upstream/%(version)s.

--git-debian-tag-msg=tag-msg-format

Use this tag message format when signing Debian versions, default is %(pkg)s Debian release %(version)s

--git-force-create

Force creation of an orig tarball (overwriting a pre-existing one if present).

--git-no-create-orig

Don't try to create any orig tarball.

--git-overlay

Extract orig tarball from tarball-dir when using the export-dir option (in analogy to mergeWithUpstream in svn-bp). Also remove debian/ if contained in the upstream tarball in case of 2.0 and 3.0 source formats.

--git-export-dir=DIRECTORY

Export the current branch head (or the treeish object given via --git-export to DIRECTORY before building.

--git-export=TREEISH

Instead of exporting the current branch head, export the treeish object TREEISH. The special name INDEX exports the current index, WC.TRACKED exports all files tracked by Git in the current working copy as is, WC.UNTRACKED exports all untracked files too whereas WC (or WC.IGNORED) exports all files in the current working directory, even ignored files.

--git-upstream-tree=[TAG|BRANCH|TREEISH]

How to find the upstream sources used to generate the tarball. TAG (the default) looks at a tag corresponding to the version in the changelog. BRANCH looks at the upstream branch given via the --git-upstream-branch option. Other values are interpreted as treeishs.

This doesn't have any effect if --git-pristine-tar is being used.

--git-tarball-dir=DIRECTORY

Search for original tarballs in DIRECTORY instead of generating them.

--git-compression=TYPE

Specifies the upstream tarball compression type. This will be used to locate and build the upstream tarball if necessary. The default is auto which derives the compression type from the pristine-tar branch if available and falls back to gzip otherwise. Other options are gzip, bzip2, lzma and xz.

--git-compression-level=LEVEL

Specifies the upstream tarball compression level if an upstream tarball needs to be built.

--git[-no]-purge

Purge (remove) temporary build directory after build.

--git-dont-purge

Deprecated, use --git-no-purge instead. This is a command line only option that cannot be specified via gbp.conf.

--git-tag-only

Don't build, only tag and run post-tag hooks. This is a command line only option that cannot be specified via gbp.conf.

--git-retag

Don't fail tag operations if a tag with the same version already exists. This is a command line only option that cannot be specified via gbp.conf.

--git-pristine-tar

Use pristine-tar when generating the upstream tarball if it doesn't exist.

--git-pristine-tar-commit

Commit the pristine-tar delta to the pristine-tar branch if a new tarball was generated and the pristine-tar data isn't already there.

EXAMPLES

Build a Debian package using git-pbuilder which in turn invokes cowbuilder. Instruct cowbuilder to build within a Wheezy chroot for i386.

      gbp buildpackage --git-pbuilder --git-arch=i386 --git-dist=wheezy
    

Note that the above needs a cowbuilder chroot already. This can be created using:

      DIST=wheezy ARCH=i386 git-pbuilder create
    

CONFIGURATION FILES

Several gbp.conf files are parsed to set defaults for the above command-line arguments. See the gbp.conf(5)> manpage for details.

All options in the config files are specified without the 'git-' prefix.

SEE ALSO

gbp-import-dsc(1)>, gbp-import-dscs(1)>, gbp-import-orig(1)>, gbp-dch(1)>, git-pbuilder(1), cowbuilder(8), gbp.conf(5)>, debuild(1), git(1), pristine-tar(1), The Git-Buildpackage Manual

AUTHOR

Guido Guenther