Differences between revisions 50 and 51
Revision 50 as of 2007-09-26 18:00:40
Size: 6149
Editor: FranklinPiat
Comment: merge "dpkg-cross" and "Scratchbox" pages here. clarify dev/people terms.
Revision 51 as of 2007-12-07 22:19:57
Size: 6391
Editor: ?SivanGreenberg
Comment: adding clarification
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Adapted Debian tools so you can build/cross-compile Debian packages or
adapted packages with info on how to cross-build and build smaller packages.
'''''In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets.'''''

We adapt Debian tools so you can build/cross-compile Debian packages or adapted packages with info on how to cross-build and build smaller packages.
Line 10: Line 11:
Line 16: Line 16:
Line 20: Line 19:
Line 24: Line 22:

["
EmdebianQuickStart"]
EmdebianQuickStart
Line 28: Line 25:

["
CategoryEmdebian"]
CategoryEmdebian
Line 35: Line 31:
 * [:DebianRobot:Robot] .  * DebianRobot .
Line 37: Line 33:
Line 41: Line 36:
Line 44: Line 38:
[:Embedded_Debian_packaging_infrastructure:Embedded Debian Packaging Infrastructure] explains how the Emdebian repositories are organised, where the repositories are located and how to setup your system for emdebian uploads. [:Embedded Debian packaging infrastructure:Embedded Debian Packaging Infrastructure] explains how the Emdebian repositories are organised, where the repositories are located and how to setup your system for emdebian uploads.
Line 46: Line 40:
[:Embedded_Debian_packaging_rules:Emdebian packaging rules] details how emdebian packages should be built and organised. [:Embedded Debian packaging rules:Emdebian packaging rules] details how emdebian packages should be built and organised.
Line 49: Line 43:
Line 52: Line 45:
 * Emdebianising more packages so that they 
  a. do not install unnecessary things (docs, examples, multiple translations)
   a. cross-build correctly
   a. split packages where the default has too many dependencies
 * Emdebianising more packages so that they
  a. do not install unnecessary things (docs, examples, multiple translations)
  a. cross-build correctly
  a. split packages where the default has too many dependencies
Line 57: Line 50:
  * Speed up boot time
   * Reduce dependencies
   * Differentiate between install time and run-time dependencies
   * Differentiate between build and target build-dependencies
  * Shrink minimum rootfs sizes    * Busybox-based rootfs as well as GNU-based EmdebianRootfs
    * Dash instead of bash
    * Remove perl from essential
  * Speed up boot time
  * Reduce dependencies
  * Differentiate between install time and run-time dependencies
  * Differentiate between build and target build-dependencies
  * Shrink minimum rootfs sizes
* Busybox-based rootfs as well as GNU-based EmdebianRootfs
   * Dash instead of bash
   * Remove perl from essential
Line 66: Line 59:
  * Support changes due to above policy
  * Push changes back into Debian as much as possible (e.g faster boot)
  * Support changes due to above policy
  * Push changes back into Debian as much as possible (e.g faster boot)
Line 69: Line 62:
  * Completing auto-build mechansism that will keep emdebian cross-toolchains uptodate with debian toolchain versions
  * Incorporate full 3-stage bootstrap changes from slind
   * Auto-build emdebian packages, tracking debian versions and including support for developers to track packages which have build failures
  * Completing auto-build mechansism that will keep emdebian cross-toolchains uptodate with debian toolchain versions
  * Incorporate full 3-stage bootstrap changes from slind
  * Auto-build emdebian packages, tracking debian versions and including support for developers to track packages which have build failures
Line 73: Line 66:
  * Making Emdebian systems
  * Emdebianising new packages
   * The infrastructure 
  * Developed Policy 
  * Making Emdebian systems
  * Emdebianising new packages
  * The infrastructure
  * Developed Policy
Line 82: Line 75:
Line 87: Line 79:
Integrate ["uclibc"] in the story. This will definitely give some size boost
toward smaller footprint to the packages.
Integrate ["uclibc"] in the story. This will definitely give some size boost toward smaller footprint to the packages.
Line 90: Line 81:
Once we have proven that this works start pushing things into Debian
proper.
Once we have proven that this works start pushing things into Debian proper.
Line 94: Line 84:
Line 96: Line 87:
Line 100: Line 90:
Line 104: Line 93:
Line 108: Line 96:
==== 2006 ====
May 14th - May 21st, in Mexico. DebConf6EmdebianStuff
Line 109: Line 99:
==== 2006 ====
May 14th - May 21st, in Mexico.
DebConf6EmdebianStuff
April 12-16th, in Extremadura, Spain. DebianEmbeddedWorkSessionExtremadura2006
Line 113: Line 101:
April 12-16th, in Extremadura, Spain.
DebianEmbeddedWorkSessionExtremadura2006
February 25&26th, in Brussels, Belgium. [http://wiki.debian.org/EmDebian/Fosdem2006 Fosdem2006]
Line 116: Line 103:
February 25&26th, in Brussels, Belgium.
[http://wiki.debian.org/EmDebian/Fosdem2006 Fosdem2006]

October 25&26th, in London, UK.
[http://www.linuxworldexpo.co.uk/ London Linux World Expo]
October 25&26th, in London, UK. [http://www.linuxworldexpo.co.uk/ London Linux World Expo]
Line 123: Line 106:
February 24&25th, in Brussels, Belgium.
[http://www.fosdem.org Fosdem2007]
February 24&25th, in Brussels, Belgium. [http://www.fosdem.org Fosdem2007]
Line 126: Line 108:
June 17-23rd, in Edinburgh, Scotland.
[https://debconf7.debconf.org/wiki/Main_Page DebConf7]
June 17-23rd, in Edinburgh, Scotland. [https://debconf7.debconf.org/wiki/Main_Page DebConf7]
Line 134: Line 115:
CategoryEmdebian  . CategoryEmdebian

In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets.

We adapt Debian tools so you can build/cross-compile Debian packages or adapted packages with info on how to cross-build and build smaller packages.

Emdebian is experimenting with different approaches to cross-building and small-system-friendly packages in order to produce sustainable and robust long-term solutions. For cross-building there are two main approaches: [http://www.scratchbox.org/ Scratchbox] ([wiki:scratchbox2 pkg]), which allows cross-builds to appear to be native to the apps being built, and dpkg-cross ([wiki:dpkg-cross pkg]) which allows conventional cross-builds to occur in a Debian-compatible way. EmdebianSlind is a distribution built using dpkg-cross, and now we have emdebian-tools to build modified debian packages.

For package meta-data making packages more suitable for shrinking, two approaches are currently being investigated. The STAG approach uses a $(DEBIAN_DIR) directory to overlay changed info from the /debian directory, and is used by STAGE. The udeb approach of Debian-installer gives a tighter integration with Debian, with embedded packages having changed names so they can exist in the debian package namespace. Both mechanisms have pros and cons which are discussed in EmdebianMetaData.

Project Website

http://www.emdebian.org/

August 17th 2006: The server has moved to a new machine in Europe instead of the US.

Wiki SiteMap

[:EmdebianWebLayout:Emdebian Web Layout]

Frequently Asked Questions (FAQ)

["EmbeddedDebianFAQ"]

Quick Start Guide

EmdebianQuickStart

Wiki pages in continuous devel

CategoryEmdebian

Hardware

Cross Toolchains

Emdebian builds [:EmdebianToolchain:cross-toolchains] for use on standard Debian development machines. [http://www.emdebian.org/crosstools.html Repository details]. [:EtchCrossToolchains:Toolchains for Etch].

Documentation

EmdebianPackagingGuidelines is a document explaining to package maintainers the sorts of things they should be aware of in their packaging to make their packages 'Embedded-friendly'. This includes cross-building and small-system-building.

[:Embedded Debian packaging infrastructure:Embedded Debian Packaging Infrastructure] explains how the Emdebian repositories are organised, where the repositories are located and how to setup your system for emdebian uploads.

[:Embedded Debian packaging rules:Emdebian packaging rules] details how emdebian packages should be built and organised.

TODO

Things that need doing are:

  • Emdebianising more packages so that they
    1. do not install unnecessary things (docs, examples, multiple translations)
    2. cross-build correctly
    3. split packages where the default has too many dependencies
  • Work on Emdebian policy and actual packages to:
    • Speed up boot time
    • Reduce dependencies
    • Differentiate between install time and run-time dependencies
    • Differentiate between build and target build-dependencies
    • Shrink minimum rootfs sizes
      • Busybox-based rootfs as well as GNU-based EmdebianRootfs

      • Dash instead of bash
      • Remove perl from essential
  • Work on Debian and emdebian tools to:
    • Support changes due to above policy
    • Push changes back into Debian as much as possible (e.g faster boot)
  • Infrastructure Work:
    • Completing auto-build mechansism that will keep emdebian cross-toolchains uptodate with debian toolchain versions
    • Incorporate full 3-stage bootstrap changes from slind
    • Auto-build emdebian packages, tracking debian versions and including support for developers to track packages which have build failures
  • Document:
    • Making Emdebian systems
    • Emdebianising new packages
    • The infrastructure
    • Developed Policy
  • create configurations for various devices and document howto do it
  • promote DEB_BUILD_OPTIONS=nodocs flag for not building docs
  • promote DEB_BUILD_OPTIONS=notest for skipping tests
  • co-operate with i386-uclibc team and embedded arch porters
  • Kill scratchbox in its current form and make a better scratchbox2

Set-up a buildd inside scratchbox

Document setting up the buildd so developers and non-developers can try it out for themselves.

Integrate ["uclibc"] in the story. This will definitely give some size boost toward smaller footprint to the packages.

Once we have proven that this works start pushing things into Debian proper.

Optional :

  • Make sure everything works with the successors of scratchbox
  • Check the ARM build of Ubuntu

See also: EmDebian/DeBootstrap and EmDebian/CrossDebootstrap .

Wacky Ideas

There are also a few ideas that may need to be investigated further to decide whether it is a good idea to make them a new TODO item. These are collected on the EmdebianWackyIdeas page.

Donations / Donors

[:EmdebianDonations:Emdebian Donations and Donors]

Meetings, Conferences, Work Sessions

2006

May 14th - May 21st, in Mexico. DebConf6EmdebianStuff

April 12-16th, in Extremadura, Spain. DebianEmbeddedWorkSessionExtremadura2006

February 25&26th, in Brussels, Belgium. [http://wiki.debian.org/EmDebian/Fosdem2006 Fosdem2006]

October 25&26th, in London, UK. [http://www.linuxworldexpo.co.uk/ London Linux World Expo]

2007

February 24&25th, in Brussels, Belgium. [http://www.fosdem.org Fosdem2007]

June 17-23rd, in Edinburgh, Scotland. [https://debconf7.debconf.org/wiki/Main_Page DebConf7]