Provided by: xdeb_0.6.5_all bug


     xdeb — build a set of Debian packages


     xdeb [-C file] [-a architecture] [-b builddir] [-d destdir] [--apt-source] [--prefer-apt]
          [--only-explicit] [-f] [--debug] [--generate-graph] [--generate-compact-graph]
          [--no-clean-after] [--no-lintian] [--sequence] [--list-builds] [--all] [-x package]
          [--no-native-import] package [...]
     xdeb --convert [-C file] [-a architecture] [--no-convert-install] package.deb [...]


     Traditionally, Debian-format packages (as used in Debian, Ubuntu, and so on) have been built
     natively.  However it is often useful to be able to cross-build packages, and sometimes
     whole systems.

     xdeb provides this functionality in a convenient form by providing build-ordering, cross-
     dependency satisfaction, and cross-building all in one tool.

     xdeb takes a set of target package names or names of directories containing packages, and
     builds those packages for the specified architecture (or for the native architecture if
     unspecified), in an appropriate sequence.  As builds complete, it will install packages
     necessary to satisfy build-dependencies for subsequent stages.  When necessary, it will
     convert foreign-architecture binary packages to packages that can be installed safely on the
     native architecture without conflicts.  When cross-compiling, it checks to ensure that
     programs were not accidentally built to run on the build architecture, which is a common
     failure mode.

     xdeb fetches source code using apt-get(8).  It defaults to using the build-system APT
     configuration, so you should ensure that a repository containing packages of the target
     architecture is specified on the relevant machine/chroot.

     deb [arch=armel] maverick main universe
     deb-src maverick main universe

     Multiple repositories can be specified and APT pinning and release-default options used to
     provide preferred source repositories.  xdeb will respect APT policy.


     -C, --config-file file
           Read file as an additional configuration file.

     -a, --architecture architecture
           Build packages for architecture rather than for the native architecture.
           Configuration file option: architecture.

     -b, --build-directory builddir
           Build packages in builddir rather than in the current directory.  This option may be
           given multiple times; in that case, the first builddir will be used for packages
           fetched using apt-get and as the default destination directory, but otherwise all
           supplied directories will be scanned for packages and treated equivalently.
           Configuration file option: builddirs.

     -d, --dest-directory destdir
           Leave successfully built packages in destdir rather than in the first build directory.
           Configuration file option: destdir.

           Fetch source code using apt-get.  If this is not specified, then only packages in any
           builddir will be built, and only those packages will be used to expand dependencies
           for build sequencing.  Configuration file option: apt_source.

           Prefer source packages available using apt-get, even if an older version of the
           package is already available in the build directory.  This option implies
           --apt-source. Configuration file option: prefer_apt.

           Only build packages explicitly listed on the command line.  For all other packages,
           import native builds rather than attempting to cross-compile them.  This may produce
           less complete builds in some cases, but if the native repository is reasonably
           complete then it greatly reduces the number of builds that need to be run and it
           avoids many problems with build-dependency loops.

     -f, --force-rebuild
           Rebuild packages even if the source code appears to be unchanged.  xdeb relies on the
           version number in debian/changelog to detect changes.  Configuration file option:

           Emit extra messages useful for debugging build sequencing.  Configuration file option:

           Emit dot graph version of debug build dependency information.  See README-graph for
           further details.  Configuration file option: generate-graph.

           Emit dot graph version of debug build dependency information, but without the
           intermediate binary dependencies, in order to produce a more readable graph.  See
           README-graph for further details.  Configuration file option: generate-compact-graph.

           Use as many jobs as there are CPUs on the system.  Configuration file option:

           Do not clean each source tree after building.

           Do not run lintian(1) to check whether cross-compiled packages were built for the
           requested architecture.  This can speed up builds when you are sure that all packages
           are cross-safe, but is otherwise not recommended.  Configuration file option: lintian
           (defaults to true).

           Just show the build sequence, but don't actually build anything.  Only packages whose
           names are suffixed with ‘*’ will be built; the rest are listed for information only.
           Configuration file option: sequence.

           List all current successful builds for the selected architecture in the build
           directory.  Configuration file option: list_builds.

           Build all packages in the working tree.  Configuration file option: all.

     -x, --exclude package
           Exclude package from the list of packages computed by --all.  It will only be built if
           required to satisfy dependencies.  Configuration file option: exclude.

           Normally, xdeb will import native builds of certain packages rather than attempting to
           cross-build them.  This option disables that behaviour.  Use this when working on
           fixing cross-builds of the packages in question.

           Rather than building, convert a set of foreign-architecture binary packages to
           packages that can be installed safely on the native architecture without conflicts, as
           though they had just been built by xdeb.  This silently ignores any packages that
           cannot usefully be converted.

           Normally, xdeb --convert will install packages after converting them for use on the
           native architecture.  This option suppresses that behaviour.


           Site-wide configuration file.  xdeb will also look for xdeb.cfg in the directory
           alongside its own executable, to support running from its own build directory.

     .xdeb, xdeb.cfg
           Read from the current directory as a per-project configuration file.  You may supply
           additional configuration files using the -C option.


     The configuration file is a ConfigParser-format (a.k.a. "INI file") file.  Recognised
     sections are Lists and Options.  The Lists section lists specific packages that are
     exceptions from various built-in rules; see the supplied site-wide configuration file for
     examples.  The Options section may be used to provide defaults for any values not explicitly
     set on the command line.

     It is also possible to have a xdeb.cfg configuration file in a directory containing an
     individual package.  Such configuration files may include a Package section, with the
     following optional keys:

           Relative path to the directory that really contains the package's files.  This
           directory will need to contain a debian subdirectory in order to build properly (which
           may be created due to another option in this section).  This option is useful when
           package files are fetched from another repository, and some extra work is needed to
           put the debian subdirectory in place.

           Create debian as a symbolic link to the value of this option.


     Generally speaking, you can re-run xdeb on failures and it will start again with the last
     package it tried to build.  If the first builddir and destdir are the same, then xdeb will
     not notice that a package had not been successfully built in a previous run if it contained
     objects for the wrong architecture, or if it failed to run dpkg-cross or dpkg -i.  In this
     case, you may need to remove the .changes file for that package before trying again.  We
     recommend that destdir be set to a directory which is not a build directory.


     xdeb was originally written by Colin Watson <> for Chromium OS, and
     then renamed to xdeb for more general use.

     xdeb is copyright © 2009, 2010 The Chromium OS Authors, © 2010 Canonical Ltd.