From: Zac Medico Date: Tue, 24 Aug 2010 01:37:59 +0000 (-0700) Subject: Make config.setcpv() trigger regenerate() if the package from the X-Git-Tag: v2.2_rc69~20 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=438db16d8afef9ad00b2792e529b889e13f2e9b3;p=portage.git 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). --- 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: