summaryrefslogtreecommitdiff
path: root/eclass/eutils.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-01-31 20:30:04 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-01-31 20:30:04 +0000
commit4650985dd0e898b82e0d2ec225931297d4fadccf (patch)
treeeb0e8002cf3ebf1009110b6fec47fa90f873d824 /eclass/eutils.eclass
parent67f76a858f1ac826bd8a550d756d9ec6e340ed4f (diff)
gentoo resync : 31.01.2018
Diffstat (limited to 'eclass/eutils.eclass')
-rw-r--r--eclass/eutils.eclass109
1 files changed, 10 insertions, 99 deletions
diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass
index 63f73db290f4..8bbd561015ad 100644
--- a/eclass/eutils.eclass
+++ b/eclass/eutils.eclass
@@ -164,98 +164,6 @@ strip-linguas() {
export LINGUAS=${newls:1}
}
-# @FUNCTION: built_with_use
-# @USAGE: [--hidden] [--missing <action>] [-a|-o] <DEPEND ATOM> <List of USE flags>
-# @DESCRIPTION:
-#
-# Deprecated: Use EAPI 2 use deps in DEPEND|RDEPEND and with has_version calls.
-#
-# A temporary hack until portage properly supports DEPENDing on USE
-# flags being enabled in packages. This will check to see if the specified
-# DEPEND atom was built with the specified list of USE flags. The
-# --missing option controls the behavior if called on a package that does
-# not actually support the defined USE flags (aka listed in IUSE).
-# The default is to abort (call die). The -a and -o flags control
-# the requirements of the USE flags. They correspond to "and" and "or"
-# logic. So the -a flag means all listed USE flags must be enabled
-# while the -o flag means at least one of the listed IUSE flags must be
-# enabled. The --hidden option is really for internal use only as it
-# means the USE flag we're checking is hidden expanded, so it won't be found
-# in IUSE like normal USE flags.
-#
-# Remember that this function isn't terribly intelligent so order of optional
-# flags matter.
-built_with_use() {
- local hidden="no"
- if [[ $1 == "--hidden" ]] ; then
- hidden="yes"
- shift
- fi
-
- local missing_action="die"
- if [[ $1 == "--missing" ]] ; then
- missing_action=$2
- shift ; shift
- case ${missing_action} in
- true|false|die) ;;
- *) die "unknown action '${missing_action}'";;
- esac
- fi
-
- local opt=$1
- [[ ${opt:0:1} = "-" ]] && shift || opt="-a"
-
- local PKG=$(best_version $1)
- [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package"
- shift
-
- has "${EAPI:-0}" 0 1 2 && local EROOT=${ROOT}
- local USEFILE=${EROOT}/var/db/pkg/${PKG}/USE
- local IUSEFILE=${EROOT}/var/db/pkg/${PKG}/IUSE
-
- # if the IUSE file doesn't exist, the read will error out, we need to handle
- # this gracefully
- if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]] ; then
- case ${missing_action} in
- true) return 0;;
- false) return 1;;
- die) die "Unable to determine what USE flags $PKG was built with";;
- esac
- fi
-
- if [[ ${hidden} == "no" ]] ; then
- local IUSE_BUILT=( $(<"${IUSEFILE}") )
- # Don't check USE_EXPAND #147237
- local expand
- for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]') ; do
- if [[ $1 == ${expand}_* ]] ; then
- expand=""
- break
- fi
- done
- if [[ -n ${expand} ]] ; then
- if ! has $1 ${IUSE_BUILT[@]#[-+]} ; then
- case ${missing_action} in
- true) return 0;;
- false) return 1;;
- die) die "$PKG does not actually support the $1 USE flag!";;
- esac
- fi
- fi
- fi
-
- local USE_BUILT=$(<${USEFILE})
- while [[ $# -gt 0 ]] ; do
- if [[ ${opt} = "-o" ]] ; then
- has $1 ${USE_BUILT} && return 0
- else
- has $1 ${USE_BUILT} || return 1
- fi
- shift
- done
- [[ ${opt} = "-a" ]]
-}
-
# @FUNCTION: make_wrapper
# @USAGE: <wrapper> <target> [chdir] [libpaths] [installpath]
# @DESCRIPTION:
@@ -454,12 +362,14 @@ case ${EAPI:-0} in
# @FUNCTION: einstalldocs
# @DESCRIPTION:
-# Install documentation using DOCS and HTML_DOCS.
+# Install documentation using DOCS and HTML_DOCS, in EAPIs that do not
+# provide this function. When available (i.e., in EAPI 6 or later),
+# the package manager implementation should be used instead.
#
# If DOCS is declared and non-empty, all files listed in it are
-# installed. The files must exist, otherwise the function will fail.
-# In EAPI 4 and subsequent EAPIs DOCS may specify directories as well,
-# in other EAPIs using directories is unsupported.
+# installed. The files must exist, otherwise the function will fail.
+# In EAPI 4 and 5, DOCS may specify directories as well; in earlier
+# EAPIs using directories is unsupported.
#
# If DOCS is not declared, the files matching patterns given
# in the default EAPI implementation of src_install will be installed.
@@ -516,10 +426,11 @@ einstalldocs() {
# @FUNCTION: in_iuse
# @USAGE: <flag>
# @DESCRIPTION:
-# Determines whether the given flag is in IUSE. Strips IUSE default prefixes
-# as necessary.
+# Determines whether the given flag is in IUSE. Strips IUSE default
+# prefixes as necessary. In EAPIs where it is available (i.e., EAPI 6
+# or later), the package manager implementation should be used instead.
#
-# Note that this function should not be used in the global scope.
+# Note that this function must not be used in the global scope.
in_iuse() {
debug-print-function ${FUNCNAME} "${@}"
[[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()"