From fc693b82d48c42b67bcd666beeef2f4c553e9993 Mon Sep 17 00:00:00 2001 From: Aman Maharjan <38400817+mhrznamn068@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:58:01 +0200 Subject: [PATCH 1/2] fix: deb kernel meta-packages bypass series check causing false HWE updates --- hosts/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hosts/models.py b/hosts/models.py index 37e67779..b682d301 100644 --- a/hosts/models.py +++ b/hosts/models.py @@ -579,8 +579,13 @@ def find_deb_kernel_updates(self, kernel_packages, repo_packages, hostrepos): processed_prefixes.add(prefix) # extract kernel series (e.g. '6.8') to avoid cross-track - # comparisons (GA 6.8 vs HWE 6.17 in the same repo) + # comparisons (GA vs HWE); meta-packages like linux-image-generic + # yield None, so fall back to the running kernel's series installed_series = self.get_deb_kernel_series(pkg_name) + if installed_series is None and self.kernel: + m = re.match(r'(\d+\.\d+)', self.kernel) + if m: + installed_series = m.group(1) # build endswith filter for flavoured kernels name_filter = Q( From ca8ee8443d4474de5cad373298627ae8672d265f Mon Sep 17 00:00:00 2001 From: Aman Maharjan <38400817+mhrznamn068@users.noreply.github.com> Date: Thu, 23 Apr 2026 20:05:53 +0200 Subject: [PATCH 2/2] fix: skip meta-packages in deb kernel series check instead of falling back to running kernel --- hosts/models.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/hosts/models.py b/hosts/models.py index b682d301..ea8409b8 100644 --- a/hosts/models.py +++ b/hosts/models.py @@ -576,16 +576,14 @@ def find_deb_kernel_updates(self, kernel_packages, repo_packages, hostrepos): break if prefix is None or prefix in processed_prefixes: continue - processed_prefixes.add(prefix) - # extract kernel series (e.g. '6.8') to avoid cross-track - # comparisons (GA vs HWE); meta-packages like linux-image-generic - # yield None, so fall back to the running kernel's series + # skip meta-packages (e.g. linux-image-generic) that have no series; + # the versioned package (e.g. linux-image-5.15.0-176-generic) will + # handle the update check and correctly filter cross-series packages installed_series = self.get_deb_kernel_series(pkg_name) - if installed_series is None and self.kernel: - m = re.match(r'(\d+\.\d+)', self.kernel) - if m: - installed_series = m.group(1) + if installed_series is None: + continue + processed_prefixes.add(prefix) # build endswith filter for flavoured kernels name_filter = Q(