Bug#773233: linux: Packaging is not correctly enforcing ABI
Source: linux
Version: 3.16.7-2
Severity: serious
Justification: Not enforcing the ABI will potentially lead to mismatched modules, breakage of stable updates in Jessie etc
It appears that we are not currently correctly checking the ABI of kernels
against debian/abi/* at build time. buildcheck.py is reporting:
Can't read ABI reference. ABI not checked! Continuing.
This can be seen in:
https://buildd.debian.org/status/fetch.php?pkg=linux&arch=amd64&ver=3.16.7-1&stamp=1415134305
https://buildd.debian.org/status/fetch.php?pkg=linux&arch=amd64&ver=3.16.7-2&stamp=1415320152
https://buildd.debian.org/status/fetch.php?pkg=linux&arch=amd64&ver=3.16.7-ckt2-1&stamp=1418093077
The ABI should have remained unchanged since 3.16.7-1 (when it was bumped to
4). However running ./debian/bin/abiupdate.py now results in:
debian/abi/3.16.0-4/amd64_none_amd64 | 33 ++++++++++++++++++---------------
1 file changed, 18 insertions(+), 15 deletions(-)
(similar for most arches and flavours).
The issue appears to be that buildcheck.py is looking for debian/abi/3.16-4,
while abiupdate.py is creating/updating 3.16.0-4.
The addition of .0 to the kernel version string happened in the same upload as
the switch to ABI 4. Looking at r21985 and r22132 it seems the intention was
for the ABI to include the .0. I've poked at buildcheck.py but haven#'t 6
If I add a symlink 3.16-4 -> 3.16.0-4 then buildcheck.py finds the symbols and
complains of changes e.g. to iov_iter_get_pages.
-- System Information:
Debian Release: 8.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, armel
Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)
Reply to: