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

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: