sbuild(1)


NAME

   sbuild - build debian packages from source

SYNOPSIS

   sbuild   [-h|--help   |   -V|--version]   [-v|--verbose  |  -q|--quiet]
   [-D|--debug]            [-A|--arch-all]             [--archive=archive]
   [-d|--dist=distribution]         [-c|--chroot=chroot]        [--chroot-
   mode=schroot|sudo|adt]     [--arch=architecture]     [--arch-any      |
   --no-arch-any]       [--build=architecture]       [--host=architecture]
   [--profiles=profile[,...]]      [-s|--source]     [--force-orig-source]
   [--make-binNMU=changelog-entry]                  [--binNMU=NMU-version]
   [--append-to-version=string]     [--add-depends=dependency]     [--add-
   conflicts=dependency]      [--add-depends-arch=dependency]      [--add-
   conflicts-arch=dependency]   [--add-depends-indep=dependency]   [--add-
   conflicts-indep=dependency]                [-m|--maintainer=maintainer]
   [-e|--uploader=uploader]  [-k|--keyid=key-id]   [--source-only-changes]
   [-j|--jobs=n]  [--debbuildopt=option] [--debbuildopts=options] [--dpkg-
   source-opt=options]   [--dpkg-source-opts=options]   [-p|--purge=purge-
   mode]        [--purge-build=purge-mode]       [--purge-deps=purge-mode]
   [--purge-session=purge-mode] [-b|--batch] [-n|--nolog] [--clean-source]
   [--no-clean-source]          [--run-lintian]         [--no-run-lintian]
   [--lintian-opt=options]    [--lintian-opts=options]    [--run-piuparts]
   [--no-run-piuparts]  [--piuparts-opt=options] [--piuparts-opts=options]
   [--piuparts-root-arg=options]            [--piuparts-root-args=options]
   [--run-autopkgtest]  [--no-run-autopkgtest] [--autopkgtest-opt=options]
   [--autopkgtest-opts=options]           [--autopkgtest-root-arg=options]
   [--autopkgtest-root-args=options]         [--pre-build-commands=string]
   [--chroot-setup-commands=string]
   [--chroot-update-failed-commands=string]
   [--build-deps-failed-commands=string]
   [--starting-build-commands=string]   [--finished-build-commands=string]
   [--build-failed-commands=string]     [--chroot-cleanup-commands=string]
   [--post-build-commands=string]      [--anything-failed-commands=string]
   [--log-external-command-output]          [--log-external-command-error]
   [--setup-hook=hook-script]              [--build-dep-resolver=resolver]
   [--resolve-alternatives|--no-resolve-alternatives]
   [--extra-package=package.deb]                 [--extra-repository=spec]
   [--extra-repository-key=file.asc]  [--build-path=string]   [--adt-virt-
   server=schroot|lxc|chroot|qemu|ssh]      [--adt-virt-server-opt=string]
   [--adt-virt-server-opts=options] [PACKAGE[.dsc]]

DESCRIPTION

   sbuild rebuilds Debian binary packages from  the  corresponding  Debian
   source,  installing  any  missing source dependencies.  The build takes
   place in a dedicated clean build environment (chroot), rather  than  on
   the host system.

   sbuild  can  fetch  the  Debian  source  over  a network, or it can use
   locally available sources.

   sbuild is given a packages to process as  the  argument  PACKAGE[.dsc].
   This  argument  is  in  the  form of either a debianized package source
   directory, a source package name along  with  a  version  in  the  form
   package_version, a source package name, or a .dsc file. If no arguments
   are given, the current working directory is passed as an argument.

   For arguments given as source directories, dpkg-source is first run  to
   produce  a  source .dsc file. Then, the package is built using the .dsc
   produced. For arguments in the form package_version or package, apt  is
   used  to  download  the  source  package. For arguments given as a .dsc
   file, sbuild builds the source packages directly.  For  .dsc  files  in
   remote locations, the source packages are downloaded first, then built.

   It  is  also  possible  to  run  external commands with sbuild. See the
   section EXTERNAL COMMANDS for more on this.

   sbuild mails the build logs  to  a  user.   It  is  configured  by  the
   configuration   files   /etc/sbuild/sbuild.conf  and  ~/.sbuildrc.   An
   example          sbuildrc           is           available           in
   /usr/share/doc/sbuild/examples/example.sbuildrc.   A  custom  path to a
   configuration  file  can  also  be  specified   through   setting   the
   SBUILD_CONFIG  environment  variable  to  the  path  of  an  additional
   configuration file.

   You can build either using a local package with  its  .dsc  file  or  a
   remote one by specifying an explicit dpkg version.

   Note:  When using schroot (recommended), the chroot having the name (or
   alias) of the specified distribution  will  be  used;  schroot  uses  a
   chroot    named    $distribution-$arch-sbuild,    $distribution-sbuild,
   $distribution-$arch or $distribution, in that order of preference.  The
   -c  or  --chroot  option may be used to override the chroot to be used.
   When configured to use  sudo  (deprecated),  sbuild  will  look  for  a
   symlink  to  a chroot with the same name as the distribution specified.
   sbuild   will   use   a   symlink   to   the    chroot    located    in
   /etc/sbuild/chroot/$distribution,   or  must  be  run  in  a  directory
   containing  a  chroot-$distribution  symlink   to   the   chroot   (not
   recommended, but done for backward compatibility).

