commit: eef609335a51e9a04038e91a34ee694a866ec2ca
Author: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT> gentoo
<DOT> org>
AuthorDate: Sat Feb 4 21:43:01 2017 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Mon Feb 6 02:12:02 2017 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=eef60933
Add initial support for portage_prefix.
Signed-off-by: Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT>
gentoo.org>
catalyst/base/stagebase.py | 10 ++++++++--
targets/stage1/stage1-controller.sh | 3 +++
targets/stage2/stage2-controller.sh | 3 +++
targets/stage3/stage3-controller.sh | 3 +++
targets/support/functions.sh | 16 ++++++++++++++++
5 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 8d00fa1..2fd8925 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -36,8 +36,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
"rel_type","profile","snapshot","source_subpath"])
self.valid_values.extend(["version_stamp","target","subarch",
-
"rel_type","profile","snapshot","source_subpath","portage_confdir",
-
"cflags","cxxflags","fcflags","fflags","ldflags","asflags","cbuild","hostuse","portage_overlay",
+ "rel_type","profile","snapshot","source_subpath",
+ "portage_confdir","portage_prefix","portage_overlay",
+
"cflags","cxxflags","fcflags","fflags","ldflags","asflags",
+ "cbuild","hostuse","catalyst_use",
"distcc_hosts","makeopts","pkgcache_path","kerncache_path",
"compression_mode", "decompression_mode"])
@@ -601,6 +603,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
log.info('portage_overlay directories are set to: %s',
' '.join(self.settings['portage_overlay']))
+# def set_portage_prefix(self):
+# if "portage_prefix" in self.settings:
+# self.settings["portage_prefix"]=
+
def set_overlay(self):
if self.settings["spec_prefix"]+"/overlay" in self.settings:
if
isinstance(self.settings[self.settings['spec_prefix']+'/overlay'], str):
diff --git a/targets/stage1/stage1-controller.sh
b/targets/stage1/stage1-controller.sh
index ac813de..798d679 100755
--- a/targets/stage1/stage1-controller.sh
+++ b/targets/stage1/stage1-controller.sh
@@ -16,6 +16,8 @@ case "$1" in
# Setup make.conf and make.profile link in "ROOT in chroot":
copy_to_chroot "${clst_chroot_path}${clst_make_conf}"
"${clst_root_path}${clst_port_conf}"
+ prepare_portage
+
# Enter chroot, execute our build script
exec_in_chroot \
"${clst_shdir}/${clst_target}/${clst_target}-chroot.sh"
\
@@ -23,6 +25,7 @@ case "$1" in
;;
preclean)
+ clear_portage
exec_in_chroot
"${clst_shdir}/${clst_target}/${clst_target}-preclean-chroot.sh" || exit 1
;;
diff --git a/targets/stage2/stage2-controller.sh
b/targets/stage2/stage2-controller.sh
index 25e5120..41bd43b 100755
--- a/targets/stage2/stage2-controller.sh
+++ b/targets/stage2/stage2-controller.sh
@@ -10,6 +10,8 @@ case $1 in
;;
run)
+ prepare_portage
+
shift
export clst_packages="$*"
exec_in_chroot \
@@ -17,6 +19,7 @@ case $1 in
;;
preclean)
+ clear_portage
exec_in_chroot
${clst_shdir}/${clst_target}/${clst_target}-preclean-chroot.sh
;;
diff --git a/targets/stage3/stage3-controller.sh
b/targets/stage3/stage3-controller.sh
index df1479e..eaa40b3 100755
--- a/targets/stage3/stage3-controller.sh
+++ b/targets/stage3/stage3-controller.sh
@@ -10,12 +10,15 @@ case $1 in
;;
run)
+ prepare_portage
+
shift
export clst_packages="$*"
exec_in_chroot
${clst_shdir}/${clst_target}/${clst_target}-chroot.sh
;;
preclean)
+ clear_portage
exec_in_chroot
${clst_shdir}/${clst_target}/${clst_target}-preclean-chroot.sh
;;
diff --git a/targets/support/functions.sh b/targets/support/functions.sh
index cca2fd8..eded8b7 100755
--- a/targets/support/functions.sh
+++ b/targets/support/functions.sh
@@ -16,6 +16,22 @@ delete_from_chroot(){
fi
}
+prepare_portage() {
+
+ echo "CATALYST_USE=\"${clst_CATALYST_USE}\"" >> ${clst_make_conf}
+ sed -i -e "/USE=\"/s/\${CATALYST_USE} " ${clst_make_conf}
+}
+
+clear_portage() {
+ # Clean-up USE again
+ sed -i "/USE=\"/s/\${CATALYST_USE} //" ${clst_make_conf}
+ sed -i "/CATALYST_USE/d" ${clist_make_conf}
+
+ if [ -n "${clst_portage_prefix}" ]; then
+ rm -R "${clst_chroot_path}/etc/portage/${clst_portage_prefix}"
+ fi
+}
+
exec_in_chroot(){
# Takes the full path to the source file as its argument
# copies the file to the /tmp directory of the chroot