Provided by: xdeb_0.6.6_all bug

NAME

     xdeb — build a set of Debian packages

SYNOPSIS

     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 [...]

DESCRIPTION

     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.

     e.g.
     deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports maverick main universe
     deb-src http://ports.ubuntu.com/ubuntu-ports 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.

OPTIONS

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

     --apt-source
           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-apt
           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-explicit
           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: force_rebuild.

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

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

     --generate-compact-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.

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

     --no-clean-after
           Do not clean each source tree after building.

     --no-lintian
           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).

     --sequence
           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-builds
           List all current successful builds for the selected architecture in the build directory.
           Configuration file option: list_builds.

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

     --no-native-import
           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.

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

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

FILES

     /etc/xdeb/xdeb.cfg
           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.

CONFIGURATION FILE

     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:

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

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

ADVICE ON OPERATION

     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.

AUTHORS

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

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