* [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/, pym/portage/package/ebuild/
@ 2018-03-11 11:44 Michał Górny
0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2018-03-11 11:44 UTC (permalink / raw
To: gentoo-commits
commit: 802e7d0bdd967d28c6dbb31fd84e8dfd540d794a
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 27 18:53:02 2018 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar 11 11:43:41 2018 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=802e7d0b
Do not export PORTDIR & ECLASSDIR in EAPI 7
Bug: https://bugs.gentoo.org/373349
Bug: https://bugs.gentoo.org/373351
Closes: https://github.com/gentoo/portage/pull/264
bin/eapi.sh | 4 ++++
bin/phase-functions.sh | 6 ++++--
pym/portage/eapi.py | 11 +++++++++++
pym/portage/package/ebuild/config.py | 5 +++++
pym/portage/package/ebuild/doebuild.py | 8 ++++----
5 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/bin/eapi.sh b/bin/eapi.sh
index 569b8a0de..665b6f13e 100644
--- a/bin/eapi.sh
+++ b/bin/eapi.sh
@@ -38,6 +38,10 @@ ___eapi_has_RDEPEND_DEPEND_fallback() {
[[ ${1-${EAPI-0}} =~ ^(0|1|2|3)$ ]]
}
+___eapi_has_PORTDIR_ECLASSDIR() {
+ [[ ${1-${EAPI-0}} =~ ^(0|1|2|3|4|4-python|4-slot-abi|5|5-progress|6)$ ]]
+}
+
# HELPERS PRESENCE
___eapi_has_dohard() {
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index d95012d6b..017dc132b 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -12,7 +12,7 @@ PORTAGE_READONLY_METADATA="DEFINED_PHASES DEPEND DESCRIPTION
PDEPEND PROVIDE RDEPEND REPOSITORY RESTRICT SLOT SRC_URI"
PORTAGE_READONLY_VARS="D EBUILD EBUILD_PHASE EBUILD_PHASE_FUNC \
- EBUILD_SH_ARGS ECLASSDIR EMERGE_FROM FILESDIR MERGE_TYPE \
+ EBUILD_SH_ARGS EMERGE_FROM FILESDIR MERGE_TYPE \
PM_EBUILD_HOOK_DIR \
PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC \
PORTAGE_BINPKG_FILE PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE \
@@ -30,7 +30,6 @@ PORTAGE_READONLY_VARS="D EBUILD EBUILD_PHASE EBUILD_PHASE_FUNC \
PORTAGE_SAVED_READONLY_VARS PORTAGE_SIGPIPE_STATUS \
PORTAGE_TMPDIR PORTAGE_UPDATE_ENV PORTAGE_USERNAME \
PORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTAGE_XATTR_EXCLUDE \
- PORTDIR \
REPLACING_VERSIONS REPLACED_BY_VERSION T WORKDIR \
__PORTAGE_HELPER __PORTAGE_TEST_HARDLINK_LOCKS"
@@ -106,6 +105,9 @@ __filter_readonly_variables() {
if ___eapi_has_prefix_variables; then
filtered_vars+=" ED EPREFIX EROOT"
fi
+ if ___eapi_has_PORTDIR_ECLASSDIR; then
+ filtered_vars+=" PORTDIR ECLASSDIR"
+ fi
if has --filter-sandbox $* ; then
filtered_vars="${filtered_vars} SANDBOX_.*"
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index 092780ded..5613fb5d2 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -47,6 +47,14 @@ def eapi_exports_replace_vars(eapi):
def eapi_exports_EBUILD_PHASE_FUNC(eapi):
return eapi not in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi")
+def eapi_exports_PORTDIR(eapi):
+ return eapi in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi",
+ "5", "5-progress", "6")
+
+def eapi_exports_ECLASSDIR(eapi):
+ return eapi in ("0", "1", "2", "3", "4", "4-python", "4-slot-abi",
+ "5", "5-progress", "6")
+
def eapi_exports_REPOSITORY(eapi):
return eapi in ("4-python", "5-progress")
@@ -105,6 +113,7 @@ def eapi_empty_groups_always_true(eapi):
_eapi_attrs = collections.namedtuple('_eapi_attrs',
'dots_in_PN dots_in_use_flags exports_EBUILD_PHASE_FUNC '
+ 'exports_PORTDIR exports_ECLASSDIR '
'feature_flag_test feature_flag_targetroot '
'hdepend iuse_defaults iuse_effective posixish_locale '
'repo_deps required_use required_use_at_most_one_of slot_operator slot_deps '
@@ -134,6 +143,8 @@ def _get_eapi_attrs(eapi):
dots_in_use_flags = (eapi is None or eapi_allows_dots_in_use_flags(eapi)),
empty_groups_always_true = (eapi is not None and eapi_empty_groups_always_true(eapi)),
exports_EBUILD_PHASE_FUNC = (eapi is None or eapi_exports_EBUILD_PHASE_FUNC(eapi)),
+ exports_PORTDIR = (eapi is not None and eapi_exports_PORTDIR(eapi)),
+ exports_ECLASSDIR = (eapi is not None and eapi_exports_ECLASSDIR(eapi)),
feature_flag_test = True,
feature_flag_targetroot = (eapi is not None and eapi_has_targetroot(eapi)),
hdepend = (eapi is not None and eapi_has_hdepend(eapi)),
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index 432520ba8..10250cf46 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -2799,6 +2799,11 @@ class config(object):
else:
raise AssertionError("C locale did not pass the test!")
+ if not eapi_attrs.exports_PORTDIR:
+ mydict.pop("PORTDIR", None)
+ if not eapi_attrs.exports_ECLASSDIR:
+ mydict.pop("ECLASSDIR", None)
+
try:
builddir = mydict["PORTAGE_BUILDDIR"]
distdir = mydict["DISTDIR"]
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index 8c8f373bf..ca241aefb 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -57,10 +57,10 @@ from portage.data import portage_gid, portage_uid, secpass, \
from portage.dbapi.porttree import _parse_uri_map
from portage.dep import Atom, check_required_use, \
human_readable_required_use, paren_enclose, use_reduce
-from portage.eapi import eapi_exports_KV, eapi_exports_merge_type, \
- eapi_exports_replace_vars, eapi_exports_REPOSITORY, \
- eapi_has_required_use, eapi_has_src_prepare_and_src_configure, \
- eapi_has_pkg_pretend, _get_eapi_attrs
+from portage.eapi import (eapi_exports_KV, eapi_exports_merge_type,
+ eapi_exports_replace_vars, eapi_exports_REPOSITORY,
+ eapi_has_required_use, eapi_has_src_prepare_and_src_configure,
+ eapi_has_pkg_pretend, _get_eapi_attrs)
from portage.elog import elog_process, _preload_elog_modules
from portage.elog.messages import eerror, eqawarn
from portage.exception import (DigestException, FileNotFound,
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2018-03-11 11:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-11 11:44 [gentoo-commits] proj/portage:master commit in: bin/, pym/portage/, pym/portage/package/ebuild/ Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox