diff options
author | necoro <> | 2006-12-10 11:43:26 +0000 |
---|---|---|
committer | necoro <> | 2006-12-10 11:43:26 +0000 |
commit | 43af2d836a54146a556a5c4f06ec98e882f6aa9e (patch) | |
tree | c7fa23bf5521fd34ac61081d9976adfb21171abe /portato/backend/portage_helper.py | |
parent | e368eb59dd4f7388fe93387492ef2e12c3993129 (diff) | |
download | portato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.tar.gz portato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.tar.bz2 portato-43af2d836a54146a556a5c4f06ec98e882f6aa9e.zip |
used sets for flags; make newuse work completly
Diffstat (limited to 'portato/backend/portage_helper.py')
-rw-r--r-- | portato/backend/portage_helper.py | 27 |
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(): |