[gentoo-commits] proj/catalyst:master commit in: targets/support/, catalyst/base/

2021-01-23 Thread Matt Turner
commit: a500400592aaa309602331705b27cdbee8ae58c4
Author: Matt Turner  gentoo  org>
AuthorDate: Mon Jan 18 03:09:30 2021 +
Commit: Matt Turner  gentoo  org>
CommitDate: Sat Jan 23 16:19:07 2021 +
URL:https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=a5004005

catalyst: Call config_profile_link for all targets

This reverts the following two commits, which have no documented
rationale.

Revert "Set the profile by calling eselect."

This reverts commit 90c03f9dc255ba89849e46490f9ead7ab3921950.

Revert "Drop config_profile_link from the action_sequence for the generic 
stage."

This reverts commit 3bd10159bf7cfe14b6d8a8218b94eca73be4c997.

Doing so improves the code in two ways:

   1) it makes prepare_sequence identical across all targets, which will
  allow deduplicating some code
   2) it no longer calls eselect profile each time chroot-functions.sh
  is sourced (even for those targets that were still calling
  config_profile_link)

Signed-off-by: Matt Turner  gentoo.org>

 catalyst/base/stagebase.py  | 3 ++-
 targets/support/chroot-functions.sh | 3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 447e073d..53b0a224 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -500,6 +500,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 """Set basic stage1, 2, 3 action sequences"""
 self.prepare_sequence.extend([
 self.unpack,
+self.config_profile_link,
 self.setup_confdir,
 self.portage_overlay,
 ])
@@ -771,7 +772,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 log.info('Configuring profile link...')
 make_profile = Path(self.settings['chroot_path'] + 
self.settings['port_conf'],
 'make.profile')
