diff --git a/UpdateManager/Dialogs.py b/UpdateManager/Dialogs.py index a5d13ad4..89603956 100644 --- a/UpdateManager/Dialogs.py +++ b/UpdateManager/Dialogs.py @@ -175,6 +175,23 @@ class NoUpdatesDialog(InternalDialog): Gtk.STOCK_OK, self.window_main.close ) + +class ShouldUpdateDialog(InternalDialog): + def __init__(self, window_main): + + InternalDialog.__init__(self, window_main) + self.set_header(_("Include latest updates from the Internet?")) + self.set_desc(_('''To prevent unwanted connections to the Internet +Trisquel will not automatically check for updates +unless you say so in the Settings panel.''')) + self.add_settings_button() + self.add_button(_("Check for Updates"), self.check) + self.add_button(_("Ask Me Later"), self.window_main.close) + + def check(self): + self.window_main.options.no_update = False + self.window_main.check_update() + class DistUpgradeDialog(InternalDialog): def __init__(self, window_main, meta_release): diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py index b6cdc8ab..d82db9dd 100644 --- a/UpdateManager/UpdateManager.py +++ b/UpdateManager/UpdateManager.py @@ -56,6 +56,7 @@ from .Dialogs import ( ErrorDialog, HWEUpgradeDialog, NeedRestartDialog, + ShouldUpdateDialog, NoUpdatesDialog, NoUpgradeForYouDialog, PartialUpgradeDialog, @@ -125,11 +126,13 @@ class UpdateManager(Gtk.Window): ) # Look for a new release in a thread - self.meta_release = MetaRelease( - self.options and self.options.devel_release, - self.options and self.options.use_proposed, - self.options and self.options.debug, - ) + if (self.options.check_dist_upgrades + and apt_pkg.config.find_i("APT::Periodic::Update-Package-Lists") + != 0): + self.meta_release = MetaRelease( + self.options and self.options.devel_release, + self.options and self.options.use_proposed, + self.options and self.options.debug) def begin_user_resizable(self, stored_width=0, stored_height=0): self.set_resizable(True) @@ -205,6 +206,19 @@ self.start_available() def start_update(self): + if (not self.options.no_check_screen + and apt_pkg.config.find_i("APT::Periodic::Update-Package-Lists") + == 0): + self._start_pane(ShouldUpdateDialog(self)) + return + if self.options.no_update: + self.start_available() + return + + update_backend = get_backend(self, InstallBackend.ACTION_UPDATE) + self._start_pane(update_backend) + + def check_update(self): if self.options.no_update: self.start_available() return @@ -231,6 +232,11 @@ class UpdateManager(Gtk.Window): self.start_available() return + self.meta_release = MetaRelease( + self.options and self.options.devel_release, + self.options and self.options.use_proposed, + self.options and self.options.debug) + update_backend = get_backend(self, InstallBackend.ACTION_UPDATE) self._start_pane(update_backend) diff -ru a/update-manager b/update-manager --- a/update-manager 2023-05-04 19:26:47.710184166 -0400 +++ b/update-manager 2023-05-04 19:29:09.884636731 -0400 @@ -79,7 +79,7 @@ default="/usr/share/update-manager/", help=_("Directory that contains the data files")) parser.add_option ("-c", "--check-dist-upgrades", action="store_true", - dest="check_dist_upgrades", default=False, + dest="check_dist_upgrades", default=True, help=_("Check if a new Ubuntu release is available")) parser.add_option ("-d", "--devel-release", action="store_true", dest="devel_release", default=False, @@ -92,6 +92,9 @@ parser.add_option ("--no-update", action="store_true", dest="no_update", default=False, help=_("Do not check for updates when starting")) + parser.add_option ("--no-check-screen", action="store_true", + dest="no_check_screen", default=False, + help=_("Don't show screen preventing unwanted connections to the Internet")) parser.add_option ("", "--debug", action="store_true", default=False, help=_("Show debug messages"))