From 56f4ef0851e34efefa8097dde00d7c278975e225 Mon Sep 17 00:00:00 2001 From: James Slagle Date: Mon, 16 Dec 2013 14:42:59 -0500 Subject: [PATCH] Make sure sbin paths are in $PATH The sbin paths (/sbin, /usr/sbin, /usr/local/sbin) need to be in $PATH. Since $PATH is set in the build environment from the host, if the host does not have these paths set, they need to be added to $PATH. In particular, they must be set for apt-get which calls out to ldconfig, start-stop-daemon, etc. The previous check was insufficient because if you had /usr/sbin or /usr/local/sbin in your $PATH, the addition to $PATH was not done since the "if" statement evaluated to true. Change-Id: I52b41d2eb9794e7ee0ae600215cb3ceca191582f --- lib/common-defaults | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/common-defaults b/lib/common-defaults index 728bc79b..e1b57202 100644 --- a/lib/common-defaults +++ b/lib/common-defaults @@ -43,8 +43,14 @@ export ELEMENTS_PATH=${ELEMENTS_PATH:-$_BASE_ELEMENT_DIR} export DIB_OFFLINE=${DIB_OFFLINE:-''} # /sbin and friends aren't automatically included in $PATH when running sudo -# on SUSE Linux which breaks various pieces of this script in exciting ways, -# so inject them into the current $PATH if they're not there. -if ! [[ "$PATH" =~ "/sbin" ]] ; then - export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin +# on Fedora/RHEL/SUSE Linux which breaks various pieces of this script in +# exciting ways, so inject them into the current $PATH if they're not there. +if ! [[ ":$PATH" =~ ":/sbin" ]] ; then + export PATH=$PATH:/sbin +fi +if ! [[ ":$PATH" =~ ":/usr/sbin" ]] ; then + export PATH=$PATH:/usr/sbin +fi +if ! [[ ":$PATH" =~ ":/usr/local/sbin" ]] ; then + export PATH=$PATH:/usr/local/sbin fi