New “smart” Debian packages for the Adeos ipipe kernel patches

I have made Debian packages for the Adeos ipipe patches found the Adeos website. These package are meant to replace (but do not conflict with) the kernel-patch-adeos official package available in Debian, which has not been updated since August 2005 and does not allow to install multiple versions simultaneously and to select them in a flexible way.

To install my packages, add those two lines for my repository in your/etc/apt/sources.list file:

deb http://www.berabera.info/oldblog/lenglet/debian/ unstable main contrib non-free
deb-src http://www.berabera.info/oldblog/lenglet/debian/ unstable main contrib non-free

Then, upgrade your package list, look for the package(s) you want to install, and install them:

> apt-get update
> apt-cache search kernel-patch-adeos-ipipe
> apt-get install kernel-patch-adeos-ipipe-1.2

I have made one package for each Adeos version (0.9 to 1.2), and multiple packages for different versions can be installed simultaneously (e.g. package kernel-patch-adeos-ipipe-1.2 can be installed along with kernel-patch-adeos-ipipe-1.1). I have made this choice because every Adeos version supports a set of {Linux version, architecture} pairs that may not be supported by other versions (including more recent ones). For instance, the latest version of Adeos (1.2) does not support the Linux 2.4 series at this time.

I have used the standard dh-kpatches Debian helper to build those packages. Therefore, to build a Debian kernel package with the Adeos patch applied, using make-kpkg(1)(package kernel-package), one has only to pass adeosipipe patch name to the --added-patches option, e.g.:

> cd /usr/src/linux
> make-kpkg --added-patches adeosipipe kernel_image

If multiple patch version packages are installed simultaneously, the patch version to be applied is selected using Debian’s alternatives mechanism. There is one alternative defined for every architecture, so that patch versions can be selected independently for every architecture. For instance Adeos version 1.2 can be applied for architecture i386and Adeos version 1.1 for architecture ppc. By default, the highest version of the patch is automatically selected, unless one version is manually explicitly chosen using theupdate-alternatives(8) command, e.g. for the i386 architecture:

> /usr/sbin/update-alternatives --config kernel-patch-adeos-ipipe-i386

Read the /usr/share/doc/*/README.Debian file for explanations.

On a side note, I have in fact completely automated the generation of the source package, by writing a shell script. That script requires only to download recursively the Adeos patch files directory, and the ChangeLog file from the CVS repository (to get the names of authors). Everything else is done by my script. This will allow me to package new versions of the Adeos patches very quickly.