emdebian logo
 

About Emdebian
 Emdebian & Debian
 Purpose
 Customisations
 Flavours
 Extending Emdebian
 Localisation support
 Emdebian Tdebs

Cross toolchains
 Toolchain packages

Emdebian Crush
 Packages
 Build Tools
 Repository Key
 Installation Guide

Emdebian Grip
 Packages
 Repository Key
 Update logs
 Installation Guide

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!

 
   

[ Installing toolchains ] [ Cross building ] [ Root filesystem ]


Emdebian Howto (continued)

another idea for debian devel. Migrate Essential:yes out of the packages and into /etc/

Mixing Emdebian and Debian

The future of the Emdebian root filesystem is to support a complete Emdebian distribution of cross-built packages. Yet Emdebian also aims to support mixing Emdebian and Debian packages from the standard 'arm' port. A number of issues (and solutions) are involved in such mixes:

  • Dependencies will differ. Emdebian packages are likely to be built with optional upstream components disabled. Other components may be split into new packages so that users have a choice of installing 'libfoo-xml' as well as 'libfoo-sqlite' etc. where such upstream support exists. Debian generally enables every upstream option that can be made to work and only splits packages where there is a benefit to be achieved within the repositories. Emdebian needs to separate each upstream option into dedicated packages as well as making further package splits without explicit upstream support. These problems will tend to show up as Debian packages simply 'not working' because the Debian package assumes that the 'foo' package contains 'bar' when Emdebian has 'bar' in the 'foobar' package instead. Although virtual packages and meta packages could be used here, the best solution is to try to provide a cross-build of the relevant package(s) that are modified to use the Emdebian dependency tree. Dependencies remain the single most likely reason to need to cross-build a Debian package for Emdebian.

    Example : busybox vs coreutils

    Emdebian makes changes to the packages classed as "Essential" in Debian - including allowing busybox to be used in place of the usual Debian base packages, like coreutils. dpkg automatically prefers a package tagged "Essential" in debian/control, even if another package provides the same package name so when busybox provides coreutils, other packages install successfully but apt complains and offers to remove busybox and install coreutils. To allow busybox to remain, the Emdebian build of coreutils is no longer classed as "Essential" - in many ways, the concept of "Essential" no longer exists in Emdebian - but a mixed Debian/Emdebian system could offer to remove busybox and install coreutils (amongst other dependencies) because the Debian package will remain "Essential" at least for the time being. Similarly, dpkg itself is no longer marked as "Essential" in Emdebian.

  • dpkg filtering. Debian packages must include certain files that Emdebian does not require - debian/copyright, ChangeLog and other files as well as man pages, info pages and other documentation. Filters created by the Emdebian installation process can remove these files from the installation but the downloaded .deb package remains the same size as in Debian. Where download bandwidth is limited, the smaller Emdebian cross-built packages will be more useful. In time, it is hoped that Emdebian can use filtering when building the cross-built .deb package in the same manner as filtering upon installation as this will make it a lot easier to prepare Emdebian patches that can be applied within Debian.

  • Transitions. Until such time as Emdebian has a fast method of autobuilding cross-built packages, it is strongly recommended that users who mix Emdebian packages with Debian packages track Debian testing and not unstable. The frequent transitions in Debian unstable will only aggravate the dependency problems inherent in a mixed system. This becomes even more important immediately after a Debian release when it is common for a lot of transitions that were held back for the release are uploaded to unstable at more or less the same time. When such transitions involve toolchain packages like gcc or glibc the Emdebian cross-built packages can be delayed significantly.

  • Translations. Emdebian handles translations in a similar manner to OpenEmbedded - one package generated per translation. Whilst this is acceptable with the small number of packages currently maintained, it is already proving difficult to maintain and is not scalable. A wider discussion is needed within Debian about how to manage translations from a variety of perspectives; seeking to make it easier to update translations without requiring package rebuilds, separating translations into "sub-repositories" to avoid bloating the archive and how to manage the resulting package mix. Emdebian will adapt to the Debian method in due course. In the meantime, the current behaviour can sometimes complicate autobuilds of Emdebian packages and cause delays. The principle problem is identifying the translations within the source package. po/ is not always present, some packages contain more than one set of translations, some packages include translation files in tarballs within the source. The current method of downloading the actual Debian binaries and checking them for translation files is reliable but slow.


[ Installing toolchains ] [ Cross building ] [ Root filesystem ]


See the emdebian contact page for information on contacting us.

Last Modified: Wed, Sep 10 02:31:14 UTC 2008
Copyright © 2000-2008 The Embedded Debian Project;
Emdebian is an offical subproject of Debian.