Neil Williams

My main aim is to add the 'glue' required to get the existing subsections of emdebian working together as a whole.

{{{sudo apt-get install emdebian-helper cd /path/to/debian/source/source-1.2.3 sudo empdebuild dput emdebian ../source_1.2.3-1em1_$(ARCH).changes}}}

Plan

cross-get => apt-cross, adding support for:

apt-cross --get == cross-get

apt-cross --build == cross-get && dpkg-cross --build

apt-cross --install

  1. Intended for chroots to prevent the packages being removed when the underlying system is upgraded.
  2. To be used in a pbuilder type build.
  3. Implemented as cross-get && dpkg-cross --build && dpkg-cross --install

apt-cross --query == dpkg-cross --query

apt-cross --list  == dpkg-cross --list

This keeps dpkg-cross for local files and apt-cross for repository files.

Status : Needs testing. Test package available from:

{{{ deb http://www.linux.codehelp.co.uk/packages unstable main deb-src http://www.linux.codehelp.co.uk/packages unstable main }}}

emchain

New script that automates the download (cross-get code), unpacking (dpkg), rebuilding and repackaging of binutils, glibc and gcc as per emdebian requirements. Outputs the current binaries in a non-privileged folder without installing. Also, needs to monitor uploads of source packages for the emdebian toolchain (probably via cron-apt) and schedule a rebuild of only those components of the chain that have been updated. The aim is to keep emdebian toolchains in sync with Debian packages with a delay of only 24-48hrs which is similar to most buildd machines. Likely to use and possibly extend Hector's existing script(s).

empdebuild

Built on pdebuild with a few differences.

  1. Uses emchain binaries to add to our own --mbase-tgz, by default called emdebian.tgz. These binaries are retained within the chroot until upgraded with emchain.
  2. Uses pdebuild code to locate the .dsc in a debian source tree.
  3. Uses cross-built gcc to build in the emdebian chroot.
  4. Uses apt-cross to get, build and install (to the chroot) dependencies, like pdebuild, dependencies will not be saved to the chroot.
  5. Builds an emdebian package from the debian source tree.
  6. IGNORES Debian essential packages - require each package to specify the FULL dependency list.

  7. Uses the emdebian version number (from svn) and appends emX to the Debian version string. Renames each built .deb as .mdeb.
  8. Use dash as the default shell, not bash.
  9. Add busybox-full, initscripts, tinylogin and minibase (rather than dropbear) as the base system of the chroot.

GPE in Debian

Some GPE packages are already in Debian, I'm working to complete the list so that Debian itself can support smaller devices and provide the GPE packages for Emdebian to optimise further. This is the current status of GPE packages awaiting entry into Debian:

Package

ITP

Status

gpe-appmgr

#404083

needed ?

gpe-calendar

#327568

Experimental (queue)

gpe-clock

#404030

Experimental (queue)

gpe-conf

#404059

Crashes

gpe-confd

#404390

packaging

gpe-dm

gpe-filemanager

#199897

New queue

gpe-gallery

#403979

New queue

gpe-go

gpe-irc

needed?

gpe-lights

gpe-login

gpe-mileage

needed ?

gpe-minibrowser

#403802

Dependency issue

gpe-mininet

gpe-mixer

#404381

Dependency: gpe-icons >= 0.23

gpe-othello

gpe-ownerinfo

gpe-plucker

gpe-question

gpe-screenshot

gpe-session-scripts

gpe-shield

#404385

packaging

gpe-sketchbook

gpe-soundbite

#198923

Crashes

gpe-soundserver

#404312

Dependency

gpe-su

#404380

packaging

gpe-task-apps

needed ?

gpe-terminal

needed ?

gpe-tetris

needed ?

gpe-theme-clearlooks

gpe-timesheet

gpe-today

gpe-watch

#404388

packaging

gpe-what

#404388

packaging

libnrcit

libnrcore

libschedule

#404042

renamed libgpeschedule. New queue

libxsettings-client

#404307

New queue

libxsettings

#404306

New queue

Emdebian package building

  1. Patch debian/ files according to emdebian SVN *without* running debian/rules (this allows rules itself to be patched).
  2. Prepare a .deb under this naming scheme:

{{{<package> == binary package name, exactly as in Debian. <dvers> == Exact Debian version string. <evers> == Sequential emdebian release number.

<package>_<dvers>em<evers>_<arch>.mdeb}}}

So, taking libqof1 as our example.

{{{Binary package name: libqof1 Upstream version: 0.7.2. Debian version: 1 Example arch: amd64

Current Debian package name: libqof1_0.7.2-1_amd64.deb}}}

{{{Emdebian release: 1 Emdebian arch: arm

Proposed emdebian package name: libqof1_0.7.2-1em1_arm.mdeb}}}

use svn-buildpackage layout to keep debian diffs as 'upstream' and emdebian diffs as 'debian'.

Status : Likely to need a script to generate diffs from modified files - along the lines of interdiff.

Ideas for collaborative maintenance of emdebian packaging.

  1. Wherever possible, automate the streamlining of package building without patching (that is likely to fail with the next upload).
  2. Where manual changes are needed to debian/* files for emdebian, changes should be possible by any emdebian developer. This may need restrictions on svn write access to only Debian developers.

  3. Each amendment of the svn for a particular package needs to increment the emversion - a simple file that denotes the digit to use to append to the emdebian version identifier ('em') to form the emdebian version, itself appended to the existing Debian version. No other form of emdebian version string is anticipated - NMU's and backports should only affect the Debian version string and emX will be appended to whatever Debian supply. It may be possible to automate the emdebian version increment but this could lead to em1 being followed by em6 if it is based simply on an svn changeset. Just like 'dch', it may be simpler to just leave this as a manual intervention.

  4. Where patches are necessary, the emdebian svn stores the patched file for ease of maintenance.

The prime motivation for this is that emdebian packages should not need dedicated, specific, emdebian maintainers in addition to Debian maintainers.


Main homepage: http://www.linux.codehelp.co.uk/

Debian homepage: http://people.debian.org/~codehelp/


CategoryEmdebian