Chapter 2. Debian kernel source

Table of Contents

2.1. Changes to the pristine kernel source
2.2. Debian kernel patches
2.3. Policy for patch acceptance

2.1. Changes to the pristine kernel source

The kernels in Debian are distributed in binary form, built from the Debian kernel source. It is important to recognize that Debian kernel source may be (and in most cases is) different from the upstream (or "pristine") kernel source, distributed from www.kernel.org and its mirrors. Due to licensing restrictions, unclear license information, or failure to comply with the Debian Free Software Guidelines (DFSG), parts of the kernel are removed in order to distribute the source in the main section of the Debian archive. Such removal produces linux_version.orig.tar.xz tarball, which serves as the original upstream source. version is the actual upstream version.

The guidelines for firmware removal were set by the Handling source-less firmware in the Linux kernel General Resolution and the position statement by the release managers. As of version 2.6.31-1, all known sourceless firmware has been removed from the Debian package, but much of it is included in the firmware-nonfree package. Additional information about firmware licensing and removals may be found at the Debian Wiki page KernelFirmwareLicensing.

2.2. Debian kernel patches

The source from which the Debian binary kernels are built is obtained by taking the source from linux_version.orig.tar.xz (that is, pristine kernel source with problematic parts removed) and applying a set of Debian patches. These patches typically implement essential fixes for serious bugs and security holes. The Debian version of the kernel packages has the form version-revision where version is the upstream version of the kernel (like 3.2.20) and revision determines the patchlevel. For example, the packages with version 3.2.20-1 are built from the linux_3.2.20.orig.tar.xz source, patched up to patchlevel 1. Certain packages include extra 'featuresets' not included in the upstream source, such as rt.

2.3. Policy for patch acceptance

The general policy of the Debian kernel team is that a patch must either fix a bug or add hardware support, and must be based on a change already accepted by the upstream kernel maintainers. The change does not need to have been included in an upstream release yet. This policy allows the team to drop most patches when moving to a new upstream version, rather than having to maintain an increasing series of Debian-specific patches. The recommended procedure for inclusion of patches introducing optional features is to submit to the upstream maintainer.