[Secure-testing-commits] r16581 - bin
Florian Weimer
fw at alioth.debian.org
Sun Apr 24 15:35:28 UTC 2011
Author: fw
Date: 2011-04-24 15:35:27 +0000 (Sun, 24 Apr 2011)
New Revision: 16581
Modified:
bin/list-queue
Log:
bin/list-queue: remove dependency on debian_support
Modified: bin/list-queue
===================================================================
--- bin/list-queue 2011-04-24 15:27:54 UTC (rev 16580)
+++ bin/list-queue 2011-04-24 15:35:27 UTC (rev 16581)
@@ -33,20 +33,14 @@
# End Configuration
######################################################################
-import sys
+import json
import os.path
-def setup_path():
- dirname = os.path.dirname
- base = dirname(dirname(os.path.realpath(sys.argv[0])))
- sys.path.insert(0, os.path.join(base, "lib", "python"))
-setup_path()
-
+import re
import sqlite3
-import json
+import sys
+from debian.deb822 import Changes
from debian.debfile import DebFile
-from debian.deb822 import Changes
-import debian_support
def createdb():
cache = os.path.expanduser("~/.cache")
@@ -100,7 +94,7 @@
result = {}
for row in db.execute("SELECT * FROM package"):
name, size, mtime = row[0:3]
- pkg = debian_support.BinaryPackage(row[3:])
+ pkg = tuple(row[3:])
result[name] = (size, mtime, pkg)
return result
@@ -131,6 +125,29 @@
for (key, value) in data.items():
data[key] = value[2:]
+# See debian_support.BinaryPackage.loadtuple().
+def deb822totuple(data, re_source=re.compile(
+ r'^([a-zA-Z0-9.+-]+)(?:\s+\(([a-zA-Z0-9.+:~-]+)\))?$')):
+ """Turns an Deb822-like object into a 5-tuple.
+
+ Returns (PACKAGE-NAME, VERSION, ARCHITECTURE, SOURCE,
+ SOURCE-VERSION)."""
+
+ pkg = data["Package"]
+ version = data["Version"]
+ if "Source" in data:
+ source = data.get("Source", None)
+ match = 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
+ return (pkg, version, data["Architecture"], src, src_version)
+
def updatepackages(db, ondisk):
"Updates the package table from the file system."
indb = readpackages(db)
@@ -141,10 +158,9 @@
def do_update():
for (path, stat) in need_update:
deb = DebFile(path)
- pkg = debian_support.BinaryPackage()
- pkg.load822(deb.debcontrol())
+ pkg = deb822totuple(deb.debcontrol())
indb[path] = stat + (pkg,)
- yield (path,) + stat + pkg.astuple()
+ yield (path,) + stat + pkg
db.executemany("INSERT INTO package VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
do_update())
@@ -194,7 +210,7 @@
Returns a list of tuples (PACKAGE-NAME, VERSION, ARCHITECTURE,
SOURCE-NAME, SOURCE-VERSION, TUPLE-OF-DISTRIBUTIONS).
"""
- return [pkg.astuple() + (sorted(dists.get(path, ())),)
+ return [pkg + (sorted(dists.get(path, ())),)
for (path, (pkg,)) in debs.items()]
def main():
More information about the Secure-testing-commits
mailing list