diff options
Diffstat (limited to 'eclass/eutils.eclass')
-rw-r--r-- | eclass/eutils.eclass | 77 |
1 files changed, 4 insertions, 73 deletions
diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass index 7d4193e76b51..63f73db290f4 100644 --- a/eclass/eutils.eclass +++ b/eclass/eutils.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # @ECLASS: eutils.eclass @@ -20,7 +20,7 @@ _EUTILS_ECLASS=1 # implicitly inherited (now split) eclasses case ${EAPI:-0} in 0|1|2|3|4|5|6) - inherit desktop epatch estack ltprune multilib toolchain-funcs + inherit desktop epatch estack ltprune multilib preserve-libs toolchain-funcs ;; esac @@ -164,75 +164,6 @@ strip-linguas() { export LINGUAS=${newls:1} } -# @FUNCTION: _eutils_eprefix_init -# @INTERNAL -# @DESCRIPTION: -# Initialized prefix variables for EAPI<3. -_eutils_eprefix_init() { - has "${EAPI:-0}" 0 1 2 && : ${ED:=${D}} ${EPREFIX:=} ${EROOT:=${ROOT}} -} - -# @FUNCTION: preserve_old_lib -# @USAGE: <libs to preserve> [more libs] -# @DESCRIPTION: -# These functions are useful when a lib in your package changes ABI SONAME. -# An example might be from libogg.so.0 to libogg.so.1. Removing libogg.so.0 -# would break packages that link against it. Most people get around this -# by using the portage SLOT mechanism, but that is not always a relevant -# solution, so instead you can call this from pkg_preinst. See also the -# preserve_old_lib_notify function. -preserve_old_lib() { - _eutils_eprefix_init - if [[ ${EBUILD_PHASE} != "preinst" ]] ; then - eerror "preserve_old_lib() must be called from pkg_preinst() only" - die "Invalid preserve_old_lib() usage" - fi - [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]" - - # let portage worry about it - has preserve-libs ${FEATURES} && return 0 - - local lib dir - for lib in "$@" ; do - [[ -e ${EROOT}/${lib} ]] || continue - dir=${lib%/*} - dodir ${dir} || die "dodir ${dir} failed" - cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed" - touch "${ED}"/${lib} - done -} - -# @FUNCTION: preserve_old_lib_notify -# @USAGE: <libs to notify> [more libs] -# @DESCRIPTION: -# Spit helpful messages about the libraries preserved by preserve_old_lib. -preserve_old_lib_notify() { - if [[ ${EBUILD_PHASE} != "postinst" ]] ; then - eerror "preserve_old_lib_notify() must be called from pkg_postinst() only" - die "Invalid preserve_old_lib_notify() usage" - fi - - # let portage worry about it - has preserve-libs ${FEATURES} && return 0 - - _eutils_eprefix_init - - local lib notice=0 - for lib in "$@" ; do - [[ -e ${EROOT}/${lib} ]] || continue - if [[ ${notice} -eq 0 ]] ; then - notice=1 - ewarn "Old versions of installed libraries were detected on your system." - ewarn "In order to avoid breaking packages that depend on these old libs," - ewarn "the libraries are not being removed. You need to run revdep-rebuild" - ewarn "in order to remove these old dependencies. If you do not have this" - ewarn "helper program, simply emerge the 'gentoolkit' package." - ewarn - fi - ewarn " # revdep-rebuild --library '${lib}' && rm '${lib}'" - done -} - # @FUNCTION: built_with_use # @USAGE: [--hidden] [--missing <action>] [-a|-o] <DEPEND ATOM> <List of USE flags> # @DESCRIPTION: @@ -255,7 +186,6 @@ preserve_old_lib_notify() { # Remember that this function isn't terribly intelligent so order of optional # flags matter. built_with_use() { - _eutils_eprefix_init local hidden="no" if [[ $1 == "--hidden" ]] ; then hidden="yes" @@ -279,6 +209,7 @@ built_with_use() { [[ -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 @@ -333,9 +264,9 @@ built_with_use() { # first optionally setting LD_LIBRARY_PATH to the colon-delimited # libpaths followed by optionally changing directory to chdir. make_wrapper() { - _eutils_eprefix_init local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5 local tmpwrapper=$(emktemp) + has "${EAPI:-0}" 0 1 2 && local EPREFIX="" ( echo '#!/bin/sh' |