| XDEB(1) | General Commands Manual | XDEB(1) |
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.
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.
-C,
--config-file file-a,
--architecture
architecturearchitecture.-b,
--build-directory
builddirbuilddirs.-d,
--dest-directory destdirdestdir.--apt-sourceapt_source.--prefer-apt--apt-source. Configuration file option:
prefer_apt.--only-explicit-f,
--force-rebuildxdeb relies on the version number in
debian/changelog to detect changes. Configuration
file option: force_rebuild.--debugdebug.--generate-graphgenerate-graph.--generate-compact-graphgenerate-compact-graph.--parallelparallel.--no-clean-after--no-lintianlintian (defaults to true).--sequencesequence.--list-buildslist_builds.--allall.-x,
--exclude package--all. It will only be built if required to
satisfy dependencies. Configuration file option:
exclude.--no-native-importxdeb 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.--convertxdeb. This silently ignores any packages that
cannot usefully be converted.--no-convert-installxdeb --convert
will install packages after converting them for use on the native
architecture. This option suppresses that behaviour.xdeb will also look
for xdeb.cfg in the directory alongside its own
executable, to support running from its own build directory.-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:
directorydebian_symlinkGenerally 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 ⟨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.
| October 15, 2009 | Linaro |