Differences between revisions 9 and 10
Revision 9 as of 2009-09-17 01:46:02
Size: 2327
Editor: GeoffSimmons
Comment: DebianBug
Revision 10 as of 2012-06-05 22:54:00
Size: 1616
Editor: BenHutchings
Comment: Bring mostly up to date - package names and removal of OOT module binary packages
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Occasionally, and often due to a security issue, a change is accepted into a kernel package that changes its ABI. The ABI change is represented by a change in the SONAME portion of the kernel-image package name. For example, in {{{linux-image-2.6.18-1-686}}}, the SONAME is {{{1}}}. Any kernel-module packages need to be recompiled against the updated kernel-headers. Occasionally, and often due to a security issue, a change is accepted into a kernel package that changes its ABI. The ABI change is represented by a change in the SONAME portion of the linux-image package name. For example, in {{{linux-image-2.6.18-1-686}}}, the SONAME is {{{1}}}. Any out-of-tree modules need to be recompiled against the updated linux-headers.
Line 7: Line 7:
External modules (i.e. modules packaged in separate packages) obviously need to be upgraded at the same time. To ensure this, the user has to install the corresponding meta package {{{<module>-modules-2.6-<variant>}}}. This meta package should depend on the virtual package "{{{linux-latest-modules-<version-with-abi>}}}" to ensure that it's upgraded together with the main kernel meta-package (which provides the corresponding {{{linux-latest-modules-<version-with-abi>}}}).

For example:
{{{
Package: kqemu-modules-2.6-686
Depends: kqemu-modules-2.6.18-5-686, linux-latest-modules-2.6.18-5-686

Package: linux-image-2.6-686
Depends: linux-image-2.6.18-5-686
Provides: linux-latest-modules-2.6.18-5-686
}}}

This way, when {{{linux-image-2.6-686}}} is upgraded to {{{2.6.18-6-686}}}, it stops providing the old {{{linux-latest-modules-2.6.18-5-686}}}. This breaks the old {{{kqemu-modules-2.6-686}}} which thus has to be updated together with the main metapackage. See DebianBug:428783 for the original discussion of this dependency scheme.
External modules (i.e. modules packaged in separate packages) obviously need to be upgraded at the same time. Where the module package supports DKMS, this will happen automatically if the appropriate linux-headers metapackage is also installed. Where the module package supports ModuleAssistant, it is necessary to request a rebuild automatically.

Occasionally, and often due to a security issue, a change is accepted into a kernel package that changes its ABI. The ABI change is represented by a change in the SONAME portion of the linux-image package name. For example, in linux-image-2.6.18-1-686, the SONAME is 1. Any out-of-tree modules need to be recompiled against the updated linux-headers.

Since a change in the SONAME changes the package name, apt will not automatically upgrade a system to the new kernel. In order for users to track the latest available kernel (meaning the latest kernel security fixes in the stable distribution), installing one of the kernel meta packages is strongly recommended.

For example, for the original Debian 4.0 (Etch) release, linux-image-2.6-686 depended upon linux-image-2.6.18-4-686. With the first point release (4.0r1), an updated kernel with an ABI change was introduced, resulting in a new linux-image-2.6.18-5-686 package. At the same time, an updated version of linux-image-2.6-686 was made available with a dependency on linux-image-2.6.18-5-686. Through this dependency dist-upgrading linux-image-2.6-686 resulted in the new linux-image-2.6.18-5-686 package being pulled in automatically for users.

External modules (i.e. modules packaged in separate packages) obviously need to be upgraded at the same time. Where the module package supports DKMS, this will happen automatically if the appropriate linux-headers metapackage is also installed. Where the module package supports ModuleAssistant, it is necessary to request a rebuild automatically.