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.

Linaro                                          October 15, 2009                                         XDEB(1)