From 3bba408e214ae27bdf924ba90ad4b0919a85f3c8 Mon Sep 17 00:00:00 2001 From: Sam James Date: Tue, 25 Jul 2023 04:16:36 +0100 Subject: lib: env_update: port to subprocess os.system is a bit janky here, let's use subprocess so we're not injecting multiple commands. Thanks to mgorny for the suggestion. Bug: https://bugs.gentoo.org/910376 Signed-off-by: Sam James --- lib/portage/util/env_update.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/portage/util/env_update.py b/lib/portage/util/env_update.py index 5c2b2fdd5..a7015669e 100644 --- a/lib/portage/util/env_update.py +++ b/lib/portage/util/env_update.py @@ -6,7 +6,7 @@ __all__ = ["env_update"] import errno import glob import stat -import sys +import subprocess import time import portage @@ -364,18 +364,24 @@ def _env_update(makelinks, target_root, prev_mtimes, contents, env, writemsg_lev writemsg_level( _(">>> Regenerating %setc/ld.so.cache...\n") % (target_root,) ) - ret = os.system(f"cd / ; {ldconfig} -X -r '{target_root}'") + ret = subprocess.run( + [f"{ldconfig}", "-X", "-r", f"{target_root}"], cwd="/" + ).returncode elif ostype in ("FreeBSD", "DragonFly"): writemsg_level( _(">>> Regenerating %svar/run/ld-elf.so.hints...\n") % target_root ) - ret = os.system( - ( - "cd / ; %s -elf -i " - + "-f '%svar/run/ld-elf.so.hints' '%setc/ld.so.conf'" - ) - % (ldconfig, target_root, target_root) - ) + ret = subprocess.run( + [ + f"{ldconfig}", + "-elf", + "-i", + "-f", + f"{target_root}var/run/ld-elf.so.hints", + f"{target_root}etc/ld.so.conf", + ], + cwd="/", + ).returncode ret = os.waitstatus_to_exitcode(ret) if ret > 0: -- cgit v1.2.3-65-gdbad