Skip to content

Commit a8d40ca

Browse files
committed
Fix kernel updates for 4.15+ series
The name of the packages changed upstream: linux-image-extra-VERSION-generic no longer exists, linux-modules-extra-VERSION-generic is new.
1 parent 1f21e8d commit a8d40ca

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

usr/lib/linuxmint/mintUpdate/checkAPT.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ def __init__(self, version):
4040
# nothing else is listed.
4141
PRIORITY_UPDATES = ['mintupdate', 'mint-upgrade-info']
4242

43+
KERNEL_PKG_NAMES = ['linux-headers-VERSION', 'linux-headers-VERSION-generic', 'linux-image-VERSION-generic', 'linux-modules-VERSION-generic', 'linux-modules-extra-VERSION-generic']
44+
KERNEL_PKG_NAMES.append('linux-image-extra-VERSION-generic') # Naming convention in 16.04, until 4.15 series
45+
4346
class APTCheck():
4447

4548
def __init__(self):
@@ -119,7 +122,7 @@ def find_changes(self):
119122
if 'linux-image-generic' in self.cache:
120123
recommended_kernel = KernelVersion(self.cache['linux-image-generic'].candidate.version)
121124
if (uname_kernel.numeric_representation <= recommended_kernel.numeric_representation):
122-
for pkgname in ['linux-headers-VERSION', 'linux-headers-VERSION-generic', 'linux-image-VERSION-generic', 'linux-image-extra-VERSION-generic']:
125+
for pkgname in KERNEL_PKG_NAMES:
123126
pkgname = pkgname.replace('VERSION', recommended_kernel.std_version)
124127
if pkgname in self.cache:
125128
pkg = self.cache[pkgname]
@@ -131,7 +134,7 @@ def find_changes(self):
131134
if 'linux-image-generic-hwe-16.04' in self.cache:
132135
recommended_kernel = KernelVersion(self.cache['linux-image-generic-hwe-16.04'].candidate.version)
133136
if (uname_kernel.numeric_representation <= recommended_kernel.numeric_representation):
134-
for pkgname in ['linux-headers-VERSION', 'linux-headers-VERSION-generic', 'linux-image-VERSION-generic', 'linux-image-extra-VERSION-generic']:
137+
for pkgname in KERNEL_PKG_NAMES:
135138
pkgname = pkgname.replace('VERSION', recommended_kernel.std_version)
136139
if pkgname in self.cache:
137140
pkg = self.cache[pkgname]
@@ -149,7 +152,7 @@ def find_changes(self):
149152
if kernel.numeric_representation > max_kernel.numeric_representation and kernel.series == max_kernel.series:
150153
max_kernel = kernel
151154
if max_kernel.numeric_representation != uname_kernel.numeric_representation:
152-
for pkgname in ['linux-headers-VERSION', 'linux-headers-VERSION-generic', 'linux-image-VERSION-generic', 'linux-image-extra-VERSION-generic']:
155+
for pkgname in KERNEL_PKG_NAMES:
153156
pkgname = pkgname.replace('VERSION', max_kernel.std_version)
154157
if pkgname in self.cache:
155158
pkg = self.cache[pkgname]

usr/lib/linuxmint/mintUpdate/kernelwindow.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/python3
22

3+
import apt
34
import subprocess
45
import os
56
import re
@@ -16,6 +17,10 @@
1617
VERSION_GROUP = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
1718
INFO_GROUP = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
1819

20+
# Kernel package names
21+
KERNEL_PKG_NAMES = ['linux-headers-VERSION', 'linux-headers-VERSION-generic', 'linux-image-VERSION-generic', 'linux-modules-VERSION-generic', 'linux-modules-extra-VERSION-generic']
22+
KERNEL_PKG_NAMES.append('linux-image-extra-VERSION-generic') # Naming convention in 16.04, until 4.15 series
23+
1924
def list_header_func(row, before, user_data):
2025
if before and not row.get_header():
2126
row.set_header(Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL))
@@ -33,12 +38,19 @@ def run(self):
3338
"--non-interactive", "--parent-window-id", "%s" % self.application.window.get_window().get_xid(), "-o", "Synaptic::closeZvt=true"]
3439
f = tempfile.NamedTemporaryFile()
3540

36-
for pkg in ['linux-headers-%s' % self.version, 'linux-headers-%s-generic' % self.version, 'linux-image-%s-generic' % self.version, 'linux-image-extra-%s-generic' % self.version]:
37-
if self.remove:
38-
pkg_line = "%s\tpurge\n" % pkg
39-
else:
40-
pkg_line = "%s\tinstall\n" % pkg
41-
f.write(pkg_line.encode("utf-8"))
41+
cache = apt.Cache()
42+
for name in KERNEL_PKG_NAMES:
43+
name = name.replace("VERSION", self.version)
44+
if name in cache:
45+
pkg = cache[name]
46+
if self.remove:
47+
if pkg.is_installed:
48+
pkg_line = "%s\tpurge\n" % name
49+
f.write(pkg_line.encode("utf-8"))
50+
else:
51+
pkg_line = "%s\tinstall\n" % name
52+
f.write(pkg_line.encode("utf-8"))
53+
4254
cmd.append("--set-selections-file")
4355
cmd.append("%s" % f.name)
4456
f.flush()

0 commit comments

Comments
 (0)