From c8ab8375fe4f719ca484b0f395fd3812c73444aa Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Thu, 17 Apr 2008 10:25:39 +0200 Subject: Changed 'is_overlay' to 'is_in_overlay' --- portato/backend/package.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'portato/backend/package.py') diff --git a/portato/backend/package.py b/portato/backend/package.py index 1e17b1f..16148d2 100644 --- a/portato/backend/package.py +++ b/portato/backend/package.py @@ -165,9 +165,8 @@ class Package (_Package): p = self.get_ebuild_path() sp = p.split("/") - if len(sp): - import string - return string.join(sp[:-1],"/") + if sp: + return "/".join(sp[:-1]) def get_dependencies (self): """ @@ -243,7 +242,7 @@ class Package (_Package): raise NotImplementedError - def is_overlay(self): + def is_in_overlay(self): """Returns true if the package is in an overlay. @rtype: boolean""" -- cgit v1.2.3-70-g09d2 From da138a749908cb653de6f1b96c806bab5bd0f7d3 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Thu, 17 Apr 2008 10:45:22 +0200 Subject: Make get_package_settings take an 'installed' argument instead of a tree --- portato/backend/package.py | 6 +++--- portato/backend/portage/package.py | 25 +++++++++++-------------- 2 files changed, 14 insertions(+), 17 deletions(-) (limited to 'portato/backend/package.py') diff --git a/portato/backend/package.py b/portato/backend/package.py index 16148d2..4dc439a 100644 --- a/portato/backend/package.py +++ b/portato/backend/package.py @@ -369,13 +369,13 @@ class Package (_Package): raise NotImplementedError - def get_package_settings(self, var, tree = None): + def get_package_settings(self, var, installed = True): """Returns a package specific setting, such as DESCRIPTION, SRC_URI, IUSE ... @param var: the setting to get @type var: string - @param tree: an object defining whether to take the information from the installed package or from the ebuild - @type tree: unknown + @param installed: take the vartree or the porttree + @type installed: boolean @returns: the value of the setting @rtype: string""" diff --git a/portato/backend/portage/package.py b/portato/backend/portage/package.py index 5f1fa74..37fa230 100644 --- a/portato/backend/portage/package.py +++ b/portato/backend/portage/package.py @@ -163,12 +163,10 @@ class PortagePackage (Package): return reason def get_iuse_flags (self, installed = False, removeForced = True): - if installed or not self.is_in_system(): - tree = self._settings.vartree - else: - tree = self._settings.porttree + if not self.is_in_system(): + installed = True - iuse = flags.filter_defaults(self.get_package_settings("IUSE", tree = tree).split()) + iuse = flags.filter_defaults(self.get_package_settings("IUSE", installed = installed).split()) iuse = set(iuse) @@ -184,11 +182,11 @@ class PortagePackage (Package): depstring = "" try: for d in depvar: - depstring += self.get_package_settings(d, tree = self._settings.porttree)+" " + depstring += self.get_package_settings(d, installed = False)+" " except KeyError: # not found in porttree - use vartree depstring = "" for d in depvar: - depstring += self.get_package_settings(d, tree = self._settings.vartree)+" " + depstring += self.get_package_settings(d, installed = True)+" " deps = portage.dep_check(depstring, None, self._settings.settings, myuse = actual, trees = self._trees) @@ -210,7 +208,7 @@ class PortagePackage (Package): depstring = "" for d in depvar: - depstring += self.get_package_settings(d, tree=self._settings.porttree)+" " + depstring += self.get_package_settings(d, installed = False)+" " # let portage do the main stuff ;) # pay attention to any changes here @@ -280,20 +278,19 @@ class PortagePackage (Package): for line in f: yield line.split()[1].strip() - def get_package_settings(self, var, tree = None): - if not tree: + def get_package_settings(self, var, installed = True): + if installed and self.is_installed(): mytree = self._settings.vartree - if not self.is_installed(): - mytree = self._settings.porttree else: - mytree = tree + mytree = self._settings.porttree + r = mytree.dbapi.aux_get(self._cpv,[var]) return r[0] def get_installed_use_flags(self): if self.is_installed(): - return self.get_package_settings("USE", tree = self._settings.vartree).split() + return self.get_package_settings("USE", installed = True).split() else: return [] def compare_version(self,other): -- cgit v1.2.3-70-g09d2 From adb8acd0b90992a8281494c76d30a529bde45fea Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Wed, 21 May 2008 20:19:41 +0200 Subject: Ported package --- portato/backend/flags.py | 2 +- portato/backend/package.py | 10 ++++++---- portato/backend/portage/package.py | 39 +++++++++++++------------------------- 3 files changed, 20 insertions(+), 31 deletions(-) (limited to 'portato/backend/package.py') 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 -- cgit v1.2.3-70-g09d2