From 834a5a54eb8aaf7231c7cb7a9bd12f3655f530db Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 1 Apr 2013 22:49:30 +0100 Subject: Initial --- check-code.liw.fi-versions | 70 +++++++++++++++++++++++++++ output | 115 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+) create mode 100755 check-code.liw.fi-versions create mode 100644 output 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: -- cgit v1.2.1