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 |