From 8b39001b1c8ba32d7f962b1e06c0a46ca4da3de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Wed, 8 Mar 2006 16:44:50 +0000 Subject: [PATCH] * push around a little, it works though buggy ;) --- pisi/atomicoperations.py | 2 +- pisi/build.py | 3 ++- pisi/cli/commands.py | 7 +++---- pisi/operations.py | 21 +++++++++++++-------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index 1e597dda..a10b1cc5 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -438,7 +438,7 @@ def remove_single(package_name): def build(package, authinfo=None): # wrapper for build op import pisi.build - pisi.build.build(package, authinfo) + return pisi.build.build(package, authinfo) def __is_virtual_upgrade(metadata): diff --git a/pisi/build.py b/pisi/build.py index 23b3f62d..b39b9c03 100644 --- a/pisi/build.py +++ b/pisi/build.py @@ -89,7 +89,8 @@ class Builder: def from_name(name, authinfo = None): # download package and return an installer object # find package in repository - src, reponame = ctx.sourcedb.get_source(name) + sf, reponame = ctx.sourcedb.get_spec(name) + src = sf.source if src: src_uri = URI(src.sourceURI) diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index b914e1ca..71610dc4 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -741,7 +741,6 @@ If package specs are given, they should be the names of package dirs under /var/ name = ("rebuild-db", "rdb") def run(self): - if self.args: self.init(database=True) for package_fn in self.args: @@ -1001,16 +1000,16 @@ Gives a brief list of sources published in the repositories. list = ctx.sourcedb.list() list.sort() for p in list: - source, repo = ctx.sourcedb.get_source(p) + sf, repo = ctx.sourcedb.get_spec(p) if self.options.long: ctx.ui.info('[Repository: ' + repo + ']') - ctx.ui.info(unicode(source)) + ctx.ui.info(unicode(sf.source)) else: lenp = len(p) #if p in installed_list: # p = colorize(p, 'cyan') p = p + ' ' * max(0, 15 - lenp) - ctx.ui.info('%s - %s ' % (source.name, unicode(source.summary))) + ctx.ui.info('%s - %s' % (sf.source.name, unicode(sf.source.summary))) self.finalize() class ListUpgrades(Command): diff --git a/pisi/operations.py b/pisi/operations.py index 14efdfbf..5f680f83 100644 --- a/pisi/operations.py +++ b/pisi/operations.py @@ -620,9 +620,11 @@ def plan_emerge(A): def get_spec(name): if ctx.sourcedb.has_spec(name): - return ctx.sourcedb.get_spec(name)[1] + return ctx.sourcedb.get_spec(name)[0] else: raise Error(_('Cannot find source package: %s') % name) + def get_src(name): + return get_spec(name).source def add_src(src): if not str(src.name) in G_f.vertices(): G_f.add_vertex(str(src.name), (src.version, src.release)) @@ -638,24 +640,27 @@ def plan_emerge(A): Bp = set() for x in B: sf = get_spec(x) - add_src(sf.source) + src = sf.source + add_src(src) # add dependencies + for builddep in src.buildDependencies: srcdep = pkgtosrc(builddep.package) - add_src(srcdep) - if not dep.package in G_f.vertices(): + add_src(get_src(srcdep)) + if not srcdep in G_f.vertices(): Bp.add(srcdep) G_f.add_edge(src.name, srcdep) - for pkg in x.packages: + + for pkg in sf.packages: for rtdep in pkg.packageDependencies: if not dependency.installed_satisfies_dep(rtdep): srcdep = pkgtosrc(rtdep.package) - add_src(srcdep) - if not dep.package in G_f.vertices(): + add_src(get_src(srcdep)) + if not srcdep in G_f.vertices(): Bp.add(srcdep) if not src.name == srcdep: # firefox - firefox-devel thing - G_f.add_edge(src.name, srcdep ) + G_f.add_edge(src.name, srcdep) B = Bp if ctx.config.get_option('debug'):