diff options
author | Guido Günther <agx@sigxcpu.org> | 2017-09-08 19:00:47 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2017-10-31 12:28:54 +0100 |
commit | ca273d90631e630deecfab9ad8fe95627ce989c0 (patch) | |
tree | 86c5dce7eb91552f8549a1a19b66f933f04f0e58 | |
parent | 339801e3fd2f7348b0af01eb0ef0feaf7cdcadb4 (diff) |
dscfile: parse out upstream signatures as well
-rw-r--r-- | gbp/deb/dscfile.py | 10 | ||||
-rw-r--r-- | tests/12_test_deb.py | 13 |
2 files changed, 22 insertions, 1 deletions
diff --git a/gbp/deb/dscfile.py b/gbp/deb/dscfile.py index 115be709..2d065d29 100644 --- a/gbp/deb/dscfile.py +++ b/gbp/deb/dscfile.py @@ -25,7 +25,7 @@ from gbp.deb.policy import DebianPkgPolicy class DscFile(object): - """Keeps all needed data read from a dscfile""" + """Keeps data read from a dscfile""" compressions = r"(%s)" % '|'.join(DebianUpstreamSource.known_compressions()) pkg_re = re.compile(r'Source:\s+(?P<pkg>.+)\s*') version_re = re.compile(r'Version:\s((?P<epoch>\d+)\:)?' @@ -40,6 +40,8 @@ class DscFile(object): deb_tgz_re = re.compile(r'^\s\w+\s\d+\s+(?P<deb_tgz>[^_]+_[^_]+' '\.debian.tar.%s)$' % compressions) format_re = re.compile(r'Format:\s+(?P<format>[0-9.]+)\s*') + sig_re = re.compile(r'^\s\w+\s\d+\s+(?P<sig>[^_]+_[^_]+' + '\.orig(-[a-z0-9-]+)?\.tar\.%s.asc)$' % compressions) def __init__(self, dscfile): self.pkg = "" @@ -51,6 +53,7 @@ class DscFile(object): self.upstream_version = "" self.native = False self.dscfile = os.path.abspath(dscfile) + sigs = [] add_tars = [] f = open(self.dscfile) @@ -87,6 +90,10 @@ class DscFile(object): if m: self.tgz = os.path.join(fromdir, m.group('tar')) continue + m = self.sig_re.match(line) + if m: + sigs.append(os.path.join(fromdir, m.group('sig'))) + continue m = self.diff_re.match(line) if m: self.diff = os.path.join(fromdir, m.group('diff')) @@ -111,6 +118,7 @@ class DscFile(object): if not self.upstream_version: raise GbpError("Cannot parse version number from '%s'" % self.dscfile) self.additional_tarballs = dict(add_tars) + self.sigs = list(set(sigs)) @property def version(self): diff --git a/tests/12_test_deb.py b/tests/12_test_deb.py index ee14fbb5..af9a0853 100644 --- a/tests/12_test_deb.py +++ b/tests/12_test_deb.py @@ -42,18 +42,27 @@ Package-List: python-libvirt deb python optional Checksums-Sha1: 3743dc4f3e58d5912a98f568c3e854d97d81f216 20054618 libvirt_0.9.12.orig.tar.gz + 7dc0f3bfe8a63a0259affe4fe3d3cc5b3180a72b 240 libvirt_0.9.12.orig.tar.gz.asc 3743dc4f3e58d5912a98f568c3e854d97d81f123 20054618 libvirt_0.9.12.orig-foo.tar.gz + 7dc0f3bfe8a63a0259affe4fe3d3cc5b3180a72b 240 libvirt_0.9.12.orig-foo.tar.gz.asc 3743dc4f3e58d5912a98f568c3e854d97d81f123 20054618 libvirt_0.9.12.orig-bar.tar.gz + 7dc0f3bfe8a63a0259affe4fe3d3cc5b3180a72b 240 libvirt_0.9.12.orig-bar.tar.gz.asc a7ffa64c18a5ee448c98b1dc894a0a27e1670357 35935 libvirt_0.9.12-4.debian.tar.gz Checksums-Sha256: 298ffc7f2a6d6e78aae46f11a0980f4bc17fa2928f5de6cd9e8abaf5990336e7 20054618 libvirt_0.9.12.orig.tar.gz + 2496f435c029673dd7cad49cdf27935d261ef1b3b245118a431556b7f40a7967 240 libvirt_0.9.12.orig.tar.gz.asc 298ffc7f2a6d6e78aae46f11a0980f4bc17fa2928f5de6cd9e8abaf599033123 20054618 libvirt_0.9.12.orig-foo.tar.gz + 2496f435c029673dd7cad49cdf27935d261ef1b3b245118a431556b7f40a7967 240 libvirt_0.9.12.orig-foo.tar.gz.asc 298ffc7f2a6d6e78aae46f11a0980f4bc17fa2928f5de6cd9e8abaf599033123 20054618 libvirt_0.9.12.orig-bar.tar.gz + 2496f435c029673dd7cad49cdf27935d261ef1b3b245118a431556b7f40a7967 240 libvirt_0.9.12.orig-bar.tar.gz.asc e75110c493995ba5366e751f20f3842f30674c3918357fa6eb83175d0afbec31 35935 libvirt_0.9.12-4.debian.tar.gz Files: 5e842bc55733ceba60c64767580ff3e4 20054618 libvirt_0.9.12.orig.tar.gz + ddfefbf64ffa1b1d7e0819501d096544 240 libvirt_0.9.12.orig.tar.gz.asc 5e842bc55733ceba60c64767580ff123 20054618 libvirt_0.9.12.orig-foo.tar.gz + ddfefbf64ffa1b1d7e0819501d096544 240 libvirt_0.9.12.orig-foo.tar.gz.asc 5e842bc55733ceba60c64767580ff123 20054618 libvirt_0.9.12.orig-bar.tar.gz + ddfefbf64ffa1b1d7e0819501d096544 240 libvirt_0.9.12.orig-bar.tar.gz.asc f328960d25e7c843f3ac5f9ba5064251 35935 libvirt_0.9.12-4.debian.tar.gz """ @@ -75,6 +84,9 @@ Files: for s in ['foo', 'bar']: self.assertEqual(os.path.basename(dsc.additional_tarballs[s]), 'libvirt_0.9.12.orig-%s.tar.gz' % s) + self.assertEquals(sorted(dsc.sigs), ['/tmp/libvirt_0.9.12.orig-bar.tar.gz.asc', + '/tmp/libvirt_0.9.12.orig-foo.tar.gz.asc', + '/tmp/libvirt_0.9.12.orig.tar.gz.asc']) class Test10DscNonNativeFile(unittest.TestCase): @@ -118,6 +130,7 @@ Files: self.assertEqual(os.path.basename(dsc.deb_tgz), '') self.assertEqual(os.path.basename(dsc.diff), 'latencytop_0.5.diff.gz') self.assertEqual(dsc.additional_tarballs, {}), + self.assertEquals(dsc.sigs, []) @unittest.skipIf(not os.path.exists('/usr/bin/dpkg'), 'Dpkg not found') |