diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-01-31 20:30:04 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-01-31 20:30:04 +0000 |
commit | 4650985dd0e898b82e0d2ec225931297d4fadccf (patch) | |
tree | eb0e8002cf3ebf1009110b6fec47fa90f873d824 /eclass/eutils.eclass | |
parent | 67f76a858f1ac826bd8a550d756d9ec6e340ed4f (diff) |
gentoo resync : 31.01.2018
Diffstat (limited to 'eclass/eutils.eclass')
-rw-r--r-- | eclass/eutils.eclass | 109 |
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}()" |