apply r9408 also for profile-base package.*use* files
authorMarius Mauch <genone@gentoo.org>
Sun, 2 Mar 2008 19:08:52 +0000 (19:08 -0000)
committerMarius Mauch <genone@gentoo.org>
Sun, 2 Mar 2008 19:08:52 +0000 (19:08 -0000)
svn path=/main/trunk/; revision=9410

pym/portage/__init__.py

index c10749368b0eaf22d0bb4dd758e28aa251605177..89840231ef0746d1b6354a4f552ab6c19be0f9af 100644 (file)
@@ -1869,9 +1869,15 @@ class config(object):
                        defaults.append(self.make_defaults_use[i])
                        cpdict = self.pkgprofileuse[i].get(cp, None)
                        if cpdict:
-                               best_match = best_match_to_list(cpv_slot, cpdict.keys())
-                               if best_match:
-                                       defaults.append(cpdict[best_match])
+                               keys = cpdict.keys()
+                               while keys:
+                                       bestmatch = best_match_to_list(cpv_slot, keys)
+                                       if bestmatch:
+                                               keys.remove(bestmatch)
+                                               defaults.append(cpdict[bestmatch])
+                                       else:
+                                               break
+                               del keys
                defaults = " ".join(defaults)
                if defaults != self.configdict["defaults"].get("USE",""):
                        self.configdict["defaults"]["USE"] = defaults
@@ -1881,9 +1887,15 @@ class config(object):
                        useforce.append(self.useforce_list[i])
                        cpdict = self.puseforce_list[i].get(cp, None)
                        if cpdict:
-                               best_match = best_match_to_list(cpv_slot, cpdict.keys())
-                               if best_match:
-                                       useforce.append(cpdict[best_match])
+                               keys = cpdict.keys()
+                               while keys:
+                                       best_match = best_match_to_list(cpv_slot, keys)
+                                       if best_match:
+                                               keys.remove(best_match)
+                                               useforce.append(cpdict[best_match])
+                                       else:
+                                               break
+                               del keys
                useforce = set(stack_lists(useforce, incremental=True))
                if useforce != self.useforce:
                        self.useforce = useforce
@@ -1893,9 +1905,15 @@ class config(object):
                        usemask.append(self.usemask_list[i])
                        cpdict = self.pusemask_list[i].get(cp, None)
                        if cpdict:
-                               best_match = best_match_to_list(cpv_slot, cpdict.keys())
-                               if best_match:
-                                       usemask.append(cpdict[best_match])
+                               keys = cpdict.keys()
+                               while keys:
+                                       best_match = best_match_to_list(cpv_slot, cpdict.keys())
+                                       if best_match:
+                                               keys.remove(best_match)
+                                               usemask.append(cpdict[best_match])
+                                       else:
+                                               break
+                               del keys
                usemask = set(stack_lists(usemask, incremental=True))
                if usemask != self.usemask:
                        self.usemask = usemask