Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH] doebuild: export SANDBOX_LOG=${T}/sandbox.log (bug 704848)
Date: Sat, 18 Jan 2020 05:42:52
Message-Id: 20200118053913.130831-1-zmedico@gentoo.org
1 In order to avoid a SANDBOX_LOG collision with another process
2 having the same pid when pid-sandbox is enabled, export a
3 unique SANDBOX_LOG value. The ${T} directory is a convenient
4 location, since it is guaranteed to exist and be writable during
5 relevant ebuild phases.
6
7 Bug: https://bugs.gentoo.org/704848
8 Signed-off-by: Zac Medico <zmedico@g.o>
9 ---
10 lib/portage/package/ebuild/_config/special_env_vars.py | 4 ++--
11 lib/portage/package/ebuild/doebuild.py | 2 +-
12 2 files changed, 3 insertions(+), 3 deletions(-)
13
14 diff --git a/lib/portage/package/ebuild/_config/special_env_vars.py b/lib/portage/package/ebuild/_config/special_env_vars.py
15 index 5e7ca6d47..dc01339f7 100644
16 --- a/lib/portage/package/ebuild/_config/special_env_vars.py
17 +++ b/lib/portage/package/ebuild/_config/special_env_vars.py
18 @@ -28,7 +28,7 @@ env_blacklist = frozenset((
19 "PORTAGE_INTERNAL_CALLER", "PORTAGE_IUSE",
20 "PORTAGE_NONFATAL", "PORTAGE_PIPE_FD", "PORTAGE_REPO_NAME",
21 "PORTAGE_USE", "PROPERTIES", "RDEPEND", "REPOSITORY",
22 - "REQUIRED_USE", "RESTRICT", "ROOT", "SLOT", "SRC_URI", "_"
23 + "REQUIRED_USE", "RESTRICT", "ROOT", "SANDBOX_LOG", "SLOT", "SRC_URI", "_"
24 ))
25
26 environ_whitelist = []
27 @@ -78,7 +78,7 @@ environ_whitelist += [
28 "PORTAGE_VERBOSE", "PORTAGE_WORKDIR_MODE", "PORTAGE_XATTR_EXCLUDE",
29 "PORTDIR", "PORTDIR_OVERLAY", "PREROOTPATH", "PYTHONDONTWRITEBYTECODE",
30 "REPLACING_VERSIONS", "REPLACED_BY_VERSION",
31 - "ROOT", "ROOTPATH", "SYSROOT", "T", "TMP", "TMPDIR",
32 + "ROOT", "ROOTPATH", "SANDBOX_LOG", "SYSROOT", "T", "TMP", "TMPDIR",
33 "USE_EXPAND", "USE_ORDER", "WORKDIR",
34 "XARGS", "__PORTAGE_TEST_HARDLINK_LOCKS",
35 ]
36 diff --git a/lib/portage/package/ebuild/doebuild.py b/lib/portage/package/ebuild/doebuild.py
37 index 584ff798b..92e9d755c 100644
38 --- a/lib/portage/package/ebuild/doebuild.py
39 +++ b/lib/portage/package/ebuild/doebuild.py
40 @@ -369,7 +369,6 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
41 mysettings["RPMDIR"] = os.path.realpath(mysettings["RPMDIR"])
42
43 mysettings["ECLASSDIR"] = mysettings["PORTDIR"]+"/eclass"
44 - mysettings["SANDBOX_LOG"] = mycpv.replace("/", "_-_")
45
46 mysettings["PORTAGE_BASHRC_FILES"] = "\n".join(mysettings._pbashrc)
47
48 @@ -407,6 +406,7 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
49 mysettings["WORKDIR"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "work")
50 mysettings["D"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "image") + os.sep
51 mysettings["T"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "temp")
52 + mysettings["SANDBOX_LOG"] = os.path.join(mysettings["T"], "sandbox.log")
53 mysettings["FILESDIR"] = os.path.join(settings["PORTAGE_BUILDDIR"], "files")
54
55 # Prefix forward compatability
56 --
57 2.24.1