Provided by: git-buildpackage_0.9.19_all bug

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

       --git-upstream-tag=TAG-FORMAT
              Use  this  tag  format  when looking for tags of upstream versions to build the upstream tarballs.
              Default is upstream/%(version)s. This must be set correctly if you don't want to  pass  any  other
              options. 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-debian-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
              upstream.

       --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
              pattern, 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
              tarball-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
              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.

   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-qemubuilder 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
              specified.

              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
              specified.  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
              %(version)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
              mergeWithUpstream  in svn-bp). Also remove debian/ if contained in the upstream tarball in case of
              2.0 and 3.0 source formats.

              This optios 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>:<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).

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  must  be   specified   without   the   'git-'   prefix.   So   e.g.
       --git-debian-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>

                                                28 February 2020                             gbp-buildpackage(1)