empdebuild

Langue: en

Version: Sun 11 Jan 2009 19:55:45 GMT (debian - 07/07/09)

Section: 1 (Commandes utilisateur)

NAME

empdebuild - chroot tool for Emdebian cross compiling

SYNOPSIS

empdebuild [[-a] | [--arch] ARCHITECTURE] [[--testing]] [[--login-after-fail]] [[--build] | [build]]
empdebuild [[-a] | [--arch] ARCHITECTURE] [[--testing]] [[--create] | [create]]
empdebuild [[-a] | [--arch] ARCHITECTURE] [[--testing]] [[--save-after-login]] [[--login] | [login]]
empdebuild [[-a] | [--arch] ARCHITECTURE] [[--testing]] [[--update] | [update]]
empdebuild [[-a] | [--arch] ARCHITECTURE] [[--login-after-fail]] [[--autobuild] | [autobuild]]
empdebuild [[-a] | [--arch] ARCHITECTURE] [[--clean] | [clean]]

DESCRIPTION

Note that empdebuild does not support all the options available to pbuilder.

empdebuild is an Emdebian version of pdebuild, building Emdebian packages in a chroot using code from pbuilder. The Emdebian chroot includes the cross-building toolchain from Emdebian for the requested architecture and includes support for installing cross versions of package dependencies via apt-cross with all the advantages of a chroot - identification of missing dependencies and the ability to build packages without installing the dependencies on the main system, e.g. to support a buildd.


empdebuild is a build chroot

empdebuild creates a chroot for the same architecture as the system running empdebuild and then installs a cross-building toolchain from Emdebian using the dpkg-cross default architecture or the specified architecture. This has some important results:
1. The chroot is a Debian system running emdebian-tools and is equivalent to a typical installation of emdebian-tools after emsetup has been completed successfully. This includes installing perl and debconf inside the chroot.
2. A suitable Emdebian toolchain will be installed in the chroot.
3. The same cache files are needed inside the chroot as would be needed on the main system - cross-built binaries cannot be run within the the chroot. All the normal emdebian patch files will be needed.
4. This is a full build system with native and cross compilers, development packages, autotools and subversion. It is NOT suitable for installation on any device. Use emsandbox instead.
5. The chroot disables the installation of recommended packages by apt using the Install-Recommends "false" option.

Use emsandbox to create cross chroots (where the chroot is built for a different architecture to the system running the chroot), e.g. to prepare a rootfs for installation on an arm device using emdebian-tools installed on i386, amd64 etc. See emsandbox (1).

COMMANDS

Options for dpkg-buildpackage can be given after the -- option. The default options are -uc -us which cannot be overridden. Also certain commands do not make sense in this context, e.g. -a for architecture will be silently dropped.

--build|build

(to provide) similar functionality to pdebuild for Emdebian - copies the source into the chroot and runs a build using emdebuild.
Use --login-after-fail to debug a failed build. If emdebuild fails inside the chroot, empdebuild will then open a shell at the point of failure, allowing you to debug the build session with the active data.

--create|create

Runs debootstrap with a modified suite rule set to create a basic Emdebian environment, including emdebian-tools and an Emdebian toolchain for the default or specified architecture.
Checks for an existing chroot and exits if one is found - either use --update or move the old chroot out of the way.
If --create fails after debootstrap has completed, --update should be able to recover and create the necessary tarball.

--login|login

Login to the chroot. Unless --save-after-login is used, changes made within the chroot will be lost.
When setting up any chroot, debconf is set to use the default values and this leads to dpkg-cross being set to None as the default cross building architecture. When logged into the chroot, always specify the --arch option to apt-cross and all emdebian-tools scripts.

--update|update

Updates the Emdebian environment, including emdebian-tools and an Emdebian toolchain for the default or specified architecture. Depending on the status of gcc-?.? in Debian, there can be problems updating the cross building toolchain at this stage. If you get reports of broken packages or toolchain packages that fail to install, allow the update to continue as normal, then login to the chroot with the --save-after-login option. If the problem relates to a package named $PACKAGE-$ARCH-cross not $PACKAGE-$ARCHTYPE ($ARCHTYPE for arm = arm-linux-gnu), this package is handled by dpkg-cross and apt-cross. Use apt-cross -a $ARCH -v -i $PACKAGE (omit the -$ARCH-cross suffix) to update such packages ahead of the Emdebian repository. Use apt-get dist-upgrade and emsetup -a $ARCH --yes to complete the upgrade. Type 'exit' or use 'Ctrl-D' to exit from the chroot and the updated packages will be saved alongside the updated chroot.

--clean|clean

Uses pbuilder functions to clean the chroot build place, removing any previous build environments. In some situations, a stale build environment may still contain active mounts for proc or dev/pts and these will result in Device or resource busy errors. To umount the relevant points, look for your Emdebian working directory being listed in the output of mount and pass that directory name to:
 $ sudo umount PATH
           
 

Once umounted, either remove the files manually or run sudo empdebuild --clean again.

OPTIONS

-a|--arch ARCHITECTURE

Override the dpkg-cross default architecture for this operation on the chroot. The Emdebian toolchain in the chroot will be upgraded (or installed if the chroot contains a toolchain for a different architecture).

--testing

Create, update, login or build a package within a chroot based on Debian testing, not Debian unstable. This is a fallback option for the times when Debian unstable transitions make it impossible to install a cross-building toolchain or update the existing toolchain.

--save-after-login

Login to the chroot and allow changes made within the chroot to persist into subsequent sessions. Only supported in conjunction with login|--login.

--login-after-fail

Login to the chroot if emdebuild fails within the chroot, at the point where the build failed. Chroot cross builds can involve a protracted setup phase which can be hard to replicate outside the chroot. Use this option to find out why a chroot build failed when a normal build succeeded. Only supported in conjunction with build|--build.

-h|--help

print the usage message and exit.

--version

print the usage message and exit.

AUTHOR

empdebuild was written by Neil Williams codehelp@debian.org.

This manual page was written by Neil Williams codehelp@debian.org

SEE ALSO

See also apt-cross (1), em_make (1), dpkg-cross (1), emdebian-tools (1), emsandbox (1).

AUTHOR

Emdebian

Neil Williams

Debian and Emdebian developer.