Emdebian is the Embedded Debian Project - an official subproject of Debian.
Emdebian now has a usable toolset [0], toolchains [1] and sufficient test packages [2] to build a usable root filesystem [3] that is configurable for different machines and machine variants [4]. Current support is aimed towards ARM but other architectures can be supported with sufficient developer interest. This has primarily been achieved with out-of-tree patchsets [5] and a common set of problems has appeared. In order to proceed, the number and complexity of patches needs to be reduced by incorporating cross-build-friendly changes into a variety of Debian packages and systems without affecting the Debian builds. This is an overview of the changes that Emdebian is seeking across Debian and I will send individual emails on each of these topics with more detail of each one. 1. Translation repositories separate from packages. 2. Consistent handling of the DEB_BUILD_OPTIONS nocheck, notest, nodocs 3. Beginning a long-term mass bug filing for crossbuild support. The changes sought by Emdebian are intended to support using Debian on embedded devices where storage space is far from cheap and involve running counter to the current Debian default of "install everything that works, every time, everywhere". Emdebian needs: "install the absolute minimum that will get a functioning system with full control over the subsequent installation of all files up to and including the entire GUI for this specific device and variant". Note that this may sound like a Gentoo approach but Emdebian is concerned with installing prebuilt customised binaries derived from Debian source packages, not building customised versions from upstream source every time. Prebuilt binaries allow Emdebian to harness the power of dpkg and apt as well as the wider QA support in Debian. Emdebian seeks to support all embedded devices, whether the OS is "hidden" from the user (as in routers etc.) or forms the entire UI (as in PDAs, smartphones etc.). One necessary precursor to these changes is that Emdebian does not respect "Essential" and does without perl. (Essential in Emdebian is defined as "whatever the device needs and nothing more". Via the machine and variant support in Emdebian, 'Essential' becomes a machine-specific "moving" target.) Also, to remove more wasted space, manpages, changelogs and other documentation is dropped completely. Therefore the changes and patch sets that are needed for Emdebian are not yet directly implementable within Debian but part of an ongoing process. The patch sets used by Emdebian contain elements that Debian can use as well as changes that will be reimplemented before being merged into Debian, subject to the results of these threads. The goal is to make enough Debian packages cross-build successfully that Emdebian no longer needs separate patch sets. Achieving this goal will involve more than one of this set of changes. Once complete, Debian will truly be the Universal Operating System - embedded, desktop and server. This email starts a series of threads that will identify and explore those components of an Emdebian system that can and should be implemented within Debian, picking apart the existing Emdebian patch sets and identifying how to merge the changes into Debian as a whole as well as Debian packages. Summary ======== Translations, locales and gconv ------------------------------- On a typical Gnome installation, /usr/share/locale/ can take up 250Mb or more (those who attended the Emdebian talk at DebConf7 will have heard how Emdebian currently handles this problem). [6] [7] [8] This interim method is unsustainable because it increases the number of binary packages tenfold which has unacceptable consequences for the dpkg and apt cache size if the translation packages are included into the main repository. This thread will seek a sustainable method that separates the translation files and all gconv and zoneinfo support into a dedicated structure, outside the normal $mirror/debian main archive layout, such that Debian can support installing all translations (as now), no translations (for Emdebian on a router etc.) and any permutation of translations, appropriate gconv support and any mix of zoneinfo support that would be appropriate for an embedded device like a PDA or smartphone etc. Such a system would also be ideal for allowing translators to upload translation updates without needing a package upload by the maintainer. See also #448018 Consistent handling of the DEB_BUILD_OPTIONS -------------------------------------------- nodocs, nocheck/notest need to be formalised and implemented across Debian in a standard, consistent manner that reproducibly supports the same changes to each package no matter what build system is used. Some agreement on what nocheck or notest means and which one to use. For Emdebian needs, whichever name is used, the imperative is that setting that DEB_BUILD_OPTION *must* completely prevent the execution of any compiled program within any test suite provided by upstream. The only checks or tests that can be implemented outside nocheck|notest must only use system binaries from coreutils, binutils-multiarch or one of the gcc binaries. Long-term mass bug filing for crossbuild support ------------------------------------------------ Emdebian has currently built 91 Debian source packages in the preparation of the basic root filesystem and other testing of the toolset. All of those have involved some level of patches to support cross-building with CDBS packages needing the least. This thread will discuss the type of changes that are needed, which packages are affected and how these bugs will be identified. =============================== [0] http://www.emdebian.org/tools.html [1] http://www.emdebian.org/crosstools.html [2] http://www.emdebian.org/packages/index.html [3] http://www.emdebian.org/emdebian/rootfs.html [4] http://www.emdebian.org/emdebian/machinevariants.html [5] http://buildd.emdebian.org/svn/browser/current/target/trunk/ [6] http://linux.codehelp.co.uk/emdebian/debconf7/htdocs/img9.html [7] http://linux.codehelp.co.uk/emdebian/debconf7/htdocs/img13.html [8] http://linux.codehelp.co.uk/emdebian/html/ch04.html -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
pgpx9hbdUkuBN.pgp
Description: PGP signature