exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ ! -d ${ED}${DESTTREE}/bin ]] ; then
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
install -d ${DIROPTIONS} "${@/#/${ED}/}"
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
dir="${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ ! -d ${ED}${_E_EXEDESTTREE_} ]] ; then
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
destdir=${2%/*}
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ ! -d ${ED}usr/share/info ]] ; then
DOINSRECUR=n
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) export ED="${D}" ;; esac
if [[ ${INSDESTTREE#${ED}} != "${INSDESTTREE}" ]]; then
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
# Setup ABI cruft
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
i18n=""
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [ ! -d "${ED}${DESTTREE}/share/locale" ] ; then
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ ! -d ${ED}${DESTTREE}/sbin ]] ; then
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
ret=0
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ ${2} == */ ]] || \
exit 1
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
case $1 in
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
# we can't prefix all arguments because
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
# we can't prefix all arguments because
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if has chflags $FEATURES ; then
vecho "${0##*/}: invalid usage; takes no arguments" 1>&2
fi
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
[[ -d ${ED}usr/share/doc ]] || exit 0
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
[[ -d ${ED}usr/share/info ]] || exit 0
# replaced by controllable compression in EAPI 4
has "${EAPI}" 0 1 2 3 || exit 0
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
ret=0
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
exec prepstrip "${ED}"
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ -z $1 ]] ; then
eqawarn "QA Notice: Deprecated call to 'preplib'"
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
LIBDIR_VAR="LIBDIR_${ABI}"
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
if [[ -z $1 ]] ; then
exp_tf FEATURES installsources nostrip splitdebug
exp_tf RESTRICT binchecks installsources strip
-[[ " ${USE} " == *" prefix "* ]] || \
+[[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) ED=${D} ;; esac
banner=false
declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS
case "$EAPI" in
0|1|2)
- [[ " ${USE} " == *" prefix "* ]] && \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] && \
declare -r ED EPREFIX EROOT
;;
*)
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}/ebuild.sh"
install_symlink_html_docs() {
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
cd "${ED}" || die "cd failed"
#symlink the html documentation (if DOC_SYMLINKS_DIR is set in make.conf)
prepcompress() {
local -a include exclude incl_d incl_f
local f g i real_f real_d
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
# Canonicalize path names and check for their existence.
install_qa_check() {
local f i x
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
cd "${ED}" || die "cd failed"
return 1
fi
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
# Make sure $PWD is not ${D} so that we don't leave gmon.out files
return 1
fi
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
# Smart FileSystem Permissions
return 1
fi
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
# total suid control.
dyn_package() {
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
# Make sure $PWD is not ${D} so that we don't leave gmon.out files
dyn_rpm() {
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local EPREFIX= ;; esac
cd "${T}" || die "cd failed"
# supported by the current EAPI.
case "${EAPI:-0}" in
0|1|2)
- [[ " ${USE} " == *" prefix "* ]] && \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] && \
filtered_vars+=" ED EPREFIX EROOT"
;;
*)
ebuild_phase pre_src_install
_x=${ED}
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) _x=${D} ;; esac
rm -rf "${D}"
mkdir -p "${_x}"
# work in a different EPREFIX from the one is was built for.
case "${EAPI:-0}" in
0|1|2)
- [[ " ${USE} " == *" prefix "* ]] && \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] && \
[ -n "${EPREFIX}" ] && echo "${EPREFIX}" > EPREFIX
;;
*)
export DESTTREE=""
else
export DESTTREE=$1
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
if [ ! -d "${ED}${DESTTREE}" ]; then
install -d "${ED}${DESTTREE}"
export INSDESTTREE=""
else
export INSDESTTREE=$1
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
if [ ! -d "${ED}${INSDESTTREE}" ]; then
install -d "${ED}${INSDESTTREE}"
export _E_EXEDESTTREE_=""
else
export _E_EXEDESTTREE_="$1"
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
if [ ! -d "${ED}${_E_EXEDESTTREE_}" ]; then
install -d "${ED}${_E_EXEDESTTREE_}"
export _E_DOCDESTTREE_=""
else
export _E_DOCDESTTREE_="$1"
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
if [ ! -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
install -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
keepdir() {
dodir "$@"
local x
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then
shift
econf() {
local x
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local EPREFIX= ;; esac
_hasg() {
einstall() {
# CONF_PREFIX is only set if they didn't pass in libdir above.
local LOCAL_EXTRA_EINSTALL="${EXTRA_EINSTALL}"
- [[ " ${USE} " == *" prefix "* ]] || \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] || \
case "$EAPI" in 0|1|2) local ED=${D} ;; esac
LIBDIR_VAR="LIBDIR_${ABI}"
if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then
local eroot
case "$EAPI" in
0|1|2)
- [[ " ${USE} " == *" prefix "* ]] && \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] && \
eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
;;
*)
local eroot
case "$EAPI" in
0|1|2)
- [[ " ${USE} " == *" prefix "* ]] && \
+ [[ " ${FEATURES} " == *" force-prefix "* ]] && \
eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
;;
*)
Only fetch files from configured mirrors, ignoring \fBSRC_URI\fR,
except when \fImirror\fR is in the \fBebuild\fR(5) \fBRESTRICT\fR variable.
.TP
+.B force\-prefix
+Enable prefix support for all ebuilds, regardless of EAPI, since older EAPIs
+would otherwise be useless with prefix configurations. This brings
+compatibility with the prefix branch of portage, which also supports EPREFIX
+for all EAPIs (for obvious reasons).
+.TP
.B lmirror
When \fImirror\fR is enabled in \fBFEATURES\fR, fetch files even
when \fImirror\fR is also in the \fBebuild\fR(5) \fBRESTRICT\fR variable.
"ccache", "chflags", "clean-logs",
"collision-protect", "compress-build-logs",
"digest", "distcc", "distcc-pump", "distlocks", "ebuild-locks", "fakeroot",
- "fail-clean", "force-mirror", "getbinpkg",
+ "fail-clean", "force-mirror", "force-prefix", "getbinpkg",
"installsources", "keeptemp", "keepwork", "fixlafiles", "lmirror",
"metadata-transfer", "mirror", "multilib-strict", "news",
"noauto", "noclean", "nodoc", "noinfo", "noman",
if not eapi_exports_merge_type(eapi):
mydict.pop("MERGE_TYPE", None)
- # Prefix variables are supported beginning with EAPI 3, or when EPREFIX
- # is non-empty (implying that EPREFIX support is required in the
- # current environment, regardless of EAPI). For EAPIs prior to 3,
- # ebuild helpers rely on these variables only when USE=prefix is
- # enabled. This is safe because the prefix flag should be masked in all
- # non-prefix profiles, and older EAPIs would otherwise be useless with
- # prefix configurations. This brings compatibility with the prefix
- # branch of portage, which also supports EPREFIX for all EAPIs (for
- # obvious reasons).
+ # Prefix variables are supported beginning with EAPI 3, or when
+ # force-prefix is in FEATURES, since older EAPIs would otherwise be
+ # useless with prefix configurations. This brings compatibility with
+ # the prefix branch of portage, which also supports EPREFIX for all
+ # EAPIs (for obvious reasons).
if phase == 'depend' or eapi is None or \
- (not eapi_supports_prefix(eapi) and not mydict.get("EPREFIX")):
+ ('force-prefix' not in self.features and
+ not eapi_supports_prefix(eapi)):
mydict.pop("ED", None)
mydict.pop("EPREFIX", None)
mydict.pop("EROOT", None)