In order to build a Debian™ package from the Git™ repository, you use:
gbp buildpackage. This builds the upstream tarball (as will be described below) and
invokes Debuild™ to build the package. To use another build command, you
can use the --git-builder
option as described later in the manual,
but Debuild™ is nice since it can invoke lintian™.
During the development phase (when you're either not on the
debian-branch or when you have uncommitted changes in
your repository), you'll usually use:
gbp buildpackage --git-ignore-new
If gbp buildpackage doesn't find a valid upstream tarball, it will
create one by looking at the tag matching the upstream version. To change
this behaviour, see the --git-upstream-tree
option.
If you want to recreate the original tarball using the additional
information from the pristine-tar branch
, you have to
specify the --git-pristine-tar
option. This will make sure
the upstream tarball matches exactly the one imported. Using this option is
the recommended way of recreating the upstream tarball.
Once you're satisfied with the build and want to do a release, you commit all your changes and issue:
gbp buildpackage --git-tag
This will again build the Debian™ package and tag the final result after
extracting the current version from the changelog. If you want GPG™-signed
tags, you can use the --git-sign
and
--git-keyid
options. To save typing, these option can be
specified via the configuration files. You can furthermore change the tag
format used when creating tags with the debian-tag
option; the default is debian/<version>
.
Tools like svn-buildpackage™ use a separate build-area. To achieve a similar behaviour
with gbp buildpackage, use the --git-export-dir
option:
gbp buildpackage--git-export-dir
=../build-area/
This will export the head of the current branch to
../build-area/package-version
and build the
package. If you don't want to export the current branch head, you can use
--git-export
to export any treeish object. Here are some
examples:
gbp buildpackage--git-export-dir
=../build-area
--git-export
=debian/0.4.3
gbp buildpackage--git-export-dir
=../build-area
--git-export
=etch
gbp buildpackage--git-export-dir
=../build-area
--git-export
=8caed309653d69b7ab440e3d35abc090eb4c6697
gbp buildpackage--git-export-dir
=../build-area
--git-export
=INDEX
gbp buildpackage--git-export-dir
=../build-area
--git-export
=WC
The special argument INDEX
exports the
state of the current index, which can be used to include staged but uncommitted
changes in the build. Whereas the special argument
WC
exports the current working copy as is.
If you want to default to build in a separate build area, you can
specify the directory to use in the gbp.conf
file.
[buildpackage] # use a build area relative to the git repository export-dir=../build-area # to use the same build area for all packages use an absolute path: #export-dir=/home/debian-packages/build-area
gbp buildpackage will cleanup the build-area after a successful build. If
you want to keep the build tree, use --git-no-purge
.