aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-24 01:37:59 (GMT)
committerZac Medico <zmedico@gentoo.org>2010-08-24 01:37:59 (GMT)
commit438db16d8afef9ad00b2792e529b889e13f2e9b3 (patch)
treeb23f6c855b76fa3c660ab428850fbf0afed03b5a
parentHandle SIGPIPE when unpack() extracts tar files through a pipe (bug #309001). (diff)
downloadportage-438db16d8afef9ad00b2792e529b889e13f2e9b3.zip
portage-438db16d8afef9ad00b2792e529b889e13f2e9b3.tar.gz
portage-438db16d8afef9ad00b2792e529b889e13f2e9b3.tar.bz2
Make config.setcpv() trigger regenerate() if the package from the
previous setcpv call had package.env settings which modified FEATURES. This ensures that self.features is accurate (hopefully solving the issue in bug #44796, comment #77).
-rw-r--r--pym/portage/package/ebuild/config.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index 6e20b1c..d49b235 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -1664,6 +1664,7 @@ class config(object):
iuse = ""
pkg_configdict = self.configdict["pkg"]
previous_iuse = pkg_configdict.get("IUSE")
+ previous_features = pkg_configdict.get("FEATURES")
aux_keys = self._setcpv_aux_keys
@@ -1743,6 +1744,13 @@ class config(object):
self.configdict["pkg"]["PKGUSE"] = self.puse[:] # For saving to PUSE file
self.configdict["pkg"]["USE"] = self.puse[:] # this gets appended to USE
+ if previous_features:
+ # The package from the previous setcpv call had package.env
+ # settings which modified FEATURES. Therefore, trigger a
+ # regenerate() call in order ensure that self.features
+ # is accurate.
+ has_changed = True
+
self._penv = []
cpdict = self._penvdict.get(cp)
if cpdict: