Hi, This eclass facilitates in some of the needs of the Gentoo Prefix project. For now it provides the 'eprefixify' function, which is often used in Gentoo Prefix ebuilds to incorporate the used offset prefix into files.
Next to this, the eclass sets the EPREFIX to the empty string, if unset. Ideally we would have liked to set EROOT and ED, based on ROOT and D, but since the latter variables need not to be available when the eclass is sourced, EROOT and ED (which both consist of the E-less variable + EPREFIX) might get set wrongly. This eclass brings Gentoo Prefix ebuilds one step closer to gentoo-x86 ebuilds. Please review. -- Fabian Groffen Gentoo on a different level
# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id: prefix.eclass 40407 2009-03-27 11:51:37Z grobian $ # @ECLASS: prefix.eclass # @MAINTAINER: # Feel free to contact the Prefix team through <pre...@gentoo.org> if # you have problems, suggestions or questions. # @BLURB: Eclass to provide Prefix functionality # @DESCRIPTION: # Gentoo Prefix allows users to install into a self defined offset # located somewhere in the filesystem. Prefix ebuilds require # additional functions and variables which are defined by this eclass. # @ECLASS-VARIABLE: EPREFIX # @DESCRIPTION: # The offset prefix of a Gentoo Prefix installation. When Gentoo Prefix # is not used, ${EPREFIX} should be "". Prefix Portage sets EPREFIX, # hence this eclass has nothing to do here in that case. # Note that setting EPREFIX in the environment with Prefix Portage sets # Portage into cross-prefix mode. if [[ -z ${EPREFIX} ]]; then export EPREFIX='' fi # @FUNCTION: eprefixify # @USAGE: <list of to be eprefixified files> # @DESCRIPTION: # replaces @GENTOO_PORTAGE_EPREFIX@ with ${EPREFIX} for the given files, # dies if no arguments are given, a file does not exist, or changing a # file failed. eprefixify() { [[ $# -lt 1 ]] && die "at least one argument needed" einfo "Adjusting to prefix" for x in "$@" ; do if [[ -e ${x} ]] ; then ebegin " ${x##*/}" sed -i -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}|g" "${x}" r=$? eend ${r} [[ ${r} != 0 ]] && die "failed to eprefixify ${x}" else die "${x} does not exist" fi done return 0 } # vim: tw=72: