emdebian logo
 

About Emdebian
 Emdebian & Debian
 Purpose
 Customisations
 Tdeb support

Cross toolchains
 Toolchain packages
 Toolchain Status

Packages
 Root Filesystem
 Build Tools
 Target packages
 Repository Key  Crossbuild bugs

Documentation
 Introductory Guide
 Emdebian Wiki
 Emdebian FAQ
 Packaging rules
 Packaging infrastructure
 Packaging guideline
 DebConf paper

Support
 Contact Us
 Mailing List Archives

Help Emdebian
 Developers' Info
 Subversion
 ToDo list

News

History
 Slind
 Stag
 Emdebsys

Links
 Emdebian Bootldr
 Emdebian Kernel
 Emdebian JTAG
 Scratchbox
 QEmu
 CELF

Valid HTML 4.01!

 
   

[ SVN source ] [ Emdebian presentation ] [ emdebian-tools manpages ] [ Emdebian dependency maps ] [ Debian package ]

emdebian-tools

The emdebian-tools source package supports a range of scripts for Emdebian.

Debian cross-building toolset

The emdebian-tools package is a collection of scripts to ease cross-building Debian packages for Emdebian, reducing package size, separating translations into individual files and handling dependencies. emdebian-tools depends on each of the other packages built from the main source package. The main building scripts include:

  • emsetup : Check your system for cross-build support and determine some defaults for other emdebian-tools scripts. Run this first, using the simulate option, to see what changes may be needed.
    • emchain : Toolchain builder for cross compiling. If a pre-built toolchain is not found or not available, emchain can build a custom toolchain for your needs using the current Debian version of gcc.
  • em_make : Emdebianise a Debian package. Creates suitable changelog entries, omits certain debhelper scripts from debian/rules and maintains a patchset for emdebian. Removes all documentation and udeb packages from debian/control.
  • emlocale has been replaced with em_installtdeb, based on debhelper, which neither needs nor generates patch files.

  • emdebuild : Emdebian version of debuild that handles cross-building the emdebianised tree. Requires a suitable cross-building toolchain to be installed for the requested architecture, e.g. gcc-4.1-arm-linux-gnu, available from the emdebian tools repository via emsetup or built for your particular configuration using emchain.
  • empdebuild : Emdebian version of pbuilder that handles cross-building in a chroot. Supports creating an emdebian chroot tarball including an Emdebian toolchain and chroot cross-building of emdebianised packages using emdebuild. Includes support for debian/xcontrol files to specify which Build-Cross-Depends packages to install with apt-cross.
  • em_autobuild : experimental autobuilder that tries to identify which source packages need to be built for a particular set of binary packages needed for your chosen root filesystem, attempts to track the dependencies of those binaries and then passes a list to emsource in an attempt to build all the relevant packages. If Emdebian patches fail to apply, em_autobuild logs the failure using embug.

Quality Assurance scripts

These scripts are included in the emdebian-tools binary package. Full details of how the scripts are used are available in the Emdebian Quality Assurance section.

  • embug : maintains a list of open cross-building bug reports in Debian via SOAP, keeps records of packages with problems but no bug yet filed, patches that are out of date and packages that are newer in Debian than in Emdebian.
  • emdebcheck : similar to the debcheck routines in Debian, except this is run before the upload is made.

    • emrecent : to assist when preparing cross-built packages for upload, emrecent presents a list of recently cross built Emdebian packages (within a configurable timeframe), displays the contents of the packages using debc from the devscripts package and runs emdebcheck on the .changes file. Also supports uploading TDeb changes.
  • emtargetcmp : Status tracker for Emdebian that checks each source package in Emdebian and compares the version against the current Debian Sid source package. Packages that are older in Emdebian than in Debian are logged using embug.
  • embuildstats : Simple summary script that checks your Emdebian working directory and presents a table showing which packages have been built, the number of patches required, when the package was built with emdebuild or empdebuild and when it was uploaded.
  • lintian support : to implement Emdebian Policy using lintian -ioC em.

emdebian-rootfs

Root filesystem and Installation tools

