summaryrefslogtreecommitdiff
path: root/portato/backend/portage_helper.py
diff options
context:
space:
mode:
authornecoro <>2006-12-10 11:43:26 +0000
committernecoro <>2006-12-10 11:43:26 +0000
commit43af2d836a54146a556a5c4f06ec98e882f6aa9e (patch)
treec7fa23bf5521fd34ac61081d9976adfb21171abe /portato/backend/portage_helper.py
parente368eb59dd4f7388fe93387492ef2e12c3993129 (diff)
downloadportato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.tar.gz
portato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.tar.bz2
portato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.zip
used sets for flags; make newuse work completly
Diffstat (limited to '')
-rw-r--r--portato/backend/portage_helper.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/portato/backend/portage_helper.py b/portato/backend/portage_helper.py
index 9c171b4..10ab9fa 100644
--- a/portato/backend/portage_helper.py
+++ b/portato/backend/portage_helper.py
@@ -378,27 +378,26 @@ def update_world (newuse = False, deep = False):
if newuse:
- new = set(p.get_all_use_flags(False)) # IUSE in the ebuild
- old = set(p.get_all_use_flags(True)) # IUSE in the vardb
- if old != new:
- debug(p.get_cpv(),"old:",old)
- debug(p.get_cpv(),"new:",new)
+ new_iuse = set(p.get_all_use_flags(installed = False)) # IUSE in the ebuild
+ old_iuse = set(p.get_all_use_flags(installed = True)) # IUSE in the vardb
+
+ if new_iuse.symmetric_difference(old_iuse): # difference between new_iuse and old_iuse
+ debug(p.get_cpv(),"old:",old_iuse)
+ debug(p.get_cpv(),"new:",new_iuse)
tempDeep = True
if not appended:
updating.append((p,p))
appended = True
else:
- old = p.get_installed_use_flags()
- new = p.get_settings("USE").split()
+ old = set(p.get_installed_use_flags())
+ new = set(p.get_settings("USE").split())
- for u in p.get_all_use_flags():
- if (u in new) != (u in old):
- tempDeep = True
- if not appended:
- updating.append((p,p))
- appended = True
- break
+ if new_iuse.intersection(new) != old_iuse.intersection(old):
+ tempDeep = True
+ if not appended:
+ updating.append((p,p))
+ appended = True
if deep or tempDeep:
for i in p.get_matched_dep_packages():