diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-08-23 18:37:59 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-08-23 18:37:59 -0700 |
commit | 438db16d8afef9ad00b2792e529b889e13f2e9b3 (patch) | |
tree | b23f6c855b76fa3c660ab428850fbf0afed03b5a | |
parent | 0ab6f83070c9a32a24454053319c99559c2654ca (diff) | |
download | portage-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.py | 8 |
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: |