diff options
Diffstat (limited to 'portato')
-rw-r--r-- | portato/backend/flags.py | 2 | ||||
-rw-r--r-- | portato/backend/package.py | 10 | ||||
-rw-r--r-- | portato/backend/portage/package.py | 39 |
3 files changed, 20 insertions, 31 deletions
diff --git a/portato/backend/flags.py b/portato/backend/flags.py index d388e08..018e804 100644 --- a/portato/backend/flags.py +++ b/portato/backend/flags.py @@ -677,7 +677,7 @@ def set_testing (pkg, enable): if (enable and line != "-1") or (not enable and line == "-1"): newTesting[cpv].remove((file, line)) - if (enable and not pkg.is_testing(use_keywords=True)) or (not enable and pkg.is_testing(use_keywords=True)): + if (enable and not pkg.is_testing()) or (not enable and pkg.is_testing()): return if not enable: diff --git a/portato/backend/package.py b/portato/backend/package.py index 4dc439a..6d73a42 100644 --- a/portato/backend/package.py +++ b/portato/backend/package.py @@ -88,13 +88,15 @@ class Package (_Package): if f[0] == "~": f = f[1:] removed = True + + invf = flags.invert_use_flag(f) if f[0] == '-': - if flags.invert_use_flag(f) in i_flags and not (removed and flags.invert_use_flag(f) in m_flags): - i_flags.remove(flags.invert_use_flag(f)) + if invf in i_flags and not (removed and invf in m_flags): + i_flags.remove(invf) elif f not in i_flags: - if not (removed and flags.invert_use_flag(f) in m_flags): + if not (removed and invf in m_flags): i_flags.append(f) return i_flags @@ -270,7 +272,7 @@ class Package (_Package): raise NotImplementedError - def is_testing(self, use_keywords = False): + def is_testing(self, use_keywords = True): """Checks whether a package is marked as testing. @param use_keywords: Controls whether possible keywords are taken into account or not. diff --git a/portato/backend/portage/package.py b/portato/backend/portage/package.py index 37fa230..0452641 100644 --- a/portato/backend/portage/package.py +++ b/portato/backend/portage/package.py @@ -89,7 +89,7 @@ class PortagePackage (Package): return self._settings.vartree.dbapi.cpv_exists(self._cpv) def is_in_overlay(self): - dir,ovl = self._settings.porttree.dbapi.findname2(self._cpv) + ovl = self.get_overlay_path() return ovl != self._settings.settings["PORTDIR"] and str(ovl) != "0" def get_overlay_path (self): @@ -100,23 +100,17 @@ class PortagePackage (Package): return (self._status != None) def is_missing_keyword(self): - if self._status and "missing keyword" in self._status: - return True - return False + return self._status and "missing keyword" in self._status - def is_testing(self, use_keywords = False): + def is_testing(self, use_keywords = True): testArch = "~" + self.get_global_settings("ARCH") if not use_keywords: # keywords are NOT taken into account - if testArch in self.get_package_settings("KEYWORDS").split(): - return True - return False + return testArch in self.get_package_settings("KEYWORDS").split() else: # keywords are taken into account status = flags.new_testing_status(self.get_cpv()) if status is None: # we haven't changed it in any way - if self._status and testArch+" keyword" in self._status: - return True - return False + return self._status and testArch+" keyword" in self._status else: return status @@ -130,15 +124,13 @@ class PortagePackage (Package): else: error(_("BUG in flags.new_masking_status. It returns \'%s\'"), status) else: # we have not touched the status - if self._status and ("profile" in self._status or "package.mask" in self._status): - return True - return False + return self._status and ("profile" in self._status or "package.mask" in self._status) + else: # we want the original portage value XXX: bug if masked by user AND by system # get the normal masked ones if self._status and ("profile" in self._status or "package.mask" in self._status): - if not flags.is_locally_masked(self, changes = False): # assume that if it is locally masked, it is not masked by the system - return True + return flags.is_locally_masked(self, changes = False) # assume that if it is locally masked, it is not masked by the system else: # more difficult: get the ones we unmasked, but are masked by the system try: masked = self._settings.settings.pmaskdict[self.get_cp()] @@ -147,10 +139,7 @@ class PortagePackage (Package): for cpv in masked: if self.matches(cpv): - if not flags.is_locally_masked(self, changes = False): # assume that if it is locally masked, it is not masked by the system - return True - else: - return False + return not flags.is_locally_masked(self, changes = False) # assume that if it is locally masked, it is not masked by the system return False @@ -158,7 +147,7 @@ class PortagePackage (Package): reason = portage.getmaskingreason(self.get_cpv(), settings = self._settings.settings) if reason: - return reason[:-1] # strip of last \n + return reason.strip() else: return reason @@ -234,9 +223,9 @@ class PortagePackage (Package): if dep[0] == '!': # blocking sth dep = dep[1:] if dep != self.get_cp(): # not cpv, because a version might explicitly block another one - blocked = system.find_installed_packages(dep) + blocked = system.find_packages(dep, "installed", only_cpv = True) if blocked != []: - raise BlockedException, (self.get_cpv(), blocked[0].get_cpv()) + raise BlockedException, (self.get_cpv(), blocked[0]) continue # finished with the blocking one -> next pkg = system.find_best_match(dep) @@ -246,10 +235,8 @@ class PortagePackage (Package): raise PackageNotFoundException, dep list = system.sort_package_list(list) - list.reverse() done = False - for i in range(len(list)): - p = list[i] + for p in reversed(list): if not p.is_masked(): dep_pkgs.append(create_dep_pkgs_data(dep, p)) done = True |