summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLyndon Brown <jnqnfe@gmail.com>2020-02-22 14:33:01 +0000
committerRaphaƫl Hertzog <hertzog@debian.org>2020-03-09 10:51:11 +0000
commit7ee59d408ed7681908966a5b2fb28e8f98116d31 (patch)
treecd95c183cca6f26e624bd73b7271ea98913a2a83
parent37f0432e983f11e3bfa29842edd42ad66dd1a25e (diff)
downloadvyos-live-build-7ee59d408ed7681908966a5b2fb28e8f98116d31.tar.gz
vyos-live-build-7ee59d408ed7681908966a5b2fb28e8f98116d31.zip
fix consistency in binary execution and existance checking
- prefer using `which` over hard coded paths - it is redundant to check that the bin pointed to the return of `which` exists and is executable, `which` already gives us assurance of that if it returns true! - the redirection of output (`2>/dev/null`) seems to be unnecessary from my testing. the instances relatnig to fdisk and losetup in functions/defaults.sh have been left as they are since they get executed by `lb config` which can run without sudo elevation unlike `lb build` and in that case `which` would fail to find these binaries resulting in error. this also fixes a bug showing an error for missing debootstrap - this tool requires sudo privileges to run and thus is not found via a none elevated which search. Gbp-Dch: Short Closes: #952927
-rwxr-xr-xfrontend/lb4
-rwxr-xr-xfrontend/live-build2
-rwxr-xr-xfunctions/architectures.sh2
-rwxr-xr-xfunctions/defaults.sh6
-rwxr-xr-xfunctions/losetup.sh2
-rwxr-xr-xfunctions/man.sh2
-rwxr-xr-xscripts/build/bootstrap_debootstrap6
-rwxr-xr-xscripts/build/chroot_archives4
-rwxr-xr-xscripts/build/config2
-rwxr-xr-xshare/bin/Packages4
-rwxr-xr-xshare/hooks/normal/0400-update-apt-file-cache.hook.chroot2
-rwxr-xr-xshare/hooks/normal/0410-update-apt-xapian-index.hook.chroot2
-rwxr-xr-xshare/hooks/normal/0430-update-mlocate-database.hook.chroot2
13 files changed, 20 insertions, 20 deletions
diff --git a/frontend/lb b/frontend/lb
index 0e826d989..f2015b033 100755
--- a/frontend/lb
+++ b/frontend/lb
@@ -20,7 +20,7 @@ USAGE="lb {clean|config|build}"
case "${1}" in
-h|--help)
- if [ -x "$(which man 2>/dev/null)" ]
+ if [ $(which man) ]
then
man lb
exit 0
@@ -75,7 +75,7 @@ case "${1}" in
then
# User has live-build installed in the system
SCRIPT=/usr/lib/live/build/"${COMMAND}"
- elif [ -x "$(which ${COMMAND} 2>/dev/null)" ]
+ elif [ $(which "${COMMAND}") ]
then
# User has live-build commands in path
SCRIPT="${COMMAND}"
diff --git a/frontend/live-build b/frontend/live-build
index 52b843730..dfd1e4667 100755
--- a/frontend/live-build
+++ b/frontend/live-build
@@ -22,7 +22,7 @@
set -e
-if [ -x "$(which man 2>/dev/null)" ]
+if [ $(which man) ]
then
man live-build
else
diff --git a/functions/architectures.sh b/functions/architectures.sh
index 7c6c48cff..393d217e8 100755
--- a/functions/architectures.sh
+++ b/functions/architectures.sh
@@ -49,7 +49,7 @@ Check_architectures ()
Check_crossarchitectures ()
{
- if [ -x /usr/bin/dpkg ]
+ if [ $(which dpkg) ]
then
HOST="$(dpkg --print-architecture)"
else
diff --git a/functions/defaults.sh b/functions/defaults.sh
index d254b079a..ed271ebc9 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -13,7 +13,7 @@ New_configuration ()
## Runtime
# Image: Architecture
- if [ -x "/usr/bin/dpkg" ]
+ if [ $(which dpkg) ]
then
CURRENT_IMAGE_ARCHITECTURE="$(dpkg --print-architecture)"
else
@@ -93,7 +93,7 @@ Set_defaults ()
LB_SYSTEM="${LB_SYSTEM:-live}"
# Setting mode (currently: debian, progress-linux)
- if [ -x /usr/bin/lsb_release ]
+ if [ $(which lsb_release) ]
then
_DISTRIBUTOR="$(lsb_release -is | tr "[A-Z]" "[a-z]")"
@@ -826,7 +826,7 @@ Check_defaults ()
{
case "${LB_BINARY_FILESYSTEM}" in
ntfs)
- if [ ! -x "$(which ntfs-3g 2>/dev/null)" ]
+ if [ ! $(which ntfs-3g) ]
then
Echo_error "Using ntfs as the binary filesystem is currently only supported if ntfs-3g is installed on the host system."
diff --git a/functions/losetup.sh b/functions/losetup.sh
index 9d9b46e5d..cdf984b74 100755
--- a/functions/losetup.sh
+++ b/functions/losetup.sh
@@ -21,7 +21,7 @@ Lodetach ()
# Changes to block devices result in uevents which trigger rules which in
# turn access the loop device (ex. udisks-part-id, blkid) which can cause
# a race condition. We call 'udevadm settle' to help avoid this.
- if [ -x "$(which udevadm 2>/dev/null)" ]
+ if [ $(which udevadm) ]
then
udevadm settle
fi
diff --git a/functions/man.sh b/functions/man.sh
index 11366b7b4..7896f5a9c 100755
--- a/functions/man.sh
+++ b/functions/man.sh
@@ -10,7 +10,7 @@
Man ()
{
- if [ -x "$(which man 2>/dev/null)" ]
+ if [ $(which man) ]
then
man $(basename ${0})
exit 0
diff --git a/scripts/build/bootstrap_debootstrap b/scripts/build/bootstrap_debootstrap
index b4008de8a..9370c3986 100755
--- a/scripts/build/bootstrap_debootstrap
+++ b/scripts/build/bootstrap_debootstrap
@@ -24,7 +24,7 @@ Arguments "${@}"
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
Set_defaults
-if [ ! -x "$(which debootstrap 2>/dev/null)" ]
+if [ ! $(which debootstrap) ]
then
Echo_error "debootstrap - command not found"
Echo_verbose "debootstrap can be obtained from http://ftp.debian.org/debian/pool/main/d/debootstrap/"
@@ -76,7 +76,7 @@ then
DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --no-check-gpg"
fi
-if [ -x "/usr/sbin/debootstrap" ]
+if [ $(which debootstrap) ]
then
if [ "${LB_CACHE_PACKAGES}" = "true" ]
then
@@ -126,6 +126,6 @@ then
# Creating stage file
Create_stagefile .build/bootstrap
else
- Echo_error "Can't process file /usr/bin/debootstrap (FIXME)"
+ Echo_error "Can't find program debootstrap (FIXME)"
exit 1
fi
diff --git a/scripts/build/chroot_archives b/scripts/build/chroot_archives
index 472b76785..f1166ae40 100755
--- a/scripts/build/chroot_archives
+++ b/scripts/build/chroot_archives
@@ -242,7 +242,7 @@ case "${1}" in
cp -f cache/indices.bootstrap/*Release* chroot/var/lib/apt/lists
fi
- if [ "${LB_APT}" = "aptitude" ] && [ ! -x /usr/bin/aptitude ]
+ if [ "${LB_APT}" = "aptitude" ] && [ ! $(which aptitude) ]
then
Chroot chroot "apt-get ${APT_OPTIONS} update"
Chroot chroot "apt-get ${APT_OPTIONS} install aptitude"
@@ -260,7 +260,7 @@ case "${1}" in
fi
# Installing aptitude
- if [ "${LB_APT}" = "aptitude" ] && [ ! -x /chroot/usr/bin/aptitude ]
+ if [ "${LB_APT}" = "aptitude" ] && [ ! $(Chroot chroot "which aptitude") ]
then
Chroot chroot "apt-get ${APT_OPTIONS} update"
Chroot chroot "apt-get ${APT_OPTIONS} install aptitude"
diff --git a/scripts/build/config b/scripts/build/config
index aa275c6b9..e974bc73e 100755
--- a/scripts/build/config
+++ b/scripts/build/config
@@ -178,7 +178,7 @@ Local_arguments ()
case "${1}" in
--dump)
# Dump version
- if [ -x "$(which dpkg-query 2>/dev/null)" ]
+ if [ $(which dpkg-query) ]
then
VERSION_DPKG="$(dpkg-query -f='${Version}' --show live-build)"
fi
diff --git a/share/bin/Packages b/share/bin/Packages
index fa6cbbaa2..185fba78d 100755
--- a/share/bin/Packages
+++ b/share/bin/Packages
@@ -10,9 +10,9 @@
set -e
-if [ ! -e /usr/bin/grep-aptavail ]
+if [ ! $(which grep-aptavail) ]
then
- echo "E: /usr/bin/grep-aptavail: No such file."
+ echo "E: program grep-aptavail not found!"
exit 1
fi
diff --git a/share/hooks/normal/0400-update-apt-file-cache.hook.chroot b/share/hooks/normal/0400-update-apt-file-cache.hook.chroot
index 771e9032a..4634d4cf8 100755
--- a/share/hooks/normal/0400-update-apt-file-cache.hook.chroot
+++ b/share/hooks/normal/0400-update-apt-file-cache.hook.chroot
@@ -8,7 +8,7 @@ set -e
. /live-build/config/binary
-if [ -x /usr/bin/apt-file ] && [ "${LB_APT_INDICES}" = "true" ]
+if [ $(which apt-file) ] && [ "${LB_APT_INDICES}" = "true" ]
then
apt-file update
fi
diff --git a/share/hooks/normal/0410-update-apt-xapian-index.hook.chroot b/share/hooks/normal/0410-update-apt-xapian-index.hook.chroot
index dcb39b261..02f1a18f2 100755
--- a/share/hooks/normal/0410-update-apt-xapian-index.hook.chroot
+++ b/share/hooks/normal/0410-update-apt-xapian-index.hook.chroot
@@ -8,7 +8,7 @@ set -e
# is not allowed to, and (b) it wants to build the index in the background which
# will be racy in the context of live-build.
-if [ -x /usr/sbin/update-apt-xapian-index ]
+if [ $(which update-apt-xapian-index) ]
then
PYTHONDONTWRITEBYTECODE=1 /usr/sbin/update-apt-xapian-index --force --quiet
fi
diff --git a/share/hooks/normal/0430-update-mlocate-database.hook.chroot b/share/hooks/normal/0430-update-mlocate-database.hook.chroot
index 6bfdb3d4f..df99386fe 100755
--- a/share/hooks/normal/0430-update-mlocate-database.hook.chroot
+++ b/share/hooks/normal/0430-update-mlocate-database.hook.chroot
@@ -8,7 +8,7 @@ set -e
# means that if the live system is later installed to a hard disk then less
# work will be required after installation.
-if [ -x /usr/bin/updatedb.mlocate ]
+if [ $(which updatedb.mlocate) ]
then
updatedb.mlocate
fi