[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RFC: out-of-tree module udebs



Hi all,

I'm trying to find a good solution for building udebs of
out-of-tree linux kernel modules. What I'm currently doing is
build them from the same source package as normal module
packages, but that approach has some problems [1]. 

Some possible approaches have come out of discussions during the
last months - I've tried to summarize them below. All of them
have their own advantages and disadvantages. I'm interested what
you think and any aspects you see that I've not considered.

  Approach 1: Building module udebs in linux-kernel-di-*
  Approach 2: Building module udebs in linux-modules-di-*
  Approach 3: Building module udebs in <module>-modules-di-*


Approach 1: Building module udebs in linux-kernel-di-*
------------------------------------------------------

  The linux-kernel-di packages would build-depend on <module>-
  modules-<flavour> and build one or more udebs for them like 
  for modules in the kernel. You can find a small patch attached
  which implements this for loop-aes on i386.

  Advantages:
  - udebs for out-of-tree modules always in sync with the kernel
  - Low maintenance burden for the out-of-tree module maintainer
  - Needs only one package update when switching kernel versions

  Downsides: 
  - Does not scale very well for more than a few modules
  - Introduces delay before kernel can be updated; The kernel 
    has to be built and NEW accepted into the archive, then the
    module package(s) have to be built against the new headers,
    uploaded and accepted from NEW.

  About the delay: It could be reduced by including all modules
  in linux-modules-extra-2.6, which is automatically updated
  whenever a new kernel version/ABI gets uploaded.
  
  This is not currently possible for loop-aes unfortunately, as
  linux-modules-extra does not yet allow individual modules to
  specify depends or conflicts/replaces. [2]
  

Approach 2: Building module udebs in linux-modules-di-*
-------------------------------------------------------

  Mostly like the above, but creates a new package for each
  architecture that builds module udebs. It could be used for
  more than one out-of-tree module if the need arises.

  Advantages:
  - No delay before kernel can be updated; The package could be
    uploaded later.

  Disavantages:
  - Update to newer kernel requires another package to be updated
  - More work for port maintainers (?)


Approach 3: Building module udebs in <module>-modules-di-*
----------------------------------------------------------

  Instead of building all modules from one source package, there
  could be one package per module and per architecture. 

  Advantages:
  - Less coupling; If one module is not updated, it only affects
    that particular module. 

  Disadvantages:
  - Update to newer kernel requires many packages to be updated


cheers,
Max

-- 
1. http://lists.debian.org/debian-boot/2006/09/msg00834.html
2. I plan to work on this integration but may not manage in time
for RC1. Instead I've changed loop-aes packaging to allow easy
updates/NMUs for newer kernel versions. You can find this in
package loop-aes in experimental.
Index: kernel-wedge/debian/changelog
===================================================================
--- kernel-wedge/debian/changelog	(Revision 40861)
+++ kernel-wedge/debian/changelog	(Arbeitskopie)
@@ -1,7 +1,11 @@
 kernel-wedge (2.27) UNRELEASED; urgency=low
 
+  [ Joey Hess ]
   * Fix exclusion of optional modules to work.
 
+  [ Max Vozeler ]
+  * Add modules/loop-aes-modules 
+
  -- Joey Hess <joeyh@debian.org>  Sun, 20 Aug 2006 01:04:32 -0400
 
 kernel-wedge (2.26) unstable; urgency=low
Index: kernel-wedge/package-list
===================================================================
--- kernel-wedge/package-list	(Revision 40861)
+++ kernel-wedge/package-list	(Arbeitskopie)
@@ -326,3 +326,9 @@
 Priority: extra
 Description: crypto modules
  This package contains crypto modules.
+
+Package: loop-aes-modules
+Depends: kernel-image
+Priority: extra
+Description:  loop-AES crypto modules
+ This package contains loop-AES crypto modules.
Index: kernel-wedge/modules/loop-aes-modules
===================================================================
--- kernel-wedge/modules/loop-aes-modules	(Revision 0)
+++ kernel-wedge/modules/loop-aes-modules	(Revision 0)
@@ -0,0 +1,3 @@
+loop-aes
+loop_blowfish
+loop_serpent
Index: linux-kernel-di-i386-2.6/debian/changelog
===================================================================
--- linux-kernel-di-i386-2.6/debian/changelog	(Revision 40897)
+++ linux-kernel-di-i386-2.6/debian/changelog	(Arbeitskopie)
@@ -1,3 +1,12 @@
+linux-kernel-di-i386-2.6 (1.38) unstable; urgency=low
+
+  [ Max Vozeler ]
+  * Include <loop-aes-modules> in modules/i386/loop-aes-modules
+  * Update kernel-wedge build-dep to 2.27 for the above change
+  * Edit kernel-versions to include build-dep on loop-aes-modules
+
+ -- Max Vozeler <xam@debian.org>  Sun, 24 Sep 2006 13:38:53 +0200
+
 linux-kernel-di-i386-2.6 (1.37) unstable; urgency=low
 
   * Add usbmouse module to mouse-modules for graphical installer.
Index: linux-kernel-di-i386-2.6/debian/control.stub
===================================================================
--- linux-kernel-di-i386-2.6/debian/control.stub	(Revision 40897)
+++ linux-kernel-di-i386-2.6/debian/control.stub	(Arbeitskopie)
@@ -3,4 +3,4 @@
 Priority: optional
 Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
 Uploaders: Joey Hess <joeyh@debian.org>, Frans Pop <fjp@debian.org>
-Build-Depends: kernel-wedge (>= 2.25)
+Build-Depends: kernel-wedge (>= 2.27)
Index: linux-kernel-di-i386-2.6/kernel-versions
===================================================================
--- linux-kernel-di-i386-2.6/kernel-versions	(Revision 40897)
+++ linux-kernel-di-i386-2.6/kernel-versions	(Arbeitskopie)
@@ -1,2 +1,2 @@
 # arch   version  flavour       installedname        suffix build-depends
-i386     2.6.17-2 486           2.6.17-2-486         -      linux-image-2.6.17-2-486
+i386     2.6.17-2 486           2.6.17-2-486         -      linux-image-2.6.17-2-486, loop-aes-modules-2.6.17-2-486
Index: linux-kernel-di-i386-2.6/modules/i386/loop-aes-modules
===================================================================
--- linux-kernel-di-i386-2.6/modules/i386/loop-aes-modules	(Revision 0)
+++ linux-kernel-di-i386-2.6/modules/i386/loop-aes-modules	(Revision 0)
@@ -0,0 +1 @@
+#include <loop-aes-modules>

Reply to: