From 907912d3a68280c577c1ec8701c0a163ebc104a4 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 4 Apr 2020 17:03:23 -0400 Subject: [PATCH] packages: Keep existing hold if already set Signed-off-by: James Valleroy --- actions/packages | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/actions/packages b/actions/packages index 06c578aa0..6f853c0de 100755 --- a/actions/packages +++ b/actions/packages @@ -58,10 +58,14 @@ def parse_arguments(): @contextmanager def _apt_hold(): """Do not allow freedombox package to be removed during package install.""" + current_hold = subprocess.check_output( + ['apt-mark', 'showhold', 'freedombox']) try: - yield subprocess.run(['apt-mark', 'hold', 'freedombox'], check=True) + yield current_hold or subprocess.run( + ['apt-mark', 'hold', 'freedombox'], check=True) finally: - subprocess.run(['apt-mark', 'unhold', 'freedombox'], check=True) + if not current_hold: + subprocess.run(['apt-mark', 'unhold', 'freedombox'], check=True) def _run_apt_command(arguments):