Skip to content
Snippets Groups Projects
Commit 7a5d804a authored by Simon McVittie's avatar Simon McVittie
Browse files

Merge flatdeb commit 'f1d87822'


Fix steamrt5 build by using dpkg --force-remove-protected

Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
parents d11b2d92 f1d87822
No related branches found
No related tags found
No related merge requests found
...@@ -86,6 +86,14 @@ is_installed () { ...@@ -86,6 +86,14 @@ is_installed () {
return 0 return 0
} }
# shellcheck disable=SC2016
dpkg_version=$(in_chroot_simple dpkg-query --show -f '${Version}\n' dpkg)
declare -a force_remove=(--force-remove-essential --force-depends)
if in_chroot_simple dpkg --compare-versions "${dpkg_version}" ge 1.20.1; then
force_remove+=(--force-remove-protected)
fi
declare -a unwanted=() declare -a unwanted=()
echo "Packages installed at the moment:" echo "Packages installed at the moment:"
...@@ -159,8 +167,7 @@ if [ -n "${unwanted[*]}" ]; then ...@@ -159,8 +167,7 @@ if [ -n "${unwanted[*]}" ]; then
echo "- $p" echo "- $p"
done done
in_chroot dpkg --purge --force-remove-essential --force-depends \ in_chroot dpkg --purge "${force_remove[@]}" "${unwanted[@]}"
"${unwanted[@]}"
fi fi
unwanted=() unwanted=()
...@@ -197,8 +204,7 @@ if [ -n "${unwanted[*]}" ]; then ...@@ -197,8 +204,7 @@ if [ -n "${unwanted[*]}" ]; then
echo "- $p" echo "- $p"
done done
in_chroot dpkg --purge --force-remove-essential --force-depends \ in_chroot dpkg --purge "${force_remove[@]}" "${unwanted[@]}"
"${unwanted[@]}"
fi fi
unwanted=() unwanted=()
...@@ -213,6 +219,5 @@ if [ -n "${unwanted[*]}" ]; then ...@@ -213,6 +219,5 @@ if [ -n "${unwanted[*]}" ]; then
echo "- $p" echo "- $p"
done done
in_chroot dpkg --purge --force-remove-essential --force-depends \ in_chroot dpkg --purge "${force_remove[@]}" "${unwanted[@]}"
"${unwanted[@]}"
fi fi
...@@ -32,6 +32,8 @@ import os ...@@ -32,6 +32,8 @@ import os
import subprocess import subprocess
import sys import sys
from debian.debian_support import Version
try: try:
import typing import typing
except ImportError: except ImportError:
...@@ -75,8 +77,24 @@ def main(): ...@@ -75,8 +77,24 @@ def main():
logger.info('Purging leftover configuration files:') logger.info('Purging leftover configuration files:')
force_remove = ['--force-depends', '--force-remove-essential']
unwanted = set() # type: typing.Set[str] unwanted = set() # type: typing.Set[str]
dpkg_version = subprocess.check_output(
in_chroot_simple + [
'dpkg-query',
'--show',
'-f',
r'${Version}',
'dpkg',
],
universal_newlines=True,
)
if Version(dpkg_version) >= Version('1.20.1'):
force_remove.append('--force-remove-protected')
with subprocess.Popen(in_chroot_simple + [ with subprocess.Popen(in_chroot_simple + [
'dpkg-query', 'dpkg-query',
'--show', '--show',
...@@ -109,9 +127,7 @@ def main(): ...@@ -109,9 +127,7 @@ def main():
subprocess.check_call(in_chroot + [ subprocess.check_call(in_chroot + [
'dpkg', 'dpkg',
'--purge', '--purge',
'--force-depends', ] + list(force_remove) + list(unwanted))
'--force-remove-essential',
] + list(unwanted))
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment