Merge ~sbeattie/ubuntu-cve-tracker/+git/ubuntu-cve-tracker:fix_kernel_abi_breakage_check into ubuntu-cve-tracker:master

Proposed by Steve Beattie
Status: Merged
Merged at revision: 8ebcab1e6e0e45ac6068f250cc5c698137e8450e
Proposed branch: ~sbeattie/ubuntu-cve-tracker/+git/ubuntu-cve-tracker:fix_kernel_abi_breakage_check
Merge into: ubuntu-cve-tracker:master
Diff against target: 36 lines (+14/-2)
2 files modified
scripts/kernel_lib.py (+6/-2)
scripts/test_kernel_lib.py (+8/-0)
Reviewer Review Type Date Requested Status
Rodrigo Figueiredo Zaiden Approve
Review via email: mp+466970@code.launchpad.net

Commit message

kernel_lib: fix kernel_abi_check for noble kernel meta packages

The kernel team changed the version format for their meta packages with
the noble release, from:

  UPSTREAM_VERSION.ABI.BUILD_REV

to:

  UPSTREAM_VERSION-ABI.BUILD_REV

which matches the base kernel package version scheme. However, our
tool for ensuring that the currently published meta package ABI in
the archive matches the base kernel's ABI was not expecting this
change in behavior, so it would compute the ABI version incorrectly,
leading to failures like:

  FAIL: ABI mismatch in noble-updates: 5 != 1005 (linux-meta-raspi 6.8.0-1005.5 vs linux-raspi 6.8.0-1005.5)

where it should have computed the ABI as 1005.

Added testcases as well.

To post a comment you must log in.
Revision history for this message
Rodrigo Figueiredo Zaiden (rodrigo-zaiden) wrote :

LGTM. Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/scripts/kernel_lib.py b/scripts/kernel_lib.py
2index 95de00b..4d6b76c 100755
3--- a/scripts/kernel_lib.py
4+++ b/scripts/kernel_lib.py
5@@ -1542,6 +1542,10 @@ def kernel_package_version(version):
6
7 # return the kernel abi from a kernel meta-package version
8 # e.g. 4.15.0.45.57 => 45
9-# XXX may need to add an offset exception to the kernel table
10+# noble meta packages changed their versioning scheme to match the
11+# main kernel package abi scheme UPSTREAM_VERSION-ABI.BUILD
12 def kernel_meta_abi(version, offset=3):
13- return int(version.split('.').pop(offset))
14+ if '-' in version:
15+ return kernel_package_abi(version)
16+ else:
17+ return int(version.split('.').pop(offset))
18diff --git a/scripts/test_kernel_lib.py b/scripts/test_kernel_lib.py
19index 1bb35c5..f11bee7 100755
20--- a/scripts/test_kernel_lib.py
21+++ b/scripts/test_kernel_lib.py
22@@ -27,6 +27,14 @@ class TestKernelMabiCalc:
23 def test_hwe_version(self):
24 assert kernel_meta_abi("5.4.0.40.44~18.04.32") == 40
25
26+ # noble kernel meta package versions were changed to match the
27+ # primary package versioning scheme UPSTREAM_VERSION-ABI.BUILD
28+ def test_noble_newer_version(self):
29+ assert kernel_meta_abi("6.8.0-14.15") == 14
30+
31+ def test_noble_newer_derieved_version(self):
32+ assert kernel_meta_abi("6.8.0-1014.15") == 1014
33+
34
35 class TestKernelVersionCalc:
36 def test_basic_version(self):

Subscribers

People subscribed via source and target branches