summaryrefslogtreecommitdiff
path: root/portato
diff options
context:
space:
mode:
Diffstat (limited to 'portato')
-rw-r--r--portato/backend/package.py17
-rw-r--r--portato/backend/portage_helper.py27
2 files changed, 22 insertions, 22 deletions
diff --git a/portato/backend/package.py b/portato/backend/package.py
index fc0bd02..225c06a 100644
--- a/portato/backend/package.py
+++ b/portato/backend/package.py
@@ -38,6 +38,10 @@ class Package:
self._settings = settings
self._settingslock = settingslock
+
+ self.forced_flags = set()
+ self.forced_flags.update(self._settings.usemask)
+ self.forced_flags.update(self._settings.useforce)
try:
self._status = portage.getmaskingstatus(self.get_cpv(), settings = self._settings)
@@ -151,7 +155,7 @@ class Package:
else:
tree = porttree
- return unique_array(self.get_env_var("IUSE", tree = tree).split())
+ return list(set(self.get_env_var("IUSE", tree = tree).split()).difference(self.forced_flags))
def get_installed_use_flags (self):
"""Returns a list of the useflags enabled at installation time. If package is not installed, it returns an empty list.
@@ -160,13 +164,10 @@ class Package:
@rtype: string[]"""
if self.is_installed():
- uses = self.get_use_flags().split() # all set at installation time
- iuses = self.get_all_use_flags() # all you can set for the package
- set = []
- for u in iuses:
- if u in uses:
- set.append(u)
- return set
+ uses = set(self.get_use_flags().split()) # all set at installation time
+ iuses = set(self.get_all_use_flags(installed=True)) # all you can set for the package
+
+ return list(uses.intersection(iuses))
else:
return []
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():
55606921383380434b6752dff1c&follow=1'>Moved the menu to an extra fileRené 'Necoro' Neumann2-210/+207 2009-09-05One database instance is enough :)René 'Necoro' Neumann1-7/+18 2009-09-05Print database type at the bottom of exceptions. NOTE: This does not handle m...René 'Necoro' Neumann2-1/+6 2009-09-05Fix an error, where a category vanishes after refreshing, using the EixSQLDat...René 'Necoro' Neumann2-1/+19 2009-09-03And here is the debugging again :) ... using ctypesRené 'Necoro' Neumann1-1/+8 2009-09-03Screw debugging ... prefer the ctypes approach to get rid of yet another c-mo...René 'Necoro' Neumann3-27/+11 2009-09-03Use this wrapper instead of ctypes to set the textdomain and stuff for the gt...René 'Necoro' Neumann1-9/+5 2009-09-03Add small wrapper to C-gettextRené 'Necoro' Neumann2-1/+22 2009-08-31Update messages.potRené 'Necoro' Neumann1-42/+94 2009-08-31Removed the gtk- strings from translationsRené 'Necoro' Neumann7-3639/+3479 2009-08-31Removed the 'translatable' attribute from 'gtk-*' stringsRené 'Necoro' Neumann5-11/+11 2009-08-31Removed TODO. Renamed ChangeLog to TODORené 'Necoro' Neumann2-40/+0 2009-08-27Only import stuff if necessaryRené 'Necoro' Neumann1-8/+8 2009-08-25Release the threadQueue-Lock in syncv0.13René 'Necoro' Neumann1-0/+1 2009-08-25Updated portugese translationAlberto Federman Neto1-650/+687 2009-08-15Update spanish translationDaniel Halens1-245/+258 2009-08-15Use boolean flags instead of obscure C flags for ipc.MessageQueueRené 'Necoro' Neumann3-13/+15 2009-08-15TypoRené 'Necoro' Neumann1-1/+1 2009-08-15Enhanced the extensions.shRené 'Necoro' Neumann1-3/+8 2009-08-15Move eix-format to correct locationRené 'Necoro' Neumann1-0/+0