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

Re: purpose of kernel-tree packages

On Thu, 2005-02-10 at 00:24 +0100, martin f krafft wrote:
> I am wondering what the purpose of the kernel-tree packages is.

Here's a snippet of a doc I wrote for work some time ago - hopefully
others will jump in if there are inaccuracies.

kernel-tree & kernel-patch-debian
In the Debian archive, there are typically multiple kernel-image
packages that
build using a given kernel source package; e.g.,
kernel-image-2.4.25-i386 and
kernel-image-2.4.25-ia64 may both Build-Depend on kernel-source-2.4.25
so that
bug fixes and security updates to common source only need to occur in

Since the unstable archive is always changing it is possible for a
version X
of a kernel-source package to exist, when the latest version of a given
kernel-image package was built against a version < X of the

Here's an example of such a situation:
  1) kernel-source-2.4.25 (2.4.25-1) is added to the archive.
  2) kernel-image-2.4.25-i386 (2.4.25-1) is built against
     kernel-source-2.4.25 (2.4.25-1) and is added to the archive.
  3) kernel-source-2.4.25 (2.4.25-2) is uploaded.

At this point, the archive contains an inconsistency.  It is no longer
to rebuild kernel-image-2.4.25-i386 and get matching binary packages,
since a
build at this point would use the 2.4.25-2 source instead of the
source.  If a release happens at this point, it can have harmful
It may be that the changes between the 2.4.25-1 and 2.4.25-2
kernel-source-2.4.25 releases makes kernel-image-2.4.25-i386
Or, using the example above, it maybe that a security vulnerability
what should be a minor rebuild of kernel-image to now also include some
additional features added in the kernel-source-2.4.25 (2.4.25-2).  This
induces instability.

To avoid the situation where an update to the core kernel-source package
one of the kernel-image packages that depend on it, the kernel-tree
system was
created.  The kernel-tree system provides a mechanism for rolling back a
source tree to an earlier version.

kernel-patch-debian provides the patches necessary for rolling back to
previous releases.  In each release, an additional reverse patch is
added to
this package which can be used to roll back to the previous version.
This is
non-intuitive since kernel-patch packages typically provide patches that
features or bug fixes, whereas kernel-patch-debian provides patches that
remove the features and bug fixes that have been added to the

The kernel-tree packages are virtual packages used to specify the
versions of
the source tree that can be created by a given kernel-source package and
associated debian-patch package.  If a kernel-tree-2.4.25 package
kernel-tree-2.4.25-2, and kernel-tree-2.4.25-3, then the build process
know that it can get back to the either one of those by applying patches
the associatied kernel-patch-debian package.

Reply to: