aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2017-09-08 19:00:47 +0200
committerGuido Günther <agx@sigxcpu.org>2017-10-31 12:28:54 +0100
commitca273d90631e630deecfab9ad8fe95627ce989c0 (patch)
tree86c5dce7eb91552f8549a1a19b66f933f04f0e58
parent339801e3fd2f7348b0af01eb0ef0feaf7cdcadb4 (diff)
dscfile: parse out upstream signatures as well
-rw-r--r--gbp/deb/dscfile.py10
-rw-r--r--tests/12_test_deb.py13
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')