OPTIONS

   Options  set  on  the  command  line  overwrite  settings  made  in the
   configuration file.

   -h, --help
          Display this manual.

   -V, --version
          Print version information.

   --add-depends=dependency

   --add-conflicts=dependency

   --add-depends-arch=dependency

   --add-conflicts-arch=dependency

   --add-depends-indep=dependency

   --add-conflicts-indep=dependency
          These options add a build dependencies  to  the  source  package
          being  built,  in  addition  to the build dependency information
          specified  in  debian/control.   These  dependencies   will   be
          concatenated  directly  to  the  Build-Depends, Build-Conflicts,
          Build-Depends-Arch,  Build-Conflicts-Arch,   Build-Depends-Indep
          and   Build-Conflicts-Indep   dependencies,  respectively.   The
          options may  be  used  any  number  of  times  to  add  multiple
          dependencies.   The  format  is  identical to the format used in
          debian/control.   These  command  line  options  append  to  the
          MANUAL_DEPENDS,      MANUAL_CONFLICTS,      MANUAL_DEPENDS_ARCH,
          MANUAL_CONFLICTS_ARCH,         MANUAL_DEPENDS_INDEP          and
          MANUAL_CONFLICTS_INDEP  configuration  variables,  respectively.
          See sbuild.conf(5) for more information.

   --arch=architecture
          Build  using  the  architecture  specified.   A   chroot   named
          $distribution-$arch-sbuild  or  $distribution-arch  is  searched
          for, in that order of preference.  The chroot must be  installed
          and configured appropriately to build as that architecture, e.g.
          using personality=linux32 to build i386  packages  on  an  amd64
          system.     Note    that    this   option   is   equivalent   to
          "--host=architecture --build=architecture".  This  command  line
          option   sets   the   HOST_ARCH   and  BUILD_ARCH  configuration
          variables. See sbuild.conf(5) for more information.

   --host=architecture
          Build using the  host  architecture  specified.   If  $host  and
          $build       don't       match,       a       chroot       named
          $distribution-$build-$host-sbuild or  $distribution-$build-$host
          is  searched for, falling back to $distribution-$build-sbuild or
          $distribution-$build, in that order of preference.  This  option
          is  only  useful  for  cross-building  when  used  together with
          --build.   This  command  line   option   sets   the   HOST_ARCH
          configuration variable. See sbuild.conf(5) for more information.

   --build=architecture
          Build  using  the  build architecture specified.  This option is
          only useful for cross-building when used together  with  --host.
          If  --build is not specified, the default system architecture is
          assumed.   This  command  line  option   sets   the   BUILD_ARCH
          configuration variable. See sbuild.conf(5) for more information.

   -A, --arch-all
          Also  build  Architecture:  all  packages.  This  option  is the
          opposite of --no-arch-all.  See the section BUILD ARTIFACTS  for
          more   information.    This   command   line   option  sets  the
          BUILD_ARCH_ALL configuration variable.  See  sbuild.conf(5)  for
          more information.

   --no-arch-all
          Do  not  build  Architecture:  all packages. This is the default
          behaviour. This option is the opposite of --arch-all.   See  the
          section BUILD ARTIFACTS for more information.  This command line
          option  sets  the  BUILD_ARCH_ALL  configuration  variable.  See
          sbuild.conf(5) for more information.

   --arch-any
          Build  Architecture: any packages. This is the default behavior.
          This option is the opposite of --no-arch-any.  See  the  section
          BUILD  ARTIFACTS for more information.  This command line option
          sets   the   BUILD_ARCH_ANY    configuration    variable.    See
          sbuild.conf(5) for more information.

   --no-arch-any
          Do  not  build  Architecture:  any  packages. This option is the
          opposite of --arch-any and only useful when used  together  with
          --arch-all  or  --source.   See  the section BUILD ARTIFACTS for
          more  information.   This   command   line   option   sets   the
          BUILD_ARCH_ANY  configuration  variable.  See sbuild.conf(5) for
          more information.

   -b, --batch
          Operate in batchmode, i.e. write a  build-progress  file  during
          execution  and  files on shutdown to facilitate a clean restart.
          This command  line  option  sets  the  BATCH_MODE  configuration
          variable. See sbuild.conf(5) for more information.

   -c, --chroot=chroot
          Use  the  specified chroot. If not specified, the default is the
          first   of   $distribution-$arch-sbuild,   $distribution-sbuild,
          $distribution-$arch  or $distribution that exists.  This command
          line  option  sets  the  CHROOT  configuration   variable.   See
          sbuild.conf(5) for more information.

   --chroot-mode=schroot|sudo|adt
          Select  the  desired  chroot  mode.  Four  values  are possible:
          schroot (the default), sudo (which uses sudo to  execute  chroot
          in  a  directory  from  /etc/sbuild/chroot  or ./chroot) and adt
          which uses the adt-virt-* binaries (selectable  via  the  --adt-
          virt-server   option).    This  command  line  option  sets  the
          CHROOT_MODE configuration variable. See sbuild.conf(5) for  more
          information.

   -d, --dist=distribution
          Explicitly set the distribution for the package build. This will
          be selecting the correct chroot to use and also sets  the  value
          of  the Distribution field in the created .changes file. Setting
          this option is necessary when giving sbuild a  .dsc  file  or  a
          plain  source  package  name  to  build.  In  the latter case it
          specifies the distribution the source package is  fetched  from.
          This  command  line  option  sets the DISTRIBUTION configuration
          variable. See sbuild.conf(5) for more information.

   --archive=archive
          Communicate with specified archive.  This  command  line  option
          sets  the ARCHIVE configuration variable. See sbuild.conf(5) for
          more information.

   -D, --debug
          Enable debug output.

   --apt-clean
   --no-apt-clean
          Run (or do not run) apt-get clean in the chroot before executing
          the  build,  overriding  the default setting.  This command line
          option  sets   the   APT_CLEAN   configuration   variable.   See
          sbuild.conf(5) for more information.

   --apt-update
   --no-apt-update
          Run  (or  do  not  run)  apt-get  update  in  the  chroot before
          executing the  build,  overriding  the  default  setting.   This
          command  line option sets the APT_UPDATE configuration variable.
          See sbuild.conf(5) for more information.

   --apt-upgrade
   --no-apt-upgrade
          Run (or do  not  run)  apt-get  upgrade  in  the  chroot  before
          executing  the  build,  overriding  the  default  setting.  This
          command line option sets the APT_UPGRADE configuration variable.
          See sbuild.conf(5) for more information.

   --apt-distupgrade
   --no-apt-distupgrade
          Run  (or  do  not  run) apt-get distupgrade in the chroot before
          executing the  build,  overriding  the  default  setting.   This
          command  line  option  sets  the  APT_DISTUPGRADE  configuration
          variable. See sbuild.conf(5) for more information.

   -m, --maintainer=maintainer
          Specify the identity to use for GPG signing packages,  and  also
          used  as the maintainer for binary NMUs.  This does not normally
          require setting (it defaults to  the  uploader).   This  command
          line option sets the MAINTAINER_NAME configuration variable. See
          sbuild.conf(5) for more information.

   -e, --uploader=uploader
          Passed to dpkg-genchanges and is used  to  set  the  Changed-by:
          field  in  the  .changes file(s).  This command line option sets
          the UPLOADER_NAME configuration variable. See sbuild.conf(5) for
          more information.

   -k, --keyid=key-id
          Passed  to  debsign  and  is  used  to  set  the key to sign the
          .changes file(s).  Default is not using any key and not  signing
          the  .changes file(s).  This command line option sets the KEY_ID
          configuration variable. See sbuild.conf(5) for more information.

   --source-only-changes
          In addition to the .changes file generated by dpkg-buildpackage,
          also  produce a .changes file suitable for a source-only upload.
          If requested by --keyid, this .changes file will also be  signed
          by    debsign.     This    command    line   option   sets   the
          SOURCE_ONLY_CHANGES configuration variable.  See  sbuild.conf(5)
          for more information.

   -j, --jobs=n
          Number  of  jobs  to  run  simultaneously.   Passed  through  to
          dpkg-buildpackage.   This  command  line  option   appends   the
          appropriate  -j  option  to  the  DPKG_BUILDPACKAGE_USER_OPTIONS
          configuration variable. See sbuild.conf(5) for more information.

   --debbuildopt=option
          Pass the  specified  option  directly  to  dpkg-buildpackage  in
          addition  to  the  options already passed by sbuild. This option
          can be passed multiple times (once per dpkg-buildpackage option)
          and  can be freely mixed with the --debbuildopts option. Options
          will be passed  to  dpkg-buildpackage  in  the  order  that  the
          --debbuildopt  and  --debbuildopts  options  are  given  on  the
          command  line.   This  command  line  option  appends   to   the
          DPKG_BUILDPACKAGE_USER_OPTIONS   configuration   variable.   See
          sbuild.conf(5) for more information.

   --debbuildopts=options
          Pass the specified  options  directly  to  dpkg-buildpackage  in
          addition  to  the options already passed by sbuild. The argument
          will be split by whitespaces and the resulting array  passed  to
          the dpkg-buildpackage invocation. If any options contain spaces,
          use --debbuildopt for them.  This option can be passed  multiple
          times  and  can  be  freely mixed with the --debbuildopt option.
          Options will be passed to dpkg-buildpackage in  the  order  that
          the  --debbuildopt  and  --debbuildopts options are given on the
          command  line.   This  command  line  option  appends   to   the
          DPKG_BUILDPACKAGE_USER_OPTIONS   configuration   variable.   See
          sbuild.conf(5) for more information.

   --dpkg-source-opt=options
          Pass the specified option directly to dpkg-source in addition to
          the  options  already  passed  by sbuild. This is only used when
          creating a source package from a  Debianized  source  directory.
          This  option  can be passed multiple times (once per dpkg-source
          option) and can be  freely  mixed  with  the  --dpkg-source-opts
          option.  Options will be passed to dpkg-source in the order that
          the --dpkg-source-opt and --dpkg-source-opts options  are  given
          on  the  command  line.  This command line option appends to the
          DPKG_SOURCE_OPTIONS configuration variable.  See  sbuild.conf(5)
          for more information.
          NOTE: The '-b' option will always be passed to dpkg-source.

   --dpkg-source-opts=options
          Pass  the  specified options directly to dpkg-source in addition
          to the options already passed by sbuild. The  argument  will  be
          split  by  whitespaces  and  the  resulting  array passed to the
          dpkg-source invocation. This is only used when creating a source
          package  from  a  Debianized  source  directory.  If any options
          contain spaces, use --dpkg-source-opt for them.  This option can
          be  passed  multiple  times  and  can  be  freely mixed with the
          --dpkg-source-opt option.  Options will be passed to dpkg-source
          in  the  order that the --dpkg-source-opt and --dpkg-source-opts
          options are given on the command line.  This command line option
          appends  to  the DPKG_SOURCE_OPTIONS configuration variable. See
          sbuild.conf(5) for more information.

   --mail-log-to=email-address
          Send the build log to the specified email address.  This command
          line   option   sets  the  MAILTO  configuration  variable.  See
          sbuild.conf(5) for more information.

   --mailfrom=email-address
          Email address used as the sender address for build  logs.   This
          command  line  option  sets the MAILFROM configuration variable.
          See sbuild.conf(5) for more information.

   -n, --nolog
          Do not create a package log file in the $log_dir  directory  and
          no  build  log file, but print everything to stdout. Also do not
          send any log mails.  This command line  option  sets  the  NOLOG
          configuration variable. See sbuild.conf(5) for more information.

   --profiles=profile[,...]"
          Specify  the  profile(s)  we  build,  as a comma-separated list.
          Defaults  to  the  space  separated  list  of  profiles  in  the
          DEB_BUILD_PROFILES  environment  variable.   This  command  line
          option  sets  the  BUILD_PROFILES  configuration  variable.  See
          sbuild.conf(5) for more information.

   -p, --purge=purge-mode
          Convenience  option to set purge-mode for build directory, build
          dependencies and session.  This command  line  option  sets  the
          PURGE_BUILD_DEPS,    PURGE_BUILD_DIRECTORY   and   PURGE_SESSION
          configuration   variables.   See   sbuild.conf(5)    for    more
          information.

   --purge-build=purge-mode
          purge-mode  determines  if  the  build directory will be deleted
          after a build. Possible values are always (default), never,  and
          successful.     This    command    line    option    sets    the
          PURGE_BUILD_DIRECTORY configuration variable. See sbuild.conf(5)
          for more information.

   --purge-deps=purge-mode
          purge-mode  determines if the build dependencies will be removed
          after a build. Possible values are always (default), never,  and
          successful.   This command line option sets the PURGE_BUILD_DEPS
          configuration variable. See sbuild.conf(5) for more information.

   --purge-session=purge-mode
          Purge the schroot session following a build.  This is useful  in
          conjunction with the --purge-build and --purge-deps options when
          using snapshot chroots, since by default the  snapshot  will  be
          deleted.   Possible  values  are  always  (default),  never, and
          successful.  This command line  option  sets  the  PURGE_SESSION
          configuration variable. See sbuild.conf(5) for more information.

   -s, --source
          Build  the  source  package  in  addition to the other requested
          build artifacts. By default,  the  dsc  will  not  be  rewritten
          because  the  source  package  is  the  input to sbuild, not its
          output. Even when running from an unpacked  source  tree  sbuild
          will  first  build the source package using dpkg-source and then
          pass that on to the sbuild machinery. Use this option only  when
          you  know what you are doing. This will rewrite the original dsc
          passed to sbuild.  See the  section  BUILD  ARTIFACTS  for  more
          information.   This  command  line  option sets the BUILD_SOURCE
          configuration variable. See sbuild.conf(5) for more information.

   --no-source
          Don't rebuild the source package. This is the default. It is the
          opposite  of --source.  See the section BUILD ARTIFACTS for more
          information.  This command line  option  sets  the  BUILD_SOURCE
          configuration variable. See sbuild.conf(5) for more information.

   --force-orig-source
          When  used  with  in conjunction with -s, this option forces the
          inclusion of the orig.tar.gz  file  in  the  generated  .changes
          file,  even  in  cases  where it would not normally be included,
          i.e. use dpkg-buildpackage -sa.  This command line  option  sets
          the FORCE_ORIG_SOURCE configuration variable. See sbuild.conf(5)
          for more information.

   --use-snapshot
          Installs the latest snapshot gcc compiler from the  gcc-snapshot
          package,  and  alters  the build environment to use the snapshot
          compiler for  the  build.   Specifically,  this  option  appends
          /usr/lib/gcc-snapshot/lib  to  the  value of the LD_LIBRARY_PATH
          configuration  variable  and  /usr/lib/gcc-snapshot/bin  to  the
          value  of  the  PATH  configuration  variable.  It also sets the
          GCC_SNAPSHOT configuration variable. See sbuild.conf(5) for more
          information.

   -v, --verbose
          Be  verbose,  i.e.  all information goes to stdout as well as to
          the log files.

   -q, --quiet
          Be quiet.  This is the opposite of --verbose.

   --make-binNMU=changelog-entry
          With this option, sbuild will create a new  changelog  entry  in
          debian/changelog of every package built. The version number will
          be in the  format  for  binary-only  NMUs  (see  --binNMU);  the
          maintainer  is set to the maintainer name configured for sbuild.
          changelog-entry will be used as the  changelog  entry  following
          "Binary-only   non-maintainer  upload  for  ARCH  --  no  source
          changes".   Please   note   that    the    versions    in    the
          PACKAGE_VERSION[.dsc]  arguments still have to be the unmodified
          (non-NMU ones) so that the sources can  be  found.  The  version
          number  in  log  files  and  mails  will  be  modified by sbuild
          automatically.   This  command  line  option  sets  the  BIN_NMU
          configuration    variable    and    sets   the   BIN_NMU_VERSION
          configuration variable to 1 if it was not set yet,  for  example
          by the --binNMU option. See sbuild.conf(5) for more information.

   --binNMU=NMU-version
          The  version  number  of the binary NMU.  This should be used in
          conjunction with --make-binNMU.  version is a single number  for
          the (+bn) format used for binary NMUs.  This command line option
          sets   the   BIN_NMU_VERSION   configuration    variable.    See
          sbuild.conf(5) for more information.

   --append-to-version=string
          This  option  is  similar to --make-binNMU except that it allows
          the user to specify an arbitrary string to be  appended  to  the
          version  number  (immediately  before  the  '+'  in  the  Debian
          revision if --make-binNMU is also provided).  This command  line
          option  sets  the  APPEND_TO_VERSION configuration variable. See
          sbuild.conf(5) for more information.

   --clean-source
          When executing sbuild  from  within  an  unpacked  source  tree,
          execute  the  debian/rules clean target. This is the default and
          might require some of the build dependencies  installed  on  the
          host.    This   command   line   option  sets  the  CLEAN_SOURCE
          configuration variable. See sbuild.conf(5) for more information.

   --no-clean-source
          When executing sbuild from within an unpacked  source  tree,  do
          not run the debian/rules clean target before building the source
          package. Only set this if you start from a  clean  checkout  and
          you  know what you are doing.  This command line option sets the
          CLEAN_SOURCE configuration variable. See sbuild.conf(5) for more
          information.

   --run-lintian
          Run  lintian after a successful build.  This command line option
          sets the RUN_LINTIAN configuration variable. See  sbuild.conf(5)
          for more information.

   --no-run-lintian
          Don't  run  lintian  after  a  successful  build.   If sbuild is
          configured to run lintian by default, this option  will  prevent
          lintian   being   run.    This  command  line  option  sets  the
          RUN_LINTIAN configuration variable. See sbuild.conf(5) for  more
          information.

   --lintian-opt=options
          Pass the specified option directly to lintian in addition to the
          options already passed by sbuild.  This  option  can  be  passed
          multiple times (once per lintian option) and can be freely mixed
          with the --lintian-opts  option.   Options  will  be  passed  to
          lintian  in  the order that the --lintian-opt and --lintian-opts
          options are given on the command line.  This command line option
          appends  to  the  LINTIAN_OPTIONS  configuration  variable.  See
          sbuild.conf(5) for more information.

   --lintian-opts=options
          Pass the specified options directly to lintian  in  addition  to
          the options already passed by sbuild. The argument will be split
          by whitespaces and the resulting array  passed  to  the  lintian
          invocation. If any options contain spaces, use --lintian-opt for
          them.  This option can be  passed  multiple  times  and  can  be
          freely  mixed  with  the  --lintian-opts option. Options will be
          passed to lintian  in  the  order  that  the  --lintian-opt  and
          --lintian-opts  options  are  given  on  the command line.  This
          command line option appends to the LINTIAN_OPTIONS configuration
          variable. See sbuild.conf(5) for more information.

   --run-piuparts
          Run piuparts after a successful build.  This command line option
          sets the RUN_PIUPARTS configuration variable. See sbuild.conf(5)
          for more information.

   --no-run-piuparts
          Don't  run  piuparts  after  a  successful  build.  If sbuild is
          configured to run piuparts by default, this option will  prevent
          piuparts   being   run.   This  command  line  option  sets  the
          RUN_PIUPARTS configuration variable. See sbuild.conf(5) for more
          information.

   --piuparts-opt=options
          Pass  the  specified  option directly to piuparts in addition to
          the options already passed by sbuild. This option can be  passed
          multiple  times  (once  per  piuparts  option) and can be freely
          mixed with the --piuparts-opts option.  Options will  be  passed
          to   piuparts   in   the   order  that  the  --piuparts-opt  and
          --piuparts-opts options are given on the command line.   Certain
          percent  escapes are supported. To write a literal percent sign,
          escape it with another percent  sign.  See  the  section  OPTION
          STRING  PERCENT ESCAPES for more information.  This command line
          option appends to the PIUPARTS_OPTIONS  configuration  variable.
          See sbuild.conf(5) for more information.

   --piuparts-opts=options
          Pass  the  specified options directly to piuparts in addition to
          the options already passed by sbuild. The argument will be split
          by  whitespaces  and  the resulting array passed to the piuparts
          invocation. If any options contain  spaces,  use  --piuparts-opt
          for  them.   This option can be passed multiple times and can be
          freely mixed with the --piuparts-opts option.  Options  will  be
          passed  to  piuparts  in  the  order that the --piuparts-opt and
          --piuparts-opts options are given on the command line.   Certain
          percent  escapes are supported. To write a literal percent sign,
          escape it with another percent  sign.  See  the  section  OPTION
          STRING  PERCENT ESCAPES for more information.  This command line
          option appends to the PIUPARTS_OPTIONS  configuration  variable.
          See sbuild.conf(5) for more information.

   --piuparts-root-arg=options
          Add an argument that is used to launch piuparts as root. Without
          this option, the default is to use "sudo --" to launch piuparts.
          If  an  empty  string  is  supplied,  then  piuparts is launched
          without any prefixed command.   This  option  can  be  specified
          multiple  times.   This  command  line  option  appends  to  the
          PIUPARTS_ROOT_ARGS configuration  variable.  See  sbuild.conf(5)
          for more information.

   --piuparts-root-args=options
          Add arguments that are used to launch piuparts as root.  Without
          this option, the default is to use "sudo --" to launch piuparts.
          If  an  empty  string  is  supplied,  then  piuparts is launched
          without any prefixed command.  The argument  will  be  split  by
          whitespaces.  To  pass  options  containing  whitespaces use the
          option --piuparts-root-arg.  This command line option appends to
          the     PIUPARTS_ROOT_ARGS     configuration    variable.    See
          sbuild.conf(5) for more information.

   --run-autopkgtest
          Run autopkgtest after a successful  build.   This  command  line
          option  sets  the  RUN_AUTOPKGTEST  configuration  variable. See
          sbuild.conf(5) for more information.

   --no-run-autopkgtest
          Don't run autopkgtest after a successful build.   If  sbuild  is
          configured  to  run  autopkgtest  by  default,  this option will
          prevent autopkgtest being run.  This command  line  option  sets
          the  RUN_AUTOPKGTEST  configuration variable. See sbuild.conf(5)
          for more information.

   --autopkgtest-opt=options
          Pass the specified option directly to autopkgtest in addition to
          the  options already passed by sbuild. This option can be passed
          multiple times (once per autopkgtest option) and can  be  freely
          mixed  with  the  --autopkgtest-opts  option.   Options  will be
          passed to autopkgtest in the order  that  the  --autopkgtest-opt
          and  --autopkgtest-opts  options  are given on the command line.
          Certain percent  escapes  are  supported.  To  write  a  literal
          percent  sign,  escape  it  with  another  percent sign. See the
          section OPTION STRING  PERCENT  ESCAPES  for  more  information.
          This  command  line  option  appends  to the AUTOPKGTEST_OPTIONS
          configuration variable. See sbuild.conf(5) for more information.

   --autopkgtest-opts=options
          Pass the specified options directly to autopkgtest  in  addition
          to  the  options  already passed by sbuild. The argument will be
          split by whitespaces and  the  resulting  array  passed  to  the
          autopkgtest  invocation.  If  any  options  contain  spaces, use
          --autopkgtest-opt for them.  This option can be passed  multiple
          times  and  can  be  freely  mixed  with  the --autopkgtest-opts
          option. Options will be passed to autopkgtest in the order  that
          the  --autopkgtest-opt  and --autopkgtest-opts options are given
          on the command line.  Certain percent escapes are supported.  To
          write  a  literal  percent  sign, escape it with another percent
          sign. See the section OPTION STRING  PERCENT  ESCAPES  for  more
          information.    This   command   line   option  appends  to  the
          AUTOPKGTEST_OPTIONS configuration variable.  See  sbuild.conf(5)
          for more information.

   --autopkgtest-root-arg=options
          Add  an  argument  that  is  used to launch autopkgtest as root.
          Without this option, the default is to use "sudo --"  to  launch
          autopkgtest. If an empty string is supplied, then autopkgtest is
          launched without any  prefixed  command.   This  option  can  be
          specified  multiple  times.  This command line option appends to
          the   AUTOPKGTEST_ROOT_ARGS    configuration    variable.    See
          sbuild.conf(5) for more information.

   --autopkgtest-root-args=options
          Add  arguments  that  are  used  to  launch autopkgtest as root.
          Without this option, the default is to use "sudo --"  to  launch
          autopkgtest. If an empty string is supplied, then autopkgtest is
          launched without any prefixed command.   The  argument  will  be
          split by whitespaces. To pass options containing whitespaces use
          the option --autopkgtest-root-arg.   This  command  line  option
          appends to the AUTOPKGTEST_ROOT_ARGS configuration variable. See
          sbuild.conf(5) for more information.

   --pre-build-commands=string
          This is the earliest external command which is run  right  after
          the chroot session has been initialized and before anything else
          is done (like installing the build dependencies). The command is
          run  as  root  outside  of  the  chroot. This option can be used
          multiple times to add multiple commands. Certain percent escapes
          are  supported.  To write a literal percent sign, escape it with
          another percent sign. See the section EXTERNAL COMMANDS for more
          information.    This   command   line   option  appends  to  the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --chroot-setup-commands=string
          Run  these  commands  after  the  chroot and variables have been
          setup but before dependencies are installed. The command is  run
          as  root inside of the chroot.  This option can be used multiple
          times to add multiple  commands.  Certain  percent  escapes  are
          supported.  To  write  a  literal  percent  sign, escape it with
          another percent sign. See the section EXTERNAL COMMANDS for more
          information.    This   command   line   option  appends  to  the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --chroot-update-failed-commands=string
          Run  these  commands  after  any  of  'apt-get update', 'apt-get
          upgrade' or 'apt-get dist-upgrade' failed.  The  environment  is
          intact,   and   the  failure  can  be  investigated.  Especially
          %SBUILD_SHELL is useful here. This option can be  used  multiple
          times  to  add  multiple  commands.  Certain percent escapes are
          supported.  To write a literal  percent  sign,  escape  it  with
          another  percent sign.See the section EXTERNAL COMMANDS for more
          information.   This  command  line   option   appends   to   the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --build-deps-failed-commands=string
          These commands are run if installing the build dependencies  has
          failed  directly  after  the  failed attempt. The environment is
          intact,  and  the  failure  can  be  investigated.    Especially
          %SBUILD_SHELL  is useful here. The command is run as root inside
          the chroot. This option  can  be  used  multiple  times  to  add
          multiple  commands.  Certain  percent  escapes are supported. To
          write a literal percent sign, escape  it  with  another  percent
          sign.  See  the  section EXTERNAL COMMANDS for more information.
          This  command  line  option  appends  to  the  EXTERNAL_COMMENDS
          configuration variable. See sbuild.conf(5) for more information.

   --starting-build-commands=string
          Run these commands after dependencies are installed, just before
          the package build with dpkg-buildpackage starts. The command  is
          run  as  the  (non-root)  user running sbuild inside the chroot.
          This option can be used multiple times to add multiple commands.
          Certain  percent  escapes  are  supported.  To  write  a literal
          percent sign, escape it  with  another  percent  sign.  See  the
          section  EXTERNAL  COMMANDS  for more information.  This command
          line  option  appends  to  the  EXTERNAL_COMMENDS  configuration
          variable. See sbuild.conf(5) for more information.

   --finished-build-commands=string
          Run  these  commands  immediately  after the timed package build
          finishes.  The command is run as  the  (non-root)  user  running
          sbuild  inside  the  chroot.   This  option can be used multiple
          times to add multiple  commands.  Certain  percent  escapes  are
          supported.  To  write  a  literal  percent  sign, escape it with
          another percent sign. See the section EXTERNAL COMMANDS for more
          information.    This   command   line   option  appends  to  the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --build-failed-commands=string
          These  commands are run if dpkg-buildpackage has failed directly
          after the failed attempt. The environment  is  intact,  and  the
          failure can be investigated.  Especially %SBUILD_SHELL is useful
          here. The command is run as the (non-root) user running  %sbuild
          inside the chroot. This option can be used multiple times to add
          multiple commands. Certain percent  escapes  are  supported.  To
          write  a  literal  percent  sign, escape it with another percent
          sign. See the section EXTERNAL COMMANDS  for  more  information.
          This  command  line  option  appends  to  the  EXTERNAL_COMMENDS
          configuration variable. See sbuild.conf(5) for more information.

   --chroot-cleanup-commands=string
          Run these commands when a chroot is  cleaned  up,  before  build
          directory  is  purged.   The  command  is run as root inside the
          chroot. This option can be used multiple times to  add  multiple
          commands.  Certain  percent  escapes  are supported.  To write a
          literal percent sign, escape it with another percent  sign.  See
          the  section  EXTERNAL  COMMANDS  for  more  information.   This
          command   line   option   appends   to   the   EXTERNAL_COMMENDS
          configuration variable. See sbuild.conf(5) for more information.

   --post-build-commands=string
          Run this command after a successful build. The command is run as
          root outside of the chroot. This option  can  be  used  multiple
          times  to  add  multiple  commands.  Certain percent escapes are
          supported. To write a  literal  percent  sign,  escape  it  with
          another percent sign. See the section EXTERNAL COMMANDS for more
          information.   This  command  line   option   appends   to   the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --anything-failed-commands=string
          Run these commands for all  the  --xxx-failed-commands  options.
          Especially %SBUILD_SHELL is useful here. This option can be used
          multiple times to add multiple commands. Certain percent escapes
          are  supported.  To write a literal percent sign, escape it with
          another percent sign. See the section EXTERNAL COMMANDS for more
          information.    This   command   line   option  appends  to  the
          EXTERNAL_COMMENDS configuration variable. See sbuild.conf(5) for
          more information.

   --log-external-command-output
          Write  output  from  external  commands  to the build log.  This
          command  line  option   sets   the   LOG_EXTERNAL_COMMAND_OUTPUT
          configuration variable. See sbuild.conf(5) for more information.

   --log-external-command-error
          Write  error  output  from  external  commands to the build log.
          This command line  option  sets  the  LOG_EXTERNAL_COMMAND_ERROR
          configuration variable. See sbuild.conf(5) for more information.

   --setup-hook=hook-script DEPRECATED
          This  option  is  deprecated.  Use of this option will add hook-
          script  to  the  external  commands  to  run  via  chroot-setup-
          commands.  This command line option sets the CHROOT_SETUP_SCRIPT
          configuration variable  and  appends  to  the  EXTERNAL_COMMENDS
          configuration variable. See sbuild.conf(5) for more information.

   --build-dep-resolver=resolver
          Use  the  specified  resolver  to  handle  selecting  the  build
          dependencies.   Supported  resolvers  are  apt  (the   default),
          aptitude,  aspcud  and  xapt.   The  apt  resolver  is  the most
          appropriate resolver for most users, for building for  unstable,
          stable   and   other   distributions.    If   alternative  build
          dependencies are  used  (excluding  architecture  restrictions),
          only  the  first  alternative  will  be used; the others will be
          ignored.  The aptitude resolver is very similar, but smarter and
          slower,  and it will consider all alternatives by default; it is
          suited to more complex situations, such as building packages for
          the  experimental  distribution,  where packages need installing
          from  multiple  suites  (unstable  and  experimental).   Due  to
          performance  and  other  issues  (bug  #139615), aptitude is not
          recommended for use by default.  If the dependency situation  is
          so  complex  that  neither  apt  nor aptitude are able to find a
          solution, then you can use the aspcud resolver.   This  resolver
          uses  apt-cudf to ask aspcud, a real solver (in the math sense),
          to find a solution to the  installation  problem.  Since  aspcud
          uses  a  real  solver  (an  ASP  solver)  it  will always find a
          solution if  one  exists.  The  solution  found  by  the  aspcud
          resolver  can  be  refined  by changing the default optimization
          criteria  through  the  --aspcud-criteria  option.    The   xapt
          resolver is intended only for cross-building, and is a temporary
          transitional  feature  which  will  be  removed  following   the
          complete  introduction of multi-arch support.  This command line
          option sets the BUILD_DEP_RESOLVER configuration  variable.  See
          sbuild.conf(5) for more information.

   --aspcud-criteria=criteria
          Optimization  criteria  in  extended  MISC 2012 syntax passed to
          aspcud through apt-cudf.  Optimization criteria are separated by
          commas,  sorted by decreasing order of priority and are prefixed
          with a polarity (+ to maximize and - to minimize).  The  default
          criteria  is  -removed,-changed,-new  which  first minimizes the
          number of removed packages, then the number of changed  packages
          (up or downgrades) and then the number of new packages. A common
          task is to minimize the number of  packages  from  experimental.
          To  do  this  you  can  add a criteria like -count(solution,APT-
          Release:=/a=experimental/) to the default criteria.   This  will
          then  minimize  the  number  of  packages  in the solution which
          contain the string a=experimental in the  APT-Release  field  of
          the  EDSP  output  created by apt. For more help on how to write
          optimization   criteria,   see   the   apt-cudf(1)   man   page.
          Specifically  the  help  on the --criteria option.  This command
          line option sets the ASPCUD_CRITERIA configuration variable. See
          sbuild.conf(5) for more information.

   --resolve-alternatives
          Allow  the  use of alternatives in Build-Depends, Build-Depends-
          Arch and Build-Depends-Indep.   This  is  the  default  for  the
          aptitude dependency resolver.  This command line option sets the
          RESOLVE_ALTERNATIVES configuration variable. See  sbuild.conf(5)
          for more information.

   --no-resolve-alternatives
          Do  not  allow  the use of alternatives in Build-Depends, Build-
          Depends-Arch and Build-Depends-Indep.   Note  that  alternatives
          for  the  same  package  (e.g.  different  versions)  are  still
          allowed.  This is the default for the apt  and  xapt  dependency
          resolvers.      This    command    line    option    sets    the
          RESOLVE_ALTERNATIVES configuration variable. See  sbuild.conf(5)
          for more information.

   --extra-package=package.deb
          Make  package.deb  available for build-dependency resolution, by
          adding it to a temporary archive created by sbuild.  This  makes
          it   easier   to  build  packages  against  locally-built  build
          dependencies, without waiting for those packages  to  enter  the
          main archive, or going through the hassle of maintaining a local
          archive and making it accessible inside the chroot.  package.deb
          is  copied  into  the chroot, so it can refer to any path on the
          host  system.   This  command  line  option   appends   to   the
          EXTRA_PACKAGES  configuration  variable.  See sbuild.conf(5) for
          more information.

   --extra-repository=spec
          Add a repository to the list of apt sources during  the  package
          build.   The  repository specification is a line suitable for an
          apt  sources.list(5)  file.  For   instance,   you   might   use
          --extra-repository="deb       http://httpredir.debian.org/debian
          experimental  main"  to  allow  packages  in  the   experimental
          distribution  to fulfill build-dependencies. Note that the build
          chroot must already trust the key of this repository  or  a  key
          must  be  given  with  the --extra-repository-key flag (see apt-
          secure(8)).   This  command   line   option   appends   to   the
          EXTRA_REPOSITORIES  configuration  variable.  See sbuild.conf(5)
          for more information.

   --extra-repository-key=file.asc
          Add file.asc to the list of trusted keys inside the chroot.  The
          key  is  read  from the filename given, and added to the trusted
          keys. For more information, see  apt-secure(8).   This  flag  is
          particularly  useful  if the target in --extra-repository is not
          signed with a key that's  trusted  by  the  base  chroot.   This
          command   line   option  appends  to  the  EXTRA_REPOSITORY_KEYS
          configuration variable. See sbuild.conf(5) for more information.

   --build-path=string
          By default the package is built  in  a  path  of  the  following
          format    /build/packagename-XXXXXX/packagename-version/   where
          XXXXXX is a random ascii  string.  This  option  allows  one  to
          specify  a  custom  path  where  the package is built inside the
          chroot. Notice that the sbuild user  in  the  chroot  must  have
          permissions  to  create  the path. Common writable locations are
          subdirectories of /tmp or /build. The buildpath must be an empty
          directory because the last component of the path will be removed
          after the build is finished. If you are running multiple  sbuild
          instances  with  the  same  build  path in parallel for the same
          package, make sure that your build path is not  in  a  directory
          commonly  mounted  by all sbuild instances (like /tmp or /home).
          In that case, use for example /build  instead.  Otherwise,  your
          builds  will  probably  fail  or  contain  wrong  content.  This
          command line option sets the BUILD_PATH configuration  variable.
          See sbuild.conf(5) for more information.

   --adt-virt-server=schroot|lxc|chroot|qemu|ssh
          The  adt virtualization server. Can be specified with or without
          the adt-virt-  prefix.   For  instance,  the  following  set  of
          command line options will use the adt-virt-schroot backend for a
          package   build:   --chroot-mode=adt   --adt-virt-server=schroot
          --chroot  unstable-amd64-sbuild The value of the --chroot option
          will be passed as the last positional argument to the adt-virt-*
          invocation.  Thus,  the value of the --chroot option becomes the
          image name of the virtual machine in case of adt-virt-qemu,  the
          lxc-container  name  in  case  of  adt-virt-lxc, the path to the
          chroot in case of adt-virt-chroot, the name of  the  schroot  in
          case  of  adt-virt-schroot  and so on.  This command line option
          sets   the   ADT_VIRT_SERVER   configuration    variable.    See
          sbuild.conf(5) for more information.

   --adt-virt-server-opt=string
          Pass  the specified option directly to the respective adt-virt-*
          virtualization server in addition to the options already  passed
          by  sbuild.  This  option can be passed multiple times (once per
          adt-virt-* option) and can be freely mixed with the  --adt-virt-
          server-opts  option.   Options  will be passed to the respective
          adt-virt-* virtualization server in the order  that  the  --adt-
          virt-server-opt  and --adt-virt-server-opts options are given on
          the command line.  See the manual pages of the  respective  adt-
          virt-*  commands  for more information.  Certain percent escapes
          are supported. To write a literal percent sign, escape  it  with
          another  percent  sign.  See  the  section OPTION STRING PERCENT
          ESCAPES for more information.  This command line option  appends
          to   the  ADT_VIRT_SERVER_OPTIONS  configuration  variable.  See
          sbuild.conf(5) for more information.

   --adt-virt-server-opts=options
          Pass the specified options directly to the respective adt-virt-*
          virtualization  server in addition to the options already passed
          by sbuild. The argument will be split  by  whitespaces  and  the
          resulting  array  passed  to  the  adt-virt-* invocation. If any
          options contain  spaces,  use  --adt-virt-server-opt  for  them.
          This option can be passed multiple times and can be freely mixed
          with the --adt-virt-server-opts option. Options will  be  passed
          to  the respective adt-virt-* virtualization server in the order
          that  the   --adt-virt-server-opt   and   --adt-virt-server-opts
          options  are  given on the command line. See the manual pages of
          the  respective  adt-virt-*  commands  for   more   information.
          Certain  percent  escapes  are  supported.  To  write  a literal
          percent sign, escape it  with  another  percent  sign.  See  the
          section  OPTION  STRING  PERCENT  ESCAPES  for more information.
          This command line option appends to the  ADT_VIRT_SERVER_OPTIONS
          configuration variable. See sbuild.conf(5) for more information.

   --sbuild-mode=mode
          Behaviour changes for use in a buildd environment.  This command
          line option sets the  SBUILD_MODE  configuration  variable.  See
          sbuild.conf(5) for more information.

   -    stats-dir=directory
          Directory  for  writing  build statistics to.  This command line
          option  sets   the   STATS_DIR   configuration   variable.   See
          sbuild.conf(5) for more information.

BUILD ARTIFACTS

   Sbuild  is  meant  to  be  used  to  build architecture specific binary
   packages from a given source package. In addition, sbuild is also  able
   to  generate  architecture  independent  binary  packages as well as to
   rebuild the original source package that was used as input. In summary,
   sbuild   is  able  to  build  architecture  specific  binary  packages,
   architecture independent binary packages and source packages. What ends
   up   being   built   is   determined  by  the  configuration  variables
   BUILD_ARCH_ANY,  BUILD_ARCH_ALL  and  BUILD_SOURCE,  respectively.  See
   sbuild.conf(5)  for  a  detailed  explanation  of  these  configuration
   variables.

   By default, only BUILD_ARCH_ANY is set to true while BUILD_ARCH_ALL and
   BUILD_SOURCE are set to false. So by default only architecture specific
   binary packages will be built. This behaviour can be changed either  by
   using  command line options or by modifying the configuration variables
   in your ~/.sbuildrc. The relevant command line options  to  change  the
   values  of  BUILD_ARCH_ANY, BUILD_ARCH_ALL and BUILD_SOURCE are --arch-
   any/--no-arch-any, --arch-all/--no-arch-all  and  --source/--no-source,
   respectively.

   The  values  of  BUILD_ARCH_ANY, BUILD_ARCH_ALL and BUILD_SOURCE change
   the parameter that dpkg-buildpackage  is  called  with.  The  following
   table  displays  the  argument  passed to dpkg-buildpackage in the last
   column depending on  the  configuration  options  in  the  first  three
   columns.

   BUILD_ARCH_ANY   BUILD_ARCH_ALL   BUILD_SOURCE   dpkg-buildpackage flag
   
   false            false            false          invalid
   false            false            true           -S
   false            true             false          -A
   false            true             true           -g
   true             false            false          -B
   true             false            true           -G
   true             true             false          -b
   true             true             true           no option

EXTERNAL COMMANDS

   Support  to  run  external commands during an sbuild run is provided. A
   set of external commands can be run  at  various  stages  of  a  build.
   Providing commands to run is done through the appropriate options given
   on the command line and through the use of the configuration files.  In
   the  configuration  file,  the  list of commands to run are placed in a
   hash of arrays of arrays of strings corresponding to  the  commands  to
   run.

   There  are  several  sets of commands. The pre/post-build- commands are
   run external to the  chroot.  The  chroot-setup/cleanup-  commands  and
   Starting/Finished-Build-  commands  are run inside the chroot. They are
   all run as root except the  Starting/Finishing-build-  commands,  which
   are   run   as   the  current  sbuild  user.  chroot-update-failed  and
   build-deps-failed runs similarly to  chroot-setup:  in  the  chroot  as
   root.  build-failed  runs similarly to finished-build: in the chroot as
   the user.

   Here is a summary of the ordering, user,  internal/external  to  chroot
   for each command hook

   The following table shows each command hook in the context of the tasks
   sbuild performs. The column root shows whether the command  is  run  as
   root (yes) or not (no).  The column chroot shows whether the command is
   run inside our outside the chroot. The  working  directory  inside  the
   chroot  is the one marked with <<BUILDDIR>> inside the log. By default,
   this is a directory  of  the  format  /build/packagename-XXXXXX/  where
   XXXXXX is a random ascii string.  Otherwise, it is the directory set by
   --build-path or by the BUILD_PATH configuration  option.   The  working
   directory  outside  of  the chroot is $HOME. The remaining columns show
   the percent escapes that are defined in each command.  Percent  escapes
   that  are  available in all commands (%%, %a, %b, %s) are omitted.  The
   value maybe in the column for the %d and  %p  escapes  means  that  the
   value  can  not  relied  upon  to  be  defined  in  these stages.  More
   specifically, these escapes will not be defined at these points if  the
   user  specified  a source package name without a version on the command
   line. In that case, the version will only become known after the source
   package  has  been  retrieved  in the "Fetch and unpack source package"
   stage.

   command/action                         root   chroot    %c    %e    %d,%p
   
   Initialise chroot session
   --pre-build-commands                   yes    outside   no    yes   maybe
   Setup the chroot and variables
   --chroot-setup-commands                yes    inside    no    no    maybe
   Update and upgrade packages
   --chroot-update-failed-commands        yes    inside    no    no    maybe
   Fetch and unpack source package
   Install Dependencies
   --build-deps-failed-commands           yes    inside    no    no    yes
   --starting-build-commands              no     inside    no    no    yes
   Run dpkg-buildpackage
   --build-failed-commands                no     inside    no    no    yes
   --finished-build-commands              no     inside    no    no    yes
   Run lintian (if configured)
   Cleanup build files and dependencies
   --chroot-cleanup-commands              yes    inside    yes   no    yes
   Close schroot session
   Run piuparts (if configured)
   Run autopkgtest (if configured)
   --post-build-commands                  yes    outside   yes   yes   yes

   The commands can be given in the configuration files. They can be given
   as  strings  or  as  a list of arguments. For example, to run "foo" and
   "bar" with arguments  before  a  build  starts,  specifying  the  "foo"
   command as a list and "bar" as a string, one could do this:

   $external_commands = {
       "pre-build-commands" => [
           ['foo', 'arg1', 'arg2'],
           'bar arg1 arg2 arg3',
       ],
   };

   Hash  keys  for  commands  to run at other stages have the same name as
   their corresponding command-line  option  name  without  the  preceding
   '--'.

   Here's  an  example  of  how  to do the same with the previous example,
   except using the --pre-build-commands option.

   $ sbuild \
         --pre-build-commands='foo arg1 arg2' \
         --pre-build-commands='bar arg1 arg2 arg3'

   Note that  all  these  commands  are  executed  through  the  shell  in
   "/bin/sh". If specifying the command as a list in the config file, very
   few  shell  facilities  are  supported:  no  redirection,  no   command
   concatenation  with  ;  and so on. When passing a string (in the config
   file or on the commandline), the string is passed as-is to  the  shell.
   So all shell facilities are available, given that you escape everything
   properly, as you would in an interactive shell.

   Besides running external commands, sbuild can also detect  the  use  of
   certain percent escapes given as arguments. These are used to allow for
   a command to be supplied with  a  certain  argument  depending  on  the
   escape  given.   For  example, it could be possible to have an external
   command be given the path to a .changes file.

   Here is a listing of keywords and a description of what it's  converted
   to.

   %%     Used to escape a '%'.

   %d, %SBUILD_DSC
          These  escapes are converted to the absolute path to a package's
          .dsc file.

   %c, %SBUILD_CHANGES
          These escapes are converted to the absolute path to a  package's
          source .changes file. This is the .changes file generated by the
          dpkg-buildpackage invocation and not  the  source-only  .changes
          file that might've been produced additionally via --source-only-
          changes. This variable is only set after the build is  finished,
          i.e in --chroot-cleanup-commands and --post-build-commands.

   %a, %SBUILD_HOST_ARCH
          These   escapes   are  converted  to  the  debian  name  of  the
          architecture the build is being built for (e.g amd64, armhf).

   %e, %SBUILD_CHROOT_EXEC
          These escapes are converted to a command which can  be  executed
          on a host and can be given arguments which will then be executed
          inside the chroot. Standard input  and  output  of  the  process
          started  inside the chroot are connected to the program executed
          on the host. Thus, this command can also be used  to  copy  data
          into  the chroot and out of the chroot. The working directory of
          the process started inside the chroot is the root  directory  of
          the  chroot.  The  process  is  started  as the root user.  This
          variable is not set if the external command is  run  inside  the
          chroot.     Thus    this    escape   is   only   available   for
          --pre-build-commands and --post-build-commands.

   %b, %SBUILD_BUILD_DIR
          These escapes are converted to the absolute path  to  the  build
          directory inside the chroot.

   %p, %SBUILD_PKGBUILD_DIR
          These  escapes are converted to the absolute path to the package
          build directory inside the chroot.

   %s, %SBUILD_SHELL
          This is converted to a command to spawn  an  interactive  "bash"
          shell

   Percent  escapes  are  only  substituted  when  an appropriate value is
   defined for them. At other times, it is  left  unchanged.  In  practice
   this  means  that  there are only two escapes that are not available in
   all external commands: %c and %e. For example, a .changes file is  only
   defined at the end of a build, so using %c will only be substituted for
   post-build-commands.

   Here's an example of using an escape to run a program foo on a .changes
   file after a build is done.

   $ sbuild --post-build-commands \
         'foo %SBUILD_CHANGES'

   And  here's  an  example  that  will  spawn  an  interactive  shell  to
   investigate the problem whenever the build failed:

   $ sbuild --build-failed-commands '%SBUILD_SHELL'

   The following example would copy a file from the host into the chroot:

   $ sbuild --pre-build-commands \
         'cat blub.txt | %SBUILD_CHROOT_EXEC sh -c "cat > blub.txt"'

   One final note, external commands are processed in the order  they  are
   given.   Also, the commands given in a configuration file are processed
   first, then the commands given through the command line options.

OPTION STRING PERCENT ESCAPES

   Besides for external command strings, percent escapes can also be  used
   in  custom  options passed to piuparts, autopkgtest and the chosen adt-
   virt server.  This is for example useful for  communicating  the  right
   chroot backend to piuparts or autopkgtest depending on the distribution
   or architecture the source package was built for.

   Here is a listing of keywords and a description of what it's  converted
   to.

   %%     Used to escape a '%'.

   %a, %SBUILD_HOST_ARCH
          These   escapes   are  converted  to  the  debian  name  of  the
          architecture the build is being built for (e.g amd64, armhf).

   %r, %SBUILD_DISTRIBUTION
          The distribution that the source package was built for. This  is
          the  value  recorded in debian/changelog or the value passed via
          the --dist option.  Mnemonic: the  r  is  the  first  letter  in
          "release".

   Here  is  an  example  that  will  run  piuparts with the right schroot
   chroot:

   $ sbuild --run-piuparts \
         --piuparts-opts="--schroot=%r-%a-sbuild"

   Or an example of running autopkgtest with the right schroot chroot:

   $ sbuild --run-autopkgtest \
         --autopkgtest-opts="-- schroot %r-%a-sbuild"

   To achieve  the  same  effect  via  the  configuration  file,  add  the
   following:

   $piuparts_opts = [ '--schroot=%r-%a-sbuild' ];
   $autopkgtest_opts = [ '--', 'schroot', '%r-%a-sbuild' ];

LOCAL ARCHIVE

   The  apt  and  aptitude resolvers create a local archive for installing
   build dependencies.  This is an internal implementation detail  of  the
   build  dependency  resolver,  which  is  not  user configurable, and is
   intended to be entirely transparent to the  user.   The  local  archive
   exists  only transiently during the package build.  It does not persist
   across builds, and it is  only  used  to  store  the  dummy  dependency
   packages created for a single build.

   The dependency resolvers do the following:

   *      Create  a  dummy  dependency  package.  This contains the Build-
          Depends (and optionally  Build-Depends-Arch  and  Build-Depends-
          Indep)  as  Depends,  and Build-Conflicts (and optionally Build-
          Conflicts-Arch and Build-Conflicts-Indep) as Conflicts.

   *      Install the dummy dependency package into the local archive,

   *      Generate the Packages, Sources and Release files.

   *      Write  a  sources.list  file  for   the   local   archive   into
          /etc/apt/sources.list.d.

   *      Inject the lists directly into /var/lib/apt/lists.  This step is
          to save running updating all apt sources  which  is  undesirable
          during  a  build;  apt  and  aptitude  do not support updating a
          single source at present.

   *      Regenerate the apt caches to ensure everything is in sync.

   *      Install the dummy dependency package with apt or  aptitude;  the
          dummy  package  is  pulled from the local apt archive, while all
          its dependencies are pulled  from  the  regular  configured  apt
          sources.

   At  the  end of the build, the local archive is removed, along with the
   rest of the build tree.

EXAMPLES

   Before you use sbuild for the first time, you have  to  do  some  setup
   depending  on  the chroot backend you are using. The default backend is
   schroot. To use sbuild with the schroot backend, you need to  add  your
   user to the sbuild group and create a schroot chroot. The latter can be
   accomplished by using sbuild-createchroot(8). If the chroot contains  a
   Debian derivative with apt (<< 0.8.16~exp3), or a Debian release before
   Wheezy, then it is also required to create gpg key pairs using  sbuild-
   update  --keygen.  After this one time setup, you can now use sbuild to
   build packages like this:

   % sbuild -d unstable bash

   Or on a .dsc:

   % sbuild -d unstable bash.dsc

   Or from within an unpacked source package  (the  -d  parameter  is  not
   necessary    here   because   the   distribution   is   inferred   from
   debian/copyright):

   % sbuild

ENVIRONMENT VARIABLES

   The following environment variables are used by sbuild:

   HOME   The home directory of the user.

   LOGNAME
          Used in lockfiles.

   SBUILD_CONFIG
          Path to an additional configuration file on top  of  the  system
          wide and user specific ones.

FILES

   /etc/sbuild/sbuild.conf
          Configuration, maintained by the system administrator.  This may
          be used to override the defaults.

   /etc/sbuild/chroot
          Directory containing symbolic links to chroots.   This  is  only
          used  for  sudo  chroot  access; schroot access uses the schroot
          chroot configuration.

   ~/.sbuildrc
          User-specific configuration. A custom path  to  a  configuration
          file  can  also  be  specified through setting the SBUILD_CONFIG
          environment variable to the path of an additional  configuration
          file.

   /var/lib/sbuild
          Build  trees,  archive  signing  keys, build statistics and lock
          files.

AUTHORS

   Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>.

   sbuild is based on debbuild, written by James Troup  <james@nocrew.org>
   and has been modified by
   Ben Collins <bcollins@debian.org>,
   Ryan Murray <rmurray@debian.org>,
   Francesco Paolo Lovergine <frankie@debian.org>,
   Michael Banck <mbanck@debian.org>, and
   Roger Leigh <rleigh@debian.org>

COPYRIGHT

   Copyright  1998-2000 Roman Hodek <roman@hodek.net>
   Copyright  1998-1999 James Troup <troup@debian.org>
   Copyright  2003-2006 Ryan Murray <rmurray@debian.org>
   Copyright  2001-2003 Rick Younie <younie@debian.org>
   Copyright  2003-2004 Francesco Paolo Lovergine <frankie@debian.org>
   Copyright  2005      Michael Banck <mbanck@debian.org>
   Copyright  2005-2009 Roger Leigh <rleigh@debian.org>

SEE ALSO

   sbuild.conf(5),   sbuild-abort(1),   sbuild-adduser(8),  sbuild-apt(1),
   sbuild-checkpackages(1), sbuild-createchroot(8), sbuild-distupgrade(1),
   sbuild-hold(1),  sbuild-setup(7).   sbuild-shell(1),  sbuild-unhold(1),
   sbuild-update(1), sbuild-upgrade(1), schroot(1),





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.