diff options
Diffstat (limited to '')
-rw-r--r-- | portato/backend/__init__.py | 2 | ||||
-rw-r--r-- | portato/backend/exceptions.py | 2 | ||||
-rw-r--r-- | portato/backend/flags.py | 55 | ||||
-rw-r--r-- | portato/backend/package.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/__init__.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/package.py | 5 | ||||
-rw-r--r-- | portato/backend/portage/package_22.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/sets.py | 16 | ||||
-rw-r--r-- | portato/backend/portage/settings.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/settings_22.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/system.py | 2 | ||||
-rw-r--r-- | portato/backend/portage/system_22.py | 17 | ||||
-rw-r--r-- | portato/backend/system_interface.py | 2 |
13 files changed, 59 insertions, 52 deletions
diff --git a/portato/backend/__init__.py b/portato/backend/__init__.py index 4a4144a..8eae806 100644 --- a/portato/backend/__init__.py +++ b/portato/backend/__init__.py @@ -3,7 +3,7 @@ # File: portato/backend/__init__.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2007 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/exceptions.py b/portato/backend/exceptions.py index 46b2a3e..f20a33e 100644 --- a/portato/backend/exceptions.py +++ b/portato/backend/exceptions.py @@ -3,7 +3,7 @@ # File: portato/backend/exceptions.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2007 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/flags.py b/portato/backend/flags.py index 56df231..baa1f37 100644 --- a/portato/backend/flags.py +++ b/portato/backend/flags.py @@ -3,7 +3,7 @@ # File: portato/backend/flags.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. @@ -203,10 +203,10 @@ def sort_use_flag_list (flaglist): """ def flag_key (flag): - if flag[0] in "+-": - return flag[1:] - else: - return flag + if flag[0] in "+-": + return flag[1:] + else: + return flag flaglist.sort(key = flag_key) return flaglist @@ -262,7 +262,7 @@ def set_use_flag (pkg, flag): if pkg.matches(crit): # we have the inverted flag in the uselist/newuselist --> delete it if invFlag in flags or (file, line, invFlag, False) in newUseFlags[cpv] or (file, line, flag, True) in newUseFlags[cpv]: - if added: del newUseFlags[-1] # we currently added it as an extra option - delete it + if added: del newUseFlags[cpv][-1] # we currently added it as an extra option - delete it added = True jumpOut = False for t in ((file, line, invFlag, False),(file, line, flag, True)): @@ -343,22 +343,22 @@ def write_use_flags (): """This writes our changed useflags into the file.""" global newUseFlags, useFlags + def combine (list): + """Shortcut for reverting the list into a string.""" + return " ".join(list)+"\n" + def insert (flag, list): """Shortcut for inserting a new flag right after the package-name.""" list.insert(1,flag) def remove (flag, list): """Removes a flag.""" - try: - list.remove(flag) - except ValueError: # flag is given as flag\n - list.remove(flag+"\n") - list.append("\n") #re-insert the newline + list.remove(flag) # no more flags there - comment it out - if len(list) == 1 or list[1][0] in ("#","\n"): + if len(list) == 1 or list[1][0] == "#": list[0] = "#"+list[0] - insert("#removed by portato#",list) + list.append("#removed by portato#") file_cache = {} # cache for having to read the file only once: name->[lines] for cpv in newUseFlags: @@ -381,14 +381,14 @@ def write_use_flags (): while i < line: # stop at the given line lines.append(f.readline()) i += 1 - l = f.readline().split(" ") + l = f.readline().split() # delete or insert if delete: remove(flag,l) else: insert(flag,l) - lines.append(" ".join(l)) + lines.append(combine(l)) # read the rest lines.extend(f.readlines()) @@ -396,33 +396,34 @@ def write_use_flags (): file_cache[file] = lines else: # in cache - l = file_cache[file][line-1].split(" ") + l = file_cache[file][line-1].split() if delete: remove(flag, l) else: - insert(flag,l) - file_cache[file][line-1] = " ".join(l) + insert(flag, l) + file_cache[file][line-1] = combine(l) if flagsToAdd: # write new lines msg = "\n#portato update#\n" + comb = combine(flagsToAdd) if CONFIG["usePerVersion"]: # add on a per-version-base - msg += "=%s %s\n" % (cpv, ' '.join(flagsToAdd)) + msg += "=%s %s" % (cpv, comb) else: # add on a per-package-base list = system.split_cpv(cpv) - msg += "%s/%s %s\n" % (list[0], list[1], ' '.join(flagsToAdd)) + msg += "%s/%s %s" % (list[0], list[1], combine) + if not file in file_cache: - f = open(file, "a") - f.write(msg) - f.close() + with open(file, "a") as f: + f.write(msg) else: file_cache[file].append(msg) # write to disk - for file in file_cache.keys(): - f = open(file, "w") - f.writelines(file_cache[file]) - f.close() + for file in file_cache: + with open(file, "w") as f: + f.writelines(file_cache[file]) + # reset useFlags = {} newUseFlags = {} diff --git a/portato/backend/package.py b/portato/backend/package.py index bcc209a..8a80fd5 100644 --- a/portato/backend/package.py +++ b/portato/backend/package.py @@ -3,7 +3,7 @@ # File: portato/backend/package.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/__init__.py b/portato/backend/portage/__init__.py index 67eebfa..1daf51b 100644 --- a/portato/backend/portage/__init__.py +++ b/portato/backend/portage/__init__.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/__init__.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2007 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/package.py b/portato/backend/portage/package.py index 2c913f9..e1813bf 100644 --- a/portato/backend/portage/package.py +++ b/portato/backend/portage/package.py @@ -222,11 +222,14 @@ class PortagePackage (Package): continue if return_blocks: + if not blocked: + if not system.find_packages(dep, masked = True): continue # well - no packages affected - ignore + if with_criterions: dep_pkgs.append((dep, dep)) else: dep_pkgs.append(dep) - else: + elif blocked: raise BlockedException, (self.get_cpv(), blocked[0].get_cpv()) continue # finished with the blocking one -> next diff --git a/portato/backend/portage/package_22.py b/portato/backend/portage/package_22.py index 1dae1fe..ed804ce 100644 --- a/portato/backend/portage/package_22.py +++ b/portato/backend/portage/package_22.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/package_22.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/sets.py b/portato/backend/portage/sets.py index 53025ab..dd8257d 100644 --- a/portato/backend/portage/sets.py +++ b/portato/backend/portage/sets.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/sets.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. @@ -52,7 +52,7 @@ class FilterSet (Set): t = set() for pkg in self.get_list(): if is_regexp and key: - if not re.match(key, pkg, re.I): continue + if not re.search(key, pkg, re.I): continue if not with_version: t.add(portage.dep.dep_getkey(pkg)) @@ -63,12 +63,11 @@ class FilterSet (Set): class PortageSet (FilterSet): def __init__ (self, name): - FilterSet.__init__(self) debug("Loading portage set '%s'", name) - self.portageSet = system.settings.setsconfig.getSets()[name] + self.name = name def get_list(self): - return itt.imap(str, self.portageSet.getAtoms()) + return itt.imap(str, system.settings.setsconfig.getSetAtoms(self.name)) class SystemSet (FilterSet): @@ -86,6 +85,9 @@ class WorldSet (FilterSet): yield cp class InstalledSet (Set): + """For the moment do not use the portage-2.2 @installed set. + It only contains the current slot-cps - and to get the cpvs + via the PortageSet results in an infinite recursion :(.""" def get_pkgs (self, key, is_regexp, masked, with_version, only_cpv): if is_regexp: @@ -95,7 +97,7 @@ class InstalledSet (Set): t = system.settings.vartree.dbapi.cp_all() if key: - t = filter(lambda x: re.match(key, x, re.I), t) + t = filter(lambda x: re.search(key, x, re.I), t) return set(t) else: @@ -111,7 +113,7 @@ class TreeSet (Set): t = system.settings.porttree.dbapi.cp_all() if key: - t = filter(lambda x: re.match(key, x, re.I), t) + t = filter(lambda x: re.search(key, x, re.I), t) elif masked: t = system.settings.porttree.dbapi.xmatch("match-all", key) diff --git a/portato/backend/portage/settings.py b/portato/backend/portage/settings.py index 155e847..8211f3b 100644 --- a/portato/backend/portage/settings.py +++ b/portato/backend/portage/settings.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/settings.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2007 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/settings_22.py b/portato/backend/portage/settings_22.py index 5274b3b..bae3424 100644 --- a/portato/backend/portage/settings_22.py +++ b/portato/backend/portage/settings_22.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/settings_22.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/system.py b/portato/backend/portage/system.py index 24016dc..94b5ca1 100644 --- a/portato/backend/portage/system.py +++ b/portato/backend/portage/system.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/system.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. diff --git a/portato/backend/portage/system_22.py b/portato/backend/portage/system_22.py index 8ce3cd9..d720a06 100644 --- a/portato/backend/portage/system_22.py +++ b/portato/backend/portage/system_22.py @@ -3,7 +3,7 @@ # File: portato/backend/portage/system_22.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. @@ -32,10 +32,10 @@ class PortageSystem_22 (PortageSystem): self.local_use_descs = defaultdict(dict) self.setmap = { - self.SET_ALL : syssets.AllSet, - self.SET_INSTALLED : syssets.InstalledSet, - self.SET_UNINSTALLED : syssets.UninstalledSet, - self.SET_TREE : syssets.TreeSet + self.SET_ALL : syssets.AllSet(), + self.SET_INSTALLED : syssets.InstalledSet(), + self.SET_UNINSTALLED : syssets.UninstalledSet(), + self.SET_TREE : syssets.TreeSet() } def get_update_option (self): @@ -56,9 +56,10 @@ class PortageSystem_22 (PortageSystem): s = self.setmap.get(pkgSet, None) if s is None: - return syssets.PortageSet(pkgSet) - else: - return s() + s = syssets.PortageSet(pkgSet) + self.setmap[pkgSet] = s + + return s def new_package (self, cpv): return PortagePackage_22(cpv) diff --git a/portato/backend/system_interface.py b/portato/backend/system_interface.py index 6f13042..5f4c50a 100644 --- a/portato/backend/system_interface.py +++ b/portato/backend/system_interface.py @@ -3,7 +3,7 @@ # File: portato/backend/system_interface.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2007-2008 René 'Necoro' Neumann +# Copyright (C) 2006-2009 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. |