Provided by: git-buildpackage_0.9.25_all 

NAME
gbp-buildpackage - Build Debian packages from a Git repository
SYNOPSIS
gbp buildpackage [--git-[no-]ignore-new] [--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-]overlay] [--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-preexport=
COMMAND] [--git-postexport= COMMAND] [--git-prebuild= COMMAND] [--git-postbuild=
COMMAND] [--git-posttag= COMMAND] [--git-[no-]hooks] [--git-debian-tag= tag-format]
[--git-debian-tag-msg= tag-msg-format] [--git-upstream-tag= tag-format] [--git-force-
create] [--git-no-create-orig] [--git-upstream-signatures=[auto|on|off]] [--git-
upstream-tree= [BRANCH|SLOPPY|TAG|TREEISH]] [--git-tarball-dir= DIRECTORY] [--git-
compression= TYPE] [--git-compression-level= LEVEL] [--git-component= component]...
[--git-export-dir= DIRECTORY] [--git-export= TREEISH] [--git-[no-]pristine-tar]
[--git-[no-]pristine-tar-commit] [--git-[no-]-purge] [--git-tag-only] [--git-retag]
[OPTION_PASSED_TO_BUILD_CMD]...
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) run a clean command specified with --git-cleaner.
• (Optionally) export the source tree to a separate build area.
• Build an orig tarball if it doesn't exist. Optionally using pristine-tar.
• (Optionally) call a pre build hook.
• Call debuild(1) or Cowbuilder (via --git-pbuilder) or the application specified via --git-builder pass‐
ing along all arguments given to gbp buildpackage on the command line that don't start with --git-.
• (Optionally) tag the current commit 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
All options are prefixed with git- to distinguish options for gbp buildpackage from options passed to the
BUILD_CMD:
UPSTREAM TARBALL CREATION OPTIONS
When gbp buildpackage doesn't find a suitable upstream tarball it will create one either using pristine-
tar or git archive. These options determine how the tarball is created:
--git-pristine-tar
Use pristine-tar when generating the upstream tarball if it doesn't exist. If this mode is enabled
the --git-upstream-tag, --git-upstream-tree options have no effect when creating tarballs.
--git-upstream-tag=TAG-FORMAT
Use this tag format when looking for tags of upstream versions to build the upstream tarballs. De‐
fault is upstream/%(version)s. This must be set correctly if you don't want to pass any other op‐
tions. The default matches what gbp import-orig uses to create tags.
--git-upstream-tree=[BRANCH|SLOPPY|TAG|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. The SLOPPY option looks at the debian branch given via the --git-de‐
bian-branch and drops the debian/ dir.
Other values are interpreted as treeishs.
This doesn't have any effect if --git-pristine-tar is being used.
--git-upstream-branch=BRANCH_NAME
Branch to build the orig tarball from if --git-upstream-tree is set to BRANCH. Default is up‐
stream.
--git-tarball-dir=DIRECTORY
Search for upstream tarballs in DIRECTORY instead of generating them. If a tarball is not found
here it will be generated nevertheless. DIRECTORY can contain a version format substitution pat‐
tern, eg: foo-%(version)s.
--git-component=COMPONENT
When generating tarballs create an additional upstream tarball of directory COMPONENT in the
source tree. Using additional upstream tarballs is a feature of the 3.0 (quilt) source format. See
the dpkg-source manpage for details. Note that the --git-pristine-tar-commit option is currently
incompatible with this option.
This is considered an experimental feature and might change incompatibly.
--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.
--git-force-create
Force creation of an upstream tarball (overwriting a pre-existing one if present).
--git-no-create-orig
Don't try to create any upstream tarballs or to create symlinks to existing tarballs in tar‐
ball-dir.
--git-upstream-signatures=[auto|on|off]
Whether to export the upstream tarball with signatures.
--git-[no-]submodules
Include Git submodules in the orig tarball if present.
--git-compression=TYPE
Specifies the upstream tarball compression type. This will be used to locate and build the up‐
stream tarball if necessary. The default is auto which derives the compression type from the pris‐
tine-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.
PACKAGE BUILD OPTIONS
gbp buildpackage can invoke different types of builders to produce the source and binary packages. These
options determine which builder is invoked and how.
--git-builder=BUILD_CMD
Use BUILD_CMD instead of debuild -i -I. If you want to use Cowbuilder or Pbuilder see the
--git-pbuilder.
--git-cleaner=CLEAN_CMD
Use CLEAN_CMD to clean the source tree before the build. The default is /bin/true (no cleaning).
--git-pbuilder
Build the package using git-pbuilder (which uses cowbuilder by default). 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 (either via --git-pbuilder, --git-qemubuilder
or the corresponding configuration file options). 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 is set to downstream_sid.
--git-arch=ARCH
Build for architecture ARCH when using git-pbuilder (either via --git-pbuilder, --git-qemubuilder
or the corresponding configuration file options). 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. Only takes effect when using git-pbuilder (either via
--git-pbuilder, --git-qemubuilder or the corresponding configuration file options).
--git-pbuilder-options
Options to pass to pbuilder when building via git-pbuilder (either via --git-pbuilder, --git-qe‐
mubuilder or the corresponding configuration file options). It does so by using the
GIT_PBUILDER_OPTIONS environment variable to pass options to git-pbuilder.
As an example, to tell pbuilder to use an alternate .pbuilderrc file, you may run gbp buildpackage
with --git-pbuilder-options="--configfile /tmp/my/pbuilderrc". See pbuilder(8) for more options to
pass through here.
If unset the GIT_PBUILDER_OPTIONS environment variable will be left untouched.
--git-notify=[auto|on|off]
Whether to send a desktop notification after the build. This needs python3-notify2 installed.
HOOK OPTIONS
Hooks allow you to run arbitrary commands at different stages of the build. These options configure what
will be run:
--git-preexport=COMMAND
Execute COMMAND before exporting the source tree. Valid only if --git-export-dir has been speci‐
fied.
Exported environment variables are: GBP_GIT_DIR (the repository the package is being built from),
GBP_BUILD_DIR (the build dir).
--git-postexport=COMMAND
Execute COMMAND after exporting the source tree. Valid only if --git-export-dir has been speci‐
fied. The working directory of this hook is the toplevel directory of the exported source tree.
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-postbuild=COMMAND
Execute COMMAND after successful build. The working directory of this hook is the directory the
package was built in.
Exported environment variables are: GBP_CHANGES_FILE (the name of the generated changes file),
GBP_BUILD_DIR (the build dir).
--git-posttag=COMMAND
Execute COMMAND after tagging a new version. The working directory of this hook is the toplevel
directory of the Git repository.
Exported environment variables are: GBP_TAG (the name of the generated tag), GBP_BRANCH (the
branch the package was built from) and GBP_SHA1 (the sha1 of the commit the tag was created at).
--git-[no-]hooks
Enable running all (cleaner, preexport, postexport, prebuild, postbuild, and posttag) hooks. Note:
the --git-builder command is not affected by this option.
TAGGING OPTIONS
--git-tag
Add a git tag after a successful build. It tags the currently checked out commit except when
you're on a patch-queue branch. In that case the corresponding debian branch is tagged.
This is a command line only option that cannot be specified via gbp.conf.
--git-[no-]sign-tags
GPG sign all created tags.
--git-keyid=GPG-KEYID
Use this keyid for gpg signing tags.
--git-debian-tag=TAG-FORMAT
Use this tag format when tagging Debian versions, default is debian/%(version)s.
--git-debian-tag-msg=tag-msg-format
Use this tag message format when signing Debian versions, default is %(pkg)s Debian release %(ver‐
sion)s
--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-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.
BUILD AREA OPTIONS
gbp buildpackage can export the source tree to a different build-area before performing the build. This
options specify if and how this is done:
--git-export-dir=DIRECTORY
Export the current branch head (or the treeish object given via --git-export to DIRECTORY before
building. If unset the source will not be exported before starting the build.
--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.
Note that using WC enables the --git-ignore-branch and --git-ignore-new options as well since when
exporting the working copy there's no point in enforcing any branch or modification checks.
--git[-no]-purge
Purge (remove) temporary build area after build. This is the default but it can be turned off for
e.g. debugging purposes.
--git-[no-]overlay
Extract upstream tarball from tarball-dir when using the export-dir option (in analogy to merge‐
WithUpstream in svn-bp). Also remove debian/ if contained in the upstream tarball in case of 2.0
and 3.0 source formats.
This option allows one to keep only the debian/ dir in the version control system.
SAFETY OPTIONS
In order to make sure what you build is what you upload gbp buildpackage performs several safety checks.
These options allow one to configure and disable them:
--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-]ignore-new
Don't abort if there are uncommitted changes in the source tree or the current branch doesn't
match the DEBIAN-BRANCH.
COLOR AND VERBOSITY OPTIONS
--git-verbose
Verbose execution. Useful for debugging and bug reports.
--git-color=[auto|on|off]
Whether to use colored output.
--git-color-scheme=COLOR_SCHEME
Colors to use in output (when color is enabled). The format for COLOR_SCHEME is '<debug>:<in‐
fo>:<warning>:<error>'. Numerical values and color names are accepted, empty fields imply the de‐
fault 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).
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
To export the source tree without performing any build you can use:
gbp buildpackage --git-export-dir=/where/to/export --git-builder=/bin/true --git-no-pbuilder --git-no-hooks --git-no-purge
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 must be specified without the 'git-' prefix. So e.g. --git-de‐
bian-branch=debian/sid becomes in gbp.conf:
[buildpackage]
debian-branch = debian/sid
SEE ALSO
gbp-import-dsc(1), gbp-import-dscs(1), gbp-import-orig(1), gbp-dch(1), git-pbuilder(1), cowbuilder(8),
dpkg-source(1), git-submodule(1), gbp.conf(5), debuild(1), git(1), pristine-tar(1), The Git-Buildpackage
Manual ⟨file:///usr/share/doc/git-buildpackage/manual-html/index.html⟩
AUTHOR
Guido Günther <agx@sigxcpu.org>
5 November 2021 gbp-buildpackage(1)