From 540e2bc637ac99e60bc236a62ff8e885a705b562 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 1 Nov 2012 02:24:57 +0100 Subject: Packages: get version number from repository --- src/lib/Server/Plugins/Packages/Apt.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/Server/Plugins/Packages/Apt.py b/src/lib/Server/Plugins/Packages/Apt.py index f76bf7fa1..d999e21c8 100644 --- a/src/lib/Server/Plugins/Packages/Apt.py +++ b/src/lib/Server/Plugins/Packages/Apt.py @@ -16,6 +16,7 @@ class AptSource(Source): def __init__(self, basepath, xsource, config): Source.__init__(self, basepath, xsource, config) self.pkgnames = set() + self.versions = dict() self.url_map = [{'rawurl': self.rawurl, 'url': self.url, 'version': self.version, @@ -23,13 +24,14 @@ class AptSource(Source): def save_state(self): cache = file(self.cachefile, 'wb') - cPickle.dump((self.pkgnames, self.deps, self.provides), + cPickle.dump((self.pkgnames, self.deps, self.provides, + self.versions), cache, 2) cache.close() def load_state(self): data = file(self.cachefile) - self.pkgnames, self.deps, self.provides = cPickle.load(data) + self.pkgnames, self.deps, self.provides, self.versions = cPickle.load(data) def filter_unknown(self, unknown): filtered = set([u for u in unknown if u.startswith('choice')]) @@ -50,6 +52,7 @@ class AptSource(Source): def read_files(self): bdeps = dict() bprov = dict() + self.versions = dict() if self.recommended: depfnames = ['Depends', 'Pre-Depends', 'Recommends'] else: @@ -66,6 +69,7 @@ class AptSource(Source): if barch not in bdeps: bdeps[barch] = dict() bprov[barch] = dict() + self.versions[barch] = dict() try: reader = gzip.GzipFile(fname) except: @@ -100,6 +104,8 @@ class AptSource(Source): if dname not in bprov[barch]: bprov[barch][dname] = set() bprov[barch][dname].add(pkgname) + elif words[0] == 'Version': + self.versions[barch][pkgname] = words[1].rstrip().strip() self.deps['global'] = dict() self.provides['global'] = dict() -- cgit v1.2.3-1-g7c22