NAME¶
git-buildpackage, 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-]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-]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:
- •
- 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-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
- 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-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 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|TREEISH]
- 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
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
commandline 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
<
URL:file:///usr/share/doc/git-buildpackage/manual-html/index.html>
AUTHOR¶
Guido Guenther <agx@sigxcpu.org>