PREROOTPATH=${PREROOTPATH##:}
PREROOTPATH=${PREROOTPATH%%:}
#PATH=$PORTAGE_BIN_PATH/ebuild-helpers:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin${ROOTPATH:+:}$ROOTPATH
-# PREFIX: we deviate in path order, should we split up DEFAULT_PATH?
-PATH="$PORTAGE_BIN_PATH/ebuild-helpers:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}:${ROOTPATH:+:}$ROOTPATH"
+# PREFIX: our DEFAULT_PATH is equal to the above when not using an
+# offset prefix. With such prefix, the usr/local bits are excluded, and
+# the prefixed variants of {usr/,}{s,}bin are taken. The additional
+# paths given during configure, always come as last thing since they
+# should never override anything from the prefix itself.
+PATH="$PORTAGE_BIN_PATH/ebuild-helpers:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH${EXTRA_PATH:+:}${EXTRA_PATH}"
export PATH
# These two functions wrap sourcing and calling respectively. At present they
esac
#PATH=$ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin${ROOTPATH:+:}$ROOTPATH
- # PREFIX: same deviation as at the top of this file
- PATH="$ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH"
+ # PREFIX: same notes apply as at the top of this file
+ PATH="$ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH${EXTRA_PATH:+:}${EXTRA_PATH}"
unset ebuild_helpers_path
if ! hasq $EBUILD_SH_ARGS clean depend help info nofetch ; then
# Default PATH for ebuild env
DEFAULT_PATH="@DEFAULT_PATH@"
+# Any extra PATHs to add to the ebuild environment's PATH (if any)
+EXTRA_PATH="@EXTRA_PATH@"
# Mode bits for ${WORKDIR} (see ebuild.5).
PORTAGE_WORKDIR_MODE="0700"
if test "x$PORTAGE_EPREFIX" != "x"
then
PORTAGE_EPREFIX=`${PORTAGE_PYTHON} -c "import os; print os.path.normpath('$PORTAGE_EPREFIX')"`
+ DEFAULT_PATH="${PORTAGE_EPREFIX}/usr/sbin:${PORTAGE_EPREFIX}/usr/bin:${PORTAGE_EPREFIX}/sbin:${PORTAGE_EPREFIX}/bin"
+else
+ # this is what trunk uses in ebuild.sh
+ DEFAULT_PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
fi
-DEFAULT_PATH="${PORTAGE_EPREFIX}/usr/bin:${PORTAGE_EPREFIX}/usr/sbin:${PORTAGE_EPREFIX}/bin:${PORTAGE_EPREFIX}/sbin:${PORTAGE_EPREFIX}/bin"
-AC_ARG_WITH(default-path,
-AC_HELP_STRING([--with-default-path], [specify additional PATHs available to the portage build environment ]),
-[DEFAULT_PATH="${DEFAULT_PATH}":$withval],
-[DEFAULT_PATH="${DEFAULT_PATH}"])
+AC_ARG_WITH(extra-path,
+AC_HELP_STRING([--with-extra-path], [specify additional PATHs available to the portage build environment (use with care)]),
+[EXTRA_PATH="$withval"],
+[EXTRA_PATH=""])
AC_SUBST(portageuser)
AC_SUBST(portagegroup)
AC_SUBST(rootgid)
AC_SUBST(PORTAGE_EPREFIX)
AC_SUBST(DEFAULT_PATH)
+AC_SUBST(EXTRA_PATH)
AC_SUBST(PORTAGE_BASE,['${exec_prefix}/lib/portage'])
AC_SUBST(PORTAGE_RM)
at='@'
sedexp=(
-e "s,${at}DEFAULT_PATH${at},@DEFAULT_PATH@,g"
+ -e "s,${at}EXTRA_PATH${at},@EXTRA_PATH@,g"
-e "s,${at}EGREP${at},@EGREP@,g"
-e "s,${at}PORTAGE_BASE${at},@PORTAGE_BASE@,g"
-e "s,${at}PORTAGE_BASENAME${at},@PORTAGE_BASENAME@,g"