summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-05-04 10:15:55 +0000
committerZac Medico <zmedico@gentoo.org>2006-05-04 10:15:55 +0000
commita029b9d5f29259a8fa5532613667d38b37c30be9 (patch)
treef96a75829861d9341762262e75c521bbd8494a17
parentb00fd7dfc9eef9e389d9dd7fe1f2839132ba0c59 (diff)
downloadportage-a029b9d5f29259a8fa5532613667d38b37c30be9.tar.gz
portage-a029b9d5f29259a8fa5532613667d38b37c30be9.tar.bz2
portage-a029b9d5f29259a8fa5532613667d38b37c30be9.zip
Make sure that cloned FEATURES are correctly preserved by getting them directly from the backupenv instead of going through the lookuplist (Bug #132196).
svn path=/main/trunk/; revision=3318
-rw-r--r--pym/portage.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 8b46a35d7..d9a0ea982 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -1292,13 +1292,15 @@ class config:
self.features = portage_util.unique_array(self["FEATURES"].split())
else:
# 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.
- self.features = portage_util.unique_array(self["FEATURES"].split())
+ # The below self.regenerate() causes previous changes to FEATURES
+ # (and other incrementals) to be reverted. If this instance is a
+ # clone, we need to take the cloned FEATURES from backupenv and
+ # save them where the regenerate() call will not destroy them.
+ # Later, we use backup_changes() to restore the cloned FEATURES
+ # into the backupenv once again.
+ self.features = portage_util.unique_array(
+ self.backupenv["FEATURES"].split())
self.regenerate()
- self["FEATURES"] = " ".join(self.features)
- self.backup_changes("FEATURES")
#XXX: Should this be temporary? Is it possible at all to have a default?
if "gpg" in self.features: