Gentoo Archives: gentoo-embedded

From: Joakim Tjernlund <joakim.tjernlund@×××××××××.se>
To: gentoo-embedded@l.g.o
Subject: [gentoo-embedded] fakeroot works for me now
Date: Mon, 21 Jul 2014 15:21:04
Message-Id: OF535A5754.51D4424F-ONC1257D1C.0053A8C9-C1257D1C.0054504C@transmode.se
1 With the two patches I just sent to gentoo-portage-dev@l.g.o, I
2 can use FEATURES=fakeroot in portage.
3
4 Here is how(quick and dirty cross-emerge hack)
5 Notice the use of proot, very handy to redirect sysroot to my own root
6
7 #!/bin/sh
8 # Copyright 2008-2011 Gentoo Foundation
9 # Distributed under the terms of the GNU General Public License v2
10
11 CHOST="x86_64-tm-linux-gnu"
12 PORTAGE_CONFIGROOT=/usr/${CHOST}/
13 export CHOST ROOT PORTAGE_CONFIGROOT
14
15 if [ -z "${CHOST}" ] ; then
16 CHOST=${0##*/}
17 CHOST=${CHOST%-emerge}
18 CHOST=${CHOST#emerge-}
19 fi
20 export CHOST
21
22 : ${SYSROOT=/usr/${CHOST}}
23 : ${PORTAGE_CONFIGROOT=${SYSROOT}}
24 export SYSROOT PORTAGE_CONFIGROOT
25
26 if [ -z "${CHOST}" ] || [ ! -d "${SYSROOT}" ] ; then
27 echo "cross-emerge: CHOST is not set properly"
28 exit 1
29 fi
30 # Portage defaults CBUILD to CHOST, so we have to remove CHOST
31 # from the env to get a "good" value for CBUILD
32 query_vars="CBUILD CFLAGS CXXFLAGS CPPFLAGS"
33 clean_vars="${query_vars} CHOST SYSROOT PORTAGE_CONFIGROOT"
34 eval $(env $(printf -- '-u %s ' ${clean_vars}) \
35 portageq envvar -v ${query_vars} | sed s:^:_E_:)
36 : ${CBUILD=${_E_CBUILD}}
37 : ${BUILD_CFLAGS=${_E_CFLAGS}}
38 : ${BUILD_CXXFLAGS=${_E_CXXFLAGS}}
39 : ${BUILD_CPPFLAGS=${_E_CPPFLAGS}}
40 export CBUILD BUILD_CFLAGS BUILD_CXXFLAGS BUILD_CPPFLAGS
41
42 : ${CROSS_CMD:=emerge --root-deps=rdeps}
43
44 export
45 PYTHONPATH="/usr/local/src/portage/pym${PYTHONPATH:+:}${PYTHONPATH}"
46 exec proot -b ./new-root:${PORTAGE_CONFIGROOT}
47 /usr/local/src/portage/bin/${CROSS_CMD} "$@"