gbp-buildpackage

&dhsection;

git-buildpackage

gbp-buildpackage

Build Debian packages from a Git repository

          &gbp-buildpackage;
          --git-[no-]ignore-new
          --git-tag
          --git-verbose
          --git-color=[auto|on|off]
          --git-notify=[auto|on|off]
          --git-upstream-branch=treeish
          --git-debian-branch=branch_name
          --git-ignore-branch
          --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
          --git-[no-]sign-tags
          --git-keyid=gpg-keyid
          --git-posttag=command
          --git-postbuild=command
          --git-postexport=command
          --git-prebuild=command
          --git-[no-]hooks
          --git-debian-tag=tag-format
          --git-upstream-tag=tag-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:

- Verify that it is being executed from the proper location.

- Verify that the repository doesn't contain any uncommitted source changes.

- Verify that it is being executed from the correct branch.

- (Optionally) export the source tree to a separate build area

- Build an orig tarball if it doesn't exist.

- Call debuild(1) (or the application specified via `--git-builder`) with arguments instructing it to ignore &git; meta-data in the diff.gz, passing along all arguments given to &gbp-buildpackage; that don't start with --git-.

- (Optionally) tag the tree after a successful build

- (Optionally) call a post build hook - e.g. to run &lintian;

- (Optionally) call a post tag hook - e.g. to push the results to a remote repository after creating the tag

## 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-tag`

- Add a git tag after a successful build.

`--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.

`--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-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-keyid=``gpg-keyid`

- use this keyid for gpg signing tags

`--git-posttag=``command`

- excecute `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-]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-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 when using export-dir option (analog to mergeWithUpstream in svn-bp)

`--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 whereas the special name `WC` exports the current working copy as is.

`--git-upstream-tree=``[tag|branch]`

- How to find the upstream sources used to generate the tarball. `TAG` 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.

`--git-tag-only`

- don't build, only tag and run post-tag hooks

`--git-retag`

- don't fail tag operations if a tag with the same version already exists

`--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 &cowbuildercmd;. 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 &cowbuildercmd; chroot already. This can be created using:

          DIST=wheezy ARCH=i386 &git-pbuilder; create

&man.gbp.config-files;

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

&dhconfsection; &man.seealso.common;

## AUTHOR

&dhusername; &dhemail;