diff options
-rwxr-xr-x | bin/emerge | 9 | ||||
-rw-r--r-- | pym/portage.py | 7 |
2 files changed, 13 insertions, 3 deletions
diff --git a/bin/emerge b/bin/emerge index 87f287301..c74d949ff 100755 --- a/bin/emerge +++ b/bin/emerge @@ -168,8 +168,13 @@ if portage.settings.has_key("PORTAGE_NICENESS"): portage.portdb.freeze() # Kill noauto as it will break merges otherwise. -while 'noauto' in portage.settings.features: - portage.settings.features.remove('noauto') +if "noauto" in portage.settings.features: + while "noauto" in portage.settings.features: + portage.settings.features.remove("noauto") + portage.settings.unlock() + portage.settings["FEATURES"] = " ".join(portage.settings.features) + portage.settings.backup_changes("FEATURES") + portage.settings.lock() #number of ebuilds merged merged=0 diff --git a/pym/portage.py b/pym/portage.py index 972303f1f..45f3f2139 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1287,7 +1287,12 @@ class config: self["PORTDIR_OVERLAY"] = string.join(new_ov) self.backup_changes("PORTDIR_OVERLAY") - self.regenerate() + # XXX + # The below self.regenerate() causes previous changes to FEATURES (and + # other incrementals) to be reverted. If this instance is a clone, we + # need to skip regenerate() so that the copied values are preserved. + if clone is None: + self.regenerate() self.features = portage_util.unique_array(self["FEATURES"].split()) |