Merge ~enr0n/ubuntu-release-upgrader:lp-2061891 into ubuntu-release-upgrader:ubuntu/main

Proposed by Nick Rosbrook
Status: Merged
Merged at revision: 173dd2e1f5ab80746c555e64891c91e0197b3365
Proposed branch: ~enr0n/ubuntu-release-upgrader:lp-2061891
Merge into: ubuntu-release-upgrader:ubuntu/main
Diff against target: 65 lines (+38/-1)
2 files modified
DistUpgrade/DistUpgradeQuirks.py (+37/-0)
data/DistUpgrade.cfg.jammy (+1/-1)
Reviewer Review Type Date Requested Status
Julian Andres Klode Approve
Review via email: mp+464775@code.launchpad.net

Description of the change

Add a quirk for this issue instead of using KeepInstalledPkgs, which is incomplete.

To post a comment you must log in.
Revision history for this message
Julian Andres Klode (juliank) wrote :

lgtm

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/DistUpgrade/DistUpgradeQuirks.py b/DistUpgrade/DistUpgradeQuirks.py
2index c8f3576..d5c2662 100644
3--- a/DistUpgrade/DistUpgradeQuirks.py
4+++ b/DistUpgrade/DistUpgradeQuirks.py
5@@ -185,6 +185,7 @@ class DistUpgradeQuirks(object):
6 # self._install_python_is_python2()
7 self._maybe_remove_gpg_wks_server()
8 self._install_t64_replacement_packages()
9+ self._handle_ufw_breaks()
10
11 # individual quirks handler that run *after* the dist-upgrade was
12 # calculated in the cache
13@@ -1795,3 +1796,39 @@ class DistUpgradeQuirks(object):
14 logging.debug(
15 f'Failed to find a replacement for {package.name}'
16 )
17+
18+ def _handle_ufw_breaks(self):
19+ """
20+ LP: #2061891
21+ """
22+
23+ # This is only required for upgrades from jammy.
24+ if self.controller.fromDist != 'jammy':
25+ return
26+
27+ try:
28+ ufw = self.controller.cache['ufw']
29+ except KeyError:
30+ return
31+
32+ if not ufw.is_installed:
33+ return
34+
35+ remove_ufw = False
36+ for name in ('netfilter-persistent', 'iptables-persistent'):
37+ try:
38+ pkg = self.controller.cache[name]
39+ except KeyError:
40+ continue
41+
42+ if pkg.is_installed:
43+ logging.info(
44+ f'Keeping {name}, and removing ufw as a result.'
45+ )
46+
47+ pkg.mark_install(auto_fix=False, auto_inst=False)
48+ remove_ufw = True
49+
50+ if remove_ufw:
51+ ufw.mark_delete(auto_fix=False)
52+ apt.ProblemResolver(self.controller.cache).protect(ufw)
53diff --git a/data/DistUpgrade.cfg.jammy b/data/DistUpgrade.cfg.jammy
54index fcc436b..ce3e994 100644
55--- a/data/DistUpgrade.cfg.jammy
56+++ b/data/DistUpgrade.cfg.jammy
57@@ -23,7 +23,7 @@ Demotions=demoted.cfg
58 #RemoveEssentialOk=sysvinit, sysvutils, belocs-locales-bin
59 RemovalDenylistFile=removal_denylist.cfg
60 # if those packages were installed, make sure to keep them installed
61-KeepInstalledPkgs=xserver-xorg-video-all,netfilter-persistent,iptables-persistent
62+KeepInstalledPkgs=xserver-xorg-video-all
63 KeepInstalledSection=translations
64 RemoveObsoletes=yes
65 PurgeObsoletes=yes

Subscribers

People subscribed via source and target branches