From 5515b3b488c1dc9b53752419f895ccc85f70788a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Mon, 23 Jan 2023 19:37:53 +0100 Subject: portage command substitution patch --- .../sys-apps/portage/command-substitution.patch | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 etc/portage/patches/sys-apps/portage/command-substitution.patch (limited to 'etc') diff --git a/etc/portage/patches/sys-apps/portage/command-substitution.patch b/etc/portage/patches/sys-apps/portage/command-substitution.patch new file mode 100644 index 0000000..30edeae --- /dev/null +++ b/etc/portage/patches/sys-apps/portage/command-substitution.patch @@ -0,0 +1,25 @@ +diff --git a/lib/portage/util/__init__.py b/lib/portage/util/__init__.py +index 285bf66..74e3232 100644 +--- a/lib/portage/util/__init__.py ++++ b/lib/portage/util/__init__.py +@@ -992,6 +992,20 @@ def varexpand(mystring, mydict=None, error_leader=None): + newstring.append(current) + continue + ++ if mystring[pos] == "(": ++ # print(f"[šijanec.eu] debug0 {mystring}"); ++ end = mystring[pos:].find(")") ++ if end == -1: ++ msg = error_leader() + "[šijanec.eu] missing closing ) in shell command substitution variable" ++ writemsg(msg + "\n", noiselevel=-1) ++ return "" ++ cmd = mystring[pos+1:pos+end] ++ out = subprocess.run(["sh", "-c", cmd], stdout=subprocess.PIPE).stdout.decode("utf-8") ++ newstring.append(out.strip()) ++ pos += end+1 ++ # print(f"[šijanec.eu] debug {cmd} {newstring}") ++ continue ++ + if mystring[pos] == "{": + pos += 1 + if pos == length: -- cgit v1.2.3