aboutsummaryrefslogtreecommitdiffstats
path: root/debian/lib/python/debian_linux/debian.py
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2018-07-01 19:04:12 +0100
committerBen Hutchings <ben@decadent.org.uk>2018-07-01 19:37:25 +0100
commit6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d (patch)
tree6638f0561cd162d87c7678d99c2cf42ce5dd0bd4 /debian/lib/python/debian_linux/debian.py
parent6a3bb899a3b7b318a9fc4387dab8956866dd53d4 (diff)
downloadkernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.tar.gz
kernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.tar.bz2
kernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.zip
debian/lib/python/debian_linux/debian.py: Let superclass split version string
The Version class already parses the version into upstream and Debian revision parts. Match the results of that against two separate regexps rather than matching the whole version string and potentially parsing it inconsistently. As a result we no longer have to explicitly exclude '-' in the revision_other group.
Diffstat (limited to 'debian/lib/python/debian_linux/debian.py')
-rw-r--r--debian/lib/python/debian_linux/debian.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/debian/lib/python/debian_linux/debian.py b/debian/lib/python/debian_linux/debian.py
index 692e81abb728..afc956ef002a 100644
--- a/debian/lib/python/debian_linux/debian.py
+++ b/debian/lib/python/debian_linux/debian.py
@@ -214,8 +214,7 @@ class _VersionTest(unittest.TestCase):
class VersionLinux(Version):
- _version_linux_rules = r"""
-^
+ _upstream_re = re.compile(r"""
(?P<version>
\d+\.\d+
)
@@ -235,7 +234,9 @@ class VersionLinux(Version):
\d+
)
)?
--
+$
+ """, re.X)
+ _revision_re = re.compile(r"""
\d+
(\.\d+)?
(?:
@@ -251,20 +252,20 @@ class VersionLinux(Version):
)?
|
(?P<revision_other>
- [^-]+?
+ .+?
)
)
(?:\+b\d+)?
$
-"""
- _version_linux_re = re.compile(_version_linux_rules, re.X)
+ """, re.X)
def __init__(self, version):
super(VersionLinux, self).__init__(version)
- match = self._version_linux_re.match(version)
- if match is None:
+ up_match = self._upstream_re.match(self.upstream)
+ rev_match = self._revision_re.match(self.revision)
+ if up_match is None or rev_match is None:
raise RuntimeError(u"Invalid debian linux version")
- d = match.groupdict()
+ d = up_match.groupdict()
self.linux_modifier = d['modifier']
self.linux_version = d['version']
if d['modifier'] is not None:
@@ -274,10 +275,11 @@ $
self.linux_upstream = d['version']
self.linux_upstream_full = self.linux_upstream + d['update']
self.linux_dfsg = d['dfsg']
- self.linux_revision_experimental = match.group('revision_experimental') and True
- self.linux_revision_security = match.group('revision_security') and True
- self.linux_revision_backports = match.group('revision_backports') and True
- self.linux_revision_other = match.group('revision_other') and True
+ d = rev_match.groupdict()
+ self.linux_revision_experimental = d['revision_experimental'] and True
+ self.linux_revision_security = d['revision_security'] and True
+ self.linux_revision_backports = d['revision_backports'] and True
+ self.linux_revision_other = d['revision_other'] and True
class _VersionLinuxTest(unittest.TestCase):