Summary: To get emdebian to the point when it builds useful root filesystems
- 'A bit of everything'
- Understanding of Debian packaging, build systems, repositories
- Knowledge of small system constraints
- Perl or other scripting language (existing tools are perl or shell)
- Ability to get patches accepted upstream
This project has quite wide scope for the applicant as there are numerous area of work on which they could concentrate. Emdebian currently has working cross-toolchains and build tools to implement our build, patch and naming mechanisms. It also has a few emdebianised target packages. However all of these areas need work, especially the target packages.
Things that need doing are:
- Emdebianising more packages so that they
- do not install unnecessary things (docs, examples, multiple translations)
- cross-build correctly
- 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
- Dash instead of bash
- Remove perl from essential
- Work on Debian and emdebian tools to:
- Support changes due to above policy
- Make it easy to build and cross-build emdebian packages and support local patches
- 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
- Making Emdebian systems
- Emdebianising new packages
- The infrastructure
- Developed Policy
As you can see there is plenty to do, covering a wide range of expertise - buildd setup, policy development, pushing far-reaching tool-changes upstream, fighting autoconf and documentation. Applicants could (and probably should) choose to work on a selection of these tasks that interest them and make a manageable lump of work. The existing developers and the project mentor will help define a suitable subset, but the project does demand significant 'self-starting' on the part of the applicant.
Many of the fixes we need can already be found in ?OpenEmbedded, Slind, Maemo and previous emdebian developments.
Debian is in a position to improve cross-building in the same way that it has improved architecture support over the last few years. All packages should cross-build, but many do not for various reasons. Work fixing these is valuable to many people. Implementing a set-up to cross-build debian packages and report bugs on those that fail to build using dpkg-cross and emdebian tools would be excellent. However cross-building is not a necessary part of emdebian; it can be natively built too.