-make_profile.unlink()
+make_profile.unlink(missing_ok=True)
 make_profile.symlink_to(Path('../..' + self.settings['repo_basedir'],
  self.settings['repo_name'],
  'profiles',

diff --git a/targets/support/chroot-functions.sh 
b/targets/support/chroot-functions.sh
index 2aec018e..88465c31 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -1,8 +1,5 @@
 #!/bin/bash
 
-# Set the profile
-eselect profile set ${clst_target_profile}
-
 # Trap these signals and kill ourselves if received
 # Force ourselves to die if any of these signals are received
 # most likely our controlling terminal is gone



[gentoo-commits] proj/catalyst:master commit in: targets/support/, catalyst/base/

2020-10-30 Thread Matt Turner
commit: f7fe02da2825122eb6347e569170e34515f112e3
Author: Matt Turner  gentoo  org>
AuthorDate: Thu Oct 22 18:19:09 2020 +
Commit: Matt Turner  gentoo  org>
CommitDate: Fri Oct 30 22:40:52 2020 +
URL:https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=f7fe02da

catalyst: Remove kill_support_pids()

mount_namespaces(7) says

A mount ceases to be a member of a peer group when either the
mount is explicitly unmounted, or when the mount is implicitly
unmounted because a mount namespace is removed (because it has
no more member processes).

Now that the build sequence is executed in its own mount namespace, the
mounts are implicitly unmounted when the last process in the namespace
dies, meaning we don't need to try any funny business around cleaning up
processes in order to unmount.

Signed-off-by: Matt Turner  gentoo.org>

 catalyst/base/stagebase.py  | 30 +++---
 targets/support/kill-chroot-pids.sh | 62 -
 2 files changed, 4 insertions(+), 88 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index caec5935..bd5ba8d0 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -638,17 +638,6 @@ class StageBase(TargetBase, ClearBase, GenBase):
 assert self.settings[verify] == "blake2"
 self.settings.setdefault("gk_mainargs", []).append("--b2sum")
 
-def kill_chroot_pids(self):
-log.info('Checking for processes running in chroot and killing them.')
-
-# Force environment variables to be exported so script can see them
-self.setup_environment()
-
-killcmd = normpath(self.settings["sharedir"] +
-   self.settings["shdir"] + 
"/support/kill-chroot-pids.sh")
-if os.path.exists(killcmd):
-cmd([killcmd], env=self.env)
-
 def mount_safety_check(self):
 """
 Check and verify that none of our paths in mypath are mounted. We don't
@@ -920,18 +909,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
 try:
 cxt = libmount.Context(target=str(target))
 cxt.umount()
-except OSError:
-log.warning('First attempt to unmount failed: %s', target)
-log.warning('Killing any pids still running in the chroot')
-
-self.kill_chroot_pids()
-
-try:
-cxt.umount()
-except OSError as e:
-umount_failed = True
-log.warning("Couldn't umount: %s, %s", target,
-e.strerror)
+except OSError as e:
+log.warning("Couldn't umount: %s, %s", target,
+e.strerror)
+umount_failed = True
 
 if umount_failed:
 # if any bind mounts really failed, then we need to raise
@@ -1382,9 +1363,6 @@ class StageBase(TargetBase, ClearBase, GenBase):
 def run(self):
 self.chroot_lock.write_lock()
 
-# Kill any pids in the chroot
-self.kill_chroot_pids()
-
 # Check for mounts right away and abort if we cannot unmount them
 self.mount_safety_check()
 

diff --git a/targets/support/kill-chroot-pids.sh 
b/targets/support/kill-chroot-pids.sh
deleted file mode 100755
index ea8ee402..
--- a/targets/support/kill-chroot-pids.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-# Script to kill processes found running in the chroot.
-
-if [ "${clst_chroot_path}" == "/" ]
-then
-   echo "Aborting  clst_chroot_path is set to /"
-   echo "This is very dangerous"
-   exit 1
-fi
-
-if [ "${clst_chroot_path}" == "" ]
-then
-   echo "Aborting  clst_chroot_path is NOT set"
-   echo "This is very dangerous"
-   exit 1
-fi
-
-j=0
-declare -a pids
-# Get files and dirs in /proc
-for i in `ls /proc`
-do
-   # Test for directories
-   if [ -d /proc/$i ]
-   then
-   # Search for exe containing string inside ${clst_chroot_path}
-   ls -la --color=never /proc/$i 2>&1 |grep exe|grep ${clst_chroot_path} > 
/dev/null
-
-   # If found
-   if [ $? == 0 ]
-   then
-   # Assign the pid into the pids array
-   pids[$j]=$i
-   j=$(($j+1))
-   fi
-   fi
-done
-
-if [ ${j} -gt 0 ]
-then
-   echo
-   echo "Killing process(es)"
-   echo "pid: process name"
-   for pid in ${pids[@]}
-   do
-   P_NAME=$(ls -la --color=never /proc/${pid} 2>&1 |grep exe|grep 
${clst_chroot_path}|awk '{print $11}')
-   echo ${pid}: ${P_NAME}
-   done
-   echo
-   echo "Press Ctrl-C within 10 seconds to abort"
-
-   sleep 10
-
-   for pid in ${pids[@]}
-   do
-   kill -9 ${pid}
-   done
-
-   # Small sleep here to give the process(es) a chance to die before 
running unbind again.
-   sleep 5

[gentoo-commits] proj/catalyst:master commit in: targets/support/, catalyst/base/

2015-09-02 Thread Richard Farina
commit: da114f314109977bca344179ed7c3aa648837afd
Author: Rick Farina (Zero_Chaos)  gentoo  org>
AuthorDate: Wed Sep  2 21:22:01 2015 +
Commit: Richard Farina  gentoo  org>
CommitDate: Wed Sep  2 21:22:01 2015 +
URL:https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=da114f31

fix minor typo

 catalyst/base/stagebase.py  | 2 +-
 targets/support/chroot-functions.sh | 9 +++--
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index c0bafc2..23491aa 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -1097,7 +1097,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
myusevars.extend(self.settings["use"])
 
if myusevars:
-   myf.write("# These are the USE and USE_EXPAND 
flags that were used for\n# buidling in addition to what is provided by the 
profile.\n")
+   myf.write("# These are the USE and USE_EXPAND 
flags that were used for\n# building in addition to what is provided by the 
profile.\n")
myusevars = sorted(set(myusevars))
myf.write('USE="'+string.join(myusevars)+'"\n')
if '-*' in myusevars:

diff --git a/targets/support/chroot-functions.sh 
b/targets/support/chroot-functions.sh
index 5e046cb..5dd542e 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -166,6 +166,9 @@ setup_gcc(){
 }
 
 setup_pkgmgr(){
+   # Set bindist USE flag if clst_BINDIST is set
+   [ -e "${clst_make_conf}" ] && [ -n "${clst_BINDIST}" ] && echo 
"USE=\"\${USE} bindist\"" >> "${clst_make_conf}"
+
# We need to merge our package manager with USE="build" set in case it 
is
# portage to avoid frying our /etc/portage/make.conf file.  Otherwise, 
we could
# just let emerge @system could merge it.
@@ -268,9 +271,6 @@ run_merge() {
export EPAUSE_IGNORE=0
export CONFIG_PROTECT="-*"
 
-   # Set bindist USE flag if clst_BINDIST is set
-   [ -e "${clst_make_conf}" ] && [ -n "${clst_BINDIST}" ] && echo 
"USE=\"\${USE} bindist\"" >> "${clst_make_conf}"
-
if [ -n "${clst_VERBOSE}" ]
then
echo "ROOT=${ROOT} emerge ${clst_myemergeopts} -pt $@" || exit 1
@@ -287,9 +287,6 @@ run_merge() {
echo "emerge ${clst_myemergeopts} $@" || exit 1
 
emerge ${clst_myemergeopts} $@ || exit 1
-
-   # Clean-up USE again
-   sed -i "/USE=\"\${USE} bindist\"/d" "${clst_make_conf}"
 }
 
 show_debug() {



[gentoo-commits] proj/catalyst:master commit in: targets/support/, catalyst/base/

2015-09-02 Thread Richard Farina
commit: cec4889344a5c5de7fa02ade0253808dc73f3008
Author: Rick Farina (Zero_Chaos)  gentoo  org>
AuthorDate: Wed Sep  2 21:22:38 2015 +
Commit: Richard Farina  gentoo  org>
CommitDate: Wed Sep  2 21:22:38 2015 +
URL:https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=cec48893

Revert "fix minor typo"

This reverts commit da114f314109977bca344179ed7c3aa648837afd.

bad commit

 catalyst/base/stagebase.py  | 2 +-
 targets/support/chroot-functions.sh | 9 ++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 23491aa..c0bafc2 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -1097,7 +1097,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
myusevars.extend(self.settings["use"])
 
if myusevars:
-   myf.write("# These are the USE and USE_EXPAND 
flags that were used for\n# building in addition to what is provided by the 
profile.\n")
+   myf.write("# These are the USE and USE_EXPAND 
flags that were used for\n# buidling in addition to what is provided by the 
profile.\n")
myusevars = sorted(set(myusevars))
myf.write('USE="'+string.join(myusevars)+'"\n')
if '-*' in myusevars:

diff --git a/targets/support/chroot-functions.sh 
b/targets/support/chroot-functions.sh
index 5dd542e..5e046cb 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -166,9 +166,6 @@ setup_gcc(){
 }
 
 setup_pkgmgr(){
-   # Set bindist USE flag if clst_BINDIST is set
-   [ -e "${clst_make_conf}" ] && [ -n "${clst_BINDIST}" ] && echo 
"USE=\"\${USE} bindist\"" >> "${clst_make_conf}"
-
# We need to merge our package manager with USE="build" set in case it 
is
# portage to avoid frying our /etc/portage/make.conf file.  Otherwise, 
we could
# just let emerge @system could merge it.
@@ -271,6 +268,9 @@ run_merge() {
export EPAUSE_IGNORE=0
export CONFIG_PROTECT="-*"
 
+   # Set bindist USE flag if clst_BINDIST is set
+   [ -e "${clst_make_conf}" ] && [ -n "${clst_BINDIST}" ] && echo 
"USE=\"\${USE} bindist\"" >> "${clst_make_conf}"
+
if [ -n "${clst_VERBOSE}" ]
then
echo "ROOT=${ROOT} emerge ${clst_myemergeopts} -pt $@" || exit 1
@@ -287,6 +287,9 @@ run_merge() {
echo "emerge ${clst_myemergeopts} $@" || exit 1
 
emerge ${clst_myemergeopts} $@ || exit 1
+
+   # Clean-up USE again
+   sed -i "/USE=\"\${USE} bindist\"/d" "${clst_make_conf}"
 }
 
 show_debug() {