From 6ac3d85bae81d620590fa76b8c91d1537d5344a7 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sun, 5 Jul 2020 22:54:44 -0400 Subject: [PATCH] upgrades: Enable backports for testing only in development mode Signed-off-by: James Valleroy Reviewed-by: Sunil Mohan Adapa --- actions/upgrades | 16 ++++++++++------ plinth/modules/upgrades/__init__.py | 8 ++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/actions/upgrades b/actions/upgrades index 80e065486..29f8fec7d 100755 --- a/actions/upgrades +++ b/actions/upgrades @@ -76,8 +76,12 @@ def parse_arguments(): subparsers.add_parser('get-log', help='Print the automatic upgrades log') subparsers.add_parser('setup', help='Setup apt preferences') - subparsers.add_parser('setup-repositories', - help='Setup software repositories for FreedomBox') + setup_repositories = subparsers.add_parser( + 'setup-repositories', + help='Setup software repositories for FreedomBox') + setup_repositories.add_argument('--develop', required=False, default=False, + action='store_true', + help='Development mode') subparsers.required = True return parser.parse_args() @@ -187,7 +191,7 @@ deb-src {protocol}://deb.debian.org/debian {dist}-backports main file_handle.write(sources) -def _check_and_backports_sources(): +def _check_and_backports_sources(develop=False): """Add backports sources after checking if it is available.""" old_sources_list = '/etc/apt/sources.list.d/freedombox.list' if os.path.exists(old_sources_list): @@ -214,7 +218,7 @@ def _check_and_backports_sources(): release = subprocess.check_output(['lsb_release', '--release', '--short']).decode().strip() - if release in ['testing', 'unstable']: + if release == 'unstable' or (release == 'testing' and not develop): print(f'System release is {release}. Skip enabling backports.') return @@ -261,14 +265,14 @@ def subcommand_setup(_): _add_apt_preferences() -def subcommand_setup_repositories(_): +def subcommand_setup_repositories(arguments): """Setup software repositories needed for FreedomBox. Repositories list for now only contains the backports. If the file exists, assume that it contains backports. """ - _check_and_backports_sources() + _check_and_backports_sources(arguments.develop) def main(): diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index a7d103146..afd7a8c78 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -136,7 +136,11 @@ def disable(): def setup_repositories(data): """Setup apt backport repositories.""" - actions.superuser_run('upgrades', ['setup-repositories']) + command = ['setup-repositories'] + if cfg.develop: + command += ['--develop'] + + actions.superuser_run('upgrades', command) def is_backports_enabled(): @@ -166,7 +170,7 @@ def can_activate_backports(): release = subprocess.check_output(['lsb_release', '--release', '--short']).decode().strip() - if release in ['testing', 'unstable']: + if release == 'unstable' or (release == 'testing' and not cfg.develop): return False return True