r3195 - trunk/docs

Jurij Smakov jurij-guest@costa.debian.org
Thu, 19 May 2005 17:56:49 +0000


Author: jurij-guest
Date: 2005-05-19 17:56:49 +0000 (Thu, 19 May 2005)
New Revision: 3195

Added:
   trunk/docs/packaging_rfc.txt
Log:
Added packaging_rfc.txt, which contains the
proposal for the new packaging scheme.


Added: trunk/docs/packaging_rfc.txt
===================================================================
--- trunk/docs/packaging_rfc.txt	2005-05-19 16:46:20 UTC (rev 3194)
+++ trunk/docs/packaging_rfc.txt	2005-05-19 17:56:49 UTC (rev 3195)
@@ -0,0 +1,90 @@
+Background 
+---------- 
+There is currently no standard for naming and contents of the
+kernel-related Debian packages. The goal of this document is to
+provide a unified scheme for naming and contents of these packages
+across all architectures.
+
+Kernel packages are uniquely identified by their architecture,
+subarchitecture and flavour. For most arches the kernel images are
+built from the same source (upstream source with all-arch Debian
+patches), using different configuration files corresponding to 
+different flavours. Subarch level is only required when specific
+unmerged patches need to be applied to the common source to support
+a particular class of hardware. As these patches potentially modify
+the headers, each subarch has to have its own kernel-headers package.
+
+Packaging scheme
+----------------
+To accomodate all the possibilities, the following packaging scheme
+(to be implemented by the common source package) is proposed:
+
+kernel-headers-$(version)-$(abiname)
+
+  A common headers package for an architecture without subarches.
+  It will contain all the common header files required to build the
+  3rd party modules, including the scripts subdirectory (currently
+  packaged as kernel-kbuild). It should contain only the includes
+  for this particular arch, i.e. include/{asm-generic,asm-$(arch)} 
+  Unpacks to /usr/src/kernel-headers-$(version)-$(abiname).
+
+kernel-headers-$(version)-$(abiname)-$(subarch)
+
+  A common headers package for an architecture with subarches.
+  Same purpose and contents as the one above.
+
+kernel-headers-$(version)-$(abiname)-$(flavour)
+ 
+  Flavour-specific kernel headers package, containing mostly the
+  configuration files. It will have the same name for both cases
+  (subarch or no subarch). As a result there is a restriction that
+  all flavour names across all arches/subarches have to be unique,
+  but that does not seem too problematic. This package must unpack
+  to /usr/src/kernel-headers-$(version)-$(abiname)-$(flavour),
+  depend on an appropriate common kernel-headers package, set up 
+  the symbolic links into it to provide a complete build-tree, and
+  supply the /lib/modules/$(version)-$(abiname)-$(flavour)/build 
+  symlink to that tree.
+
+kernel-image-$(version)-$(abiname)-$(flavour)
+
+  Kernel image for a particular flavour. This naming ensures that
+  the command
+
+  apt-get install kernel-headers-`uname -r`
+
+  will install the complete tree needed to build out-of-tree modules
+  for the currently running kernel.
+
+Packages which are eliminated in these scheme are:
+
+kernel-build 
+
+  Currently not available on all architectures. As far as I can tell
+  the main purpose of it is to depend on all kernel-headers packages
+  for a particular architecture. 
+
+kernel-kbuild
+
+  Contains the scripts directory from the source tree. According to
+  Andres Salomon, frequently gets out of sync with the kernel and
+  causes problems when building modules. In the new scheme it is
+  absorbed into the arch-specific kernel-headers package.
+
+====================================================================
+
+Open questions 
+--------------
+ * Do we need some kind of dummy packages to facilitate upgrades
+   of the kernels to the new versions with different abiname? How
+   they should work?
+
+ * There is a proposal to create a common kernel-headers packages
+   for all arches which build from common source and containing
+   all include/asm-* for them. Pros: we are saving some space by
+   not including the common stuff (how big is it?) into the
+   arch-specific kernel-headers packages. Cons: to build on a single
+   arch user will have to pull in headers for all arches. Also
+   the subarch handling becomes non-uniform with the rest.
+ 
+ * Anything else?
\ No newline at end of file