From e0c70e1133b12341a9f14f68e00a44c1a7ea5a18 Mon Sep 17 00:00:00 2001 From: necoro <> Date: Wed, 24 Jan 2007 23:44:31 +0000 Subject: Small enhancements --- portato/backend/package.py | 8 ++++++-- portato/backend/portage_helper.py | 12 +++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'portato/backend') diff --git a/portato/backend/package.py b/portato/backend/package.py index 15dd59a..436b5e1 100644 --- a/portato/backend/package.py +++ b/portato/backend/package.py @@ -260,7 +260,7 @@ class Package: return retlist - def get_dep_packages (self): + def get_dep_packages (self, depvar = ["RDEPEND", "PDEPEND", "DEPEND"]): """Returns a cpv-list of packages on which this package depends and which have not been installed yet. This does not check the dependencies in a recursive manner. @returns: list of cpvs on which the package depend @@ -282,9 +282,13 @@ class Package: elif u not in actual: actual.append(u) + depstring = "" + for d in depvar: + depstring += self.get_env_var(d)+" " + # let portage do the main stuff ;) # pay attention to any changes here - deps = portage.dep_check (self.get_env_var("RDEPEND")+" "+self.get_env_var("DEPEND")+" "+self.get_env_var("PDEPEND"), portage_settings.vartree.dbapi, self._settings, myuse = actual, trees = self._trees) + deps = portage.dep_check (depstring, portage_settings.vartree.dbapi, self._settings, myuse = actual, trees = self._trees) if not deps: # FIXME: what is the difference to [1, []] ? return [] diff --git a/portato/backend/portage_helper.py b/portato/backend/portage_helper.py index 6cfe25a..a215b51 100644 --- a/portato/backend/portage_helper.py +++ b/portato/backend/portage_helper.py @@ -352,7 +352,7 @@ def update_world (newuse = False, deep = False): checked = [] updating = [] raw_checked = [] - def check (p, warn_no_installed = True): + def check (p, add_not_installed = True): """Checks whether a package is updated or not.""" if p.get_cp() in checked: return else: checked.append(p.get_cp()) @@ -367,16 +367,18 @@ def update_world (newuse = False, deep = False): else: oldList = sort_package_list(find_installed_packages(p.get_cp())) if not oldList: - if warn_no_installed: - debug("Bug? Not found installed one:",p.get_cp()) - return + if add_not_installed: + debug("Not found installed",p.get_cpv(),"==> adding") + oldList = [p] + else: + return old = oldList[-1] updating.append((p, old)) appended = True p = old - if newuse and p.is_in_system(): # there is no use to check newuse for a package which is not existing in portage anymore :) + if newuse and p.is_installed() and p.is_in_system(): # there is no use to check newuse for a package which is not existing in portage anymore :) 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 -- cgit v1.2.3-70-g09d2