exit 1
fi
-case "$EAPI" in 0|1|2) ED=${D} ;; esac
-
-if [[ ! -d ${ED}${_E_EXEDESTTREE_} ]] ; then
- install -d "${ED}${_E_EXEDESTTREE_}"
+if [[ ! -d ${D}${_E_EXEDESTTREE_} ]] ; then
+ install -d "${D}${_E_EXEDESTTREE_}"
fi
TMP=$T/.doexe_tmp
mysrc="${x}"
fi
if [ -e "$mysrc" ] ; then
- install $EXEOPTIONS "$mysrc" "$ED$_E_EXEDESTTREE_"
+ install $EXEOPTIONS "$mysrc" "$D$_E_EXEDESTTREE_"
else
echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
false
DOINSRECUR=n
fi
-case "$EAPI" in 0|1|2) export ED="${D}" ;; esac
-
-if [[ ${INSDESTTREE#${ED}} != "${INSDESTTREE}" ]]; then
+if [[ ${INSDESTTREE#${D}} != "${INSDESTTREE}" ]]; then
vecho "-------------------------------------------------------" 1>&2
- vecho "You should not use \${ED} with helpers." 1>&2
+ vecho "You should not use \${D} with helpers." 1>&2
vecho " --> ${INSDESTTREE}" 1>&2
vecho "-------------------------------------------------------" 1>&2
- helpers_die "${0##*/} used with \${ED}"
+ helpers_die "${0##*/} used with \${D}"
exit 1
fi
# Use separate directories to avoid potential name collisions.
mkdir -p "$TMP"/{1,2}
-[[ ! -d ${ED}${INSDESTTREE} ]] && dodir "${INSDESTTREE}"
+[[ ! -d ${D}${INSDESTTREE} ]] && dodir "${INSDESTTREE}"
_doins() {
local mysrc="$1" mydir="$2" cleanup="" rval
# $PORTAGE_ACTUAL_DISTDIR/.
if [ $PRESERVE_SYMLINKS = y ] && \
! [[ $(readlink "$mysrc") == "$PORTAGE_ACTUAL_DISTDIR"/* ]] ; then
- rm -rf "${ED}$INSDESTTREE/$mydir/${mysrc##*/}" || return $?
- cp -P "$mysrc" "${ED}$INSDESTTREE/$mydir/${mysrc##*/}"
+ rm -rf "$D$INSDESTTREE/$mydir/${mysrc##*/}" || return $?
+ cp -P "$mysrc" "$D$INSDESTTREE/$mydir/${mysrc##*/}"
return $?
else
cp "$mysrc" "$TMP/2/${mysrc##*/}" || return $?
fi
fi
- install ${INSOPTIONS} "${mysrc}" "${ED}${INSDESTTREE}/${mydir}"
+ install ${INSOPTIONS} "${mysrc}" "${D}${INSDESTTREE}/${mydir}"
rval=$?
[[ -n ${cleanup} ]] && rm -f "${cleanup}"
[ $rval -ne 0 ] && echo "!!! ${0##*/}: $mysrc does not exist" 1>&2
#!/bin/bash
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
if [[ $# -lt 1 ]] ; then
exit 1
fi
-case "$EAPI" in 0|1|2) ED=${D} ;; esac
-
ret=0
file_found=0
-mysed="s:${ED}::g"
+mysed="s:${D}::g"
for x in "$@" ; do
- y=$ED${x#/}
+ y=$D${x#/}
if [ -e "${y}" ] ; then
if [ -f "${y}" ] ; then
file_found=1
keepdir() {
dodir "$@"
local x
- local ed=${ED}
- case "$EAPI" in 0|1|2) ed=${D} ;; esac
if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then
shift
- find "$@" -type d -printf "${ed}%p/.keep_${CATEGORY}_${PN}-${SLOT}\n" \
+ find "$@" -type d -printf "${D}%p/.keep_${CATEGORY}_${PN}-${SLOT}\n" \
| tr "\n" "\0" | \
while read -r -d $'\0' ; do
>> "$REPLY" || \
done
else
for x in "$@"; do
- >> "${ed}${x}/.keep_${CATEGORY}_${PN}-${SLOT}" || \
- die "Failed to create .keep in ${ed}${x}"
+ >> "${D}${x}/.keep_${CATEGORY}_${PN}-${SLOT}" || \
+ die "Failed to create .keep in ${D}${x}"
done
fi
}
hasgq() { hasg "$@" >/dev/null ; }
econf() {
local x
- local eprefix=${EPREFIX}
- case "$EAPI" in 0|1|2) eprefix= ;; esac
local phase_func=$(_ebuild_arg_to_phase "$EAPI" "$EBUILD_PHASE")
if [[ -n $phase_func ]] ; then
sed -e "1s:^#![[:space:]]*/bin/sh:#!$CONFIG_SHELL:" -i "$ECONF_SOURCE/configure" || \
die "Substition of shebang in '$ECONF_SOURCE/configure' failed"
fi
- if [ -e "${eprefix}"/usr/share/gnuconfig/ ]; then
+ if [ -e /usr/share/gnuconfig/ ]; then
find "${WORKDIR}" -type f '(' \
-name config.guess -o -name config.sub ')' -print0 | \
while read -r -d $'\0' x ; do
- vecho " * econf: updating ${x/${WORKDIR}\/} with ${eprefix}/usr/share/gnuconfig/${x##*/}"
- cp -f "${eprefix}"/usr/share/gnuconfig/"${x##*/}" "${x}"
+ vecho " * econf: updating ${x/${WORKDIR}\/} with /usr/share/gnuconfig/${x##*/}"
+ cp -f /usr/share/gnuconfig/"${x##*/}" "${x}"
done
fi
if [[ -n ${CONF_LIBDIR} ]] && ! hasgq --libdir=\* "$@" ; then
export CONF_PREFIX=$(hasg --exec-prefix=\* "$@")
[[ -z ${CONF_PREFIX} ]] && CONF_PREFIX=$(hasg --prefix=\* "$@")
- : ${CONF_PREFIX:=${eprefix}/usr}
+ : ${CONF_PREFIX:=/usr}
CONF_PREFIX=${CONF_PREFIX#*=}
[[ ${CONF_PREFIX} != /* ]] && CONF_PREFIX="/${CONF_PREFIX}"
[[ ${CONF_LIBDIR} != /* ]] && CONF_LIBDIR="/${CONF_LIBDIR}"
fi
set -- \
- --prefix="${eprefix}"/usr \
+ --prefix=/usr \
${CBUILD:+--build=${CBUILD}} \
--host=${CHOST} \
${CTARGET:+--target=${CTARGET}} \
- --mandir="${eprefix}"/usr/share/man \
- --infodir="${eprefix}"/usr/share/info \
- --datadir="${eprefix}"/usr/share \
- --sysconfdir="${eprefix}"/etc \
- --localstatedir="${eprefix}"/var/lib \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --datadir=/usr/share \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
"$@" \
${EXTRA_ECONF}
vecho "${ECONF_SOURCE}/configure" "$@"
einstall() {
# CONF_PREFIX is only set if they didn't pass in libdir above.
local LOCAL_EXTRA_EINSTALL="${EXTRA_EINSTALL}"
- local ed=${ED}
- case "$EAPI" in 0|1|2) ed=${D} ;; esac
LIBDIR_VAR="LIBDIR_${ABI}"
if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then
CONF_LIBDIR="${!LIBDIR_VAR}"
if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
if [ "${PORTAGE_DEBUG}" == "1" ]; then
- ${MAKE:-make} -n prefix="${ed}usr" \
- datadir="${ed}usr/share" \
- infodir="${ed}usr/share/info" \
- localstatedir="${ed}var/lib" \
- mandir="${ed}usr/share/man" \
- sysconfdir="${ed}etc" \
+ ${MAKE:-make} -n prefix="${D}usr" \
+ datadir="${D}usr/share" \
+ infodir="${D}usr/share/info" \
+ localstatedir="${D}var/lib" \
+ mandir="${D}usr/share/man" \
+ sysconfdir="${D}etc" \
${LOCAL_EXTRA_EINSTALL} \
${MAKEOPTS} ${EXTRA_EMAKE} -j1 \
"$@" install
fi
- ${MAKE:-make} prefix="${ed}usr" \
- datadir="${ed}usr/share" \
- infodir="${ed}usr/share/info" \
- localstatedir="${ed}var/lib" \
- mandir="${ed}usr/share/man" \
- sysconfdir="${ed}etc" \
+ ${MAKE:-make} prefix="${D}usr" \
+ datadir="${D}usr/share" \
+ infodir="${D}usr/share/info" \
+ localstatedir="${D}var/lib" \
+ mandir="${D}usr/share/man" \
+ sysconfdir="${D}etc" \
${LOCAL_EXTRA_EINSTALL} \
${MAKEOPTS} ${EXTRA_EMAKE} -j1 \
"$@" install || die "einstall failed"
export DESTTREE=""
else
export DESTTREE=$1
- local ed=${ED}
- case "$EAPI" in 0|1|2) ed=${D} ;; esac
- if [ ! -d "${ed}${DESTTREE}" ]; then
- install -d "${ed}${DESTTREE}"
+ if [ ! -d "${D}${DESTTREE}" ]; then
+ install -d "${D}${DESTTREE}"
local ret=$?
if [[ $ret -ne 0 ]] ; then
helpers_die "${FUNCNAME[0]} failed"
export INSDESTTREE=""
else
export INSDESTTREE=$1
- local ed=${ED}
- case "$EAPI" in 0|1|2) d=${D} ;; esac
- if [ ! -d "${ed}${INSDESTTREE}" ]; then
- install -d "${ed}${INSDESTTREE}"
+ if [ ! -d "${D}${INSDESTTREE}" ]; then
+ install -d "${D}${INSDESTTREE}"
local ret=$?
if [[ $ret -ne 0 ]] ; then
helpers_die "${FUNCNAME[0]} failed"
export _E_EXEDESTTREE_=""
else
export _E_EXEDESTTREE_="$1"
- local ed=${ED}
- case "$EAPI" in 0|1|2) d=${D} ;; esac
- if [ ! -d "${ed}${_E_EXEDESTTREE_}" ]; then
- install -d "${ed}${_E_EXEDESTTREE_}"
+ if [ ! -d "${D}${_E_EXEDESTTREE_}" ]; then
+ install -d "${D}${_E_EXEDESTTREE_}"
local ret=$?
if [[ $ret -ne 0 ]] ; then
helpers_die "${FUNCNAME[0]} failed"
export _E_DOCDESTTREE_=""
else
export _E_DOCDESTTREE_="$1"
- local ed=${ED}
- case "$EAPI" in 0|1|2) d=${D} ;; esac
- if [ ! -d "${ed}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
- install -d "${ed}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
+ if [ ! -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
+ install -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"
local ret=$?
if [[ $ret -ne 0 ]] ; then
helpers_die "${FUNCNAME[0]} failed"
PATH=$_ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin${ROOTPATH:+:}$ROOTPATH
unset _ebuild_helpers_path
- _eprefix=${EPREFIX}
- case "$EAPI" in 0|1|2) _eprefix= ;; esac
# Use default ABI libdir in accordance with bug #355283.
x=LIBDIR_${DEFAULT_ABI}
[[ -n $DEFAULT_ABI && -n ${!x} ]] && x=${!x} || x=lib
if has distcc $FEATURES ; then
- PATH="${_eprefix}/usr/$x/distcc/bin:$PATH"
+ PATH="/usr/$x/distcc/bin:$PATH"
[[ -n $DISTCC_LOG ]] && addwrite "${DISTCC_LOG%/*}"
fi
if has ccache $FEATURES ; then
- PATH="${_eprefix}/usr/$x/ccache/bin:$PATH"
+ PATH="/usr/$x/ccache/bin:$PATH"
if [[ -n $CCACHE_DIR ]] ; then
addread "$CCACHE_DIR"
[[ -n $CCACHE_SIZE ]] && ccache -M $CCACHE_SIZE &> /dev/null
fi
- unset x _eprefix
+ unset x
if [[ -n $QA_PREBUILT ]] ; then
unmerge_desc["!mtime"] = _("!mtime")
unmerge_desc["!obj"] = _("!obj")
unmerge_desc["!sym"] = _("!sym")
- unmerge_desc["!prefix"] = _("!prefix")
real_root = self.settings['ROOT']
real_root_len = len(real_root) - 1
- eroot = self.settings["EROOT"]
+ eroot_split_len = len(self.settings["EROOT"].split(os.sep)) - 1
# These files are generated by emerge, so we need to remove
# them when they are the only thing left in a directory.
file_data = pkgfiles[objkey]
file_type = file_data[0]
-
- # don't try to unmerge the prefix offset itself
- if len(obj) <= len(eroot) or not obj.startswith(eroot):
- show_unmerge("---", unmerge_desc["!prefix"], file_type, obj)
- continue
-
statobj = None
try:
statobj = os.stat(obj)
mysettings["T"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "temp")
# Prefix forward compatability
- eprefix_lstrip = mysettings["EPREFIX"].lstrip(os.sep)
- mysettings["ED"] = os.path.join(
- mysettings["D"], eprefix_lstrip).rstrip(os.sep) + os.sep
+ mysettings["ED"] = mysettings["D"]
mysettings["PORTAGE_BASHRC"] = os.path.join(
mysettings["PORTAGE_CONFIGROOT"], EBUILD_SH_ENV_FILE)
def testSimple(self):
- install_something = """
-S="${WORKDIR}"
-src_install() {
- einfo "installing something..."
- insinto /usr/lib/${P}
- echo "blah blah blah" > "${T}"/regular-file
- doins "${T}"/regular-file
-}
-"""
-
ebuilds = {
"dev-libs/A-1": {
"EAPI" : "4",
"IUSE" : "+flag",
"KEYWORDS": "x86",
"LICENSE": "GPL-2",
- "MISC_CONTENT": install_something,
"RDEPEND": "flag? ( dev-libs/B[flag] )",
},
"dev-libs/B-1": {
"IUSE" : "+flag",
"KEYWORDS": "x86",
"LICENSE": "GPL-2",
- "MISC_CONTENT": install_something,
},
}
"LICENSE": "GPL-2",
"USE": "flag",
},
- "dev-libs/depclean-me-1": {
- "EAPI" : "4",
- "IUSE" : "",
- "KEYWORDS": "x86",
- "LICENSE": "GPL-2",
- "USE": "",
- },
- "app-misc/depclean-me-1": {
- "EAPI" : "4",
- "IUSE" : "",
- "KEYWORDS": "x86",
- "LICENSE": "GPL-2",
- "RDEPEND": "dev-libs/depclean-me",
- "USE": "",
- },
}
test_args = (
("--pretend", "dev-libs/A"),
("--pretend", "--tree", "--complete-graph", "dev-libs/A"),
("-p", "dev-libs/B"),
- ("--oneshot", "dev-libs/B",),
("--oneshot", "dev-libs/A",),
("--noreplace", "dev-libs/A",),
("--pretend", "--depclean", "--verbose", "dev-libs/B"),
"INFOPATH" : "",
"PATH" : path,
"PORTAGE_GRPNAME" : os.environ["PORTAGE_GRPNAME"],
- "PORTAGE_INST_GID" : str(portage.data.portage_gid),
- "PORTAGE_INST_UID" : str(portage.data.portage_uid),
"PORTAGE_TMPDIR" : portage_tmpdir,
"PORTAGE_USERNAME" : os.environ["PORTAGE_USERNAME"],
"PORTDIR" : portdir,
for args in test_args:
proc = subprocess.Popen([portage._python_interpreter, "-Wd",
os.path.join(PORTAGE_BIN_PATH, "emerge")] + list(args),
- env=env)
- #output = proc.stdout.readlines()
+ env=env, stdout=subprocess.PIPE)
+ output = proc.stdout.readlines()
proc.wait()
- #proc.stdout.close()
- #if proc.returncode != os.EX_OK:
- # for line in output:
- # sys.stderr.write(_unicode_decode(line))
+ proc.stdout.close()
+ if proc.returncode != os.EX_OK:
+ for line in output:
+ sys.stderr.write(_unicode_decode(line))
self.assertEqual(os.EX_OK, proc.returncode,
"emerge failed with args %s" % (args,))
finally:
- pass
- ##playground.cleanup()
+ playground.cleanup()
rdepend = metadata.pop("RDEPEND", None)
pdepend = metadata.pop("PDEPEND", None)
required_use = metadata.pop("REQUIRED_USE", None)
- misc_content = metadata.pop("MISC_CONTENT", None)
if metadata:
raise ValueError("metadata of ebuild '%s' contains unknown keys: %s" % (cpv, metadata.keys()))
f.write('PDEPEND="' + str(pdepend) + '"\n')
if required_use is not None:
f.write('REQUIRED_USE="' + str(required_use) + '"\n')
- if misc_content is not None:
- f.write(misc_content)
f.close()
def _create_ebuild_manifests(self, ebuilds):
import xml.etree.ElementTree as etree
import re
-import xml.etree.ElementTree
import portage
from portage import os
from portage.util import unique_everseen
-class _MetadataTreeBuilder(xml.etree.ElementTree.TreeBuilder):
- """
- Implements doctype() as required to avoid deprecation warnings with
- Python >=2.7.
- """
- def doctype(self, name, pubid, system):
- pass
-
class _Maintainer(object):
"""An object for representing one maintainer.
self._xml_tree = None
try:
- self._xml_tree = etree.parse(metadata_xml_path,
- parser=etree.XMLParser(target=_MetadataTreeBuilder()))
+ self._xml_tree = etree.parse(metadata_xml_path)
except ImportError:
pass
if self._herdstree is None:
try:
- self._herdstree = etree.parse(self._herds_path,
- parser=etree.XMLParser(target=_MetadataTreeBuilder()))
+ self._herdstree = etree.parse(self._herds_path)
except (ImportError, IOError, SyntaxError):
return None