Gentoo Archives: gentoo-embedded

From: Joakim Tjernlund <joakim.tjernlund@×××××××××.se>
To: Mike Frysinger <vapier@g.o>
Cc: gentoo-embedded@l.g.o
Subject: Re: [gentoo-embedded] crossdev improvements
Date: Fri, 08 Oct 2010 09:09:26
Message-Id: OF13BB5D55.23389D89-ONC12577B6.002CAB99-C12577B6.002CCBCC@transmode.se
In Reply to: Re: [gentoo-embedded] crossdev improvements by Mike Frysinger
1 Mike Frysinger <vapier@g.o> wrote on 2010/10/08 04:54:07:
2 >
3 > On Saturday, September 25, 2010 13:11:26 Joakim Tjernlund wrote:
4 > > setup_portage_vars() {
5 > > + PORTAGE_CONFIGROOT=$(portageq envvar PORTAGE_CONFIGROOT)
6 >
7 > is this necessary ? you cant really put PORTAGE_CONFIGROOT in /etc/make.conf
8 > as you hit a chicken & egg problem ...
9
10 Perhaps this is better:
11
12 From 79d5bbe239f90383fa07fb17cd6fde1461bc0917 Mon Sep 17 00:00:00 2001
13 From: Joakim Tjernlund <Joakim.Tjernlund@×××××××××.se>
14 Date: Fri, 8 Oct 2010 10:01:30 +0200
15 Subject: [PATCH 2/2] Initial PORTAGE_CONFIGROOT support
16
17 This is untested
18
19 Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@×××××××××.se>
20 ---
21 crossdev | 30 ++++++++++++++++--------------
22 1 files changed, 16 insertions(+), 14 deletions(-)
23
24 diff --git a/crossdev b/crossdev
25 index c35a2ed..854ae58 100755
26 --- a/crossdev
27 +++ b/crossdev
28 @@ -12,7 +12,9 @@ if [[ ${ROOT:-/} != "/" ]] ; then
29 exit 2
30 fi
31
32 -source /etc/init.d/functions.sh || exit 1
33 +export PORTAGE_CONFIGROOT=${PORTAGE_CONFIGROOT:-/}
34 +
35 +source ${PORTAGE_CONFIGROOT}/etc/init.d/functions.sh || exit 1
36 esyslog() { :; }
37 die() {
38 echo
39 @@ -265,9 +267,9 @@ uninstall() {
40
41 [[ -d ${PORTDIR_OVERLAY}/cross-${CTARGET} ]] \
42 && rm -r ${PORTDIR_OVERLAY}/cross-${CTARGET}
43 - sed -i -e "/^cross-${CTARGET}$/d" /etc/portage/categories
44 + sed -i -e "/^cross-${CTARGET}$/d" ${PORTAGE_CONFIGROOT}/etc/portage/categories
45 for f in package.{mask,keywords,use} ; do
46 - f="/etc/portage/${f}"
47 + f="${PORTAGE_CONFIGROOT}/etc/portage/${f}"
48 if [[ -d ${f} ]] ; then
49 rm -f "${f}"/cross-${CTARGET}
50 rmdir "${f}" 2>/dev/null
51 @@ -275,8 +277,8 @@ uninstall() {
52 sed -i -e "/cross-${CTARGET}\//d" "${f}"
53 fi
54 done
55 - rm -rf /etc/portage/env/cross-${CTARGET}
56 - rmdir /etc/portage/env 2>/dev/null
57 + rm -rf ${PORTAGE_CONFIGROOT}/etc/portage/env/cross-${CTARGET}
58 + rmdir ${PORTAGE_CONFIGROOT}/etc/portage/env 2>/dev/null
59
60 rmdir /var/db/pkg/cross-${CTARGET} 2>/dev/null
61 if [[ -d /var/db/pkg/cross-${CTARGET} ]] ; then
62 @@ -310,7 +312,7 @@ uninstall() {
63 [[ ${ans} == [Yy]* ]] && rm -rf "${d}"
64 fi
65 done
66 - rm -f /etc/env.d/{binutils,gcc}/config-${CTARGET}
67 + rm -f ${PORTAGE_CONFIGROOT}/etc/env.d/{binutils,gcc}/config-${CTARGET}
68 [[ -e /var/db/pkg/cross-${CTARGET} ]] && rmdir /var/db/pkg/cross-${CTARGET}
69
70 exit 0
71 @@ -461,14 +463,14 @@ fi
72
73 # grab user settings
74 for v in ABI UCLIBC_CPU USE BVER GVER KVER LVER STAGE CFLAGS LDFLAGS ASFLAGS ; do
75 - if [[ -e /etc/portage/crossdev/${CTARGET}/${v} ]] ; then
76 + if [[ -e ${PORTAGE_CONFIGROOT}/etc/portage/crossdev/${CTARGET}/${v} ]] ; then
77 # yes, quotes are needed in this instance (export $var="...")
78 export ${v}="$(</etc/portage/crossdev/${CTARGET}/${v})"
79 einfo "Restoring user setting '${v}' to '${!v}'"
80 fi
81 - if [[ -e /etc/portage/crossdev/${CTARGET}/env ]] ; then
82 + if [[ -e ${PORTAGE_CONFIGROOT}/etc/portage/crossdev/${CTARGET}/env ]] ; then
83 einfo "Restoring generic user env settings"
84 - source /etc/portage/crossdev/${CTARGET}/env
85 + source ${PORTAGE_CONFIGROOT}/etc/portage/crossdev/${CTARGET}/env
86 fi
87 done
88
89 @@ -616,12 +618,12 @@ set_portage() {
90 set_env ${pkg} "${env}"
91 }
92
93 -mkdir -p /etc/portage
94 -check_trailing_newline /etc/portage/categories
95 -grep -qs "^cross-${CTARGET}$" /etc/portage/categories \
96 - || echo cross-${CTARGET} >> /etc/portage/categories
97 +mkdir -p ${PORTAGE_CONFIGROOT}/etc/portage
98 +check_trailing_newline ${PORTAGE_CONFIGROOT}/etc/portage/categories
99 +grep -qs "^cross-${CTARGET}$" ${PORTAGE_CONFIGROOT}/etc/portage/categories \
100 + || echo cross-${CTARGET} >> ${PORTAGE_CONFIGROOT}/etc/portage/categories
101 mkdir -p "${PORTDIR_OVERLAY}"/cross-${CTARGET}
102 -cd /etc/portage
103 +cd ${PORTAGE_CONFIGROOT}/etc/portage
104 for f in package.{keywords,mask,use} ; do
105 [[ -f ${f} ]] && continue
106 mkdir -p ${f}
107 --
108 1.7.2.2

Replies

Subject Author
Re: [gentoo-embedded] crossdev improvements Mike Frysinger <vapier@g.o>