emdebian-rootfs is a separate package for users who only need to use binary packages from Emdebian, rather than build new ones or modify existing ones from Debian sources and Emdebian patches.

  • emsandbox : native chroot tool for Emdebian testing. emsandbox is a wrapper for debootstrap to prepare an Emdebian root filesystem, using Emdebian packages and a native chroot via 'debootstrap --foreign' and code from pbuilder. The native chroot is intended to support testing of a rootfs and package installability.
  • emdebian-rootfs also includes three "suite scripts" that are used with debootstrap to prepare the root filesystems. The suite scripts extend the package set of the minimal root filesystem to include a basic Gtk+ environment and then again to include a full GNOME Palmtop Environment.

Installation Changes

emdebian-tools makes two changes to the apt configuration of your Debian installation to cross-build successfully. The first is to allow apt to use the Emdebian toolchain repository, the second is to ensure that apt can provide useful cross-building information to emdebian-tools during cross-build operations by ensuring that you have at least one apt source that is a primary Debian mirror. These changes are reverted if the emdebian-tools package is purged.

For these reasons, it is important to update your apt or aptitude cache data after installing emdebian-tools and then upgrade your installation. Interim bug fix releases of emdebian-tools are made to the Emdebian repository and updates are available alongside the toolchains.

$ sudo apt-get update
$ sudo apt-get upgrade

Note that the dependencies of emdebian-tools will continue to change as the toolset develops so sometimes you will need to add new packages and it can be better to use:

$ sudo apt-get update
$ sudo apt-get dist-upgrade

Colour

emdebian-tools support colourised output to supporting terminals using Text::ANSIColor. This can be disabled by setting the environment variable ANSI_COLORS_DISABLED. In general, colour is used when the scripts are called in verbose mode or when performing actions that may be unfamiliar to new users of the package. Blue indicates a general status message from the script itself. Green indicates that the script has modified a file or performed an action that modifies data external to the current process - e.g. adding a file to Emdebian SVN. Red indicates errors. Programs and scripts called by emdebian-tools are left to output their own colours or simply output to the terminal default. Colours are implemented via escape sequences and do not affect copying textual output from the terminal into other applications.

Roadmap

Future changes in emdebian-tools

Three main areas of change: converting emlocale into a full implementation of tdebs, converting emdebuild to full support of debian/xcontrol using the debian-xcontrol package and completing autobuilder support with a version of sbuild.

  1. emlocale -> em_installtdeb

    Problems with emlocale:

    • Too many patch files - three, sometimes four, patches are generated for each translation package as well as a large patch for debian/control. This method works but is not transferable into Debian.
    • Downloading packages - initially, emlocale tried to cover all bases by checking for translations in packages downloaded with apt-cross. It became clear that the Debian packages did not represent the full translation status of the source packages - some sources contain translations that are not listed in the LINGUAS variable used by gettext, so emlocale started checking the po/ directory directly. This tends to restrict tdeb support to gettext only but the majority of the existing translation support in Debian is based on gettext anyway.

    A replacement em_installtdeb is being developed to simplify the process so that tdebs can be generated without patches. In combination with the rest of the tdeb support in Emdebian repositories and the langupdate tool, this is intended to provide a working tdeb implementation for embedded devices that should be workable within Debian itself.

  2. emdebuild and debian/xcontrol - emdebuild has basic support for debian/xcontrol but this will be extended to full support for the debian-xcontrol package.
  3. autobuilder support - wanna-build uses sbuild which has a few assumptions that need tweaking for Emdebian (none of which should be a particular surprise but which need to be supported anyway):
    • sbuild expects to get packages from incoming.debian.org in a ready state to build. Instead, the emdebian version will need to get the package from a normal Debian mirror along with the patches from Emdebian SVN which will eventually be merged into the packages themselves.
    • The toolchain - instead of the native chroot, the Emdebian auto-builder needs a cross building toolchain.
    • Cross dependencies - detected using the debian/xcontrol support and installed with apt-cross.

See the emdebian contact page for information on contacting us.

Last Modified: Tue, May 6 02:00:30 UTC 2008
Copyright © 2000-2008 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.