summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorFlorian Weimer <fw@deneb.enyo.de>2011-04-24 14:25:18 +0000
committerFlorian Weimer <fw@deneb.enyo.de>2011-04-24 14:25:18 +0000
commitbd7faa374cd2374b7708346495f5922d1bc4e3b9 (patch)
tree44c948bdd91a9e73c02a4a72d42df1f1bc125967 /lib
parent7fa0aa34bc8530f12e95673d403865f125b860ac (diff)
debian_support.inspect_deb(): remove
bin/list-queue uses the parser in python-debian instead. git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@16577 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'lib')
-rw-r--r--lib/python/debian_support.py68
1 files changed, 20 insertions, 48 deletions
diff --git a/lib/python/debian_support.py b/lib/python/debian_support.py
index 59d4c99a89..16d0fdd4e6 100644
--- a/lib/python/debian_support.py
+++ b/lib/python/debian_support.py
@@ -471,8 +471,28 @@ class BinaryPackage(object):
pkg_source, pkg_source_version))
def loadtuple(self, data):
+ if None in data:
+ raise ValueError("None not permitted: " + repr(data))
self.name, self.version, self.arch, self.source, self.source_version =\
data
+
+ def load822(self, data):
+ "Loads this object from a Deb822-like object."
+
+ pkg = data["Package"]
+ version = data["Version"]
+ if "Source" in data:
+ source = data.get("Source", None)
+ match = self.re_source.match(source)
+ if match is None:
+ raise ValueError("invalid Source field: " + repr(source))
+ src, src_version = match.groups()
+ if src_version is None:
+ src_version = version
+ else:
+ src = pkg
+ src_version = version
+ self.loadtuple((pkg, version, data["Architecture"], src, src_version))
def astuple(self):
return (self.name, self.version, self.arch,
@@ -481,54 +501,6 @@ class BinaryPackage(object):
def __repr__(self):
return "BinaryPackage(" + repr(self.astuple()) + ")"
-def inspect_deb(path):
- "Extracts meta-data from a Debian package file (.deb)."
- devnull = file("/dev/null", "r")
- tempout = tempfile.TemporaryFile()
- temperr = tempfile.TemporaryFile()
- dpkg = subprocess.Popen(("dpkg", "-I", "--", path),
- stdin=devnull,
- stdout=tempout,
- stderr=temperr)
- dpkg.wait()
- temperr.seek(0)
- temperr = temperr.read()
- if temperr:
- raise IOError("unexpected dpkg output for " + repr(path) + ": "
- + repr(temperr))
- if dpkg.returncode <> 0:
- raise IOError("unexpected dpkg status for " + repr(path) + ": "
- + repr(dpkg.returncode))
- tempout.seek(0)
- lines = list(tempout.readlines())
- if not lines:
- raise IOError("empty dpkg output for " + repr(path))
- if lines[0] <> " new debian package, version 2.0.\n":
- raise IOError("unexpected dpkg format for " +repr(path) + ":"
- + repr(lines[0]))
- while lines and not lines[0].startswith(" Package: "):
- del lines[0]
- if not lines:
- raise IOError("no Package: line in dpkg output for " +repr(path))
- stripped = StringIO()
- for line in lines:
- if line.startswith(" "):
- stripped.write(line[1:])
- else:
- break
- stripped.seek(0)
- pkgfile = PackageFile(path, stripped)
- result = None
- for pkg in pkgfile:
- if result is None:
- result = BinaryPackage()
- result.loadentry(pkg)
- else:
- raise IOError("multiple package entries for " + repr(path))
- if result is None:
- raise IOError("no package entries for " + repr(path))
- return result
-
def test():
# Version
assert Version('0') < Version('a')

© 2014-2024 Faster IT GmbH | imprint | privacy policy