summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-23 18:37:59 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-23 18:37:59 -0700
commit438db16d8afef9ad00b2792e529b889e13f2e9b3 (patch)
treeb23f6c855b76fa3c660ab428850fbf0afed03b5a
parent0ab6f83070c9a32a24454053319c99559c2654ca (diff)
downloadportage-438db16d8afef9ad00b2792e529b889e13f2e9b3.tar.gz
portage-438db16d8afef9ad00b2792e529b889e13f2e9b3.tar.bz2
portage-438db16d8afef9ad00b2792e529b889e13f2e9b3.zip
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 6e20b1cb7..d49b23552 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: