|
|
[ 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.
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.
- 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.
- emdebuild and debian/xcontrol - emdebuild has basic
support for debian/xcontrol but this will be extended to full support for the
debian-xcontrol
package.
- 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.
|