Mailing List Archive

fakeroot works for me now
With the two patches I just sent to gentoo-portage-dev@lists.gentoo.org, I
can use FEATURES=fakeroot in portage.

Here is how(quick and dirty cross-emerge hack)
Notice the use of proot, very handy to redirect sysroot to my own root

#!/bin/sh
# Copyright 2008-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

CHOST="x86_64-tm-linux-gnu"
PORTAGE_CONFIGROOT=/usr/${CHOST}/
export CHOST ROOT PORTAGE_CONFIGROOT

if [ -z "${CHOST}" ] ; then
CHOST=${0##*/}
CHOST=${CHOST%-emerge}
CHOST=${CHOST#emerge-}
fi
export CHOST

: ${SYSROOT=/usr/${CHOST}}
: ${PORTAGE_CONFIGROOT=${SYSROOT}}
export SYSROOT PORTAGE_CONFIGROOT

if [ -z "${CHOST}" ] || [ ! -d "${SYSROOT}" ] ; then
echo "cross-emerge: CHOST is not set properly"
exit 1
fi
# Portage defaults CBUILD to CHOST, so we have to remove CHOST
# from the env to get a "good" value for CBUILD
query_vars="CBUILD CFLAGS CXXFLAGS CPPFLAGS"
clean_vars="${query_vars} CHOST SYSROOT PORTAGE_CONFIGROOT"
eval $(env $(printf -- '-u %s ' ${clean_vars}) \
portageq envvar -v ${query_vars} | sed s:^:_E_:)
: ${CBUILD=${_E_CBUILD}}
: ${BUILD_CFLAGS=${_E_CFLAGS}}
: ${BUILD_CXXFLAGS=${_E_CXXFLAGS}}
: ${BUILD_CPPFLAGS=${_E_CPPFLAGS}}
export CBUILD BUILD_CFLAGS BUILD_CXXFLAGS BUILD_CPPFLAGS

: ${CROSS_CMD:=emerge --root-deps=rdeps}

export
PYTHONPATH="/usr/local/src/portage/pym${PYTHONPATH:+:}${PYTHONPATH}"
exec proot -b ./new-root:${PORTAGE_CONFIGROOT}
/usr/local/src/portage/bin/${CROSS_CMD} "$@"