summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphaël Hertzog <raphael@offensive-security.com>2019-12-19 16:21:58 +0100
committerRaphaël Hertzog <raphael@offensive-security.com>2019-12-19 16:21:58 +0100
commit0647e985fa05d09a7fecc801e9e23d6b513b7de4 (patch)
treeeb0214493cfd25cd53d7ca6cf4533b9d6c9920a1
parent04ea46d07bfd56d76e3405e0b279391b148a9999 (diff)
downloadvyos-live-build-0647e985fa05d09a7fecc801e9e23d6b513b7de4.tar.gz
vyos-live-build-0647e985fa05d09a7fecc801e9e23d6b513b7de4.zip
chroot_live-packages: use dpkg-query to see if a package is installed
Closes: #944983
-rwxr-xr-xfunctions/chroot.sh11
-rwxr-xr-xscripts/build/chroot_live-packages4
2 files changed, 13 insertions, 2 deletions
diff --git a/functions/chroot.sh b/functions/chroot.sh
index 88c5466b8..0b54a3925 100755
--- a/functions/chroot.sh
+++ b/functions/chroot.sh
@@ -36,3 +36,14 @@ Chroot ()
return "${?}"
}
+
+Chroot_has_package() {
+ PACKAGE="${1}"; shift
+ CHROOT="${2:-chroot}"; shift
+
+ if dpkg-query --admindir=${CHROOT}/var/lib/dpkg -s ${PACKAGE} >/dev/null 2>&1 | grep -q "^Status: install"
+ then
+ return 0
+ fi
+ return 1
+}
diff --git a/scripts/build/chroot_live-packages b/scripts/build/chroot_live-packages
index f3e52fc0f..a04e37667 100755
--- a/scripts/build/chroot_live-packages
+++ b/scripts/build/chroot_live-packages
@@ -53,7 +53,7 @@ case "${LB_INITSYSTEM}" in
systemd)
_PACKAGES="${_PACKAGES} systemd-sysv"
- if [ -e chroot/var/lib/dpkg/info/sysvinit.list ]
+ if Chroot_has_package sysvinit
then
Chroot chroot "dpkg --force-remove-essential --purge sysvinit"
fi
@@ -62,7 +62,7 @@ case "${LB_INITSYSTEM}" in
sysvinit)
_PACKAGES="${_PACKAGES} sysvinit"
- if [ -e chroot/var/lib/dpkg/info/systemd-sysv.list ]
+ if Chroot_has_package systemd-sysv
then
Chroot chroot "dpkg --force-remove-essential --purge systemd systemd-sysv"
fi