diff options
author | Helmut Grohne <helmut@subdivi.de> | 2013-09-07 21:24:15 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2013-09-07 21:24:15 +0200 |
commit | ba9ae116e0bbb25e2df327ba48c82472ccfa2690 (patch) | |
tree | 74eb9d6780fe8fe0349d818e9a3fa5ce40726ca7 | |
parent | 7f3d8c5098d23bb43b86e060700170cc41cd22aa (diff) | |
download | debian-dedup-ba9ae116e0bbb25e2df327ba48c82472ccfa2690.tar.gz |
record multi-arch header in package table
-rw-r--r-- | dedup/debpkg.py | 9 | ||||
-rwxr-xr-x | readyaml.py | 9 | ||||
-rw-r--r-- | schema.sql | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/dedup/debpkg.py b/dedup/debpkg.py index d8cc22f..6d857ba 100644 --- a/dedup/debpkg.py +++ b/dedup/debpkg.py @@ -20,8 +20,13 @@ def process_control(control_contents): depends = set(dep[0]["name"].encode("ascii") for dep in control.relations.get("depends", ()) if len(dep) == 1) - return dict(package=package, source=source, version=version, - architecture=architecture, depends=depends) + ret = dict(package=package, source=source, version=version, + architecture=architecture, depends=depends) + try: + ret["multiarch"] = control["multi-arch"].encode("ascii") + except KeyError: + pass + return ret class MultiHash(object): def __init__(self, *hashes): diff --git a/readyaml.py b/readyaml.py index cd9e5db..6940f94 100755 --- a/readyaml.py +++ b/readyaml.py @@ -31,12 +31,13 @@ def readyaml(db, stream): if pid is not None: cur.execute("DELETE FROM content WHERE pid = ?;", (pid,)) cur.execute("DELETE FROM dependency WHERE pid = ?;", (pid,)) - cur.execute("UPDATE package SET version = ?, source = ? WHERE id = ?;", - (metadata["version"], metadata["source"], pid)) + cur.execute("UPDATE package SET version = ?, source = ?, multiarch = ? WHERE id = ?;", + (metadata["version"], metadata["source"], + metadata.get("multiarch"), pid)) else: - cur.execute("INSERT INTO package (name, version, architecture, source) VALUES (?, ?, ?, ?);", + cur.execute("INSERT INTO package (name, version, architecture, source, multiarch) VALUES (?, ?, ?, ?, ?);", (package, metadata["version"], metadata["architecture"], - metadata["source"])) + metadata["source"], metadata.get("multiarch"))) pid = cur.lastrowid cur.executemany("INSERT INTO dependency (pid, required) VALUES (?, ?);", ((pid, dep) for dep in metadata["depends"])) @@ -1,4 +1,4 @@ -CREATE TABLE package (id INTEGER PRIMARY KEY, name TEXT, version TEXT, architecture TEXT, source TEXT, UNIQUE (name, architecture)); +CREATE TABLE package (id INTEGER PRIMARY KEY, name TEXT, version TEXT, architecture TEXT, source TEXT, multiarch TEXT, UNIQUE (name, architecture)); CREATE TABLE content (id INTEGER PRIMARY KEY, pid INTEGER, filename TEXT, size INTEGER, FOREIGN KEY (pid) REFERENCES package(id) ON DELETE CASCADE); CREATE TABLE function (id INTEGER PRIMARY KEY, name TEXT UNIQUE NOT NULL, eqclass INTEGER); INSERT INTO function (name, eqclass) VALUES ("sha512", 1), ("gzip_sha512", 1), ("png_sha512", 2), ("gif_sha512", 2); |