* [gentoo-commits] proj/portage:master commit in: lib/portage/package/ebuild/, lib/portage/package/ebuild/_config/
@ 2020-01-23 6:10 Zac Medico
0 siblings, 0 replies; 2+ messages in thread
From: Zac Medico @ 2020-01-23 6:10 UTC (permalink / raw
To: gentoo-commits
commit: 1b18d8257ecd6c8c8f10c711b41a2be0fe7d587f
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 18 05:31:16 2020 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Thu Jan 23 06:08:31 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=1b18d825
doebuild: export SANDBOX_LOG=${T}/sandbox.log (bug 704848)
In order to avoid a SANDBOX_LOG collision with another process
having the same pid when pid-sandbox is enabled, export a
unique SANDBOX_LOG value. The ${T} directory is a convenient
location, since it is guaranteed to exist and be writable during
relevant ebuild phases.
Bug: https://bugs.gentoo.org/704848
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
lib/portage/package/ebuild/_config/special_env_vars.py | 4 ++--
lib/portage/package/ebuild/doebuild.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/portage/package/ebuild/_config/special_env_vars.py b/lib/portage/package/ebuild/_config/special_env_vars.py
index 5e7ca6d47..dc01339f7 100644
--- a/lib/portage/package/ebuild/_config/special_env_vars.py
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py
@@ -28,7 +28,7 @@ env_blacklist = frozenset((
"PORTAGE_INTERNAL_CALLER", "PORTAGE_IUSE",
"PORTAGE_NONFATAL", "PORTAGE_PIPE_FD", "PORTAGE_REPO_NAME",
"PORTAGE_USE", "PROPERTIES", "RDEPEND", "REPOSITORY",
- "REQUIRED_USE", "RESTRICT", "ROOT", "SLOT", "SRC_URI", "_"
+ "REQUIRED_USE", "RESTRICT", "ROOT", "SANDBOX_LOG", "SLOT", "SRC_URI", "_"
))
environ_whitelist = []
@@ -78,7 +78,7 @@ environ_whitelist += [
"PORTAGE_VERBOSE", "PORTAGE_WORKDIR_MODE", "PORTAGE_XATTR_EXCLUDE",
"PORTDIR", "PORTDIR_OVERLAY", "PREROOTPATH", "PYTHONDONTWRITEBYTECODE",
"REPLACING_VERSIONS", "REPLACED_BY_VERSION",
- "ROOT", "ROOTPATH", "SYSROOT", "T", "TMP", "TMPDIR",
+ "ROOT", "ROOTPATH", "SANDBOX_LOG", "SYSROOT", "T", "TMP", "TMPDIR",
"USE_EXPAND", "USE_ORDER", "WORKDIR",
"XARGS", "__PORTAGE_TEST_HARDLINK_LOCKS",
]
diff --git a/lib/portage/package/ebuild/doebuild.py b/lib/portage/package/ebuild/doebuild.py
index 584ff798b..92e9d755c 100644
--- a/lib/portage/package/ebuild/doebuild.py
+++ b/lib/portage/package/ebuild/doebuild.py
@@ -369,7 +369,6 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
mysettings["RPMDIR"] = os.path.realpath(mysettings["RPMDIR"])
mysettings["ECLASSDIR"] = mysettings["PORTDIR"]+"/eclass"
- mysettings["SANDBOX_LOG"] = mycpv.replace("/", "_-_")
mysettings["PORTAGE_BASHRC_FILES"] = "\n".join(mysettings._pbashrc)
@@ -407,6 +406,7 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
mysettings["WORKDIR"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "work")
mysettings["D"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "image") + os.sep
mysettings["T"] = os.path.join(mysettings["PORTAGE_BUILDDIR"], "temp")
+ mysettings["SANDBOX_LOG"] = os.path.join(mysettings["T"], "sandbox.log")
mysettings["FILESDIR"] = os.path.join(settings["PORTAGE_BUILDDIR"], "files")
# Prefix forward compatability
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] proj/portage:master commit in: lib/portage/package/ebuild/, lib/portage/package/ebuild/_config/
@ 2020-11-22 0:53 Zac Medico
0 siblings, 0 replies; 2+ messages in thread
From: Zac Medico @ 2020-11-22 0:53 UTC (permalink / raw
To: gentoo-commits
commit: 309e28b2da9a7e98039b45e7555833fe6a4bc2f9
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 9 02:41:36 2020 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Nov 22 00:45:46 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=309e28b2
emerge: Disable profile deprecation warning inheritance (bug 753497)
According to PMS, a deprecated profile warning is not inherited. Since
the current profile node may have been inherited by a user profile
node, the deprecation warning may be relevant even if it is not a
top-level profile node. Therefore, consider the deprecated warning
to be irrelevant when the current profile node belongs to the same
repo as the previous profile node.
Bug: https://bugs.gentoo.org/753497
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
.../package/ebuild/_config/LocationsManager.py | 30 ++++++++++++++++------
.../package/ebuild/deprecated_profile_check.py | 9 ++++---
2 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/lib/portage/package/ebuild/_config/LocationsManager.py b/lib/portage/package/ebuild/_config/LocationsManager.py
index b90b9227c..327400ad6 100644
--- a/lib/portage/package/ebuild/_config/LocationsManager.py
+++ b/lib/portage/package/ebuild/_config/LocationsManager.py
@@ -30,7 +30,9 @@ _PORTAGE1_DIRECTORIES = frozenset([
_profile_node = collections.namedtuple('_profile_node',
('location', 'portage1_directories', 'user_config',
- 'profile_formats', 'eapi', 'allow_build_id'))
+ 'profile_formats', 'eapi', 'allow_build_id',
+ 'show_deprecated_warning',
+))
_allow_parent_colon = frozenset(
["portage-2"])
@@ -132,7 +134,7 @@ class LocationsManager:
if self.profile_path:
try:
self._addProfile(os.path.realpath(self.profile_path),
- repositories, known_repos)
+ repositories, known_repos, ())
except ParseError as e:
if not portage._sync_mode:
writemsg(_("!!! Unable to parse profile: '%s'\n") % self.profile_path, noiselevel=-1)
@@ -154,7 +156,9 @@ class LocationsManager:
('profile-bashrcs', 'profile-set'),
read_corresponding_eapi_file(
custom_prof + os.sep, default=None),
- True))
+ True,
+ show_deprecated_warning=False,
+ ))
del custom_prof
self.profiles = tuple(self.profiles)
@@ -167,7 +171,7 @@ class LocationsManager:
noiselevel=-1)
raise DirectoryNotFound(var)
- def _addProfile(self, currentPath, repositories, known_repos):
+ def _addProfile(self, currentPath, repositories, known_repos, previous_repos):
current_abs_path = os.path.abspath(currentPath)
allow_directories = True
allow_parent_colon = True
@@ -176,8 +180,8 @@ class LocationsManager:
current_formats = ()
eapi = None
- intersecting_repos = [x for x in known_repos
- if current_abs_path.startswith(x[0])]
+ intersecting_repos = tuple(x for x in known_repos
+ if current_abs_path.startswith(x[0]))
if intersecting_repos:
# Handle nested repositories. The longest path
# will be the correct one.
@@ -214,6 +218,14 @@ class LocationsManager:
for x in layout_data['profile-formats'])
current_formats = tuple(layout_data['profile-formats'])
+ # According to PMS, a deprecated profile warning is not inherited. Since
+ # the current profile node may have been inherited by a user profile
+ # node, the deprecation warning may be relevant even if it is not a
+ # top-level profile node. Therefore, consider the deprecated warning
+ # to be irrelevant when the current profile node belongs to the same
+ # repo as the previous profile node.
+ show_deprecated_warning = \
+ tuple(x[0] for x in previous_repos) != tuple(x[0] for x in intersecting_repos)
if compat_mode:
offenders = _PORTAGE1_DIRECTORIES.intersection(os.listdir(currentPath))
@@ -256,7 +268,7 @@ class LocationsManager:
parentPath = os.path.realpath(parentPath)
if exists_raise_eaccess(parentPath):
- self._addProfile(parentPath, repositories, known_repos)
+ self._addProfile(parentPath, repositories, known_repos, intersecting_repos)
else:
raise ParseError(
_("Parent '%s' not found: '%s'") % \
@@ -265,7 +277,9 @@ class LocationsManager:
self.profiles.append(currentPath)
self.profiles_complex.append(
_profile_node(currentPath, allow_directories, False,
- current_formats, eapi, 'build-id' in current_formats))
+ current_formats, eapi, 'build-id' in current_formats,
+ show_deprecated_warning=show_deprecated_warning,
+ ))
def _expand_parent_colon(self, parentsFile, parentPath,
repo_loc, repositories):
diff --git a/lib/portage/package/ebuild/deprecated_profile_check.py b/lib/portage/package/ebuild/deprecated_profile_check.py
index e93ece2ac..ac4f00f63 100644
--- a/lib/portage/package/ebuild/deprecated_profile_check.py
+++ b/lib/portage/package/ebuild/deprecated_profile_check.py
@@ -19,10 +19,11 @@ def deprecated_profile_check(settings=None):
if settings is not None:
config_root = settings["PORTAGE_CONFIGROOT"]
eprefix = settings["EPREFIX"]
- for x in reversed(settings.profiles):
- deprecated_profile_file = os.path.join(x, "deprecated")
- if os.access(deprecated_profile_file, os.R_OK):
- break
+ for x in reversed(settings._locations_manager.profiles_complex):
+ if x.show_deprecated_warning:
+ deprecated_profile_file = os.path.join(x.location, "deprecated")
+ if os.access(deprecated_profile_file, os.R_OK):
+ break
else:
deprecated_profile_file = None
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-22 0:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-23 6:10 [gentoo-commits] proj/portage:master commit in: lib/portage/package/ebuild/, lib/portage/package/ebuild/_config/ Zac Medico
-- strict thread matches above, loose matches on Subject: below --
2020-11-22 0:53 Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox