aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-07-28 02:25:22 +0100
committerSam James <sam@gentoo.org>2022-08-01 23:38:11 +0100
commitcb8eda531dad92bec9293c89f93db9b581245fd3 (patch)
tree45fdfeb256cc7be4b2e03262f2ebcbbfa98102f1
parentinstall-qa-check.d: 60pkgconfig: add ${ED}/usr/{lib*,share}/pkgconfig to sear... (diff)
downloadportage-cb8eda531dad92bec9293c89f93db9b581245fd3.tar.gz
portage-cb8eda531dad92bec9293c89f93db9b581245fd3.tar.bz2
portage-cb8eda531dad92bec9293c89f93db9b581245fd3.zip
bin: style tweaks
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--bin/bashrc-functions.sh18
-rwxr-xr-xbin/binhost-snapshot2
-rwxr-xr-xbin/chpathtool.py8
-rw-r--r--bin/doins.py8
-rwxr-xr-xbin/ebuild2
-rwxr-xr-xbin/ebuild-helpers/bsd/sed3
-rwxr-xr-xbin/ebuild-helpers/dobin6
-rwxr-xr-xbin/ebuild-helpers/dodir4
-rwxr-xr-xbin/ebuild-helpers/dodoc4
-rwxr-xr-xbin/ebuild-helpers/doexe17
-rwxr-xr-xbin/ebuild-helpers/dohard4
-rwxr-xr-xbin/ebuild-helpers/dohtml10
-rwxr-xr-xbin/ebuild-helpers/doinfo6
-rwxr-xr-xbin/ebuild-helpers/doins4
-rwxr-xr-xbin/ebuild-helpers/dolib10
-rwxr-xr-xbin/ebuild-helpers/doman10
-rwxr-xr-xbin/ebuild-helpers/domo8
-rwxr-xr-xbin/ebuild-helpers/dosbin4
-rwxr-xr-xbin/ebuild-helpers/dosed8
-rwxr-xr-xbin/ebuild-helpers/dosym14
-rwxr-xr-xbin/ebuild-helpers/fowners6
-rwxr-xr-xbin/ebuild-helpers/fperms6
-rwxr-xr-xbin/ebuild-helpers/newins14
-rwxr-xr-xbin/ebuild-helpers/portageq1
-rwxr-xr-xbin/ebuild-helpers/prepallstrip2
-rwxr-xr-xbin/ebuild-helpers/prepinfo3
-rwxr-xr-xbin/ebuild-helpers/prepstrip2
-rwxr-xr-xbin/ebuild-helpers/unprivileged/chown3
-rwxr-xr-xbin/ebuild-helpers/xattr/install2
-rwxr-xr-xbin/ebuild.sh178
-rwxr-xr-xbin/ecompress13
-rwxr-xr-xbin/ecompress-file15
-rwxr-xr-xbin/egencache8
-rwxr-xr-xbin/emerge-webrsync31
-rwxr-xr-xbin/estrip41
-rwxr-xr-xbin/etc-update27
-rw-r--r--bin/install-qa-check.d/05prefix8
-rw-r--r--bin/install-qa-check.d/10executable-issues2
-rw-r--r--bin/install-qa-check.d/20deprecated-directories6
-rw-r--r--bin/install-qa-check.d/60udev5
-rw-r--r--bin/install-qa-check.d/80libraries2
-rw-r--r--bin/install-qa-check.d/90bad-bin-owner2
-rw-r--r--bin/install-qa-check.d/90gcc-warnings10
-rw-r--r--bin/install-qa-check.d/90world-writable10
-rw-r--r--bin/isolated-functions.sh51
-rwxr-xr-xbin/misc-functions.sh99
-rw-r--r--bin/phase-functions.sh267
-rw-r--r--bin/phase-helpers.sh160
-rwxr-xr-xbin/portageq4
-rw-r--r--bin/postinst-qa-check.d/50xdg-utils21
-rw-r--r--bin/save-ebuild-env.sh8
51 files changed, 635 insertions, 522 deletions
diff --git a/bin/bashrc-functions.sh b/bin/bashrc-functions.sh
index a45587b28..7d6aab544 100644
--- a/bin/bashrc-functions.sh
+++ b/bin/bashrc-functions.sh
@@ -5,22 +5,22 @@
register_die_hook() {
local x
for x in $* ; do
- has $x $EBUILD_DEATH_HOOKS || \
- export EBUILD_DEATH_HOOKS="$EBUILD_DEATH_HOOKS $x"
+ has ${x} ${EBUILD_DEATH_HOOKS} || \
+ export EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} ${x}"
done
}
register_success_hook() {
local x
for x in $* ; do
- has $x $EBUILD_SUCCESS_HOOKS || \
- export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x"
+ has ${x} ${EBUILD_SUCCESS_HOOKS} || \
+ export EBUILD_SUCCESS_HOOKS="${EBUILD_SUCCESS_HOOKS} ${x}"
done
}
__strip_duplicate_slashes() {
- if [[ -n $1 ]] ; then
- local removed=$1
+ if [[ -n ${1} ]] ; then
+ local removed=${1}
while [[ ${removed} == *//* ]] ; do
removed=${removed//\/\///}
done
@@ -29,14 +29,14 @@ __strip_duplicate_slashes() {
}
KV_major() {
- [[ -z $1 ]] && return 1
+ [[ -z ${1} ]] && return 1
local KV=$@
echo "${KV%%.*}"
}
KV_minor() {
- [[ -z $1 ]] && return 1
+ [[ -z ${1} ]] && return 1
local KV=$@
KV=${KV#*.}
@@ -44,7 +44,7 @@ KV_minor() {
}
KV_micro() {
- [[ -z $1 ]] && return 1
+ [[ -z ${1} ]] && return 1
local KV=$@
KV=${KV#*.*.}
diff --git a/bin/binhost-snapshot b/bin/binhost-snapshot
index 4022cb32c..2076f2e53 100755
--- a/bin/binhost-snapshot
+++ b/bin/binhost-snapshot
@@ -44,7 +44,7 @@ def parse_args(argv):
usage += "\n"
usage += "Required Arguments:\n\n"
- usage += " src_pkg_dir - the source $PKGDIR\n"
+ usage += " src_pkg_dir - the source ${PKGDIR}\n"
usage += " snapshot_dir - destination snapshot " + "directory (must not exist)\n"
usage += (
" snapshot_uri - URI which refers to "
diff --git a/bin/chpathtool.py b/bin/chpathtool.py
index d658e5012..de47b097f 100755
--- a/bin/chpathtool.py
+++ b/bin/chpathtool.py
@@ -4,7 +4,7 @@
doc = """Helper tool for converting installed files to custom prefixes.
-In other words, eprefixy $D for Gentoo/Prefix."""
+In other words, eprefixy ${D} for Gentoo/Prefix."""
__doc__ = doc
import argparse
@@ -146,9 +146,11 @@ def chpath_inplace_symlink(filename, st, old, new):
def main(argv):
parser = argparse.ArgumentParser(description=doc)
- parser.add_argument("location", default=None, help="root directory (e.g. $D)")
+ parser.add_argument("location", default=None, help="root directory (e.g. ${D})")
parser.add_argument("old", default=None, help="original build prefix (e.g. /)")
- parser.add_argument("new", default=None, help="new install prefix (e.g. $EPREFIX)")
+ parser.add_argument(
+ "new", default=None, help="new install prefix (e.g. ${EPREFIX})"
+ )
opts = parser.parse_args(argv)
location, old, new = opts.location, opts.old, opts.new
diff --git a/bin/doins.py b/bin/doins.py
index 7905c5c0d..77f9fe021 100644
--- a/bin/doins.py
+++ b/bin/doins.py
@@ -412,11 +412,11 @@ def _doins(opts, install_runner, relpath, source_root):
source = os.path.join(source_root, relpath)
dest = os.path.join(opts.dest, relpath)
if os.path.islink(source):
- # Our fake $DISTDIR contains symlinks that should not be
- # reproduced inside $D. In order to ensure that things like
- # dodoc "$DISTDIR"/foo.pdf work as expected, we dereference
+ # Our fake ${DISTDIR} contains symlinks that should not be
+ # reproduced inside ${D}. In order to ensure that things like
+ # dodoc "${DISTDIR}"/foo.pdf work as expected, we dereference
# symlinked files that refer to absolute paths inside
- # $PORTAGE_ACTUAL_DISTDIR/.
+ # ${PORTAGE_ACTUAL_DISTDIR}/.
try:
if opts.preserve_symlinks and not os.readlink(source).startswith(
opts.distdir
diff --git a/bin/ebuild b/bin/ebuild
index 546ab9d1c..ff2b4fe92 100755
--- a/bin/ebuild
+++ b/bin/ebuild
@@ -278,7 +278,7 @@ build_dir_phases = set(
)
# If the current metadata is invalid then force the ebuild to be
-# sourced again even if $T/environment already exists.
+# sourced again even if ${T}/environment already exists.
ebuild_changed = False
if mytree == "porttree" and build_dir_phases.intersection(pargs):
ebuild_changed = (
diff --git a/bin/ebuild-helpers/bsd/sed b/bin/ebuild-helpers/bsd/sed
index 2d7b844da..f19460b90 100755
--- a/bin/ebuild-helpers/bsd/sed
+++ b/bin/ebuild-helpers/bsd/sed
@@ -13,10 +13,11 @@ else
old_IFS="${IFS}"
IFS=":"
- for path in $PATH; do
+ for path in ${PATH}; do
if [[ -x ${path}/${scriptname} ]]; then
[[ ${path} == */portage/*/ebuild-helpers* ]] && continue
[[ ${path}/${scriptname} -ef ${scriptpath} ]] && continue
+
exec "${path}/${scriptname}" "$@"
exit 0
fi
diff --git a/bin/ebuild-helpers/dobin b/bin/ebuild-helpers/dobin
index 8abcc713c..14faab9bf 100755
--- a/bin/ebuild-helpers/dobin
+++ b/bin/ebuild-helpers/dobin
@@ -15,7 +15,7 @@ fi
if ! ___eapi_has_DESTTREE_INSDESTTREE; then
[[ -n ${DESTTREE} ]] &&
- die "${0##*/}: \${DESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
+ die "${0##*/}: \${DESTTREE} has been banned for EAPI '${EAPI}'; use 'into' instead"
else
# backwards compatibility
_E_DESTTREE_=${DESTTREE}
@@ -31,11 +31,11 @@ for x in "$@" ; do
if [[ -e ${x} ]] ; then
install -m0755 -o ${PORTAGE_INST_UID:-0} -g ${PORTAGE_INST_GID:-0} "${x}" "${ED%/}/${_E_DESTTREE_#/}/bin"
else
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!! ${0##*/}: ${x} does not exist" 1>&2
false
fi
((ret|=$?))
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ebuild-helpers/dodir b/bin/ebuild-helpers/dodir
index 4fb113819..727f62a99 100755
--- a/bin/ebuild-helpers/dodir
+++ b/bin/ebuild-helpers/dodir
@@ -10,5 +10,5 @@ fi
install -d ${DIROPTIONS} "${@/#/${ED%/}/}"
ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/dodoc b/bin/ebuild-helpers/dodoc
index af3764b7e..28e58ae0c 100755
--- a/bin/ebuild-helpers/dodoc
+++ b/bin/ebuild-helpers/dodoc
@@ -29,10 +29,10 @@ for x in "$@" ; do
elif [ -s "${x}" ] ; then
install -m0644 "${x}" "${dir}" || { ((ret|=1)); continue; }
elif [ ! -e "${x}" ] ; then
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!! ${0##*/}: ${x} does not exist" 1>&2
((ret|=1))
fi
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ebuild-helpers/doexe b/bin/ebuild-helpers/doexe
index 154f5daca..9132fb592 100755
--- a/bin/ebuild-helpers/doexe
+++ b/bin/ebuild-helpers/doexe
@@ -23,24 +23,25 @@ ret=0
for x in "$@" ; do
if [ -L "${x}" ] ; then
- cp "$x" "$TMP"
- mysrc=$TMP/${x##*/}
+ cp "${x}" "${TMP}"
+ mysrc=${TMP}/${x##*/}
elif [ -d "${x}" ] ; then
__vecho "doexe: warning, skipping directory ${x}"
continue
else
mysrc="${x}"
fi
- if [ -e "$mysrc" ] ; then
- install ${EXEOPTIONS} "$mysrc" "${ED%/}/${_E_EXEDESTTREE_#/}"
+
+ if [ -e "${mysrc}" ] ; then
+ install ${EXEOPTIONS} "${mysrc}" "${ED%/}/${_E_EXEDESTTREE_#/}"
else
- echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
+ echo "!!! ${0##*/}: ${mysrc} does not exist" 1>&2
false
fi
((ret|=$?))
done
-rm -rf "$TMP"
+rm -rf "${TMP}"
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/dohard b/bin/ebuild-helpers/dohard
index 4ee1ba258..326752b4f 100755
--- a/bin/ebuild-helpers/dohard
+++ b/bin/ebuild-helpers/dohard
@@ -5,12 +5,12 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if ! ___eapi_has_dohard; then
- die "'${0##*/}' has been banned for EAPI '$EAPI'"
+ die "'${0##*/}' has been banned for EAPI '${EAPI}'"
exit 1
fi
if [[ $# -ne 2 ]] ; then
- echo "$0: two arguments needed" 1>&2
+ echo "${0}: two arguments needed" 1>&2
exit 1
fi
diff --git a/bin/ebuild-helpers/dohtml b/bin/ebuild-helpers/dohtml
index b6373a36c..55339238e 100755
--- a/bin/ebuild-helpers/dohtml
+++ b/bin/ebuild-helpers/dohtml
@@ -5,22 +5,22 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if ! ___eapi_has_dohtml; then
- die "'${0##*/}' has been banned for EAPI '$EAPI'"
+ die "'${0##*/}' has been banned for EAPI '${EAPI}'"
exit 1
fi
if ___eapi_has_dohtml_deprecated; then
- eqawarn "'${0##*/}' is deprecated in EAPI '$EAPI'"
+ eqawarn "'${0##*/}' is deprecated in EAPI '${EAPI}'"
fi
# Use safe cwd, avoiding unsafe import for bug #469338.
export __PORTAGE_HELPER_CWD=${PWD}
cd "${PORTAGE_PYM_PATH}" || die
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
- "${PORTAGE_PYTHON:-/usr/bin/python}" "$PORTAGE_BIN_PATH/dohtml.py" "$@"
+ "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/dohtml.py" "$@"
ret=$?
# Restore cwd for display by __helpers_die
cd "${__PORTAGE_HELPER_CWD}"
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/doinfo b/bin/ebuild-helpers/doinfo
index cf4d42b1a..69de67026 100755
--- a/bin/ebuild-helpers/doinfo
+++ b/bin/ebuild-helpers/doinfo
@@ -19,10 +19,10 @@ fi
install -m0644 "$@" "${ED%/}/usr/share/info"
rval=$?
-if [ $rval -ne 0 ] ; then
+if [ ${rval} -ne 0 ] ; then
for x in "$@" ; do
- [ -e "$x" ] || echo "!!! ${0##*/}: $x does not exist" 1>&2
+ [ -e "${x}" ] || echo "!!! ${0##*/}: ${x} does not exist" 1>&2
done
__helpers_die "${0##*/} failed"
fi
-exit $rval
+exit ${rval}
diff --git a/bin/ebuild-helpers/doins b/bin/ebuild-helpers/doins
index a5fc224a9..c90eccc90 100755
--- a/bin/ebuild-helpers/doins
+++ b/bin/ebuild-helpers/doins
@@ -20,7 +20,7 @@ if [[ ${helper} == dodoc ]] ; then
else
if ! ___eapi_has_DESTTREE_INSDESTTREE; then
[[ -n ${INSDESTTREE} ]] &&
- die "${0##*/}: \${INSDESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
+ die "${0##*/}: \${INSDESTTREE} has been banned for EAPI '${EAPI}'; use 'into' instead"
else
# backwards compatibility
_E_INSDESTTREE_=${INSDESTTREE}
@@ -33,7 +33,7 @@ if [ $# -lt 1 ] ; then
fi
DOINS_ARGS=()
-if [[ "$1" == "-r" ]] ; then
+if [[ "${1}" == "-r" ]] ; then
DOINS_ARGS+=( --recursive )
shift
fi
diff --git a/bin/ebuild-helpers/dolib b/bin/ebuild-helpers/dolib
index c31442a8e..ca57199be 100755
--- a/bin/ebuild-helpers/dolib
+++ b/bin/ebuild-helpers/dolib
@@ -5,7 +5,7 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if [[ -z ${PORTAGE_INTERNAL_DOLIB} ]] && ! ___eapi_has_dolib_libopts; then
- die "'${0##*/}' has been banned for EAPI '$EAPI'"
+ die "'${0##*/}' has been banned for EAPI '${EAPI}'"
exit 1
fi
@@ -15,7 +15,7 @@ fi
if ! ___eapi_has_DESTTREE_INSDESTTREE; then
[[ -n ${DESTTREE} ]] &&
- die "${0##*/}: \${DESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
+ die "${0##*/}: \${DESTTREE} has been banned for EAPI '${EAPI}'; use 'into' instead"
else
# backwards compatibility
_E_DESTTREE_=${DESTTREE}
@@ -27,11 +27,11 @@ if [[ -n ${ABI} && -n ${!LIBDIR_VAR} ]] ; then
CONF_LIBDIR=${!LIBDIR_VAR}
fi
unset LIBDIR_VAR
-# we need this to default to lib so that things dont break
+
+# We need this to default to lib so that things dont break
CONF_LIBDIR=${CONF_LIBDIR:-lib}
libdir="${ED%/}/${_E_DESTTREE_#/}/${CONF_LIBDIR}"
-
if [[ $# -lt 1 ]] ; then
__helpers_die "${0##*/}: at least one argument needed"
exit 1
@@ -56,5 +56,5 @@ for x in "$@" ; do
((ret|=$?))
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ebuild-helpers/doman b/bin/ebuild-helpers/doman
index c2418ce40..67945f48b 100755
--- a/bin/ebuild-helpers/doman
+++ b/bin/ebuild-helpers/doman
@@ -22,6 +22,7 @@ for x in "$@" ; do
i18n=${x:6}/
continue
fi
+
if [[ ${x:0:6} == ".keep_" ]] ; then
continue
fi
@@ -35,9 +36,8 @@ for x in "$@" ; do
suffix=${realname##*.}
fi
- if has "${EAPI:-0}" 2 3 || [[ -z ${i18n} ]] \
- && ! has "${EAPI:-0}" 0 1 \
- && [[ $x =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?)\.(.*) ]]
+ if has "${EAPI:-0}" 2 3 || [[ -z ${i18n} ]] && ! has "${EAPI:-0}" 0 1 \
+ && [[ ${x} =~ (.*)\.([a-z][a-z](_[A-Z][A-Z])?)\.(.*) ]]
then
name=${BASH_REMATCH[1]##*/}.${BASH_REMATCH[4]}
mandir=${BASH_REMATCH[2]}/man${suffix:0:1}
@@ -56,7 +56,7 @@ for x in "$@" ; do
install -m0644 "${x}" "${ED%/}/usr/share/man/${mandir}/${name}"
((ret|=$?))
elif [[ ! -e ${x} ]] ; then
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!! ${0##*/}: ${x} does not exist" 1>&2
((ret|=1))
fi
else
@@ -65,5 +65,5 @@ for x in "$@" ; do
fi
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ebuild-helpers/domo b/bin/ebuild-helpers/domo
index 474bb7e1d..d864bed29 100755
--- a/bin/ebuild-helpers/domo
+++ b/bin/ebuild-helpers/domo
@@ -16,7 +16,7 @@ fi
if ! ___eapi_has_DESTTREE_INSDESTTREE; then
[[ -n ${DESTTREE} ]] &&
- die "${0##*/}: \${DESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
+ die "${0##*/}: \${DESTTREE} has been banned for EAPI '${EAPI}'; use 'into' instead"
else
# backwards compatibility
_E_DESTTREE_=${DESTTREE}
@@ -42,11 +42,11 @@ for x in "$@" ; do
fi
install -m0644 "${x}" "${mydir}/${MOPREFIX}.mo"
else
- echo "!!! ${0##*/}: $x does not exist" 1>&2
+ echo "!!! ${0##*/}: ${x} does not exist" 1>&2
false
fi
((ret|=$?))
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/dosbin b/bin/ebuild-helpers/dosbin
index 1ff253bb1..4d2c8540b 100755
--- a/bin/ebuild-helpers/dosbin
+++ b/bin/ebuild-helpers/dosbin
@@ -15,7 +15,7 @@ fi
if ! ___eapi_has_DESTTREE_INSDESTTREE; then
[[ -n ${DESTTREE} ]] &&
- die "${0##*/}: \${DESTTREE} has been banned for EAPI '$EAPI'; use 'into' instead"
+ die "${0##*/}: \${DESTTREE} has been banned for EAPI '${EAPI}'; use 'into' instead"
else
# backwards compatibility
_E_DESTTREE_=${DESTTREE}
@@ -37,5 +37,5 @@ for x in "$@" ; do
((ret|=$?))
done
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ebuild-helpers/dosed b/bin/ebuild-helpers/dosed
index d3c249352..748ab414a 100755
--- a/bin/ebuild-helpers/dosed
+++ b/bin/ebuild-helpers/dosed
@@ -5,7 +5,7 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if ! ___eapi_has_dosed; then
- die "'${0##*/}' has been banned for EAPI '$EAPI'"
+ die "'${0##*/}' has been banned for EAPI '${EAPI}'"
exit 1
fi
@@ -38,9 +38,9 @@ for x in "$@" ; do
fi
done
-if [ $file_found = 0 ] ; then
- echo "!!! ${0##*/}: $y does not exist" 1>&2
+if [ ${file_found} = 0 ] ; then
+ echo "!!! ${0##*/}: ${y} does not exist" 1>&2
((ret|=1))
fi
-exit $ret
+exit ${ret}
diff --git a/bin/ebuild-helpers/dosym b/bin/ebuild-helpers/dosym
index 69a4a1ebe..e41558a15 100755
--- a/bin/ebuild-helpers/dosym
+++ b/bin/ebuild-helpers/dosym
@@ -5,7 +5,7 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
option_r=
-if ___eapi_has_dosym_r && [[ $1 == -r ]]; then
+if ___eapi_has_dosym_r && [[ ${1} == -r ]]; then
option_r=t
shift
fi
@@ -24,7 +24,7 @@ if [[ ${2} == */ ]] || [[ -d ${ED%/}/${2#/} && ! -L ${ED%/}/${2#/} ]] ; then
__helpers_die "${0##*/}: dosym target omits basename: '${2}'"
fi
-target=$1
+target=${1}
if [[ ${option_r} ]]; then
# Transparent bash-only replacement for GNU "realpath -m -s".
@@ -33,8 +33,8 @@ if [[ ${option_r} ]]; then
dosym_canonicalize() {
local path slash i prev out IFS=/
- path=( $1 )
- [[ $1 == /* ]] && slash=/
+ path=( ${1} )
+ [[ ${1} == /* ]] && slash=/
while true; do
# Find first instance of non-".." path component followed by "..",
@@ -87,6 +87,6 @@ destdir=${2%/*}
[[ ! -d ${ED%/}/${destdir#/} ]] && dodir "${destdir}"
ln -snf "${target}" "${ED%/}/${2#/}"
-ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+ret=${?}
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/fowners b/bin/ebuild-helpers/fowners
index c6ed36ed3..d245062e7 100755
--- a/bin/ebuild-helpers/fowners
+++ b/bin/ebuild-helpers/fowners
@@ -11,10 +11,12 @@ fi
got_owner=
for arg; do
[[ ${arg} == -* ]] && continue
+
if [[ ! ${got_owner} ]]; then
got_owner=1
continue
fi
+
if [[ ${arg} != /* ]]; then
eqawarn "Relative path passed to '${0##*/}': ${arg}"
eqawarn "This is unsupported. Please use 'chown' when you need to work on files"
@@ -29,5 +31,5 @@ slash="/"
chown "${@/#${slash}/${ED%/}${slash}}"
ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/fperms b/bin/ebuild-helpers/fperms
index 9620cc06a..9e5da5d16 100755
--- a/bin/ebuild-helpers/fperms
+++ b/bin/ebuild-helpers/fperms
@@ -12,10 +12,12 @@ got_mode=
for arg; do
# - can either be an option or a mode string
[[ ${arg} == -* && ${arg} != -[ugorwxXst] ]] && continue
+
if [[ ! ${got_mode} ]]; then
got_mode=1
continue
fi
+
if [[ ${arg} != /* ]]; then
eqawarn "Relative path passed to '${0##*/}': ${arg}"
eqawarn "This is unsupported. Please use 'chmod' when you need to work on files"
@@ -28,5 +30,5 @@ done
slash="/"
chmod "${@/#${slash}/${ED%/}${slash}}"
ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/newins
index d05d688ac..02186a6b3 100755
--- a/bin/ebuild-helpers/newins
+++ b/bin/ebuild-helpers/newins
@@ -15,7 +15,7 @@ fi
eqawarn "QA Notice: ${helper} called with more than 2 arguments: ${*:3}"
stdin=
-if ___eapi_newins_supports_reading_from_standard_input && [[ $1 == "-" ]]; then
+if ___eapi_newins_supports_reading_from_standard_input && [[ ${1} == "-" ]]; then
stdin=yes
fi
@@ -27,11 +27,11 @@ if [[ ${stdin} ]] ; then
__helpers_die "!!! ${helper}: Input is from a terminal"
exit 1
fi
- cat > "${TMP}/$2"
+ cat > "${TMP}/${2}"
ret=$?
else
if [[ ! -e $1 ]] ; then
- __helpers_die "!!! ${helper}: $1 does not exist"
+ __helpers_die "!!! ${helper}: ${1} does not exist"
exit 1
fi
@@ -42,7 +42,7 @@ else
fi
fi
- cp ${cp_args} "$1" "${TMP}/$2"
+ cp ${cp_args} "${1}" "${TMP}/$2"
ret=$?
fi
@@ -51,7 +51,7 @@ if [[ ${ret} -ne 0 ]] ; then
exit ${ret}
fi
-do${helper#new} "${TMP}/$2"
+do${helper#new} "${TMP}/${2}"
ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${helper} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${helper} failed"
+exit ${ret}
diff --git a/bin/ebuild-helpers/portageq b/bin/ebuild-helpers/portageq
index 199804f7b..7d14f54c2 100755
--- a/bin/ebuild-helpers/portageq
+++ b/bin/ebuild-helpers/portageq
@@ -15,6 +15,7 @@ for path in ${PATH}; do
[[ -x ${path}/${scriptname} ]] || continue
[[ ${path} == */portage/*/ebuild-helpers* ]] && continue
[[ ${path}/${scriptname} -ef ${scriptpath} ]] && continue
+
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
exec "${PORTAGE_PYTHON:-/usr/bin/python}" \
"${path}/${scriptname}" "$@"
diff --git a/bin/ebuild-helpers/prepallstrip b/bin/ebuild-helpers/prepallstrip
index 2bf567634..2f9c0f70e 100755
--- a/bin/ebuild-helpers/prepallstrip
+++ b/bin/ebuild-helpers/prepallstrip
@@ -5,7 +5,7 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if ___eapi_has_dostrip; then
- die "${0##*/}: ${0##*/} has been banned for EAPI '$EAPI'; use 'dostrip' instead"
+ die "${0##*/}: ${0##*/} has been banned for EAPI '${EAPI}'; use 'dostrip' instead"
fi
if ! ___eapi_has_prefix_variables; then
diff --git a/bin/ebuild-helpers/prepinfo b/bin/ebuild-helpers/prepinfo
index e771c97aa..9e509e8ca 100755
--- a/bin/ebuild-helpers/prepinfo
+++ b/bin/ebuild-helpers/prepinfo
@@ -8,7 +8,7 @@ if ! ___eapi_has_prefix_variables; then
ED=${D}
fi
-if [[ -z $1 ]] ; then
+if [[ -z ${1} ]] ; then
infodir="/usr/share/info"
else
if [[ -d ${ED%/}/${1#/}/share/info ]] ; then
@@ -31,6 +31,7 @@ find "${ED%/}/${infodir#/}" -type d -print0 | while read -r -d $'\0' x ; do
for f in "${x}"/.keepinfodir*; do
[[ -e ${f} ]] && continue 2
done
+
rm -f "${x}"/dir{,.info}{,.gz,.bz2}
done
diff --git a/bin/ebuild-helpers/prepstrip b/bin/ebuild-helpers/prepstrip
index 9b523517c..789296050 100755
--- a/bin/ebuild-helpers/prepstrip
+++ b/bin/ebuild-helpers/prepstrip
@@ -5,7 +5,7 @@
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
if ___eapi_has_dostrip; then
- die "${0##*/}: ${0##*/} has been banned for EAPI '$EAPI'; use 'dostrip' instead"
+ die "${0##*/}: ${0##*/} has been banned for EAPI '${EAPI}'; use 'dostrip' instead"
fi
__PORTAGE_HELPER=prepstrip exec "${PORTAGE_BIN_PATH}"/estrip "${@}"
diff --git a/bin/ebuild-helpers/unprivileged/chown b/bin/ebuild-helpers/unprivileged/chown
index 572664324..0788a8b15 100755
--- a/bin/ebuild-helpers/unprivileged/chown
+++ b/bin/ebuild-helpers/unprivileged/chown
@@ -13,10 +13,10 @@ for path in ${PATH}; do
[[ -x ${path}/${scriptname} ]] || continue
[[ ${path} == */portage/*/ebuild-helpers* ]] && continue
[[ ${path}/${scriptname} -ef ${scriptpath} ]] && continue
+
IFS=$' \t\n'
output=$("${path}/${scriptname}" "$@" 2>&1)
if [[ $? -ne 0 ]] ; then
-
# Avoid an extreme performance problem when the
# output is very long (bug #470992).
if [[ $(wc -l <<< "${output}") -gt 100 ]]; then
@@ -27,6 +27,7 @@ for path in ${PATH}; do
if ! ___eapi_has_prefix_variables; then
EPREFIX=
fi
+
msg="${scriptname} failure ignored with unprivileged user:\n ${scriptname} $*\n ${output}"
# Reverse expansion of ${D} and ${EPREFIX}, for readability.
msg=${msg//${D}/'${D}'}
diff --git a/bin/ebuild-helpers/xattr/install b/bin/ebuild-helpers/xattr/install
index ebc68645e..52ecf5a53 100755
--- a/bin/ebuild-helpers/xattr/install
+++ b/bin/ebuild-helpers/xattr/install
@@ -23,7 +23,7 @@ else
fi
# Filter internal portage paths from PATH, in order to avoid
-# a possible exec loop or fork bomb (see bug 547086).
+# a possible exec loop or fork bomb (see bug #547086).
IFS=':'
set -f
path=
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index 6bb5d45b7..417bca78a 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -53,7 +53,7 @@ __check_bash_version() {
}
__check_bash_version
-if [[ $EBUILD_PHASE != depend ]] ; then
+if [[ ${EBUILD_PHASE} != depend ]] ; then
source "${PORTAGE_BIN_PATH}/phase-functions.sh" || die
source "${PORTAGE_BIN_PATH}/save-ebuild-env.sh" || die
source "${PORTAGE_BIN_PATH}/phase-helpers.sh" || die
@@ -104,29 +104,29 @@ export PORTAGE_BZIP2_COMMAND=${PORTAGE_BZIP2_COMMAND:-bzip2}
# when they are done.
__qa_source() {
- local shopts=$(shopt) OLDIFS="$IFS"
+ local shopts=$(shopt) OLDIFS="${IFS}"
local retval
source "$@"
retval=$?
set +e
- [[ $shopts != $(shopt) ]] &&
+ [[ ${shopts} != $(shopt) ]] &&
eqawarn "QA Notice: Global shell options changed and were not restored while sourcing '$*'"
- [[ "$IFS" != "$OLDIFS" ]] &&
+ [[ "${IFS}" != "${OLDIFS}" ]] &&
eqawarn "QA Notice: Global IFS changed and was not restored while sourcing '$*'"
- return $retval
+ return ${retval}
}
__qa_call() {
- local shopts=$(shopt) OLDIFS="$IFS"
+ local shopts=$(shopt) OLDIFS="${IFS}"
local retval
"$@"
retval=$?
set +e
- [[ $shopts != $(shopt) ]] &&
+ [[ ${shopts} != $(shopt) ]] &&
eqawarn "QA Notice: Global shell options changed and were not restored while calling '$*'"
- [[ "$IFS" != "$OLDIFS" ]] &&
+ [[ "${IFS}" != "${OLDIFS}" ]] &&
eqawarn "QA Notice: Global IFS changed and was not restored while calling '$*'"
- return $retval
+ return ${retval}
}
EBUILD_SH_ARGS="$*"
@@ -142,7 +142,7 @@ if ___eapi_has_ENV_UNSET; then
unset x
fi
-[[ $PORTAGE_QUIET != "" ]] && export PORTAGE_QUIET
+[[ ${PORTAGE_QUIET} != "" ]] && export PORTAGE_QUIET
# sandbox support functions; defined prior to profile.bashrc srcing, since the profile might need to add a default exception (e.g. /usr/lib64/conftest)
__sb_append_var() {
@@ -164,11 +164,11 @@ addread "/:${PORTAGE_TMPDIR}/portage"
[[ -n ${PORTAGE_GPG_DIR} ]] && addpredict "${PORTAGE_GPG_DIR}"
# Avoid sandbox violations in temporary directories.
-if [[ -w $T ]] ; then
- export TEMP=$T
- export TMP=$T
- export TMPDIR=$T
-elif [[ $SANDBOX_ON = 1 ]] ; then
+if [[ -w ${T} ]] ; then
+ export TEMP=${T}
+ export TMP=${T}
+ export TMPDIR=${T}
+elif [[ ${SANDBOX_ON} = 1 ]] ; then
for x in TEMP TMP TMPDIR ; do
[[ -n ${!x} ]] && addwrite "${!x}"
done
@@ -178,7 +178,7 @@ fi
# The sandbox is disabled by default except when overridden in the relevant stages
export SANDBOX_ON=0
-# Ensure that $PWD is sane whenever possible, to protect against
+# Ensure that ${PWD} is sane whenever possible, to protect against
# exploitation of insecure search path for python -c in ebuilds.
# See bug #239560, bug #469338, and bug #595028.
# EAPI 8 requires us to use an empty directory here.
@@ -196,9 +196,9 @@ umask 022
# Sources all eclasses in parameters
declare -ix ECLASS_DEPTH=0
inherit() {
- ECLASS_DEPTH=$(($ECLASS_DEPTH + 1))
+ ECLASS_DEPTH=$((${ECLASS_DEPTH} + 1))
if [[ ${ECLASS_DEPTH} -gt 1 ]]; then
- debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})"
+ debug-print "*** Multiple Inheritance (Level: ${ECLASS_DEPTH})"
# Since ECLASS_DEPTH > 1, the following variables are locals from the
# previous inherit call in the call stack.
@@ -224,13 +224,13 @@ inherit() {
local B_IDEPEND
local B_PROPERTIES
local B_RESTRICT
- while [[ "$1" ]]; do
+ while [[ "${1}" ]]; do
location=""
potential_location=""
- ECLASS="$1"
- __export_funcs_var=__export_functions_$ECLASS_DEPTH
- unset $__export_funcs_var
+ ECLASS="${1}"
+ __export_funcs_var=__export_functions_${ECLASS_DEPTH}
+ unset ${__export_funcs_var}
if [[ ${EBUILD_PHASE} != depend && ${EBUILD_PHASE} != nofetch && \
${EBUILD_PHASE} != *rm && ${EMERGE_FROM} != "binary" && \
@@ -242,8 +242,8 @@ inherit() {
# disabled for nofetch, since that can be called by repoman and
# that triggers bug #407449 due to repoman not exporting
# non-essential variables such as INHERITED.
- if ! has $ECLASS $INHERITED $__INHERITED_QA_CACHE ; then
- eqawarn "QA Notice: ECLASS '$ECLASS' inherited illegally in $CATEGORY/$PF $EBUILD_PHASE"
+ if ! has ${ECLASS} ${INHERITED} ${__INHERITED_QA_CACHE} ; then
+ eqawarn "QA Notice: Eclass '${ECLASS}' inherited illegally in ${CATEGORY}/${PF} ${EBUILD_PHASE}"
fi
fi
@@ -255,7 +255,7 @@ inherit() {
break
fi
done
- debug-print "inherit: $1 -> $location"
+ debug-print "inherit: ${1} -> ${location}"
[[ -z ${location} ]] && die "${1}.eclass could not be found by inherit()"
# Inherits in QA checks can't handle metadata assignments
@@ -287,11 +287,11 @@ inherit() {
unset RESTRICT
fi
- #turn on glob expansion
+ # Turn on glob expansion
set +f
fi
- __qa_source "$location" || die "died sourcing $location in inherit()"
+ __qa_source "${location}" || die "died sourcing ${location} in inherit()"
if [[ -z ${_IN_INSTALL_QA_CHECK} ]]; then
# Turn off glob expansion
@@ -350,15 +350,15 @@ inherit() {
if [[ -n ${!__export_funcs_var} ]] ; then
for x in ${!__export_funcs_var} ; do
- debug-print "EXPORT_FUNCTIONS: $x -> ${ECLASS}_$x"
- declare -F "${ECLASS}_$x" >/dev/null || \
- die "EXPORT_FUNCTIONS: ${ECLASS}_$x is not defined"
- eval "$x() { ${ECLASS}_$x \"\$@\" ; }" > /dev/null
+ debug-print "EXPORT_FUNCTIONS: ${x} -> ${ECLASS}_${x}"
+ declare -F "${ECLASS}_${x}" >/dev/null || \
+ die "EXPORT_FUNCTIONS: ${ECLASS}_${x} is not defined"
+ eval "$x() { ${ECLASS}_${x} \"\$@\" ; }" > /dev/null
done
fi
unset $__export_funcs_var
- has $1 $INHERITED || export INHERITED="$INHERITED $1"
+ has $1 ${INHERITED} || export INHERITED="${INHERITED} $1"
if [[ ${ECLASS_DEPTH} -eq 1 ]]; then
export PORTAGE_EXPLICIT_INHERIT="${PORTAGE_EXPLICIT_INHERIT} $1"
fi
@@ -375,10 +375,10 @@ inherit() {
# code will be eval'd:
# src_unpack() { base_src_unpack; }
EXPORT_FUNCTIONS() {
- if [[ -z "$ECLASS" ]]; then
+ if [[ -z "${ECLASS}" ]]; then
die "EXPORT_FUNCTIONS without a defined ECLASS"
fi
- eval $__export_funcs_var+=\" $*\"
+ eval ${__export_funcs_var}+=\" $*\"
}
PORTAGE_BASHRCS_SOURCED=0
@@ -395,24 +395,25 @@ PORTAGE_BASHRCS_SOURCED=0
# function for the current phase.
#
__source_all_bashrcs() {
- [[ $PORTAGE_BASHRCS_SOURCED = 1 ]] && return 0
+ [[ ${PORTAGE_BASHRCS_SOURCED} = 1 ]] && return 0
+
PORTAGE_BASHRCS_SOURCED=1
- local x
+ local x
local OCC="${CC}" OCXX="${CXX}"
- if [[ $EBUILD_PHASE != depend ]] ; then
- # source the existing profile.bashrcs.
+ if [[ ${EBUILD_PHASE} != depend ]] ; then
+ # Source the existing profile.bashrcs.
while read -r x; do
__try_source "${x}"
done <<<"${PORTAGE_BASHRC_FILES}"
fi
- # The user's bashrc is the ONLY non-portage bit of code
+ # The user's bashrc is the ONLY non-Portage bit of code
# that can change shopts without a QA violation.
__try_source --no-qa "${PORTAGE_BASHRC}"
- if [[ $EBUILD_PHASE != depend ]] ; then
+ if [[ ${EBUILD_PHASE} != depend ]] ; then
__source_env_files --no-qa "${PM_EBUILD_HOOK_DIR}"
fi
@@ -428,10 +429,11 @@ __source_all_bashrcs() {
# files.
__source_env_files() {
local argument=()
- if [[ $1 == --no-qa ]]; then
+ if [[ ${1} == --no-qa ]]; then
argument=( --no-qa )
- shift
+ shift
fi
+
for x in "${1}"/${CATEGORY}/{${PN},${PN}:${SLOT%/*},${P},${PF}}; do
__try_source "${argument[@]}" "${x}"
done
@@ -445,25 +447,28 @@ __source_env_files() {
# If --no-qa is specified, source the file with source instead of __qa_source.
__try_source() {
local qa=true
- if [[ $1 == --no-qa ]]; then
+ if [[ ${1} == --no-qa ]]; then
qa=false
shift
fi
- if [[ -r $1 && -f $1 ]]; then
+
+ if [[ -r ${1} && -f ${1} ]]; then
local debug_on=false
- if [[ "$PORTAGE_DEBUG" == "1" ]] && [[ "${-/x/}" == "$-" ]]; then
+
+ if [[ "${PORTAGE_DEBUG}" == "1" ]] && [[ "${-/x/}" == "$-" ]]; then
debug_on=true
fi
- $debug_on && set -x
+
+ ${debug_on} && set -x
# If $- contains x, then tracing has already been enabled
- # elsewhere for some reason. We preserve it's state so as
+ # elsewhere for some reason. We preserve its state so as
# not to interfere.
if ! ${qa} ; then
source "${1}"
else
__qa_source "${1}"
fi
- $debug_on && set +x
+ ${debug_on} && set +x
fi
}
# === === === === === === === === === === === === === === === === === ===
@@ -497,7 +502,7 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
fi
if [[ ${EBUILD_PHASE} == depend ]] ; then
FUNC_SRC="${BIN}() {
- if [[ \$ECLASS_DEPTH -gt 0 ]]; then
+ if [[ \${ECLASS_DEPTH} -gt 0 ]]; then
eqawarn \"QA Notice: '${BIN}' called in global scope: eclass \${ECLASS}\"
else
eqawarn \"QA Notice: '${BIN}' called in global scope: \${CATEGORY}/\${PF}\"
@@ -521,7 +526,7 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
${BODY}
}"
fi
- eval "$FUNC_SRC" || echo "error creating QA interceptor ${BIN}" >&2
+ eval "${FUNC_SRC}" || echo "error creating QA interceptor ${BIN}" >&2
done
unset BIN_PATH BIN BODY FUNC_SRC
fi
@@ -530,23 +535,22 @@ fi
export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
trap 'exit 1' SIGTERM
-if ! has "$EBUILD_PHASE" clean cleanrm depend && \
- ! [[ $EMERGE_FROM = ebuild && $EBUILD_PHASE = setup ]] && \
- [[ -f "${T}"/environment ]]; then
+if ! has "${EBUILD_PHASE}" clean cleanrm depend && ! [[ ${EMERGE_FROM} = ebuild && ${EBUILD_PHASE} = setup ]] && [[ -f "${T}"/environment ]]; then
# The environment may have been extracted from environment.bz2 or
# may have come from another version of ebuild.sh or something.
# In any case, preprocess it to prevent any potential interference.
# NOTE: export ${FOO}=... requires quoting, unlike normal exports
- __preprocess_ebuild_env || \
- die "error processing environment"
+ __preprocess_ebuild_env || die "error processing environment"
+
# Colon separated SANDBOX_* variables need to be cumulative.
for x in SANDBOX_DENY SANDBOX_READ SANDBOX_PREDICT SANDBOX_WRITE ; do
export PORTAGE_${x}="${!x}"
done
PORTAGE_SANDBOX_ON=${SANDBOX_ON}
export SANDBOX_ON=1
- source "${T}"/environment || \
- die "error sourcing environment"
+
+ source "${T}"/environment || die "error sourcing environment"
+
# We have to temporarily disable sandbox since the
# SANDBOX_{DENY,READ,PREDICT,WRITE} values we've just loaded
# may be unusable (triggering in spurious sandbox violations)
@@ -557,17 +561,18 @@ if ! has "$EBUILD_PHASE" clean cleanrm depend && \
if [[ -z "${!x}" ]]; then
export ${x}="${!y}"
elif [[ -n "${!y}" && "${!y}" != "${!x}" ]]; then
- # filter out dupes
+ # Filter out dupes
export ${x}="$(printf "${!y}:${!x}" | tr ":" "\0" | \
sort -z -u | tr "\0" ":")"
fi
export ${x}="${!x%:}"
unset PORTAGE_${x}
done
+
unset x y
export SANDBOX_ON=${PORTAGE_SANDBOX_ON}
unset PORTAGE_SANDBOX_ON
- [[ -n $EAPI ]] || EAPI=0
+ [[ -n ${EAPI} ]] || EAPI=0
fi
# Convert quoted paths to array.
@@ -575,11 +580,9 @@ eval "PORTAGE_ECLASS_LOCATIONS=(${PORTAGE_ECLASS_LOCATIONS})"
# Source the ebuild every time for FEATURES=noauto, so that ebuild
# modifications take effect immediately.
-if ! has "$EBUILD_PHASE" clean cleanrm ; then
- if [[ $EBUILD_PHASE = setup && $EMERGE_FROM = ebuild ]] || \
- [[ $EBUILD_PHASE = depend || ! -f $T/environment || \
- -f $PORTAGE_BUILDDIR/.ebuild_changed || \
- " ${FEATURES} " == *" noauto "* ]] ; then
+if ! has "${EBUILD_PHASE}" clean cleanrm ; then
+ if [[ ${EBUILD_PHASE} = setup && ${EMERGE_FROM} = ebuild ]] || \
+ [[ ${EBUILD_PHASE} = depend || ! -f ${T}/environment || -f ${PORTAGE_BUILDDIR}/.ebuild_changed || " ${FEATURES} " == *" noauto "* ]] ; then
# The bashrcs get an opportunity here to set aliases that will be expanded
# during sourcing of ebuilds and eclasses.
__source_all_bashrcs
@@ -588,7 +591,7 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then
# from cache. In order to make INHERITED content independent of
# EBUILD_PHASE during inherit() calls, we unset INHERITED after
# we make a backup copy for QA checks.
- __INHERITED_QA_CACHE=$INHERITED
+ __INHERITED_QA_CACHE=${INHERITED}
# Catch failed globbing attempts in case ebuild writer forgot to
# escape '*' or likes.
@@ -607,11 +610,11 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then
unset E_RESTRICT PROVIDES_EXCLUDE REQUIRES_EXCLUDE
unset PORTAGE_EXPLICIT_INHERIT
- if [[ $PORTAGE_DEBUG != 1 || ${-/x/} != $- ]] ; then
- source "$EBUILD" || die "error sourcing ebuild"
+ if [[ ${PORTAGE_DEBUG} != 1 || ${-/x/} != $- ]] ; then
+ source "${EBUILD}" || die "error sourcing ebuild"
else
set -x
- source "$EBUILD" || die "error sourcing ebuild"
+ source "${EBUILD}" || die "error sourcing ebuild"
set +x
fi
@@ -651,11 +654,10 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then
if [[ "${EBUILD_PHASE}" != "depend" ]] ; then
PROPERTIES=${PORTAGE_PROPERTIES}
RESTRICT=${PORTAGE_RESTRICT}
- [[ -e $PORTAGE_BUILDDIR/.ebuild_changed ]] && \
- rm "$PORTAGE_BUILDDIR/.ebuild_changed"
+ [[ -e ${PORTAGE_BUILDDIR}/.ebuild_changed ]] && rm "${PORTAGE_BUILDDIR}/.ebuild_changed"
fi
- # alphabetically ordered by $EBUILD_PHASE value
+ # alphabetically ordered by ${EBUILD_PHASE} value
case ${EAPI} in
0|1)
_valid_phases="src_compile pkg_config pkg_info src_install
@@ -675,41 +677,39 @@ if ! has "$EBUILD_PHASE" clean cleanrm ; then
esac
DEFINED_PHASES=
- for _f in $_valid_phases ; do
- if declare -F $_f >/dev/null ; then
+ for _f in ${_valid_phases} ; do
+ if declare -F ${_f} >/dev/null ; then
_f=${_f#pkg_}
DEFINED_PHASES+=" ${_f#src_}"
fi
done
- [[ -n $DEFINED_PHASES ]] || DEFINED_PHASES=-
+ [[ -n ${DEFINED_PHASES} ]] || DEFINED_PHASES=-
unset _f _valid_phases
- if [[ $EBUILD_PHASE != depend ]] ; then
+ if [[ ${EBUILD_PHASE} != depend ]] ; then
- if has distcc $FEATURES ; then
- [[ -n $DISTCC_LOG ]] && addwrite "${DISTCC_LOG%/*}"
+ if has distcc ${FEATURES} ; then
+ [[ -n ${DISTCC_LOG} ]] && addwrite "${DISTCC_LOG%/*}"
fi
- if has ccache $FEATURES ; then
-
- if [[ -n $CCACHE_DIR ]] ; then
- addread "$CCACHE_DIR"
- addwrite "$CCACHE_DIR"
+ if has ccache ${FEATURES} ; then
+ if [[ -n ${CCACHE_DIR} ]] ; then
+ addread "${CCACHE_DIR}"
+ addwrite "${CCACHE_DIR}"
fi
- [[ -n $CCACHE_SIZE ]] && ccache -M $CCACHE_SIZE &> /dev/null
+ [[ -n ${CCACHE_SIZE} ]] && ccache -M ${CCACHE_SIZE} &> /dev/null
fi
fi
fi
fi
-if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT}
-then
+if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT} ; then
export DEBUGBUILD=1
fi
-if [[ $EBUILD_PHASE = depend ]] ; then
+if [[ ${EBUILD_PHASE} = depend ]] ; then
export SANDBOX_ON="0"
set -f
@@ -737,10 +737,11 @@ if [[ $EBUILD_PHASE = depend ]] ; then
else
# Note: readonly variables interfere with __preprocess_ebuild_env(), so
# declare them only after it has already run.
- declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS
+ declare -r ${PORTAGE_READONLY_METADATA} ${PORTAGE_READONLY_VARS}
if ___eapi_has_prefix_variables; then
declare -r ED EPREFIX EROOT
fi
+
if ___eapi_has_BROOT; then
declare -r BROOT
fi
@@ -749,11 +750,12 @@ else
# then it might not have USE=test like it's supposed to here.
if [[ ${EBUILD_PHASE} == test && ${EBUILD_FORCE_TEST} == 1 ]] &&
___in_portage_iuse test && ! has test ${USE} ; then
+
export USE="${USE} test"
fi
declare -r USE
- if [[ -n $EBUILD_SH_ARGS ]] ; then
+ if [[ -n ${EBUILD_SH_ARGS} ]] ; then
(
# Don't allow subprocesses to inherit the pipe which
# emerge uses to monitor ebuild.sh.
diff --git a/bin/ecompress b/bin/ecompress
index 30d7888cd..0aa5091dd 100755
--- a/bin/ecompress
+++ b/bin/ecompress
@@ -129,20 +129,24 @@ fi
guess_suffix() {
set -e
+
tmpdir="${T}"/.ecompress$$.${RANDOM}
mkdir "${tmpdir}"
cd "${tmpdir}"
- # we have to fill the file enough so that there is something
+
+ # We have to fill the file enough so that there is something
# to compress as some programs will refuse to do compression
# if it cannot actually compress the file
echo {0..1000} > compressme
${PORTAGE_COMPRESS} ${PORTAGE_COMPRESS_FLAGS} compressme > /dev/null
+
# If PORTAGE_COMPRESS_FLAGS contains -k then we need to avoid
# having our glob match the uncompressed file here.
suffix=$(echo compressme.*)
- [[ -z $suffix || "$suffix" == "compressme.*" ]] && \
+ [[ -z ${suffix} || "${suffix}" == "compressme.*" ]] && \
suffix=$(echo compressme*)
suffix=${suffix#compressme}
+
cd /
rm -rf "${tmpdir}"
echo "${suffix}"
@@ -159,6 +163,7 @@ fix_symlinks() {
local something_changed=
while read -r -d $'\0' brokenlink ; do
[[ -e ${brokenlink} ]] && continue
+
olddest=$(readlink "${brokenlink}")
newdest=${olddest}${PORTAGE_COMPRESS_SUFFIX}
if [[ "${newdest}" == /* ]] ; then
@@ -166,6 +171,7 @@ fix_symlinks() {
else
[[ -f "${brokenlink%/*}/${newdest}" ]] || continue
fi
+
something_changed=${brokenlink}
rm -f "${brokenlink}" &&
ln -snf "${newdest}" "${brokenlink}${PORTAGE_COMPRESS_SUFFIX}"
@@ -174,6 +180,7 @@ fix_symlinks() {
[[ -n ${something_changed} ]] || break
(( indirection++ ))
+
if (( indirection >= 100 )) ; then
# Protect against possibility of a bug triggering an endless loop.
eerror "ecompress: too many levels of indirection for" \
@@ -207,6 +214,6 @@ fi
fix_symlinks
: $(( ret |= ${?} ))
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
exit ${ret}
diff --git a/bin/ecompress-file b/bin/ecompress-file
index 1943ca102..3cee5f90a 100755
--- a/bin/ecompress-file
+++ b/bin/ecompress-file
@@ -6,19 +6,21 @@ source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
compress_file() {
mask_ext_re=""
+
set -f
local x
- for x in $PORTAGE_COMPRESS_EXCLUDE_SUFFIXES ; do
- mask_ext_re+="|$x"
+ for x in ${PORTAGE_COMPRESS_EXCLUDE_SUFFIXES} ; do
+ mask_ext_re+="|${x}"
done
set +f
+
mask_ext_re="^(${mask_ext_re:1})\$"
local filtered_args=()
for x in "$@" ; do
- [[ ${x##*.} =~ $mask_ext_re ]] && continue
+ [[ ${x##*.} =~ ${mask_ext_re} ]] && continue
[[ -s ${x} ]] || continue
- # handle precompressed files
+ # Handle precompressed files
case ${x} in
*.gz|*.Z)
gunzip -f "${x}" || __helpers_die "gunzip failed"
@@ -34,7 +36,7 @@ compress_file() {
x=${x%.lz};;
esac
- filtered_args+=( "$x" )
+ filtered_args+=( "${x}" )
done
[[ ${#filtered_args[@]} -eq 0 ]] && return 0
set -- "${filtered_args[@]}"
@@ -53,8 +55,9 @@ compress_file() {
# Finally, let's actually do some real work
"${PORTAGE_COMPRESS}" ${PORTAGE_COMPRESS_FLAGS} "$@"
+
ret=$?
- [[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
+ [[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
return ${ret}
}
diff --git a/bin/egencache b/bin/egencache
index 842f453ea..4d920ea3b 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -879,10 +879,10 @@ class GenChangeLogs:
# --work-tree=... must be passed to Git if GIT_DIR is used
# and GIT_DIR is not a child of the root of the checkout
# eg:
- # GIT_DIR=$parent/work/.git/
- # work-tree=$parent/staging/
+ # GIT_DIR=${parent}/work/.git/
+ # work-tree=${parent}/staging/
# If work-tree is not passed, Git tries to use the shared
- # parent of the current directory and the $GIT_DIR, which can
+ # parent of the current directory and the ${GIT_DIR}, which can
# be outside the root of the checkout.
self._work_tree = "--work-tree=%s" % self._repo_path
@@ -960,7 +960,7 @@ class GenChangeLogs:
# --no-renames to avoid getting more complex records on the list
# --format to get the timestamp, author and commit description
# --root to make it work fine even with the initial commit
- # --relative=$cp to get paths relative to ebuilddir
+ # --relative=${cp} to get paths relative to ebuilddir
# -r (recursive) to get per-file changes
# then the commit-id and path.
diff --git a/bin/emerge-webrsync b/bin/emerge-webrsync
index 811bfccb7..7fb98900d 100755
--- a/bin/emerge-webrsync
+++ b/bin/emerge-webrsync
@@ -20,8 +20,8 @@
# Alternative (legacy) PORTAGE_GPG_DIR configuration:
# gpg key import
# KEY_ID=0x96D8BF6D
-# gpg --homedir /etc/portage/gnupg --keyserver subkeys.pgp.net --recv-keys $KEY_ID
-# gpg --homedir /etc/portage/gnupg --edit-key $KEY_ID trust
+# gpg --homedir /etc/portage/gnupg --keyserver subkeys.pgp.net --recv-keys ${KEY_ID}
+# gpg --homedir /etc/portage/gnupg --edit-key ${KEY_ID} trust
#
# Only echo if in verbose mode
@@ -46,6 +46,7 @@ else
eecho "could not find 'portageq'; aborting"
exit 1
fi
+
eval "$("${portageq}" envvar -v DISTDIR EPREFIX FEATURES \
FETCHCOMMAND GENTOO_MIRRORS \
PORTAGE_BIN_PATH PORTAGE_CONFIGROOT PORTAGE_GPG_DIR \
@@ -67,7 +68,7 @@ repo_sync_type=$(__repo_attr "${repo_name}" sync-type)
# If PORTAGE_NICENESS is overriden via the env then it will
# still pass through the portageq call and override properly.
if [ -n "${PORTAGE_NICENESS}" ]; then
- renice $PORTAGE_NICENESS $$ > /dev/null
+ renice ${PORTAGE_NICENESS} $$ > /dev/null
fi
do_verbose=0
@@ -83,6 +84,7 @@ fi
if [[ -n ${PORTAGE_TEMP_GPG_DIR} ]] ||
has $(__repo_attr "${repo_name}" sync-webrsync-verify-signature |
LC_ALL=C tr '[:upper:]' '[:lower:]') true yes; then
+
# If FEATURES=webrsync-gpg is enabled then allow direct emerge-webrsync
# calls for backward compatibility (this triggers a deprecation warning
# above). Since direct emerge-webrsync calls do not use gemato for secure
@@ -92,12 +94,14 @@ if [[ -n ${PORTAGE_TEMP_GPG_DIR} ]] ||
eecho "Do not call ${argv0##*/} directly, instead call emerge --sync or emaint sync."
exit 1
fi
+
WEBSYNC_VERIFY_SIGNATURE=1
elif has webrsync-gpg ${FEATURES}; then
WEBSYNC_VERIFY_SIGNATURE=1
else
WEBSYNC_VERIFY_SIGNATURE=0
fi
+
[[ -n ${PORTAGE_TEMP_GPG_DIR} ]] && PORTAGE_GPG_DIR=${PORTAGE_TEMP_GPG_DIR}
if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then
eecho "please set PORTAGE_GPG_DIR in make.conf"
@@ -105,8 +109,10 @@ if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 -a -z "${PORTAGE_GPG_DIR}" ]; then
fi
do_tar() {
- local file=$1; shift
+ local file=$1
+ shift
local decompressor
+
case ${file} in
*.xz) decompressor="xzcat" ;;
*.bz2) decompressor="bzcat" ;;
@@ -126,7 +132,7 @@ get_date_part() {
local utc_time_in_secs="$1"
local part="$2"
- if [[ ${USERLAND} == BSD ]] ; then
+ if [[ ${USERLAND} == BSD ]] ; then
date -r ${utc_time_in_secs} -u +"${part}"
else
date -d @${utc_time_in_secs} -u +"${part}"
@@ -135,6 +141,7 @@ get_date_part() {
get_utc_second_from_string() {
local s="$1"
+
if [[ ${USERLAND} == BSD ]] ; then
# Specify zeros for the least significant digits, or else those
# digits are inherited from the current system clock time.
@@ -168,8 +175,9 @@ fetch_file() {
fi
__vecho "Fetching file ${FILE} ..."
- # already set DISTDIR=
+ # Already set DISTDIR=
eval "${FETCHCOMMAND} ${opts}"
+
if [[ $? -eq 0 && -s ${DISTDIR}/${FILE} ]] ; then
return 0
else
@@ -205,7 +213,6 @@ check_file_signature() {
local gnupg_status line
if [ ${WEBSYNC_VERIFY_SIGNATURE} != 0 ]; then
-
__vecho "Checking signature ..."
if type -P gpg > /dev/null; then
@@ -218,6 +225,7 @@ check_file_signature() {
fi
done <<< "${gnupg_status}"
fi
+
if [[ ${r} -ne 0 ]]; then
# Exit early since it's typically inappropriate to
# try other mirrors in this case (it may indicate
@@ -262,8 +270,10 @@ sync_local() {
if type -P tarsync > /dev/null ; then
local chown_opts="-o ${ownership%:*} -g ${ownership#*:}"
chown ${ownership} "${repo_location}" > /dev/null 2>&1 || chown_opts=""
+
if ! tarsync $(vvecho -v) -s 1 ${chown_opts} \
-e /distfiles -e /packages -e /local "${file}" "${repo_location}"; then
+
eecho "tarsync failed; tarball is corrupt? (${file})"
return 1
fi
@@ -281,6 +291,7 @@ sync_local() {
chown -R ${ownership} .
rsync_opts+=" --owner --group"
fi
+
chmod 755 .
rsync ${rsync_opts} . "${repo_location%%/}"
@@ -291,8 +302,10 @@ sync_local() {
__vecho "Updating cache ..."
emerge --metadata
fi
+
local post_sync=${PORTAGE_CONFIGROOT}etc/portage/bin/post_sync
[ -x "${post_sync}" ] && "${post_sync}"
+
# --quiet suppresses output if there are no relevant news items
has news ${FEATURES} && emerge --check-news --quiet
return 0
@@ -310,16 +323,17 @@ do_snapshot() {
local mirror
local compressions=""
+
type -P xzcat > /dev/null && compressions="${compressions} ${repo_name}:xz portage:xz"
type -P bzcat > /dev/null && compressions="${compressions} ${repo_name}:bz2 portage:bz2"
type -P zcat > /dev/null && compressions="${compressions} ${repo_name}:gz portage:gz"
+
if [[ -z ${compressions} ]] ; then
eecho "unable to locate any decompressors (xzcat or bzcat or zcat)"
exit 1
fi
for mirror in ${GENTOO_MIRRORS} ; do
-
mirror=${mirror%/}
__vecho "Trying to retrieve ${date} snapshot from ${mirror} ..."
@@ -351,7 +365,6 @@ do_snapshot() {
# from a different mirror
#
if [ ${have_files} -eq 1 ]; then
-
__vecho "Getting snapshot timestamp ..."
local snapshot_timestamp=$(get_snapshot_timestamp "${DISTDIR}/${file}")
diff --git a/bin/estrip b/bin/estrip
index 63bd46eb1..6935470d3 100755
--- a/bin/estrip
+++ b/bin/estrip
@@ -6,7 +6,7 @@ source "${PORTAGE_BIN_PATH}"/helper-functions.sh || exit 1
# avoid multiple calls to `has`. this creates things like:
# FEATURES_foo=false
-# if "foo" is not in $FEATURES
+# if "foo" is not in ${FEATURES}
tf() { "$@" && echo true || echo false ; }
exp_tf() {
local flag var=$1
@@ -104,6 +104,7 @@ if [[ ${KERNEL} == linux ]] && ${FEATURES_xattr} ; then
"${PORTAGE_PYTHON:-/usr/bin/python}" \
"${PORTAGE_BIN_PATH}/xattr-helper.py" --dump < <(echo -n "$1")
}
+
restore_xattrs() {
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
"${PORTAGE_PYTHON:-/usr/bin/python}" \
@@ -112,7 +113,7 @@ if [[ ${KERNEL} == linux ]] && ${FEATURES_xattr} ; then
fi
fi
-# look up the tools we might be using
+# Look up the tools we might be using
for t in STRIP:strip OBJCOPY:objcopy READELF:readelf RANLIB:ranlib ; do
v=${t%:*} # STRIP
t=${t#*:} # strip
@@ -147,6 +148,7 @@ if [[ -z ${debugedit} ]]; then
debugedit_paths=(
"${EPREFIX}/usr/libexec/rpm/debugedit"
)
+
for x in "${debugedit_paths[@]}"; do
if [[ -x ${x} ]]; then
debugedit=${x}
@@ -159,7 +161,7 @@ debugedit_warned=false
__multijob_init
-# Setup $T filesystem layout that we care about.
+# Setup ${T} filesystem layout that we care about.
tmpdir="${T}/prepstrip"
rm -rf "${tmpdir}"
mkdir -p "${tmpdir}"/{inodes,splitdebug,sources}
@@ -168,6 +170,7 @@ mkdir -p "${tmpdir}"/{inodes,splitdebug,sources}
save_elf_sources() {
${FEATURES_installsources} || return 0
${PORTAGE_RESTRICT_installsources} && return 0
+
if ! ${debugedit_found} ; then
if ! ${debugedit_warned} ; then
debugedit_warned=true
@@ -194,6 +197,7 @@ save_elf_sources() {
__try_symlink() {
local target=$1
local name=$2
+
# Check for an existing link before and after in case we are racing against
# another process.
[[ -L ${name} ]] ||
@@ -251,20 +255,23 @@ save_elf_debug() {
${OBJCOPY} ${objcopy_flags} "${src}" "${dst}" &&
${OBJCOPY} --add-gnu-debuglink="${dst}" "${src}"
fi
+
# Only do the following if the debug file was
# successfully created (see bug #446774).
if [[ $? -eq 0 ]] ; then
local args="a-x,o-w"
[[ -g ${src} || -u ${src} ]] && args+=",go-r"
chmod ${args} "${dst}"
- # symlink so we can read the name back.
+
+ # Symlink so we can read the name back.
__try_symlink "${dst}" "${inode_debug}"
- # if we don't already have build-id from debugedit, look it up
+ # If we don't already have build-id from debugedit, look it up
if [[ -z ${buildid} ]] ; then
# convert the readelf output to something useful
buildid=$(${READELF} -n "${src}" 2>/dev/null | awk '/Build ID:/{ print $NF; exit }')
fi
+
if [[ -n ${buildid} ]] ; then
local buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}"
local buildid_file="${buildid_dir}/${buildid:2}"
@@ -309,11 +316,11 @@ process_elf() {
fi
if ${strip_this} ; then
-
- # see if we can split & strip at the same time
+ # See if we can split & strip at the same time
if [[ -n ${SPLIT_STRIP_FLAGS} ]] ; then
local shortname="${x##*/}.debug"
local splitdebug="${tmpdir}/splitdebug/${shortname}.${BASHPID:-$(__bashpid)}"
+
${already_stripped} || \
${STRIP} ${strip_flags} \
-f "${splitdebug}" \
@@ -322,8 +329,7 @@ process_elf() {
save_elf_debug "${x}" "${inode_link}_debug" "${splitdebug}"
else
save_elf_debug "${x}" "${inode_link}_debug"
- ${already_stripped} || \
- ${STRIP} ${strip_flags} "${x}"
+ ${already_stripped} || ${STRIP} ${strip_flags} "${x}"
fi
fi
@@ -367,6 +373,7 @@ if ! ${PORTAGE_RESTRICT_binchecks} ; then
# parallel though.
log=${tmpdir}/scanelf-already-stripped.log
scanelf -yqRBF '#k%F' -k '!.symtab' "$@" | sed -e "s#^${ED%/}/##" > "${log}"
+
(
__multijob_child_init
qa_var="QA_PRESTRIPPED_${ARCH/-/_}"
@@ -402,7 +409,9 @@ if [[ ${USERLAND} == BSD ]] ; then
else
get_inode_number() { stat -c '%i' "$1"; }
fi
+
cd "${tmpdir}/inodes" || die "cd failed unexpectedly"
+
if ${prepstrip}; then
while read -r x ; do
inode_link=$(get_inode_number "${x}") || die "stat failed unexpectedly"
@@ -443,8 +452,8 @@ do
strip_this=true
else
# The noglob funk is to support STRIP_MASK="/*/booga" and to keep
- # the for loop from expanding the globs.
- # The eval echo is to support STRIP_MASK="/*/{booga,bar}" sex.
+ # the for loop from expanding the globs.
+ # The eval echo is to support STRIP_MASK="/*/{booga,bar}".
set -o noglob
strip_this=true
for m in $(eval echo ${STRIP_MASK}) ; do
@@ -466,7 +475,7 @@ do
# or kernel modules as debuginfo for intermediatary
# files (think crt*.o from gcc/glibc) is useless and
# actually causes problems. install sources for all
- # elf types though cause that stuff is good.
+ # elf types though because that stuff is good.
buildid=
if [[ ${f} == *"current ar archive"* ]] ; then
@@ -499,8 +508,9 @@ if [[ -s ${tmpdir}/debug.sources ]] && \
then
__vecho "installsources: rsyncing source files"
[[ -d ${D%/}/${prepstrip_sources_dir#/} ]] || mkdir -p "${D%/}/${prepstrip_sources_dir#/}"
- # skip installation of ".../<foo>" (system headers? why inner slashes are forbidden?)
- # skip syncing of ".../foo/" (complete directories)
+
+ # Skip installation of ".../<foo>" (system headers? why inner slashes are forbidden?)
+ # Skip syncing of ".../foo/" (complete directories)
grep -zv -e '/<[^/>]*>$' -e '/$' "${tmpdir}"/debug.sources | \
(cd "${WORKDIR}"; LANG=C sort -z -u | \
rsync -tL0 --chmod=ugo-st,a+r,go-w,Da+x,Fa-x --files-from=- "${WORKDIR}/" "${D%/}/${prepstrip_sources_dir#/}/" )
@@ -508,8 +518,7 @@ then
# Preserve directory structure.
# Needed after running save_elf_sources.
# https://bugzilla.redhat.com/show_bug.cgi?id=444310
- while read -r -d $'\0' emptydir
- do
+ while read -r -d $'\0' emptydir; do
>> "${emptydir}"/.keepdir
done < <(find "${D%/}/${prepstrip_sources_dir#/}/" -type d -empty -print0)
fi
diff --git a/bin/etc-update b/bin/etc-update
index 148a0f05a..a7d1088da 100755
--- a/bin/etc-update
+++ b/bin/etc-update
@@ -41,7 +41,7 @@ case ${OS_RELEASE_POSSIBLE_IDS} in
*) OS_FAMILY='gentoo';;
esac
-if [[ $OS_FAMILY == 'gentoo' ]]; then
+if [[ ${OS_FAMILY} == 'gentoo' ]]; then
get_basename() {
printf -- '%s\n' "${1:10}"
}
@@ -54,7 +54,7 @@ if [[ $OS_FAMILY == 'gentoo' ]]; then
get_live_file() {
echo "${rpath}/${rfile:10}"
}
-elif [[ $OS_FAMILY == 'arch' ]]; then
+elif [[ ${OS_FAMILY} == 'arch' ]]; then
get_basename() {
printf -- '%s\n' "${1%.${NEW_EXT}}"
}
@@ -68,7 +68,7 @@ elif [[ $OS_FAMILY == 'arch' ]]; then
printf -- '%s\n' "${cfg_file%.${NEW_EXT}}"
}
# In rpm we have rpmsave, rpmorig, and rpmnew.
-elif [[ $OS_FAMILY == 'rpm' ]]; then
+elif [[ ${OS_FAMILY} == 'rpm' ]]; then
get_basename() {
printf -- '%s\n' "${1}" |sed -e 's/\.rpmsave$//' -e 's/\.rpmnew$//' -e 's/\.rpmorig$//'
}
@@ -133,6 +133,7 @@ scan() {
# parent directory doesn't exist, we can safely skip it.
path=${path%/}
[[ -d ${path%/*} ]] || continue
+
local name_opt=$(get_basename_find_opt "${path##*/}")
path="${path%/*}"
find_opts=( -maxdepth 1 )
@@ -141,9 +142,10 @@ scan() {
local name_opt=$(get_basename_find_opt '*')
find_opts=( -name '.*' -type d -prune -o )
fi
+
${case_insensitive} && \
find_opts+=( -iname ) || find_opts+=( -name )
- find_opts+=( "$name_opt" )
+ find_opts+=( "${name_opt}" )
find_opts+=( ! -name '.*~' ! -iname '.*.bak' -print )
if [[ ! -w ${path} ]] ; then
@@ -157,8 +159,8 @@ scan() {
sed \
-e 's://*:/:g' \
-e "${scan_regexp}" |
- sort -t"$b" -k2,2 -k4,4 -k3,3 |
- LC_ALL=C cut -f1 -d"$b")
+ sort -t"${b}" -k2,2 -k4,4 -k3,3 |
+ LC_ALL=C cut -f1 -d"${b}")
do
local rpath rfile cfg_file live_file
rpath=${file%/*}
@@ -175,6 +177,7 @@ scan() {
continue 2
fi
done
+
if [[ -L ${file} ]] ; then
if [[ -L ${live_file} && \
$(readlink "${live_file}") == $(readlink "${file}") ]]
@@ -182,17 +185,20 @@ scan() {
rm -f "${file}"
continue
fi
+
if [[ $(get_basename "${ofile}") != $(get_basename "${rfile}") ]] ||
[[ ${opath} != ${rpath} ]]
then
: $(( ++count ))
echo "${live_file}" > "${TMP}"/files/${count}
fi
+
echo "${cfg_file}" >> "${TMP}"/files/${count}
ofile="${rfile}"
opath="${rpath}"
continue
fi
+
if [[ ! -f ${file} ]] ; then
${QUIET} || echo "Skipping non-file ${file} ..."
continue
@@ -202,6 +208,7 @@ scan() {
[[ ${opath} != ${rpath} ]]
then
MATCHES=0
+
if ! [[ -f ${cfg_file} && -f ${live_file} ]] ; then
MATCHES=0
elif [[ ${eu_automerge} == "yes" ]] ; then
@@ -594,7 +601,7 @@ do_merge() {
rm ${rm_opts} "${mfile}"
fi
- # since mfile will be like $TMP/path/to/original-file.merged, we
+ # since mfile will be like ${TMP}/path/to/original-file.merged, we
# need to make sure the full /path/to/ exists ahead of time
mkdir -p "${mfile%/*}"
@@ -769,13 +776,13 @@ while [[ -n $1 ]] ; do
done
${SET_X} && set -x
-if [[ $OS_FAMILY == 'rpm' ]]; then
+if [[ ${OS_FAMILY} == 'rpm' ]]; then
PORTAGE_CONFIGROOT='/'
PORTAGE_TMPDIR='/tmp'
CONFIG_PROTECT='/etc /usr/share'
CONFIG_PROTECT_MASK=''
[[ -f /etc/sysconfig/etc-update ]] && . /etc/sysconfig/etc-update
-elif [[ $OS_FAMILY == 'arch' ]]; then
+elif [[ ${OS_FAMILY} == 'arch' ]]; then
PORTAGE_CONFIGROOT='/'
PORTAGE_TMPDIR='/tmp'
CONFIG_PROTECT='/etc /usr/lib /usr/share/config'
@@ -796,7 +803,7 @@ portage_vars=(
if type -P portageq > /dev/null; then
eval $(${PORTAGE_PYTHON:+"${PORTAGE_PYTHON}"} "$(type -P portageq)" envvar -v "${portage_vars[@]}")
else
- [[ $OS_FAMILY == 'gentoo' ]] && die "missing portageq"
+ [[ ${OS_FAMILY} == 'gentoo' ]] && die "missing portageq"
fi
export PORTAGE_TMPDIR
diff --git a/bin/install-qa-check.d/05prefix b/bin/install-qa-check.d/05prefix
index c1a5606d8..7488ad9e4 100644
--- a/bin/install-qa-check.d/05prefix
+++ b/bin/install-qa-check.d/05prefix
@@ -65,7 +65,7 @@ install_qa_check_prefix() {
# does the shebang start with ${EPREFIX}, and does it exist?
if [[ ${line[0]} == ${EPREFIX}/* || ${line[0]} == ${eprefix}/* ]] ; then
if [[ ! -e ${ROOT%/}${line[0]} && ! -e ${D%/}${line[0]} ]] ; then
- # hmm, refers explicitly to $EPREFIX, but doesn't exist,
+ # hmm, refers explicitly to ${EPREFIX}, but doesn't exist,
# if it's in PATH that's wrong in any case
if [[ ":${PATH}:" == *":${fp}:"* ]] ; then
echo "${fn#${D}}:${line[0]} (explicit EPREFIX but target not found)" \
@@ -76,7 +76,7 @@ install_qa_check_prefix() {
fi
continue
fi
- # unprefixed shebang, is the script directly in $PATH?
+ # unprefixed shebang, is the script directly in ${PATH}?
if [[ ":${PATH}:" == *":${fp}:"* ]] ; then
if [[ -e ${EROOT}${line[0]} || -e ${ED}${line[0]} ]] ; then
# is it unprefixed, but we can just fix it because a
@@ -90,12 +90,12 @@ install_qa_check_prefix() {
sed -i -e '1s:^#! \?'"${line[0]}"':#!'"${EPREFIX}"${line[0]}':' "${rf}"
continue
else
- # this is definitely wrong: script in $PATH and invalid shebang
+ # this is definitely wrong: script in ${PATH} and invalid shebang
echo "${fn#${D}}:${line[0]} (script ${fn##*/} installed in PATH but interpreter ${line[0]} not found)" \
>> "${T}"/non-prefix-shebangs-errs
fi
else
- # unprefixed/invalid shebang, but outside $PATH, this may be
+ # unprefixed/invalid shebang, but outside ${PATH}, this may be
# intended (e.g. config.guess) so remain silent by default
has stricter ${FEATURES} && \
eqawarn "invalid shebang in ${fn#${D}}: ${line[0]}"
diff --git a/bin/install-qa-check.d/10executable-issues b/bin/install-qa-check.d/10executable-issues
index c2355ab8f..837a8be81 100644
--- a/bin/install-qa-check.d/10executable-issues
+++ b/bin/install-qa-check.d/10executable-issues
@@ -20,7 +20,7 @@ elf_check() {
# temporary directory.
# 2) If ROOT != "/", references to ROOT are banned because
# that directory won't exist on the target system.
- # 3) Null paths are banned because the loader will search $PWD when
+ # 3) Null paths are banned because the loader will search ${PWD} when
# it finds null paths.
local forbidden_dirs=( "${PORTAGE_BUILDDIR}" )
if [[ "${ROOT:-/}" != "/" ]]; then
diff --git a/bin/install-qa-check.d/20deprecated-directories b/bin/install-qa-check.d/20deprecated-directories
index fb82bfe7a..75771a50f 100644
--- a/bin/install-qa-check.d/20deprecated-directories
+++ b/bin/install-qa-check.d/20deprecated-directories
@@ -3,12 +3,12 @@
deprecated_dir_check() {
local x f=
for x in etc/app-defaults usr/man usr/info usr/X11R6 usr/doc usr/locale ; do
- [[ -d ${ED}/$x ]] && f+=" $x\n"
+ [[ -d ${ED}/${x} ]] && f+=" ${x}\n"
done
- if [[ -n $f ]] ; then
+ if [[ -n ${f} ]] ; then
eqawarn "QA Notice: This ebuild installs into the following deprecated directories:"
eqawarn
- eqawarn "$f"
+ eqawarn "${f}"
fi
}
diff --git a/bin/install-qa-check.d/60udev b/bin/install-qa-check.d/60udev
index c48d7d598..9df18da60 100644
--- a/bin/install-qa-check.d/60udev
+++ b/bin/install-qa-check.d/60udev
@@ -8,10 +8,11 @@ udev_check() {
[[ ${x} == ${ED%/}/lib/udev/rules.d/* ]] && continue
f+=" ${x#${ED%/}}\n"
done
- if [[ -n $f ]] ; then
+
+ if [[ -n ${f} ]] ; then
eqawarn "QA Notice: udev rules should be installed in /lib/udev/rules.d:"
eqawarn
- eqawarn "$f"
+ eqawarn "${f}"
fi
}
diff --git a/bin/install-qa-check.d/80libraries b/bin/install-qa-check.d/80libraries
index 81c926982..9855060aa 100644
--- a/bin/install-qa-check.d/80libraries
+++ b/bin/install-qa-check.d/80libraries
@@ -166,7 +166,7 @@ lib_check() {
die "static archives (*.a) and libtool library files (*.la) belong in /usr/lib*, not /lib*"
fi
- # Verify that the libtool files don't contain bogus $D entries.
+ # Verify that the libtool files don't contain bogus ${D} entries.
local abort=no gentoo_bug=no always_overflow=no
for a in "${ED%/}"/usr/lib*/*.la ; do
s=${a##*/}
diff --git a/bin/install-qa-check.d/90bad-bin-owner b/bin/install-qa-check.d/90bad-bin-owner
index c3ee30746..46d4e3947 100644
--- a/bin/install-qa-check.d/90bad-bin-owner
+++ b/bin/install-qa-check.d/90bad-bin-owner
@@ -25,7 +25,7 @@ bad_bin_owner_check() {
# We do want to list non-superuser setuid executables, because
# they can be exploited. The owner can simply wipe the setuid
# bit, and then alter the contents of the file. The superuser
- # will then have a time bomb in his $PATH.
+ # will then have a time bomb in his ${PATH}.
while read -r -d '' f; do
found+=( "${f}" )
done < <(find -L "${d}" \
diff --git a/bin/install-qa-check.d/90gcc-warnings b/bin/install-qa-check.d/90gcc-warnings
index bde198c97..041e39c8b 100644
--- a/bin/install-qa-check.d/90gcc-warnings
+++ b/bin/install-qa-check.d/90gcc-warnings
@@ -12,6 +12,7 @@ gcc_warn_check() {
set +x
reset_debug=1
fi
+
local m msgs=(
# only will and does, no might :)
'warning: .*will.*\[-Wstrict-aliasing\]'
@@ -79,9 +80,9 @@ gcc_warn_check() {
local abort="no"
local grep_cmd=grep
- [[ $PORTAGE_LOG_FILE = *.gz ]] && grep_cmd=zgrep
+ [[ ${PORTAGE_LOG_FILE} = *.gz ]] && grep_cmd=zgrep
- # Force C locale to work around slow multibyte locales. #160234
+ # Force C locale to work around slow multibyte locales, bug #160234
# Force text mode as newer grep will treat non-ASCII (e.g. UTF-8) as
# binary when we run in the C locale.
f=$(LC_CTYPE=C LC_COLLATE=C "${grep_cmd}" -E -a "${joined_msgs}" "${PORTAGE_LOG_FILE}" | uniq)
@@ -91,7 +92,8 @@ gcc_warn_check() {
#if [[ ${f} == *'will always overflow destination buffer'* ]]; then
# always_overflow=yes
#fi
- if [[ $always_overflow = yes ]] ; then
+
+ if [[ ${always_overflow} = yes ]] ; then
eerror
eerror "QA Notice: Package triggers severe warnings which indicate that it"
eerror " may exhibit random runtime failures."
@@ -149,7 +151,7 @@ gcc_warn_check() {
fi
if [[ ${abort} == "yes" ]] ; then
- if [[ $gentoo_bug = yes || $always_overflow = yes ]] ; then
+ if [[ ${gentoo_bug} = yes || ${always_overflow} = yes ]] ; then
die "install aborted due to severe warnings shown above"
else
echo "Please do not file a Gentoo bug and instead" \
diff --git a/bin/install-qa-check.d/90world-writable b/bin/install-qa-check.d/90world-writable
index c69c43444..6a521b3cc 100644
--- a/bin/install-qa-check.d/90world-writable
+++ b/bin/install-qa-check.d/90world-writable
@@ -5,17 +5,17 @@ world_writable_check() {
local unsafe_files=$(find "${ED}" -type f -perm -2 | sed -e "s:^${D}:/:")
local OLDIFS x prev_shopts=$-
- OLDIFS=$IFS
+ OLDIFS=${IFS}
IFS=$'\n'
set -f
if [[ -n ${unsafe_files} ]] ; then
eqawarn "QA Security Notice: world writable file(s):"
- eqatag -v world-writable $unsafe_files
+ eqatag -v world-writable ${unsafe_files}
eqawarn "This may or may not be a security problem, most of the time it is one."
- eqawarn "Please double check that $PF really needs a world writeable bit and file bugs accordingly."
+ eqawarn "Please double check that ${PF} really needs a world writeable bit and file bugs accordingly."
eqawarn
fi
@@ -23,12 +23,12 @@ world_writable_check() {
if [[ -n ${unsafe_files} ]] ; then
eqawarn "QA Notice: Unsafe files detected (set*id and world writable)"
- eqatag -v world-writable-setid $unsafe_files
+ eqatag -v world-writable-setid ${unsafe_files}
die "Unsafe files found in \${D}. Portage will not install them."
fi
- IFS=$OLDIFS
+ IFS=${OLDIFS}
[[ ${prev_shopts} == *f* ]] || set +f
}
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 2ec677c69..4542c6715 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -14,8 +14,8 @@ shopt -s expand_aliases
assert() {
local x pipestatus=${PIPESTATUS[*]}
- for x in $pipestatus ; do
- [[ $x -eq 0 ]] || die "$@"
+ for x in ${pipestatus} ; do
+ [[ ${x} -eq 0 ]] || die "$@"
done
}
@@ -36,13 +36,13 @@ __assert_sigpipe_ok() {
# as the exit status."
local x pipestatus=${PIPESTATUS[*]}
- for x in $pipestatus ; do
+ for x in ${pipestatus} ; do
# Allow SIGPIPE through (128 + 13)
- [[ $x -ne 0 && $x -ne ${PORTAGE_SIGPIPE_STATUS:-141} ]] && die "$@"
+ [[ ${x} -ne 0 && ${x} -ne ${PORTAGE_SIGPIPE_STATUS:-141} ]] && die "$@"
done
# Require normal success for the last process (tar).
- [[ $x -eq 0 ]] || die "$@"
+ [[ ${x} -eq 0 ]] || die "$@"
}
shopt -s extdebug
@@ -91,10 +91,10 @@ __dump_trace() {
nonfatal() {
if ! ___eapi_has_nonfatal; then
- die "$FUNCNAME() not supported in this EAPI"
+ die "${FUNCNAME}() not supported in this EAPI"
fi
if [[ $# -lt 1 ]]; then
- die "$FUNCNAME(): Missing argument"
+ die "${FUNCNAME}(): Missing argument"
fi
PORTAGE_NONFATAL=1 "$@"
@@ -157,14 +157,14 @@ die() {
# When a helper binary dies automatically in EAPI 4 and later, we don't
# get a stack trace, so at least report the phase that failed.
local phase_str=
- [[ -n $EBUILD_PHASE ]] && phase_str=" ($EBUILD_PHASE phase)"
+ [[ -n ${EBUILD_PHASE} ]] && phase_str=" (${EBUILD_PHASE} phase)"
eerror "ERROR: ${CATEGORY}/${PF}::${PORTAGE_REPO_NAME} failed${phase_str}:"
eerror " ${*:-(no error message)}"
eerror
# __dump_trace is useless when the main script is a helper binary
local main_index
(( main_index = ${#BASH_SOURCE[@]} - 1 ))
- if has ${BASH_SOURCE[$main_index]##*/} ebuild.sh misc-functions.sh ; then
+ if has ${BASH_SOURCE[${main_index}]##*/} ebuild.sh misc-functions.sh ; then
__dump_trace 2 ${filespacing} ${linespacing}
eerror " $(printf "%${filespacing}s" "${BASH_SOURCE[1]##*/}"), line $(printf "%${linespacing}s" "${BASH_LINENO[0]}"): Called die"
eerror "The specific snippet of code:"
@@ -198,13 +198,13 @@ die() {
# misc-functions.sh, since those are the only cases where the environment
# contains the hook functions. When necessary (like for __helpers_die), die
# hooks are automatically called later by a misc-functions.sh invocation.
- if has ${BASH_SOURCE[$main_index]##*/} ebuild.sh misc-functions.sh && \
+ if has ${BASH_SOURCE[${main_index}]##*/} ebuild.sh misc-functions.sh && \
[[ ${EBUILD_PHASE} != depend ]] ; then
local x
- for x in $EBUILD_DEATH_HOOKS; do
+ for x in ${EBUILD_DEATH_HOOKS}; do
${x} "$@" >&2 1>&2
done
- > "$PORTAGE_BUILDDIR/.die_hooks"
+ > "${PORTAGE_BUILDDIR}/.die_hooks"
fi
if [[ -n ${PORTAGE_LOG_FILE} ]] ; then
@@ -229,8 +229,8 @@ die() {
eerror "Working directory: '$(pwd)'"
[[ -n ${S} ]] && eerror "S: '${S}'"
- [[ -n $PORTAGE_EBUILD_EXIT_FILE ]] && > "$PORTAGE_EBUILD_EXIT_FILE"
- [[ -n $PORTAGE_IPC_DAEMON ]] && "$PORTAGE_BIN_PATH"/ebuild-ipc exit 1
+ [[ -n ${PORTAGE_EBUILD_EXIT_FILE} ]] && > "${PORTAGE_EBUILD_EXIT_FILE}"
+ [[ -n ${PORTAGE_IPC_DAEMON} ]] && "${PORTAGE_BIN_PATH}"/ebuild-ipc exit 1
# subshell die support
if [[ -n ${EBUILD_MASTER_PID} && ${BASHPID:-$(__bashpid)} != ${EBUILD_MASTER_PID} ]] ; then
@@ -262,7 +262,7 @@ __elog_base() {
;;
esac
echo -e "$@" | while read -r ; do
- echo "$messagetype $REPLY" >> \
+ echo "${messagetype} ${REPLY}" >> \
"${T}/logging/${EBUILD_PHASE:-other}"
done
return 0
@@ -398,18 +398,20 @@ __unset_colors() {
}
__set_colors() {
- COLS=${COLUMNS:-0} # bash's internal COLUMNS variable
+ # bash's internal COLUMNS variable
+ COLS=${COLUMNS:-0}
+
# Avoid wasteful stty calls during the "depend" phases.
# If stdout is a pipe, the parent process can export COLUMNS
# if it's relevant. Use an extra subshell for stty calls, in
# order to redirect "/dev/tty: No such device or address"
# error from bash to /dev/null.
- [[ $COLS == 0 && $EBUILD_PHASE != depend ]] && \
+ [[ ${COLS} == 0 && ${EBUILD_PHASE} != depend ]] && \
COLS=$(set -- $( ( stty size </dev/tty ) 2>/dev/null || echo 24 80 ) ; echo $2)
(( COLS > 0 )) || (( COLS = 80 ))
# Now, ${ENDCOL} will move us to the end of the
- # column; irregardless of character width
+ # column; regardless of character width
ENDCOL=$'\e[A\e['$(( COLS - 8 ))'C'
if [[ -n "${PORTAGE_COLORMAP}" ]]; then
eval ${PORTAGE_COLORMAP}
@@ -617,7 +619,7 @@ else
fi
# debug-print() gets called from many places with verbose status information useful
-# for tracking down problems. The output is in $T/eclass-debug.log.
+# for tracking down problems. The output is in ${T}/eclass-debug.log.
# You can set ECLASS_DEBUG_OUTPUT to redirect the output somewhere else as well.
# The special "on" setting echoes the information, mixing it with the rest of the
# emerge output.
@@ -626,9 +628,9 @@ fi
#
# (TODO: in the future, might use e* from /lib/gentoo/functions.sh?)
debug-print() {
- # if $T isn't defined, we're in dep calculation mode and
+ # If ${T} isn't defined, we're in dep calculation mode and
# shouldn't do anything
- [[ $EBUILD_PHASE = depend || ! -d ${T} || ${#} -eq 0 ]] && return 0
+ [[ ${EBUILD_PHASE} = depend || ! -d ${T} || ${#} -eq 0 ]] && return 0
if [[ ${ECLASS_DEBUG_OUTPUT} == on ]]; then
printf 'debug: %s\n' "${@}" >&2
@@ -636,10 +638,11 @@ debug-print() {
printf 'debug: %s\n' "${@}" >> "${ECLASS_DEBUG_OUTPUT}"
fi
- if [[ -w $T ]] ; then
- # default target
+ if [[ -w ${T} ]] ; then
+ # Default target
printf '%s\n' "${@}" >> "${T}/eclass-debug.log"
- # let the portage user own/write to this file
+
+ # Let the portage user own/write to this file
chgrp "${PORTAGE_GRPNAME:-portage}" "${T}/eclass-debug.log"
chmod g+w "${T}/eclass-debug.log"
fi
diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index 466d21dfd..faa8184c6 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -135,7 +135,7 @@ install_qa_check() {
)
done < <(printf "%s\0" "${qa_checks[@]}" | LC_ALL=C sort -u -z)
- if has chflags $FEATURES ; then
+ if has chflags ${FEATURES} ; then
# Save all the file flags for restoration afterwards.
mtree -c -p "${ED}" -k flags > "${T}/bsdflags.mtree"
# Remove all the file flags so that we can do anything necessary.
@@ -153,7 +153,7 @@ install_qa_check() {
"${PORTAGE_BIN_PATH}"/ecompress --dequeue
fi
- if has chflags $FEATURES ; then
+ if has chflags ${FEATURES} ; then
# Restore all the file flags that were saved earlier on.
mtree -U -e -p "${ED}" -k flags < "${T}/bsdflags.mtree" &> /dev/null
fi
@@ -164,7 +164,7 @@ install_qa_check() {
# containing pre-built binaries.
if type -P scanelf > /dev/null ; then
# Save NEEDED information after removing self-contained providers
- rm -f "$PORTAGE_BUILDDIR"/build-info/NEEDED{,.ELF.2}
+ rm -f "${PORTAGE_BUILDDIR}"/build-info/NEEDED{,.ELF.2}
# We don't use scanelf -q, since that would omit libraries like
# musl's /usr/lib/libc.so which do not have any DT_NEEDED or
@@ -258,7 +258,7 @@ install_qa_check() {
__dyn_instprep() {
if [[ -e ${PORTAGE_BUILDDIR}/.instprepped ]] ; then
- __vecho ">>> It appears that '$PF' is already instprepped; skipping."
+ __vecho ">>> It appears that '${PF}' is already instprepped; skipping."
__vecho ">>> Remove '${PORTAGE_BUILDDIR}/.instprepped' to force instprep."
return 0
fi
@@ -396,29 +396,29 @@ preinst_sfperms() {
fi
# Smart FileSystem Permissions
- if has sfperms $FEATURES; then
+ if has sfperms ${FEATURES}; then
local i
find "${ED}" -type f -perm -4000 -print0 | \
while read -r -d $'\0' i ; do
- if [[ -n "$(find "$i" -perm -2000)" ]]; then
+ if [[ -n "$(find "${i}" -perm -2000)" ]]; then
ebegin ">>> SetUID and SetGID: [chmod o-r] ${i#${ED%/}}"
- chmod o-r "$i"
+ chmod o-r "${i}"
eend $?
else
ebegin ">>> SetUID: [chmod go-r] ${i#${ED%/}}"
- chmod go-r "$i"
+ chmod go-r "${i}"
eend $?
fi
done
find "${ED}" -type f -perm -2000 -print0 | \
while read -r -d $'\0' i ; do
- if [[ -n "$(find "$i" -perm -4000)" ]]; then
+ if [[ -n "$(find "${i}" -perm -4000)" ]]; then
# This case is already handled
# by the SetUID check above.
true
else
ebegin ">>> SetGID: [chmod o-r] ${i#${ED%/}}"
- chmod o-r "$i"
+ chmod o-r "${i}"
eend $?
fi
done
@@ -436,7 +436,7 @@ preinst_suid_scan() {
fi
# Total suid control
- if has suidctl $FEATURES; then
+ if has suidctl ${FEATURES}; then
local i sfconf x
sfconf=${PORTAGE_CONFIGROOT}etc/portage/suidctl.conf
# sandbox prevents us from writing directly
@@ -497,17 +497,16 @@ preinst_selinux_labels() {
}
__dyn_package() {
-
if ! ___eapi_has_prefix_variables; then
local EPREFIX=
fi
- # Make sure $PWD is not ${D} so that we don't leave gmon.out files
+ # Make sure ${PWD} is not ${D} so that we don't leave gmon.out files
# in there in case any tools were built with -pg in CFLAGS.
cd "${T}" || die
# Sandbox is disabled in case the user wants to use a symlink
- # for $PKGDIR and/or $PKGDIR/All.
+ # for ${PKGDIR} and/or ${PKGDIR}/All.
export SANDBOX_ON="0"
[[ -z "${PORTAGE_BINPKG_TMPFILE}" ]] && \
die "PORTAGE_BINPKG_TMPFILE is unset"
@@ -515,20 +514,24 @@ __dyn_package() {
if [[ "${BINPKG_FORMAT}" == "xpak" ]]; then
local tar_options=""
- [[ $PORTAGE_VERBOSE = 1 ]] && tar_options+=" -v"
+
+ [[ ${PORTAGE_VERBOSE} = 1 ]] && tar_options+=" -v"
has xattr ${FEATURES} && [[ $(tar --help 2> /dev/null) == *--xattrs* ]] && tar_options+=" --xattrs"
- [[ -z "${PORTAGE_COMPRESSION_COMMAND}" ]] && \
- die "PORTAGE_COMPRESSION_COMMAND is unset"
- tar $tar_options -cf - $PORTAGE_BINPKG_TAR_OPTS -C "${D}" . | \
- $PORTAGE_COMPRESSION_COMMAND > "$PORTAGE_BINPKG_TMPFILE"
- assert "failed to pack binary package: '$PORTAGE_BINPKG_TMPFILE'"
+
+ [[ -z "${PORTAGE_COMPRESSION_COMMAND}" ]] && die "PORTAGE_COMPRESSION_COMMAND is unset"
+
+ tar ${tar_options} -cf - ${PORTAGE_BINPKG_TAR_OPTS} -C "${D}" . | \
+ ${PORTAGE_COMPRESSION_COMMAND} > "${PORTAGE_BINPKG_TMPFILE}"
+ assert "failed to pack binary package: '${PORTAGE_BINPKG_TMPFILE}'"
+
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
- "${PORTAGE_PYTHON:-/usr/bin/python}" "$PORTAGE_BIN_PATH"/xpak-helper.py recompose \
- "$PORTAGE_BINPKG_TMPFILE" "$PORTAGE_BUILDDIR/build-info"
+ "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}"/xpak-helper.py recompose \
+ "${PORTAGE_BINPKG_TMPFILE}" "${PORTAGE_BUILDDIR}/build-info"
if [[ $? -ne 0 ]]; then
rm -f "${PORTAGE_BINPKG_TMPFILE}"
die "Failed to append metadata to the tbz2 file"
fi
+
local md5_hash=""
if type md5sum &>/dev/null ; then
md5_hash=$(md5sum "${PORTAGE_BINPKG_TMPFILE}")
@@ -537,14 +540,14 @@ __dyn_package() {
md5_hash=$(md5 "${PORTAGE_BINPKG_TMPFILE}")
md5_hash=${md5_hash##* }
fi
- [[ -n "${md5_hash}" ]] && \
- echo ${md5_hash} > "${PORTAGE_BUILDDIR}"/build-info/BINPKGMD5
+
+ [[ -n "${md5_hash}" ]] && echo ${md5_hash} > "${PORTAGE_BUILDDIR}"/build-info/BINPKGMD5
__vecho ">>> Done."
elif [[ "${BINPKG_FORMAT}" == "gpkg" ]]; then
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
- "${PORTAGE_PYTHON:-/usr/bin/python}" "$PORTAGE_BIN_PATH"/gpkg-helper.py compress \
- "${CATEGORY}/${PF}" "$PORTAGE_BINPKG_TMPFILE" "$PORTAGE_BUILDDIR/build-info" "${D}"
+ "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}"/gpkg-helper.py compress \
+ "${CATEGORY}/${PF}" "${PORTAGE_BINPKG_TMPFILE}" "${PORTAGE_BUILDDIR}/build-info" "${D}"
if [[ $? -ne 0 ]]; then
rm -f "${PORTAGE_BINPKG_TMPFILE}"
die "Failed to create binpkg file"
@@ -555,8 +558,7 @@ __dyn_package() {
fi
cd "${PORTAGE_BUILDDIR}"
- >> "$PORTAGE_BUILDDIR/.packaged" || \
- die "Failed to create $PORTAGE_BUILDDIR/.packaged"
+ >> "${PORTAGE_BUILDDIR}/.packaged" || die "Failed to create ${PORTAGE_BUILDDIR}/.packaged"
}
__dyn_spec() {
@@ -602,30 +604,35 @@ __dyn_rpm() {
fi
cd "${T}" || die "cd failed"
+
local machine_name=${CHOST%%-*}
local dest_dir=${T}/rpmbuild/RPMS/${machine_name}
+
addwrite "${RPMDIR}"
__dyn_spec
HOME=${T} \
rpmbuild -bb --clean --nodeps --rmsource "${PF}.spec" --buildroot "${D}" --target "${CHOST}" || die "Failed to integrate rpm spec file"
+
install -D "${dest_dir}/${PN}-${PV}-${PR}.${machine_name}.rpm" \
"${RPMDIR}/${CATEGORY}/${PN}-${PV}-${PR}.rpm" || \
die "Failed to move rpm"
}
die_hooks() {
- [[ -f $PORTAGE_BUILDDIR/.die_hooks ]] && return
+ [[ -f ${PORTAGE_BUILDDIR}/.die_hooks ]] && return
+
local x
- for x in $EBUILD_DEATH_HOOKS ; do
- $x >&2
+ for x in ${EBUILD_DEATH_HOOKS} ; do
+ ${x} >&2
done
- > "$PORTAGE_BUILDDIR/.die_hooks"
+
+ > "${PORTAGE_BUILDDIR}/.die_hooks"
}
success_hooks() {
local x
- for x in $EBUILD_SUCCESS_HOOKS ; do
- $x
+ for x in ${EBUILD_SUCCESS_HOOKS} ; do
+ ${x}
done
}
@@ -633,15 +640,17 @@ install_hooks() {
local hooks_dir="${PORTAGE_CONFIGROOT}etc/portage/hooks/install"
local fp
local ret=0
+
shopt -s nullglob
for fp in "${hooks_dir}"/*; do
- if [[ -x "$fp" ]]; then
- "$fp"
- ret=$(( $ret | $? ))
+ if [[ -x "${fp}" ]]; then
+ "${fp}"
+ ret=$(( ${ret} | $? ))
fi
done
shopt -u nullglob
- return $ret
+
+ return ${ret}
}
eqatag() {
@@ -650,15 +659,19 @@ eqatag() {
if [[ -n "${MISC_FUNCTIONS_ARGS}" ]]; then
__source_all_bashrcs
- [[ "$PORTAGE_DEBUG" == "1" ]] && set -x
+
+ [[ "${PORTAGE_DEBUG}" == "1" ]] && set -x
+
for x in ${MISC_FUNCTIONS_ARGS}; do
${x}
done
unset x
- [[ -n $PORTAGE_EBUILD_EXIT_FILE ]] && > "$PORTAGE_EBUILD_EXIT_FILE"
- if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
- [[ ! -s $SANDBOX_LOG ]]
- "$PORTAGE_BIN_PATH"/ebuild-ipc exit $?
+
+ [[ -n ${PORTAGE_EBUILD_EXIT_FILE} ]] && > "${PORTAGE_EBUILD_EXIT_FILE}"
+
+ if [[ -n ${PORTAGE_IPC_DAEMON} ]] ; then
+ [[ ! -s ${SANDBOX_LOG} ]]
+ "${PORTAGE_BIN_PATH}"/ebuild-ipc exit $?
fi
fi
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index f615ba491..687e1ab03 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -97,8 +97,8 @@ __filter_readonly_variables() {
# Untrusted due to possible application of package renames to binpkgs
local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR"
local misc_garbage_vars="_portage_filter_opts"
- filtered_vars="___.* $readonly_bash_vars $bash_misc_vars
- $PORTAGE_READONLY_VARS $misc_garbage_vars"
+ filtered_vars="___.* ${readonly_bash_vars} ${bash_misc_vars}
+ ${PORTAGE_READONLY_VARS} ${misc_garbage_vars}"
# Filter SYSROOT unconditionally. It is propagated in every EAPI
# because it was used unofficially before EAPI 7. See bug #661006.
@@ -165,11 +165,13 @@ __preprocess_ebuild_env() {
# Otherwise, we don't need to filter the environment.
[[ -f "${T}/environment.raw" ]] || return 0
- __filter_readonly_variables $_portage_filter_opts < "${T}"/environment \
- >> "$T/environment.filtered" || return $?
+ __filter_readonly_variables ${_portage_filter_opts} < "${T}"/environment \
+ >> "${T}/environment.filtered" || return $?
+
unset _portage_filter_opts
mv "${T}"/environment.filtered "${T}"/environment || return $?
rm -f "${T}/environment.success" || return $?
+
# WARNING: Code inside this subshell should avoid making assumptions
# about variables or functions after source "${T}"/environment has been
# called. Any variables that need to be relied upon should already be
@@ -192,8 +194,9 @@ __preprocess_ebuild_env() {
# Rely on __save_ebuild_env() to filter out any remaining variables
# and functions that could interfere with the current environment.
__save_ebuild_env || exit $?
- >> "$T/environment.success" || exit $?
+ >> "${T}/environment.success" || exit $?
) > "${T}/environment.filtered"
+
local retval
if [[ -e "${T}/environment.success" ]]; then
__filter_readonly_variables --filter-features < \
@@ -202,12 +205,14 @@ __preprocess_ebuild_env() {
else
retval=1
fi
+
rm -f "${T}"/environment.{filtered,raw,success}
return ${retval}
}
__ebuild_phase() {
local __EBEGIN_EEND_COUNT=0
+
declare -F "$1" >/dev/null && __qa_call $1
if (( __EBEGIN_EEND_COUNT > 0 )); then
eqawarn "QA Notice: ebegin called without eend in $1"
@@ -222,28 +227,30 @@ __ebuild_phase_with_hooks() {
}
__dyn_pretend() {
- if [[ -e $PORTAGE_BUILDDIR/.pretended ]] ; then
- __vecho ">>> It appears that '$PF' is already pretended; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.pretended' to force pretend."
+ if [[ -e ${PORTAGE_BUILDDIR}/.pretended ]] ; then
+ __vecho ">>> It appears that '${PF}' is already pretended; skipping."
+ __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.pretended' to force pretend."
return 0
fi
+
__ebuild_phase pre_pkg_pretend
__ebuild_phase pkg_pretend
- >> "$PORTAGE_BUILDDIR/.pretended" || \
- die "Failed to create $PORTAGE_BUILDDIR/.pretended"
+ >> "${PORTAGE_BUILDDIR}/.pretended" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.pretended"
__ebuild_phase post_pkg_pretend
}
__dyn_setup() {
- if [[ -e $PORTAGE_BUILDDIR/.setuped ]] ; then
- __vecho ">>> It appears that '$PF' is already setup; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.setuped' to force setup."
+ if [[ -e ${PORTAGE_BUILDDIR}/.setuped ]] ; then
+ __vecho ">>> It appears that '${PF}' is already setup; skipping."
+ __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.setuped' to force setup."
return 0
fi
+
__ebuild_phase pre_pkg_setup
__ebuild_phase pkg_setup
- >> "$PORTAGE_BUILDDIR/.setuped" || \
- die "Failed to create $PORTAGE_BUILDDIR/.setuped"
+ >> "${PORTAGE_BUILDDIR}/.setuped" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.setuped"
__ebuild_phase post_pkg_setup
}
@@ -252,15 +259,17 @@ __dyn_unpack() {
__vecho ">>> WORKDIR is up-to-date, keeping..."
return 0
fi
+
if [[ ! -d "${WORKDIR}" ]]; then
install -m${PORTAGE_WORKDIR_MODE:-0700} -d "${WORKDIR}" || die "Failed to create dir '${WORKDIR}'"
fi
+
cd "${WORKDIR}" || die "Directory change failed: \`cd '${WORKDIR}'\`"
__ebuild_phase pre_src_unpack
__vecho ">>> Unpacking source..."
__ebuild_phase src_unpack
- >> "$PORTAGE_BUILDDIR/.unpacked" || \
- die "Failed to create $PORTAGE_BUILDDIR/.unpacked"
+ >> "${PORTAGE_BUILDDIR}/.unpacked" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.unpacked"
__vecho ">>> Source unpacked in ${WORKDIR}"
__ebuild_phase post_src_unpack
}
@@ -272,7 +281,8 @@ __dyn_clean() {
elif [[ ! -d "${PORTAGE_BUILDDIR}" ]]; then
return 0
fi
- if has chflags $FEATURES ; then
+
+ if has chflags ${FEATURES} ; then
chflags -R noschg,nouchg,nosappnd,nouappnd "${PORTAGE_BUILDDIR}"
chflags -R nosunlnk,nouunlnk "${PORTAGE_BUILDDIR}" 2>/dev/null
fi
@@ -286,16 +296,16 @@ __dyn_clean() {
"${PORTAGE_BUILDDIR}/empty"
rm -f "${PORTAGE_BUILDDIR}/.installed"
- if [[ $EMERGE_FROM = binary ]] || \
- ! has keeptemp $FEATURES && ! has keepwork $FEATURES ; then
+ if [[ ${EMERGE_FROM} = binary ]] || \
+ ! has keeptemp ${FEATURES} && ! has keepwork ${FEATURES} ; then
rm -rf "${T}"
fi
- if [[ $EMERGE_FROM = binary ]] || ! has keepwork $FEATURES; then
- rm -f "$PORTAGE_BUILDDIR"/.{ebuild_changed,logid,pretended,setuped,unpacked,prepared} \
- "$PORTAGE_BUILDDIR"/.{configured,compiled,tested,packaged,instprepped} \
- "$PORTAGE_BUILDDIR"/.die_hooks \
- "$PORTAGE_BUILDDIR"/.exit_status
+ if [[ ${EMERGE_FROM} = binary ]] || ! has keepwork ${FEATURES} ; then
+ rm -f "${PORTAGE_BUILDDIR}"/.{ebuild_changed,logid,pretended,setuped,unpacked,prepared} \
+ "${PORTAGE_BUILDDIR}"/.{configured,compiled,tested,packaged,instprepped} \
+ "${PORTAGE_BUILDDIR}"/.die_hooks \
+ "${PORTAGE_BUILDDIR}"/.exit_status
rm -rf "${PORTAGE_BUILDDIR}/build-info" \
"${PORTAGE_BUILDDIR}/.ipc"
@@ -304,14 +314,14 @@ __dyn_clean() {
fi
if [[ -f "${PORTAGE_BUILDDIR}/.unpacked" ]]; then
- find "${PORTAGE_BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir &>/dev/null
+ find "${PORTAGE_BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | ${XARGS} -0 rmdir &>/dev/null
fi
- # do not bind this to doebuild defined DISTDIR; don't trust doebuild, and if mistakes are made it'll
+ # Do not bind this to doebuild defined DISTDIR; don't trust doebuild, and if mistakes are made it'll
# result in it wiping the users distfiles directory (bad).
rm -rf "${PORTAGE_BUILDDIR}/distdir"
- rmdir "$PORTAGE_BUILDDIR" 2>/dev/null
+ rmdir "${PORTAGE_BUILDDIR}" 2>/dev/null
true
}
@@ -324,22 +334,23 @@ __abort_handler() {
msg="${EBUILD}: ${1} failed; exiting."
fi
echo
- echo "$msg"
+ echo "${msg}"
echo
eval ${3}
- #unset signal handler
+
+ # Unset signal handler
trap - SIGINT SIGQUIT
}
__abort_prepare() {
__abort_handler src_prepare $1
- rm -f "$PORTAGE_BUILDDIR/.prepared"
+ rm -f "${PORTAGE_BUILDDIR}/.prepared"
exit 1
}
__abort_configure() {
__abort_handler src_configure $1
- rm -f "$PORTAGE_BUILDDIR/.configured"
+ rm -f "${PORTAGE_BUILDDIR}/.configured"
exit 1
}
@@ -373,13 +384,13 @@ __has_phase_defined_up_to() {
__dyn_prepare() {
- if [[ -e $PORTAGE_BUILDDIR/.prepared ]] ; then
- __vecho ">>> It appears that '$PF' is already prepared; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.prepared' to force prepare."
+ if [[ -e ${PORTAGE_BUILDDIR}/.prepared ]] ; then
+ __vecho ">>> It appears that '${PF}' is already prepared; skipping."
+ __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.prepared' to force prepare."
return 0
fi
- if [[ -d $S ]] ; then
+ if [[ -d ${S} ]] ; then
cd "${S}"
elif ___eapi_has_S_WORKDIR_fallback; then
cd "${WORKDIR}"
@@ -392,7 +403,7 @@ __dyn_prepare() {
trap __abort_prepare SIGINT SIGQUIT
__ebuild_phase pre_src_prepare
- __vecho ">>> Preparing source in $PWD ..."
+ __vecho ">>> Preparing source in ${PWD} ..."
__ebuild_phase src_prepare
# keep path in eapply_user in sync!
@@ -400,8 +411,8 @@ __dyn_prepare() {
die "eapply_user (or default) must be called in src_prepare()!"
fi
- >> "$PORTAGE_BUILDDIR/.prepared" || \
- die "Failed to create $PORTAGE_BUILDDIR/.prepared"
+ >> "${PORTAGE_BUILDDIR}/.prepared" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.prepared"
__vecho ">>> Source prepared."
__ebuild_phase post_src_prepare
@@ -409,14 +420,13 @@ __dyn_prepare() {
}
__dyn_configure() {
-
- if [[ -e $PORTAGE_BUILDDIR/.configured ]] ; then
- __vecho ">>> It appears that '$PF' is already configured; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.configured' to force configuration."
+ if [[ -e ${PORTAGE_BUILDDIR}/.configured ]] ; then
+ __vecho ">>> It appears that '${PF}' is already configured; skipping."
+ __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.configured' to force configuration."
return 0
fi
- if [[ -d $S ]] ; then
+ if [[ -d ${S} ]] ; then
cd "${S}"
elif ___eapi_has_S_WORKDIR_fallback; then
cd "${WORKDIR}"
@@ -430,10 +440,10 @@ __dyn_configure() {
__ebuild_phase pre_src_configure
- __vecho ">>> Configuring source in $PWD ..."
+ __vecho ">>> Configuring source in ${PWD} ..."
__ebuild_phase src_configure
- >> "$PORTAGE_BUILDDIR/.configured" || \
- die "Failed to create $PORTAGE_BUILDDIR/.configured"
+ >> "${PORTAGE_BUILDDIR}/.configured" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.configured"
__vecho ">>> Source configured."
__ebuild_phase post_src_configure
@@ -442,14 +452,13 @@ __dyn_configure() {
}
__dyn_compile() {
-
- if [[ -e $PORTAGE_BUILDDIR/.compiled ]] ; then
+ if [[ -e ${PORTAGE_BUILDDIR}/.compiled ]] ; then
__vecho ">>> It appears that '${PF}' is already compiled; skipping."
- __vecho ">>> Remove '$PORTAGE_BUILDDIR/.compiled' to force compilation."
+ __vecho ">>> Remove '${PORTAGE_BUILDDIR}/.compiled' to force compilation."
return 0
fi
- if [[ -d $S ]] ; then
+ if [[ -d ${S} ]] ; then
cd "${S}"
elif ___eapi_has_S_WORKDIR_fallback; then
cd "${WORKDIR}"
@@ -463,10 +472,10 @@ __dyn_compile() {
__ebuild_phase pre_src_compile
- __vecho ">>> Compiling source in $PWD ..."
+ __vecho ">>> Compiling source in ${PWD} ..."
__ebuild_phase src_compile
- >> "$PORTAGE_BUILDDIR/.compiled" || \
- die "Failed to create $PORTAGE_BUILDDIR/.compiled"
+ >> "${PORTAGE_BUILDDIR}/.compiled" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.compiled"
__vecho ">>> Source compiled."
__ebuild_phase post_src_compile
@@ -475,8 +484,7 @@ __dyn_compile() {
}
__dyn_test() {
-
- if [[ -e $PORTAGE_BUILDDIR/.tested ]] ; then
+ if [[ -e ${PORTAGE_BUILDDIR}/.tested ]] ; then
__vecho ">>> It appears that ${PN} has already been tested; skipping."
__vecho ">>> Remove '${PORTAGE_BUILDDIR}/.tested' to force test."
return
@@ -513,8 +521,8 @@ __dyn_test() {
__ebuild_phase src_test
__vecho ">>> Completed testing ${CATEGORY}/${PF}"
- >> "$PORTAGE_BUILDDIR/.tested" || \
- die "Failed to create $PORTAGE_BUILDDIR/.tested"
+ >> "${PORTAGE_BUILDDIR}/.tested" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.tested"
__ebuild_phase post_src_test
SANDBOX_PREDICT=${save_sp}
fi
@@ -523,10 +531,11 @@ __dyn_test() {
}
__dyn_install() {
- [[ -z "$PORTAGE_BUILDDIR" ]] && die "${FUNCNAME}: PORTAGE_BUILDDIR is unset"
- if has noauto $FEATURES ; then
+ [[ -z "${PORTAGE_BUILDDIR}" ]] && die "${FUNCNAME}: PORTAGE_BUILDDIR is unset"
+
+ if has noauto ${FEATURES} ; then
rm -f "${PORTAGE_BUILDDIR}/.installed"
- elif [[ -e $PORTAGE_BUILDDIR/.installed ]] ; then
+ elif [[ -e ${PORTAGE_BUILDDIR}/.installed ]] ; then
__vecho ">>> It appears that '${PF}' is already installed; skipping."
__vecho ">>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install."
return 0
@@ -537,16 +546,16 @@ __dyn_install() {
# Those variables shouldn't be needed before src_install()
# (QA_PRESTRIPPED is used in prepstrip, others in install-qa-checks)
# and delay in setting them allows us to set them in pkg_setup()
- if [[ -n $QA_PREBUILT ]] ; then
- # these ones support fnmatch patterns
- QA_EXECSTACK+=" $QA_PREBUILT"
- QA_TEXTRELS+=" $QA_PREBUILT"
- QA_WX_LOAD+=" $QA_PREBUILT"
+ if [[ -n ${QA_PREBUILT} ]] ; then
+ # These ones support fnmatch patterns
+ QA_EXECSTACK+=" ${QA_PREBUILT}"
+ QA_TEXTRELS+=" ${QA_PREBUILT}"
+ QA_WX_LOAD+=" ${QA_PREBUILT}"
- # these ones support regular expressions, so translate
+ # These ones support regular expressions, so translate
# fnmatch patterns to regular expressions
for x in QA_DT_NEEDED QA_FLAGS_IGNORED QA_PRESTRIPPED QA_SONAME ; do
- if [[ $(declare -p $x 2>/dev/null) = declare\ -a* ]] ; then
+ if [[ $(declare -p ${x} 2>/dev/null) = declare\ -a* ]] ; then
eval "${x}=(\"\${${x}[@]}\" ${QA_PREBUILT//\*/.*})"
else
eval "${x}+=\" ${QA_PREBUILT//\*/.*}\""
@@ -555,9 +564,10 @@ __dyn_install() {
unset x
fi
+
# This needs to be exported since prepstrip is a separate shell script.
- [[ -n $QA_PRESTRIPPED ]] && export QA_PRESTRIPPED
- eval "[[ -n \$QA_PRESTRIPPED_${ARCH/-/_} ]] && \
+ [[ -n ${QA_PRESTRIPPED} ]] && export QA_PRESTRIPPED
+ eval "[[ -n \${QA_PRESTRIPPED_${ARCH/-/_}} ]] && \
export QA_PRESTRIPPED_${ARCH/-/_}"
__ebuild_phase pre_src_install
@@ -571,7 +581,7 @@ __dyn_install() {
mkdir -p "${_x}"
unset _x
- if [[ -d $S ]] ; then
+ if [[ -d ${S} ]] ; then
cd "${S}"
elif ___eapi_has_S_WORKDIR_fallback; then
cd "${WORKDIR}"
@@ -583,8 +593,9 @@ __dyn_install() {
__vecho
__vecho ">>> Install ${CATEGORY}/${PF} into ${D}"
- #our custom version of libtool uses $S and $D to fix
- #invalid paths in .la files
+
+ # Our custom version of libtool uses ${S} and ${D} to fix
+ # invalid paths in .la files
export S D
# Reset exeinto(), docinto(), insinto(), and into() state variables
@@ -601,8 +612,8 @@ __dyn_install() {
export _E_DOCDESTTREE_=""
__ebuild_phase src_install
- >> "$PORTAGE_BUILDDIR/.installed" || \
- die "Failed to create $PORTAGE_BUILDDIR/.installed"
+ >> "${PORTAGE_BUILDDIR}/.installed" || \
+ die "Failed to create ${PORTAGE_BUILDDIR}/.installed"
__vecho ">>> Completed installing ${CATEGORY}/${PF} into ${D}"
__vecho
__ebuild_phase post_src_install
@@ -675,11 +686,11 @@ __dyn_install() {
PKG_INSTALL_MASK; do
x=$(echo -n ${!f})
- [[ -n $x ]] && echo "$x" > $f
+ [[ -n ${x} ]] && echo "${x}" > ${f}
done
# whitespace preserved
for f in QA_AM_MAINTAINER_MODE ; do
- [[ -n ${!f} ]] && echo "${!f}" > $f
+ [[ -n ${!f} ]] && echo "${!f}" > ${f}
done
echo "${USE}" > USE
echo "${EAPI:-0}" > EAPI
@@ -708,8 +719,7 @@ __dyn_install() {
cp "${EBUILD}" "${PF}.ebuild"
[[ -n "${PORTAGE_REPO_NAME}" ]] && echo "${PORTAGE_REPO_NAME}" > repository
- if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT}
- then
+ if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT}; then
>> DEBUGBUILD
fi
trap - SIGINT SIGQUIT
@@ -718,7 +728,7 @@ __dyn_install() {
__dyn_help() {
echo
echo "Portage"
- echo "Copyright 1999-2010 Gentoo Foundation"
+ echo "Copyright 1999-2022 Gentoo Authors"
echo
echo "How to use the ebuild command:"
echo
@@ -759,19 +769,18 @@ __dyn_help() {
echo " category : ${CATEGORY}"
echo " description : ${DESCRIPTION}"
echo " system : ${CHOST}"
- echo " c flags : ${CFLAGS}"
- echo " c++ flags : ${CXXFLAGS}"
+ echo " C flags : ${CFLAGS}"
+ echo " C++ flags : ${CXXFLAGS}"
echo " make flags : ${MAKEOPTS}"
echo -n " build mode : "
- if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT}
- then
+ if has nostrip ${FEATURES} ${PORTAGE_RESTRICT} || has strip ${PORTAGE_RESTRICT}; then
echo "debug (large)"
else
echo "production (stripped)"
fi
echo " merge to : ${ROOT}"
echo
- if [[ -n "$USE" ]]; then
+ if [[ -n "${USE}" ]]; then
echo "Additionally, support for the following optional features will be enabled:"
echo
echo " ${USE}"
@@ -788,7 +797,7 @@ __ebuild_arg_to_phase() {
local arg=$1
local phase_func=""
- case "$arg" in
+ case "${arg}" in
pretend)
___eapi_has_pkg_pretend && \
phase_func=pkg_pretend
@@ -833,13 +842,14 @@ __ebuild_arg_to_phase() {
;;
esac
- [[ -z $phase_func ]] && return 1
- echo "$phase_func"
+ [[ -z ${phase_func} ]] && return 1
+ echo "${phase_func}"
return 0
}
__ebuild_phase_funcs() {
[[ $# -ne 2 ]] && die "expected exactly 2 args, got $#: $*"
+
local eapi=$1
local phase_func=$2
local all_phases="src_compile pkg_config src_configure pkg_info
@@ -860,16 +870,16 @@ __ebuild_phase_funcs() {
default_${phase_func}
}"
- case "$eapi" in
+ case "${eapi}" in
0|1) # EAPIs not supporting 'default'
for x in pkg_nofetch src_unpack src_test ; do
- declare -F $x >/dev/null || \
- eval "$x() { __eapi0_$x; }"
+ declare -F ${x} >/dev/null || \
+ eval "$x() { __eapi0_${x}; }"
done
if ! declare -F src_compile >/dev/null ; then
- case "$eapi" in
+ case "${eapi}" in
0)
src_compile() { __eapi0_src_compile; }
;;
@@ -942,43 +952,42 @@ __ebuild_phase_funcs() {
}
__ebuild_main() {
-
# Subshell/helper die support (must export for the die helper).
# Since this function is typically executed in a subshell,
- # setup EBUILD_MASTER_PID to refer to the current $BASHPID,
+ # setup EBUILD_MASTER_PID to refer to the current ${BASHPID},
# which seems to give the best results when further
# nested subshells call die.
export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
trap 'exit 1' SIGTERM
- #a reasonable default for $S
+ # A reasonable default for ${S}
[[ -z ${S} ]] && export S=${WORKDIR}/${P}
- if [[ -s $SANDBOX_LOG ]] ; then
+ if [[ -s ${SANDBOX_LOG} ]] ; then
# We use SANDBOX_LOG to check for sandbox violations,
# so we ensure that there can't be a stale log to
# interfere with our logic.
local x=
- if [[ -n $SANDBOX_ON ]] ; then
- x=$SANDBOX_ON
+ if [[ -n ${SANDBOX_ON} ]] ; then
+ x=${SANDBOX_ON}
export SANDBOX_ON=0
fi
- rm -f "$SANDBOX_LOG" || \
- die "failed to remove stale sandbox log: '$SANDBOX_LOG'"
+ rm -f "${SANDBOX_LOG}" || \
+ die "failed to remove stale sandbox log: '${SANDBOX_LOG}'"
- if [[ -n $x ]] ; then
- export SANDBOX_ON=$x
+ if [[ -n ${x} ]] ; then
+ export SANDBOX_ON=${x}
fi
unset x
fi
# Force configure scripts that automatically detect ccache to
# respect FEATURES="-ccache".
- has ccache $FEATURES || export CCACHE_DISABLE=1
+ has ccache ${FEATURES} || export CCACHE_DISABLE=1
- local ___phase_func=$(__ebuild_arg_to_phase "$EBUILD_PHASE")
- [[ -n ${___phase_func} ]] && __ebuild_phase_funcs "$EAPI" "${___phase_func}"
+ local ___phase_func=$(__ebuild_arg_to_phase "${EBUILD_PHASE}")
+ [[ -n ${___phase_func} ]] && __ebuild_phase_funcs "${EAPI}" "${___phase_func}"
__source_all_bashrcs
@@ -999,7 +1008,7 @@ __ebuild_main() {
__ebuild_phase_with_hooks pkg_${1}
set +x
fi
- if [[ -n $PORTAGE_UPDATE_ENV ]] ; then
+ if [[ -n ${PORTAGE_UPDATE_ENV} ]] ; then
# Update environment.bz2 in case installation phases
# need to pass some variables to uninstallation phases.
# Use safe cwd, avoiding unsafe import for bug #469338.
@@ -1007,7 +1016,7 @@ __ebuild_main() {
__save_ebuild_env --exclude-init-phases | \
__filter_readonly_variables --filter-path \
--filter-sandbox --allow-extra-vars \
- | ${PORTAGE_BZIP2_COMMAND} -c -f9 > "$PORTAGE_UPDATE_ENV"
+ | ${PORTAGE_BZIP2_COMMAND} -c -f9 > "${PORTAGE_UPDATE_ENV}"
assert "__save_ebuild_env failed"
fi
;;
@@ -1024,16 +1033,16 @@ __ebuild_main() {
local x
for x in ASFLAGS CCACHE_DIR CCACHE_SIZE \
CFLAGS CXXFLAGS LDFLAGS LIBCFLAGS LIBCXXFLAGS ; do
- [[ ${!x+set} = set ]] && export $x
+ [[ ${!x+set} = set ]] && export ${x}
done
unset x
- has distcc $FEATURES && [[ -n $DISTCC_DIR ]] && \
- [[ ${SANDBOX_WRITE/$DISTCC_DIR} = $SANDBOX_WRITE ]] && \
- addwrite "$DISTCC_DIR"
+ has distcc ${FEATURES} && [[ -n ${DISTCC_DIR} ]] && \
+ [[ ${SANDBOX_WRITE/${DISTCC_DIR}} = ${SANDBOX_WRITE} ]] && \
+ addwrite "${DISTCC_DIR}"
- if has noauto $FEATURES && \
- [[ ! -f $PORTAGE_BUILDDIR/.unpacked ]] ; then
+ if has noauto ${FEATURES} && \
+ [[ ! -f ${PORTAGE_BUILDDIR}/.unpacked ]] ; then
echo
echo "!!! We apparently haven't unpacked..." \
"This is probably not what you"
@@ -1046,14 +1055,14 @@ __ebuild_main() {
sleep 5
fi
- cd "$PORTAGE_BUILDDIR"
+ cd "${PORTAGE_BUILDDIR}"
if [[ ! -d build-info ]]; then
mkdir build-info
- cp "$EBUILD" "build-info/$PF.ebuild"
+ cp "${EBUILD}" "build-info/${PF}.ebuild"
fi
- #our custom version of libtool uses $S and $D to fix
- #invalid paths in .la files
+ # Our custom version of libtool uses ${S} and ${D} to fix
+ # invalid paths in .la files
export S D
;;
@@ -1069,9 +1078,9 @@ __ebuild_main() {
export SANDBOX_ON="0"
;;
help|pretend|setup)
- #pkg_setup needs to be out of the sandbox for tmp file creation;
- #for example, awking and piping a file in /tmp requires a temp file to be created
- #in /etc. If pkg_setup is in the sandbox, both our lilo and apache ebuilds break.
+ # pkg_setup needs to be out of the sandbox for tmp file creation;
+ # for example, awking and piping a file in /tmp requires a temp file to be created
+ # in /etc. If pkg_setup is in the sandbox, both our lilo and apache ebuilds break.
export SANDBOX_ON="0"
if [[ "${PORTAGE_DEBUG}" != "1" || "${-/x/}" != "$-" ]]; then
__dyn_${1}
@@ -1095,17 +1104,21 @@ __ebuild_main() {
# Save the env only for relevant phases.
if ! has "${1}" clean help info nofetch ; then
umask 002
+
# Use safe cwd, avoiding unsafe import for bug #469338.
cd "${PORTAGE_PYM_PATH}"
__save_ebuild_env | __filter_readonly_variables \
- --filter-features > "$T/environment"
+ --filter-features > "${T}/environment"
assert "__save_ebuild_env failed"
- chgrp "${PORTAGE_GRPNAME:-portage}" "$T/environment"
- chmod g+w "$T/environment"
+
+ chgrp "${PORTAGE_GRPNAME:-portage}" "${T}/environment"
+ chmod g+w "${T}/environment"
fi
- [[ -n $PORTAGE_EBUILD_EXIT_FILE ]] && > "$PORTAGE_EBUILD_EXIT_FILE"
- if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
- [[ ! -s $SANDBOX_LOG ]]
- "$PORTAGE_BIN_PATH"/ebuild-ipc exit $?
+
+ [[ -n ${PORTAGE_EBUILD_EXIT_FILE} ]] && > "${PORTAGE_EBUILD_EXIT_FILE}"
+ if [[ -n ${PORTAGE_IPC_DAEMON} ]] ; then
+ [[ ! -s ${SANDBOX_LOG} ]]
+
+ "${PORTAGE_BIN_PATH}"/ebuild-ipc exit $?
fi
}
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 481170ebb..0f8973f59 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -16,7 +16,7 @@ export EXEOPTIONS="-m0755"
export LIBOPTIONS="-m0644"
export DIROPTIONS="-m0755"
export MOPREFIX=${PN}
-# Do not compress files which are smaller than this (in bytes). #169260
+# Do not compress files which are smaller than this (in bytes), bug #169260
export PORTAGE_DOCOMPRESS_SIZE_LIMIT="128"
declare -a PORTAGE_DOCOMPRESS=( /usr/share/{doc,info,man} )
declare -a PORTAGE_DOCOMPRESS_SKIP=( /usr/share/doc/${PF}/html )
@@ -34,10 +34,11 @@ into() {
fi
if [[ ! -d "${ED%/}/${_E_DESTTREE_#/}" ]]; then
install -d "${ED%/}/${_E_DESTTREE_#/}"
+
local ret=$?
- if [[ $ret -ne 0 ]] ; then
+ if [[ ${ret} -ne 0 ]] ; then
__helpers_die "${FUNCNAME[0]} failed"
- return $ret
+ return ${ret}
fi
fi
fi
@@ -48,19 +49,20 @@ into() {
}
insinto() {
- if [[ "$1" == "/" ]]; then
+ if [[ "${1}" == "/" ]]; then
export _E_INSDESTTREE_=""
else
- export _E_INSDESTTREE_=$1
+ export _E_INSDESTTREE_=${1}
if ! ___eapi_has_prefix_variables; then
local ED=${D}
fi
if [[ ! -d "${ED%/}/${_E_INSDESTTREE_#/}" ]]; then
install -d "${ED%/}/${_E_INSDESTTREE_#/}"
+
local ret=$?
- if [[ $ret -ne 0 ]] ; then
+ if [[ ${ret} -ne 0 ]] ; then
__helpers_die "${FUNCNAME[0]} failed"
- return $ret
+ return ${ret}
fi
fi
fi
@@ -71,38 +73,39 @@ insinto() {
}
exeinto() {
- if [[ "$1" == "/" ]]; then
+ if [[ "${1}" == "/" ]]; then
export _E_EXEDESTTREE_=""
else
- export _E_EXEDESTTREE_="$1"
+ export _E_EXEDESTTREE_="${1}"
if ! ___eapi_has_prefix_variables; then
local ED=${D}
fi
if [[ ! -d "${ED%/}/${_E_EXEDESTTREE_#/}" ]]; then
install -d "${ED%/}/${_E_EXEDESTTREE_#/}"
+
local ret=$?
- if [[ $ret -ne 0 ]] ; then
+ if [[ ${ret} -ne 0 ]] ; then
__helpers_die "${FUNCNAME[0]} failed"
- return $ret
+ return ${ret}
fi
fi
fi
}
docinto() {
- if [[ "$1" == "/" ]]; then
+ if [[ "${1}" == "/" ]]; then
export _E_DOCDESTTREE_=""
else
- export _E_DOCDESTTREE_="$1"
+ export _E_DOCDESTTREE_="${1}"
if ! ___eapi_has_prefix_variables; then
local ED=${D}
fi
if [[ ! -d "${ED%/}/usr/share/doc/${PF}/${_E_DOCDESTTREE_#/}" ]]; then
install -d "${ED%/}/usr/share/doc/${PF}/${_E_DOCDESTTREE_#/}"
local ret=$?
- if [[ $ret -ne 0 ]] ; then
+ if [[ ${ret} -ne 0 ]] ; then
__helpers_die "${FUNCNAME[0]} failed"
- return $ret
+ return ${ret}
fi
fi
fi
@@ -128,7 +131,7 @@ exeopts() {
libopts() {
if ! ___eapi_has_dolib_libopts; then
- die "'${FUNCNAME}' has been banned for EAPI '$EAPI'"
+ die "'${FUNCNAME}' has been banned for EAPI '${EAPI}'"
fi
export LIBOPTIONS="$@"
@@ -141,8 +144,9 @@ docompress() {
___eapi_has_docompress || die "'docompress' not supported in this EAPI"
local f g
- if [[ $1 = "-x" ]]; then
+ if [[ ${1} = "-x" ]]; then
shift
+
for f; do
f=$(__strip_duplicate_slashes "${f}"); f=${f%/}
[[ ${f:0:1} = / ]] || f="/${f}"
@@ -229,13 +233,13 @@ use() {
found=1
fi
- if [[ $EBUILD_PHASE = depend ]] ; then
+ if [[ ${EBUILD_PHASE} = depend ]] ; then
# TODO: Add a registration interface for eclasses to register
# any number of phase hooks, so that global scope eclass
# initialization can by migrated to phase hooks in new EAPIs.
- # Example: add_phase_hook before pkg_setup $ECLASS_pre_pkg_setup
- #if [[ -n $EAPI ]] && ! has "$EAPI" 0 1 2 3 ; then
- # die "use() called during invalid phase: $EBUILD_PHASE"
+ # Example: add_phase_hook before pkg_setup ${ECLASS}_pre_pkg_setup
+ #if [[ -n ${EAPI} ]] && ! has "${EAPI}" 0 1 2 3 ; then
+ # die "use() called during invalid phase: ${EBUILD_PHASE}"
#fi
true
@@ -251,6 +255,7 @@ use() {
# is not well defined for earlier EAPIs (see bug #449708).
die "USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}"
fi
+
eqawarn "QA Notice: USE Flag '${u}' not" \
"in IUSE for ${CATEGORY}/${PF}"
fi
@@ -268,7 +273,7 @@ use() {
}
use_with() {
- if [[ -z "$1" ]]; then
+ if [[ -z "${1}" ]]; then
echo "!!! use_with() called without a parameter." >&2
echo "!!! use_with <USEFLAG> [<flagname> [value]]" >&2
return 1
@@ -281,7 +286,7 @@ use_with() {
fi
local UWORD=${2:-$1}
- if use $1; then
+ if use ${1}; then
echo "--with-${UWORD}${UW_SUFFIX}"
else
echo "--without-${UWORD}"
@@ -290,7 +295,7 @@ use_with() {
}
use_enable() {
- if [[ -z "$1" ]]; then
+ if [[ -z "${1}" ]]; then
echo "!!! use_enable() called without a parameter." >&2
echo "!!! use_enable <USEFLAG> [<flagname> [value]]" >&2
return 1
@@ -303,7 +308,7 @@ use_enable() {
fi
local UWORD=${2:-$1}
- if use $1; then
+ if use ${1}; then
echo "--enable-${UWORD}${UE_SUFFIX}"
else
echo "--disable-${UWORD}"
@@ -318,6 +323,7 @@ unpack() {
local suffix suffix_insensitive
local myfail
local eapi=${EAPI:-0}
+
[[ -z "$*" ]] && die "Nothing passed to the 'unpack' command"
for x in "$@"; do
@@ -362,12 +368,12 @@ unpack() {
"secondary suffix '${y}' which is unofficially" \
"supported with EAPI '${EAPI}'. Instead use 'tar'."
fi
- $1 -c -- "$srcdir$x" | tar xof -
- __assert_sigpipe_ok "$myfail"
+ $1 -c -- "${srcdir}${x}" | tar xof -
+ __assert_sigpipe_ok "${myfail}"
else
local cwd_dest=${x##*/}
cwd_dest=${cwd_dest%.*}
- $1 -c -- "${srcdir}${x}" > "${cwd_dest}" || die "$myfail"
+ $1 -c -- "${srcdir}${x}" > "${cwd_dest}" || die "${myfail}"
fi
}
@@ -380,7 +386,7 @@ unpack() {
"suffix '${suffix}' which is unofficially supported" \
"with EAPI '${EAPI}'. Instead use 'tar'."
fi
- tar xof "$srcdir$x" || die "$myfail"
+ tar xof "${srcdir}${x}" || die "${myfail}"
;;
tgz)
if ___eapi_unpack_is_case_sensitive && \
@@ -389,7 +395,7 @@ unpack() {
"suffix '${suffix}' which is unofficially supported" \
"with EAPI '${EAPI}'. Instead use 'tgz'."
fi
- tar xozf "$srcdir$x" || die "$myfail"
+ tar xozf "${srcdir}${x}" || die "${myfail}"
;;
tbz|tbz2)
if ___eapi_unpack_is_case_sensitive && \
@@ -398,8 +404,8 @@ unpack() {
"suffix '${suffix}' which is unofficially supported" \
"with EAPI '${EAPI}'. Instead use 'tbz' or 'tbz2'."
fi
- ${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- "$srcdir$x" | tar xof -
- __assert_sigpipe_ok "$myfail"
+ ${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- "${srcdir}${x}" | tar xof -
+ __assert_sigpipe_ok "${myfail}"
;;
zip|jar)
if ___eapi_unpack_is_case_sensitive && \
@@ -412,7 +418,7 @@ unpack() {
# unzip will interactively prompt under some error conditions,
# as reported in bug #336285
( set +x ; while true ; do echo n || break ; done ) | \
- unzip -qo "${srcdir}${x}" || die "$myfail"
+ unzip -qo "${srcdir}${x}" || die "${myfail}"
;;
gz|z)
if ___eapi_unpack_is_case_sensitive && \
@@ -438,7 +444,7 @@ unpack() {
my_output="$(7z x -y "${srcdir}${x}")"
if [[ $? -ne 0 ]]; then
echo "${my_output}" >&2
- die "$myfail"
+ die "${myfail}"
fi
else
__vecho "unpack ${x}: file format not recognized. Ignoring."
@@ -452,7 +458,7 @@ unpack() {
"with EAPI '${EAPI}'. Instead use 'rar' or 'RAR'."
fi
if ___eapi_unpack_supports_rar; then
- unrar x -idq -o+ "${srcdir}${x}" || die "$myfail"
+ unrar x -idq -o+ "${srcdir}${x}" || die "${myfail}"
else
__vecho "unpack ${x}: file format not recognized. Ignoring."
fi
@@ -466,7 +472,7 @@ unpack() {
"Instead use 'LHA', 'LHa', 'lha', or 'lzh'."
fi
if ___eapi_unpack_supports_lha; then
- lha xfq "${srcdir}${x}" || die "$myfail"
+ lha xfq "${srcdir}${x}" || die "${myfail}"
else
__vecho "unpack ${x}: file format not recognized. Ignoring."
fi
@@ -478,7 +484,7 @@ unpack() {
"suffix '${suffix}' which is unofficially supported" \
"with EAPI '${EAPI}'. Instead use 'a'."
fi
- ar x "${srcdir}${x}" || die "$myfail"
+ ar x "${srcdir}${x}" || die "${myfail}"
;;
deb)
if ___eapi_unpack_is_case_sensitive && \
@@ -487,6 +493,7 @@ unpack() {
"suffix '${suffix}' which is unofficially supported" \
"with EAPI '${EAPI}'. Instead use 'deb'."
fi
+
# Unpacking .deb archives can not always be done with
# `ar`. For instance on AIX this doesn't work out.
# If `ar` is not the GNU binutils version and we have
@@ -497,24 +504,27 @@ unpack() {
type -P deb2targz > /dev/null; then
y=${x##*/}
local created_symlink=0
- if [[ ! "$srcdir$x" -ef "$y" ]]; then
+
+ if [[ ! "${srcdir}${x}" -ef "${y}" ]]; then
# deb2targz always extracts into the same directory as
# the source file, so create a symlink in the current
# working directory if necessary.
- ln -sf "$srcdir$x" "$y" || die "$myfail"
+ ln -sf "${srcdir}${x}" "${y}" || die "${myfail}"
created_symlink=1
fi
- deb2targz "$y" || die "$myfail"
- if [[ $created_symlink = 1 ]]; then
+
+ deb2targz "${y}" || die "${myfail}"
+
+ if [[ ${created_symlink} = 1 ]]; then
# Clean up the symlink so the ebuild
# doesn't inadvertently install it.
- rm -f "$y"
+ rm -f "${y}"
fi
mv -f "${y%.deb}".tar.gz data.tar.gz \
|| mv -f "${y%.deb}".tar.xz data.tar.xz \
- || die "$myfail"
+ || die "${myfail}"
else
- ar x "$srcdir$x" || die "$myfail"
+ ar x "${srcdir}${x}" || die "${myfail}"
fi
;;
lzma)
@@ -547,7 +557,7 @@ unpack() {
"with EAPI '${EAPI}'. Instead use 'txz'."
fi
if ___eapi_unpack_supports_txz; then
- tar xof "$srcdir$x" || die "$myfail"
+ tar xof "${srcdir}${x}" || die "${myfail}"
else
__vecho "unpack ${x}: file format not recognized. Ignoring."
fi
@@ -557,6 +567,7 @@ unpack() {
;;
esac
done
+
# Do not chmod '.' since it's probably ${WORKDIR} and PORTAGE_WORKDIR_MODE
# should be preserved.
find . -mindepth 1 -maxdepth 1 ! -type l -print0 | \
@@ -580,38 +591,42 @@ econf() {
__hasgq() { __hasg "$@" >/dev/null ; }
- local phase_func=$(__ebuild_arg_to_phase "$EBUILD_PHASE")
- if [[ -n $phase_func ]] ; then
+ local phase_func=$(__ebuild_arg_to_phase "${EBUILD_PHASE}")
+ if [[ -n ${phase_func} ]] ; then
if ! ___eapi_has_src_configure; then
- [[ $phase_func != src_compile ]] && \
+ [[ ${phase_func} != src_compile ]] && \
eqawarn "QA Notice: econf called in" \
- "$phase_func instead of src_compile"
+ "${phase_func} instead of src_compile"
else
- [[ $phase_func != src_configure ]] && \
+ [[ ${phase_func} != src_configure ]] && \
eqawarn "QA Notice: econf called in" \
- "$phase_func instead of src_configure"
+ "${phase_func} instead of src_configure"
fi
fi
: ${ECONF_SOURCE:=.}
if [[ -x "${ECONF_SOURCE}/configure" ]]; then
- if [[ -n $CONFIG_SHELL && \
- "$(head -n1 "$ECONF_SOURCE/configure")" =~ ^'#!'[[:space:]]*/bin/sh([[:space:]]|$) ]] ; then
+ if [[ -n ${CONFIG_SHELL} && \
+ "$(head -n1 "${ECONF_SOURCE}/configure")" =~ ^'#!'[[:space:]]*/bin/sh([[:space:]]|$) ]] ; then
+
cp -p "${ECONF_SOURCE}/configure" "${ECONF_SOURCE}/configure._portage_tmp_.${pid}" || die
sed -i \
- -e "1s:^#![[:space:]]*/bin/sh:#!$CONFIG_SHELL:" \
+ -e "1s:^#![[:space:]]*/bin/sh:#!${CONFIG_SHELL}:" \
"${ECONF_SOURCE}/configure._portage_tmp_.${pid}" \
|| die "Substition of shebang in '${ECONF_SOURCE}/configure' failed"
+
# Preserve timestamp, see bug #440304
touch -r "${ECONF_SOURCE}/configure" "${ECONF_SOURCE}/configure._portage_tmp_.${pid}" || die
mv -f "${ECONF_SOURCE}/configure._portage_tmp_.${pid}" "${ECONF_SOURCE}/configure" || die
fi
+
if [[ -e "${EPREFIX}"/usr/share/gnuconfig/ ]]; then
find "${WORKDIR}" -type f '(' \
-name config.guess -o -name config.sub ')' -print0 | \
while read -r -d $'\0' x ; do
__vecho " * econf: updating ${x/${WORKDIR}\/} with ${EPREFIX}/usr/share/gnuconfig/${x##*/}"
- # Make sure we do this atomically incase we're run in parallel. #487478
+
+ # Make sure we do this atomically incase we're run in parallel, bug #487478
cp -f "${EPREFIX}"/usr/share/gnuconfig/"${x##*/}" "${x}.${pid}"
mv -f "${x}.${pid}" "${x}"
done
@@ -669,13 +684,17 @@ econf() {
if [[ -n ${ABI} && -n ${!LIBDIR_VAR} ]] ; then
CONF_LIBDIR=${!LIBDIR_VAR}
fi
+
if [[ -n ${CONF_LIBDIR} ]] && ! __hasgq --libdir=\* "$@" ; then
export CONF_PREFIX=$(__hasg --exec-prefix=\* "$@")
[[ -z ${CONF_PREFIX} ]] && CONF_PREFIX=$(__hasg --prefix=\* "$@")
+
: ${CONF_PREFIX:=${EPREFIX}/usr}
CONF_PREFIX=${CONF_PREFIX#*=}
+
[[ ${CONF_PREFIX} != /* ]] && CONF_PREFIX="/${CONF_PREFIX}"
[[ ${CONF_LIBDIR} != /* ]] && CONF_LIBDIR="/${CONF_LIBDIR}"
+
conf_args+=(
--libdir="$(__strip_duplicate_slashes "${CONF_PREFIX}${CONF_LIBDIR}")"
)
@@ -700,12 +719,12 @@ econf() {
__vecho "${ECONF_SOURCE}/configure" "$@"
if ! "${ECONF_SOURCE}/configure" "$@" ; then
-
if [[ -s config.log ]]; then
echo
echo "!!! Please attach the following file when seeking support:"
echo "!!! ${PWD}/config.log"
fi
+
# econf dies unconditionally in EAPIs 0 to 3
___eapi_helpers_can_die || die "econf failed"
__helpers_die "econf failed"
@@ -720,7 +739,7 @@ econf() {
einstall() {
if ! ___eapi_has_einstall; then
- die "'${FUNCNAME}' has been banned for EAPI '$EAPI'"
+ die "'${FUNCNAME}' has been banned for EAPI '${EAPI}'"
exit 1
fi
@@ -729,11 +748,13 @@ einstall() {
if ! ___eapi_has_prefix_variables; then
local ED=${D}
fi
+
LIBDIR_VAR="LIBDIR_${ABI}"
if [[ -n "${ABI}" && -n "${!LIBDIR_VAR}" ]]; then
CONF_LIBDIR="${!LIBDIR_VAR}"
fi
unset LIBDIR_VAR
+
if [[ -n "${CONF_LIBDIR}" && "${CONF_PREFIX:+set}" = set ]]; then
EI_DESTLIBDIR="${D%/}/${CONF_PREFIX}/${CONF_LIBDIR}"
EI_DESTLIBDIR="$(__strip_duplicate_slashes "${EI_DESTLIBDIR}")"
@@ -753,6 +774,7 @@ einstall() {
${MAKEOPTS} -j1 \
"$@" ${EXTRA_EMAKE} install
fi
+
if ! ${MAKE:-make} prefix="${ED%/}/usr" \
datadir="${ED%/}/usr/share" \
infodir="${ED%/}/usr/share/info" \
@@ -803,13 +825,14 @@ __eapi0_src_test() {
if ___eapi_default_src_test_disables_parallel_jobs; then
internal_opts+=" -j1"
fi
- if $emake_cmd ${internal_opts} check -n &> /dev/null; then
+
+ if ${emake_cmd} ${internal_opts} check -n &> /dev/null; then
__vecho "${emake_cmd} ${internal_opts} check" >&2
- $emake_cmd ${internal_opts} check || \
+ ${emake_cmd} ${internal_opts} check || \
die "Make check failed. See above for details."
- elif $emake_cmd ${internal_opts} test -n &> /dev/null; then
+ elif ${emake_cmd} ${internal_opts} test -n &> /dev/null; then
__vecho "${emake_cmd} ${internal_opts} test" >&2
- $emake_cmd ${internal_opts} test || \
+ ${emake_cmd} ${internal_opts} test || \
die "Make test failed. See above for details."
fi
}
@@ -904,6 +927,7 @@ ___best_version_and_has_version_common() {
if ! ___eapi_best_version_and_has_version_support_--host-root; then
die "${FUNCNAME[1]}: option ${root_arg} is not supported with EAPI ${EAPI}"
fi
+
if ___eapi_has_prefix_variables; then
# Since portageq requires the root argument be consistent
# with EPREFIX, ensure consistency here (bug #655414).
@@ -936,13 +960,15 @@ ___best_version_and_has_version_common() {
fi ;;
esac
- if [[ -n $PORTAGE_IPC_DAEMON ]] ; then
+ if [[ -n ${PORTAGE_IPC_DAEMON} ]] ; then
cmd+=("${PORTAGE_BIN_PATH}"/ebuild-ipc "${FUNCNAME[1]}" "${root}" "${atom}")
else
cmd+=("${PORTAGE_BIN_PATH}"/ebuild-helpers/portageq "${FUNCNAME[1]}" "${root}" "${atom}")
fi
+
"${cmd[@]}"
local retval=$?
+
case "${retval}" in
0|1)
return ${retval}
@@ -1040,6 +1066,7 @@ if ___eapi_has_eapply; then
-p1 -f -g0 --no-backup-if-mismatch
"${patch_options[@]}"
)
+
# Try applying with -F0 first, output a verbose warning
# if fuzz factor is necessary
if ${patch_cmd} "${all_opts[@]}" --dry-run -s -F0 \
@@ -1056,7 +1083,7 @@ if ___eapi_has_eapply; then
local patch_options=() files=()
local i found_doublehyphen
- # first, try to split on --
+ # First, try to split on --
for (( i = 1; i <= ${#@}; ++i )); do
if [[ ${@:i:1} == -- ]]; then
patch_options=( "${@:1:i-1}" )
@@ -1066,7 +1093,7 @@ if ___eapi_has_eapply; then
fi
done
- # then, try to split on first non-option
+ # Then, try to split on first non-option
if [[ -z ${found_doublehyphen} ]]; then
for (( i = 1; i <= ${#@}; ++i )); do
if [[ ${@:i:1} != -* ]]; then
@@ -1076,7 +1103,7 @@ if ___eapi_has_eapply; then
fi
done
- # ensure that no options were interspersed with files
+ # Ensure that no options were interspersed with files
for i in "${files[@]}"; do
if [[ ${i} == -* ]]; then
die "eapply: all options must be passed before non-options"
@@ -1119,7 +1146,7 @@ if ___eapi_has_eapply; then
else
_eapply_patch "${f}"
- # in case of nonfatal
+ # In case of nonfatal
[[ ${failed} -ne 0 ]] && return "${failed}"
fi
done
@@ -1132,6 +1159,7 @@ if ___eapi_has_eapply_user; then
eapply_user() {
[[ ${EBUILD_PHASE} == prepare ]] || \
die "eapply_user() called during invalid phase: ${EBUILD_PHASE}"
+
# Keep path in __dyn_prepare in sync!
local tagfile=${T}/.portage_user_patches_applied
[[ -f ${tagfile} ]] && return
diff --git a/bin/portageq b/bin/portageq
index 6d12c98dd..70c5699bb 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -956,7 +956,7 @@ def get_repos(argv):
docstrings[
"get_repos"
] = """<eroot>
- Returns all repos with names (repo_name file) argv[0] = $EROOT
+ Returns all repos with names (repo_name file) argv[0] = ${EROOT}
"""
get_repos.__doc__ = docstrings["get_repos"]
@@ -1023,7 +1023,7 @@ def get_repo_path(argv):
docstrings[
"get_repo_path"
] = """<eroot> <repo_id>+
- Returns the path to the repo named argv[1], argv[0] = $EROOT
+ Returns the path to the repo named argv[1], argv[0] = ${EROOT}
"""
get_repo_path.__doc__ = docstrings["get_repo_path"]
diff --git a/bin/postinst-qa-check.d/50xdg-utils b/bin/postinst-qa-check.d/50xdg-utils
index 9a7c036e6..2951ae05c 100644
--- a/bin/postinst-qa-check.d/50xdg-utils
+++ b/bin/postinst-qa-check.d/50xdg-utils
@@ -1,4 +1,4 @@
-# check for missing calls to xdg-utils regen functions
+# Check for missing calls to xdg-utils regen functions
xdg_desktop_database_check() {
type -P update-desktop-database &>/dev/null || return
@@ -8,19 +8,19 @@ xdg_desktop_database_check() {
[[ -d ${d} ]] || continue
local files=() find_args=()
- # if the cache does not exist at all, we complain for any file
+ # If the cache does not exist at all, we complain for any file
# otherwise, we look for files newer than the cache
[[ -f ${d}/mimeinfo.cache ]] &&
find_args+=( -newercm "${d}"/mimeinfo.cache ) || missing=1
- # look for any .desktop files that are newer than the cache
+ # Look for any .desktop files that are newer than the cache
# and that have any mime types defined
while read -r -d $'\0' f; do
files+=( "${f}" )
done < <(find "${d}" -name '*.desktop' "${find_args[@]}" \
-exec grep -lZi '^MimeType=' {} +)
- # if any files were found, update the db to avoid repeating
+ # If any files were found, update the db to avoid repeating
# the warning for subsequent packages
if [[ ${files[@]} ]]; then
all_files+=("${files[@]}")
@@ -29,10 +29,10 @@ xdg_desktop_database_check() {
fi
done
- # preinst initializes the baseline state for the posinst check
+ # Preinst initializes the baseline state for the posinst check
[[ ${PORTAGE_QA_PHASE} == preinst ]] && return
- # parallel-install makes it impossible to blame a specific package
+ # Parallel-install makes it impossible to blame a specific package
has parallel-install ${FEATURES} && return
# The eqatag call is prohibitively expensive if the cache is
@@ -60,7 +60,8 @@ xdg_icon_cache_check() {
'(' -name '*.png' -o -name '*.svg'
-o -name '*.xpm' -o -name '*.icon' ')'
)
- # if the cache does not exist at all, we complain for any file
+
+ # If the cache does not exist at all, we complain for any file
# otherwise, we look for files newer than the cache
[[ -f ${d}/icon-theme.cache ]] &&
find_args+=( -newercm "${d}"/icon-theme.cache ) || missing=1
@@ -70,7 +71,7 @@ xdg_icon_cache_check() {
files+=( "${f}" )
done < <(find "${d}" -mindepth 2 -type f "${find_args[@]}" -print0)
- # if any files were found, update the db to avoid repeating
+ # If any files were found, update the db to avoid repeating
# the warning for subsequent packages
if [[ ${files[@]} ]]; then
all_files+=("${files[@]}")
@@ -85,7 +86,7 @@ xdg_icon_cache_check() {
# parallel-install makes it impossible to blame a specific package
has parallel-install ${FEATURES} && return
- # avoid false-positives on first install (bug 649464)
+ # Avoid false-positives on first install (bug #649464)
[[ ${PN} == gtk-update-icon-cache ]] && return
# The eqatag call is prohibitively expensive if the cache is
@@ -107,7 +108,7 @@ xdg_mimeinfo_database_check() {
[[ -d ${d} ]] || continue
local files=() find_args=()
- # if the cache does not exist at all, we complain for any file
+ # If the cache does not exist at all, we complain for any file
# otherwise, we look for files newer than the cache
[[ -f ${d}/mime.cache ]] &&
find_args+=( -newercm "${d}"/mime.cache ) || missing=1
diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 18a82ad4c..eb57c9208 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -16,9 +16,9 @@ __save_ebuild_env() {
unset S _E_DESTTREE _E_INSDESTTREE _E_DOCDESTTREE_ _E_EXEDESTTREE_ \
PORTAGE_DOCOMPRESS_SIZE_LIMIT PORTAGE_DOCOMPRESS \
PORTAGE_DOCOMPRESS_SKIP PORTAGE_DOSTRIP PORTAGE_DOSTRIP_SKIP
- if [[ -n $PYTHONPATH &&
- ${PYTHONPATH%%:*} -ef $PORTAGE_PYM_PATH ]] ; then
- if [[ $PYTHONPATH == *:* ]] ; then
+ if [[ -n ${PYTHONPATH} &&
+ ${PYTHONPATH%%:*} -ef ${PORTAGE_PYM_PATH} ]] ; then
+ if [[ ${PYTHONPATH} == *:* ]] ; then
export PYTHONPATH=${PYTHONPATH#*:}
else
unset PYTHONPATH
@@ -43,7 +43,7 @@ __save_ebuild_env() {
for x in pkg_setup pkg_nofetch src_unpack src_prepare src_configure \
src_compile src_test src_install pkg_preinst pkg_postinst \
pkg_prerm pkg_postrm pkg_config pkg_info pkg_pretend ; do
- unset -f default_$x __eapi{0,1,2,3,4}_$x
+ unset -f default_${x} __eapi{0,1,2,3,4}_${x}
done
unset x