Merge ~nteodosio/update-manager:jammy-ua into update-manager:ubuntu/jammy

Proposed by Nathan Teodosio
Status: Merged
Approved by: Sebastien Bacher
Approved revision: d9687545386c1016c4a05d2e51d6f0ed38ab4afe
Merge reported by: Sebastien Bacher
Merged at revision: d9687545386c1016c4a05d2e51d6f0ed38ab4afe
Proposed branch: ~nteodosio/update-manager:jammy-ua
Merge into: update-manager:ubuntu/jammy
Diff against target: 241 lines (+71/-27)
4 files modified
UpdateManager/Core/UpdateList.py (+22/-7)
UpdateManager/UpdateManager.py (+11/-4)
UpdateManager/UpdatesAvailable.py (+31/-16)
debian/changelog (+7/-0)
Reviewer Review Type Date Requested Status
Sebastien Bacher Pending
Review via email: mp+452816@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks and sorry for not catching that before upload!

Revision history for this message
Sebastien Bacher (seb128) wrote :

It was merged into https://git.launchpad.net/update-manager/log/?h=ubuntu/jammy but launchpad didn't detect it since the target vcs there was the git-ubuntu import one, marking manually as merged now

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/UpdateManager/Core/UpdateList.py b/UpdateManager/Core/UpdateList.py
index 8d30317..814d772 100644
--- a/UpdateManager/Core/UpdateList.py
+++ b/UpdateManager/Core/UpdateList.py
@@ -391,7 +391,8 @@ class UpdateList():
391 return True391 return True
392 return False392 return False
393393
394 def _make_groups(self, cache, pkgs, eventloop_callback, to_remove=False, sensitive=True):394 def _make_groups(self, cache, pkgs, eventloop_callback, to_remove=False,
395 sensitive=True):
395 if not pkgs:396 if not pkgs:
396 return []397 return []
397 ungrouped_pkgs = []398 ungrouped_pkgs = []
@@ -401,7 +402,8 @@ class UpdateList():
401 for pkg in pkgs:402 for pkg in pkgs:
402 app = self._get_application_for_package(pkg)403 app = self._get_application_for_package(pkg)
403 if app is not None:404 if app is not None:
404 app_group = UpdateApplicationGroup(pkg, app, to_remove, sensitive)405 app_group = UpdateApplicationGroup(pkg, app, to_remove,
406 sensitive)
405 app_groups.append(app_group)407 app_groups.append(app_group)
406 else:408 else:
407 ungrouped_pkgs.append(pkg)409 ungrouped_pkgs.append(pkg)
@@ -440,7 +442,8 @@ class UpdateList():
440 "linux-doc.*")442 "linux-doc.*")
441 linux_regexp = re.compile("(" + "|".join(443 linux_regexp = re.compile("(" + "|".join(
442 ["^" + n for n in linux_names]) + ")")444 ["^" + n for n in linux_names]) + ")")
443 ubuntu_base_group = UpdateGroup(None, None, None, to_remove, sensitive)445 ubuntu_base_group = UpdateGroup(None, None, None, to_remove,
446 sensitive)
444 flavor_package = utils.get_ubuntu_flavor_package(cache=cache)447 flavor_package = utils.get_ubuntu_flavor_package(cache=cache)
445 ubuntu_base_pkgs = [flavor_package,448 ubuntu_base_pkgs = [flavor_package,
446 "ubuntu-standard",449 "ubuntu-standard",
@@ -458,10 +461,13 @@ class UpdateList():
458 if ubuntu_base_group.is_dependency(pkg, cache,461 if ubuntu_base_group.is_dependency(pkg, cache,
459 eventloop_callback):462 eventloop_callback):
460 if system_group is None:463 if system_group is None:
461 system_group = UpdateSystemGroup(cache, to_remove, sensitive)464 system_group = UpdateSystemGroup(cache, to_remove,
465 sensitive)
462 system_group.add(pkg)466 system_group.add(pkg)
463 else:467 else:
464 pkg_groups.append(UpdatePackageGroup(pkg, to_remove, sensitive))468 pkg_groups.append(UpdatePackageGroup(
469 pkg, to_remove, sensitive)
470 )
465471
466 app_groups.sort(key=lambda a: a.name.lower())472 app_groups.sort(key=lambda a: a.name.lower())
467 pkg_groups.sort(key=lambda a: a.name.lower())473 pkg_groups.sort(key=lambda a: a.name.lower())
@@ -511,7 +517,12 @@ class UpdateList():
511 pass517 pass
512 fake_ua_packages = []518 fake_ua_packages = []
513 ua_packages_names = []519 ua_packages_names = []
514 for (package_name, version, size, downloadable) in ua_security_packages:520 for (
521 package_name,
522 version,
523 size,
524 downloadable
525 ) in ua_security_packages:
515 if downloadable:526 if downloadable:
516 ua_packages_names.append(package_name)527 ua_packages_names.append(package_name)
517 else:528 else:
@@ -573,7 +584,11 @@ class UpdateList():
573 if security_pkgs or upgrade_pkgs or pro_pkgs:584 if security_pkgs or upgrade_pkgs or pro_pkgs:
574 # There's updates available. Initiate the desktop file cache.585 # There's updates available. Initiate the desktop file cache.
575 pkg_names = [p.name for p in586 pkg_names = [p.name for p in
576 pro_pkgs + security_pkgs + upgrade_pkgs + kernel_autoremove_pkgs + duplicate_pkgs]587 pro_pkgs
588 + security_pkgs
589 + upgrade_pkgs
590 + kernel_autoremove_pkgs
591 + duplicate_pkgs]
577 self._populate_desktop_cache(pkg_names)592 self._populate_desktop_cache(pkg_names)
578 self.oem_groups = self._make_groups(cache, oem_pkgs,593 self.oem_groups = self._make_groups(cache, oem_pkgs,
579 eventloop_callback)594 eventloop_callback)
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index 259c0e6..2b0af65 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -198,7 +198,7 @@ class UpdateManager(Gtk.Window):
198 self._start_pane(None)198 self._start_pane(None)
199 sys.exit(0)199 sys.exit(0)
200200
201 def show_settings(self, page_number = SoftwarePropertiesPage.updates):201 def show_settings(self, page_number=SoftwarePropertiesPage.updates):
202 cmd = ["/usr/bin/software-properties-gtk",202 cmd = ["/usr/bin/software-properties-gtk",
203 "--open-tab", str(page_number)]203 "--open-tab", str(page_number)]
204204
@@ -284,14 +284,21 @@ class UpdateManager(Gtk.Window):
284 time.sleep(0.05)284 time.sleep(0.05)
285 s = json.load(p.stdout)285 s = json.load(p.stdout)
286 for package in s.get('packages', []):286 for package in s.get('packages', []):
287 if package.get('service_name', '') == 'standard-security': continue287 if package.get('service_name', '') == 'standard-security':
288 continue
288 status = package.get('status', '')289 status = package.get('status', '')
289 if status == 'pending_attach' or status == 'pending_enable' or status == 'upgrade_available':290 if (
291 status == 'pending_attach'
292 or status == 'pending_enable'
293 or status == 'upgrade_available'
294 ):
290 name = package.get('package', '')295 name = package.get('package', '')
291 version = package.get('version', '')296 version = package.get('version', '')
292 size = package.get('download_size', 0)297 size = package.get('download_size', 0)
293 downloadable = status == 'upgrade_available'298 downloadable = status == 'upgrade_available'
294 self.ua_security_packages.append((name, version, size, downloadable))299 self.ua_security_packages.append(
300 (name, version, size, downloadable)
301 )
295302
296 def _make_available_pane(self, install_count, need_reboot=False,303 def _make_available_pane(self, install_count, need_reboot=False,
297 cancelled_update=False, error_occurred=False):304 cancelled_update=False, error_occurred=False):
diff --git a/UpdateManager/UpdatesAvailable.py b/UpdateManager/UpdatesAvailable.py
index add06fe..5d254fe 100644
--- a/UpdateManager/UpdatesAvailable.py
+++ b/UpdateManager/UpdatesAvailable.py
@@ -251,7 +251,7 @@ class UpdatesAvailable(InternalDialog):
251 self.button_close = self.add_button(Gtk.STOCK_CANCEL,251 self.button_close = self.add_button(Gtk.STOCK_CANCEL,
252 self.window_main.close)252 self.window_main.close)
253 self.button_pro = self.add_button(_("Enable Ubuntu Pro..."),253 self.button_pro = self.add_button(_("Enable Ubuntu Pro..."),
254 self.on_button_pro_clicked)254 self.on_button_pro_clicked)
255 self.button_install = self.add_button(_("Install Now"),255 self.button_install = self.add_button(_("Install Now"),
256 self.on_button_install_clicked)256 self.on_button_install_clicked)
257 self.focus_button = self.button_install257 self.focus_button = self.button_install
@@ -371,8 +371,9 @@ class UpdatesAvailable(InternalDialog):
371 from uaclient.api.u.apt_news.current_news.v1 import current_news371 from uaclient.api.u.apt_news.current_news.v1 import current_news
372 apt_news = current_news().current_news372 apt_news = current_news().current_news
373 except ImportError:373 except ImportError:
374 pro_client_apt_news_api_supported = False374 apt_news = self._get_apt_news(
375 apt_news = self._get_apt_news("/var/lib/ubuntu-advantage/messages/apt-news")375 "/var/lib/ubuntu-advantage/messages/apt-news"
376 )
376 if apt_news:377 if apt_news:
377 self.news.get_buffer().set_text(apt_news)378 self.news.get_buffer().set_text(apt_news)
378 self.expander_news.set_visible(True)379 self.expander_news.set_visible(True)
@@ -522,14 +523,16 @@ class UpdatesAvailable(InternalDialog):
522523
523 renderer.set_property("markup", markup)524 renderer.set_property("markup", markup)
524525
525 def set_changes_buffer(self, changes_buffer, long_desc, text, name, srcpkg):526 def set_changes_buffer(self, changes_buffer, long_desc, text, name,
526 changes_buffer.set_text("") # Clear "downloading list of changes..."527 srcpkg):
528 changes_buffer.set_text("") # Clear "downloading list of changes..."
527529
528 # Write the technical description section530 # Write the technical description section
529 changes_buffer.insert_with_tags_by_name(changes_buffer.get_end_iter(),531 changes_buffer.insert_with_tags_by_name(changes_buffer.get_end_iter(),
530 "Technical description\n",532 "Technical description\n",
531 "descriptiontag")533 "descriptiontag")
532 changes_buffer.insert(changes_buffer.get_end_iter(), long_desc + "\n\n")534 changes_buffer.insert(changes_buffer.get_end_iter(),
535 long_desc + "\n\n")
533536
534 # Write the changes section537 # Write the changes section
535 lines = text.split("\n")538 lines = text.split("\n")
@@ -604,7 +607,8 @@ class UpdatesAvailable(InternalDialog):
604 if name in self.cache.all_changes:607 if name in self.cache.all_changes:
605 changes = self.cache.all_changes[name]608 changes = self.cache.all_changes[name]
606 srcpkg = self.cache[name].candidate.source_name609 srcpkg = self.cache[name].candidate.source_name
607 self.set_changes_buffer(changes_buffer, long_desc, changes, name, srcpkg)610 self.set_changes_buffer(changes_buffer, long_desc, changes, name,
611 srcpkg)
608 # if not connected, do not even attempt to get the changes612 # if not connected, do not even attempt to get the changes
609 elif not self.connected:613 elif not self.connected:
610 changes_buffer.set_text(614 changes_buffer.set_text(
@@ -651,7 +655,8 @@ class UpdatesAvailable(InternalDialog):
651 changes += self.cache.all_changes[name]655 changes += self.cache.all_changes[name]
652656
653 if changes or long_desc:657 if changes or long_desc:
654 self.set_changes_buffer(changes_buffer, long_desc, changes, name, srcpkg)658 self.set_changes_buffer(changes_buffer, long_desc, changes, name,
659 srcpkg)
655660
656 def on_treeview_button_press(self, widget, event):661 def on_treeview_button_press(self, widget, event):
657 """662 """
@@ -791,8 +796,10 @@ class UpdatesAvailable(InternalDialog):
791 self.button_install.set_sensitive(True)796 self.button_install.set_sensitive(True)
792 self.unity.set_install_menuitem_visible(True)797 self.unity.set_install_menuitem_visible(True)
793 self.button_pro.destroy()798 self.button_pro.destroy()
794 elif self.list.ubuntu_pro_fake_groups and not self.list.ubuntu_pro_groups:799 elif (self.list.ubuntu_pro_fake_groups
795 download_str = _("You need to enable Ubuntu Pro to install these updates.")800 and not self.list.ubuntu_pro_groups):
801 download_str = _("You need to enable Ubuntu Pro to install"
802 "these updates.")
796 self.button_install.destroy()803 self.button_install.destroy()
797 else:804 else:
798 download_str = _("There are no updates to install.")805 download_str = _("There are no updates to install.")
@@ -1122,18 +1129,26 @@ class UpdatesAvailable(InternalDialog):
1122 self.list.duplicate_groups)1129 self.list.duplicate_groups)
1123 self._add_groups(self.list.duplicate_groups)1130 self._add_groups(self.list.duplicate_groups)
1124 if self.list.ubuntu_pro_groups:1131 if self.list.ubuntu_pro_groups:
1125 self._add_header(_("Ubuntu Pro security updates"), self.list.ubuntu_pro_groups, sensitive=True)1132 self._add_header(
1133 _("Ubuntu Pro security updates"),
1134 self.list.ubuntu_pro_groups,
1135 sensitive=True
1136 )
1126 self._add_groups(self.list.ubuntu_pro_groups)1137 self._add_groups(self.list.ubuntu_pro_groups)
1127 if self.list.ubuntu_pro_fake_groups:1138 if self.list.ubuntu_pro_fake_groups:
1128 self._add_header(_("Ubuntu Pro security updates (enable in Settingsā€¦)"), self.list.ubuntu_pro_fake_groups, sensitive=False)1139 self._add_header(
1140 _("Ubuntu Pro security updates (enable in Settingsā€¦)"),
1141 self.list.ubuntu_pro_fake_groups,
1142 sensitive=False
1143 )
1129 self._add_groups(self.list.ubuntu_pro_fake_groups)1144 self._add_groups(self.list.ubuntu_pro_fake_groups)
11301145
1131 self.treeview_update.set_model(self.store)1146 self.treeview_update.set_model(self.store)
1132 self.pkg_cell_area.indent_toplevel = (1147 self.pkg_cell_area.indent_toplevel = (
1133 bool(self.list.ubuntu_pro_fake_groups) or1148 bool(self.list.ubuntu_pro_fake_groups)
1134 bool(self.list.ubuntu_pro_groups) or1149 or bool(self.list.ubuntu_pro_groups)
1135 bool(self.list.update_groups) or1150 or bool(self.list.update_groups)
1136 bool(self.list.security_groups)1151 or bool(self.list.security_groups)
1137 or bool(self.list.kernel_autoremove_groups)1152 or bool(self.list.kernel_autoremove_groups)
1138 or bool(self.list.duplicate_groups))1153 or bool(self.list.duplicate_groups))
1139 self.update_close_button()1154 self.update_close_button()
diff --git a/debian/changelog b/debian/changelog
index 749da13..1bf015b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
1update-manager (1:22.04.15) UNRELEASED; urgency=medium
2
3 * Ubuntu Pro (LP: #1990450):
4 - Address linter errors that cause autopkgtest to fail.
5
6 -- Nathan Pratta Teodosio <nathan.teodosio@canonical.com> Wed, 04 Oct 2023 15:29:45 +0200
7
1update-manager (1:22.04.14) jammy; urgency=medium8update-manager (1:22.04.14) jammy; urgency=medium
29
3 * Ubuntu Pro (LP: #1990450):10 * Ubuntu Pro (LP: #1990450):

Subscribers

People subscribed via source and target branches