diff --git a/actions/upgrades b/actions/upgrades index 94ed5e93f..1c71988c0 100755 --- a/actions/upgrades +++ b/actions/upgrades @@ -13,7 +13,7 @@ import sys from plinth.action_utils import run_apt_command from plinth.modules.apache.components import check_url -from plinth.modules.upgrades import is_backports_enabled, SOURCES_LIST +from plinth.modules.upgrades import is_backports_current, SOURCES_LIST AUTO_CONF_FILE = '/etc/apt/apt.conf.d/20auto-upgrades' LOG_FILE = '/var/log/unattended-upgrades/unattended-upgrades.log' @@ -193,7 +193,7 @@ def _check_and_backports_sources(): if os.path.exists(old_sources_list): os.remove(old_sources_list) - if is_backports_enabled(): + if is_backports_current(): print('Repositories list up-to-date. Skipping update.') return diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index b28e606e3..a7d103146 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -3,6 +3,7 @@ FreedomBox app for upgrades. """ +from aptsources import sourceslist import os import subprocess @@ -143,9 +144,24 @@ def is_backports_enabled(): return os.path.exists(SOURCES_LIST) +def is_backports_current(): + """Return whether backports are enabled for the current release.""" + if not is_backports_enabled: + return False + + dist = subprocess.check_output(['lsb_release', '--codename', '--short' + ]).decode().strip() + '-backports' + sources = sourceslist.SourcesList() + for source in sources: + if source.dist == dist: + return True + + return False + + def can_activate_backports(): """Return whether backports can be activated.""" - if is_backports_enabled(): + if is_backports_current(): return False release = subprocess.check_output(['lsb_release', '--release',