summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2013-04-01 22:49:30 +0100
committerLars Wirzenius <liw@liw.fi>2013-04-01 22:49:30 +0100
commit834a5a54eb8aaf7231c7cb7a9bd12f3655f530db (patch)
treea9145d59260bc13d7c26e26b9c17e57ce5bfae20
downloadcheck-code.liw.fi-versions-834a5a54eb8aaf7231c7cb7a9bd12f3655f530db.tar.gz
Initial
-rwxr-xr-xcheck-code.liw.fi-versions70
-rw-r--r--output115
2 files changed, 185 insertions, 0 deletions
diff --git a/check-code.liw.fi-versions b/check-code.liw.fi-versions
new file mode 100755
index 0000000..8394a2d
--- /dev/null
+++ b/check-code.liw.fi-versions
@@ -0,0 +1,70 @@
+#!/usr/bin/python
+#
+# All is OK if:
+#
+# - every package is in each architecture
+# - every package is in each codename
+# - if the version in unstable is x.y-z, then the version in codename foo
+# is x.y-z.foo
+
+
+import sys
+
+
+
+def read_package_data(f):
+ data = []
+ for line in f:
+ pkg, version, s = line.split()
+ codename, main, arch = s.split('|')
+ if arch.endswith(':'):
+ arch = arch[:-1]
+ data.append((pkg, codename, arch, version))
+ return data
+
+
+def packages(data):
+ return set(p for p, c, a, v in data)
+
+
+def check_package(data, package):
+ # Is the package in every architecture?
+ all_arches = set(a for p, c, a, v in data)
+ arches_with_p = set(a for p, c, a, v in data if p == package)
+ missing_from_arches = all_arches.difference(arches_with_p)
+ for arch in missing_from_arches:
+ print 'ERROR: package %s not in arch %s' % (package, arch)
+
+ # Is the package in every codename?
+ all_codenames = set(c for p, c, a, v in data)
+ codenames_with_p = set(c for p, c, a, v in data if p == package)
+ missing_from_codenames = all_codenames.difference(codenames_with_p)
+ for codename in missing_from_codenames:
+ print 'ERROR: package %s not in codename %s' % (package, codename)
+
+ # Does the package have the same version (modulo ".$codename" suffix)
+ # in every codename?
+ unstable_versions = set(
+ v for p, c, a, v in data if p == package and c == 'unstable')
+ if len(unstable_versions) == 0:
+ print 'ERROR: package %s not in unstable' % package
+ elif len(unstable_versions) > 1:
+ print 'ERROR: package %s has more than one version in unstable' % \
+ package
+ else:
+ uv = unstable_versions.pop()
+ for p, c, a, v in data:
+ if p == package and c != 'unstable':
+ expected = '%s.%s' % (uv, c)
+ if v != expected:
+ print 'ERROR: package %s has version %s, expected %s' % \
+ (package, v, expected)
+
+def main():
+ data = read_package_data(sys.stdin)
+
+ for p in sorted(list(packages(data))):
+ check_package(data, p)
+
+
+main()
diff --git a/output b/output
new file mode 100644
index 0000000..b3b5fb2
--- /dev/null
+++ b/output
@@ -0,0 +1,115 @@
+cachedir 1.0.squeeze squeeze|main|amd64:
+cachedir 1.0.squeeze squeeze|main|i386:
+cachedir 1.0.squeeze squeeze|main|source:
+cachedir 1.0 unstable|main|amd64:
+cachedir 1.0 unstable|main|i386:
+cachedir 1.0 unstable|main|source:
+cmdtest 0.3-1~wheezy1 wheezy|main|amd64:
+cmdtest 0.3-1~wheezy1 wheezy|main|i386:
+cmdtest 0.3-1~wheezy1 wheezy|main|source:
+cmdtest 0.6-1.squeeze squeeze|main|amd64:
+cmdtest 0.6-1.squeeze squeeze|main|i386:
+cmdtest 0.6-1.squeeze squeeze|main|source:
+cmdtest 0.6-1 unstable|main|amd64:
+cmdtest 0.6-1 unstable|main|i386:
+cmdtest 0.6-1 unstable|main|source:
+dupfiles 5.6-1.squeeze squeeze|main|amd64:
+dupfiles 5.6-1.squeeze squeeze|main|i386:
+dupfiles 5.6-1.squeeze squeeze|main|source:
+env-liw 1.12 squeeze|main|amd64:
+env-liw 1.12 squeeze|main|i386:
+env-liw 1.12 squeeze|main|source:
+env-liw-cli 1.12 squeeze|main|amd64:
+env-liw-cli 1.12 squeeze|main|i386:
+env-liw-gnome 1.12 squeeze|main|amd64:
+env-liw-gnome 1.12 squeeze|main|i386:
+env-liw-multimedia 1.12 squeeze|main|amd64:
+env-liw-multimedia 1.12 squeeze|main|i386:
+env-liw-postfix 1.12 squeeze|main|amd64:
+env-liw-postfix 1.12 squeeze|main|i386:
+env-liw-sysadmin 1.12 squeeze|main|amd64:
+env-liw-sysadmin 1.12 squeeze|main|i386:
+extrautils 1.20120523~wheezy1 wheezy|main|amd64:
+extrautils 1.20120523~wheezy1 wheezy|main|i386:
+extrautils 1.20120523~wheezy1 wheezy|main|source:
+extrautils 1.20121007-1.squeeze squeeze|main|amd64:
+extrautils 1.20121007-1.squeeze squeeze|main|i386:
+extrautils 1.20121007-1.squeeze squeeze|main|source:
+extrautils 1.20121007-1 unstable|main|amd64:
+extrautils 1.20121007-1 unstable|main|i386:
+extrautils 1.20121007-1 unstable|main|source:
+gedit-makefiletab 0.9-1~ squeeze|main|amd64:
+gedit-makefiletab 0.9-1~ squeeze|main|i386:
+gedit-makefiletab 0.9-1~ squeeze|main|source:
+genbackupdata 1.7-1.squeeze squeeze|main|amd64:
+genbackupdata 1.7-1.squeeze squeeze|main|i386:
+genbackupdata 1.7-1.squeeze squeeze|main|source:
+genbackupdata 1.7-1 unstable|main|amd64:
+genbackupdata 1.7-1 unstable|main|i386:
+genbackupdata 1.7-1 unstable|main|source:
+liw-automation 8.23~wheezy1 wheezy|main|amd64:
+liw-automation 8.23~wheezy1 wheezy|main|i386:
+liw-automation 8.23~wheezy1 wheezy|main|source:
+liw-automation 8.25 squeeze|main|amd64:
+liw-automation 8.25 squeeze|main|i386:
+liw-automation 8.25 squeeze|main|source:
+obnam 1.4-1.squeeze squeeze|main|amd64:
+obnam 1.4-1.squeeze squeeze|main|i386:
+obnam 1.4-1.squeeze squeeze|main|source:
+obnam 1.4-1 unstable|main|amd64:
+obnam 1.4-1 unstable|main|i386:
+obnam 1.4-1 unstable|main|source:
+python-btree 0.18 squeeze|main|amd64:
+python-btree 0.18 squeeze|main|i386:
+python-btree 0.18 squeeze|main|source:
+python-cliapp 1.20130313-1.squeeze squeeze|main|amd64:
+python-cliapp 1.20130313-1.squeeze squeeze|main|i386:
+python-cliapp 1.20130313-1.squeeze squeeze|main|source:
+python-cliapp 1.20130313-1 unstable|main|amd64:
+python-cliapp 1.20130313-1 unstable|main|i386:
+python-cliapp 1.20130313-1 unstable|main|source:
+python-coverage-test-runner 1.9-1.squeeze squeeze|main|amd64:
+python-coverage-test-runner 1.9-1.squeeze squeeze|main|i386:
+python-coverage-test-runner 1.9-1.squeeze squeeze|main|source:
+python-coverage-test-runner 1.9-1 unstable|main|amd64:
+python-coverage-test-runner 1.9-1 unstable|main|i386:
+python-coverage-test-runner 1.9-1 unstable|main|source:
+python-larch 0.28-1~wheezy1 wheezy|main|amd64:
+python-larch 0.28-1~wheezy1 wheezy|main|i386:
+python-larch 0.28-1~wheezy1 wheezy|main|source:
+python-larch 1.20130316-1.squeeze squeeze|main|amd64:
+python-larch 1.20130316-1.squeeze squeeze|main|i386:
+python-larch 1.20130316-1.squeeze squeeze|main|source:
+python-larch 1.20130316-1 unstable|main|amd64:
+python-larch 1.20130316-1 unstable|main|i386:
+python-larch 1.20130316-1 unstable|main|source:
+python-lru 0.4 squeeze|main|amd64:
+python-lru 0.4 squeeze|main|i386:
+python-lru 0.4 squeeze|main|source:
+python-tracing 0.7-1.squeeze squeeze|main|amd64:
+python-tracing 0.7-1.squeeze squeeze|main|i386:
+python-tracing 0.7-1.squeeze squeeze|main|source:
+python-tracing 0.7-1 unstable|main|amd64:
+python-tracing 0.7-1 unstable|main|i386:
+python-tracing 0.7-1 unstable|main|source:
+python-ttystatus 0.22-1.squeeze squeeze|main|amd64:
+python-ttystatus 0.22-1.squeeze squeeze|main|i386:
+python-ttystatus 0.22-1.squeeze squeeze|main|source:
+python-ttystatus 0.22-1 unstable|main|amd64:
+python-ttystatus 0.22-1 unstable|main|i386:
+python-ttystatus 0.22-1 unstable|main|source:
+seivot 1.18-1.squeeze squeeze|main|amd64:
+seivot 1.18-1.squeeze squeeze|main|i386:
+seivot 1.18-1.squeeze squeeze|main|source:
+seivot 1.18-1 unstable|main|amd64:
+seivot 1.18-1 unstable|main|i386:
+seivot 1.18-1 unstable|main|source:
+summain 0.18-1.squeeze squeeze|main|amd64:
+summain 0.18-1.squeeze squeeze|main|i386:
+summain 0.18-1.squeeze squeeze|main|source:
+summain 0.18-1 unstable|main|amd64:
+summain 0.18-1 unstable|main|i386:
+summain 0.18-1 unstable|main|source:
+xchat-plugins-liw 1.2 squeeze|main|amd64:
+xchat-plugins-liw 1.2 squeeze|main|i386:
+xchat-plugins-liw 1.2 squeeze|main|source: