summaryrefslogtreecommitdiff
path: root/debian/patches/platform-lsbrelease.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/platform-lsbrelease.diff')
-rw-r--r--debian/patches/platform-lsbrelease.diff65
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/patches/platform-lsbrelease.diff b/debian/patches/platform-lsbrelease.diff
new file mode 100644
index 0000000..271139f
--- /dev/null
+++ b/debian/patches/platform-lsbrelease.diff
@@ -0,0 +1,65 @@
+# DP: Use /etc/lsb-release to identify the platform.
+
+Index: b/Lib/platform.py
+===================================================================
+--- a/Lib/platform.py
++++ b/Lib/platform.py
+@@ -267,7 +267,7 @@ _release_version = re.compile(r'([^0-9]+
+ _supported_dists = (
+ 'SuSE', 'debian', 'fedora', 'redhat', 'centos',
+ 'mandrake', 'mandriva', 'rocks', 'slackware', 'yellowdog', 'gentoo',
+- 'UnitedLinux', 'turbolinux', 'arch', 'mageia')
++ 'UnitedLinux', 'turbolinux', 'arch', 'mageia', 'Ubuntu')
+
+ def _parse_release_file(firstline):
+
+@@ -296,6 +296,10 @@ def _parse_release_file(firstline):
+ id = l[1]
+ return '', version, id
+
++_distributor_id_file_re = re.compile("(?:DISTRIB_ID\s*=)\s*(.*)", re.I)
++_release_file_re = re.compile("(?:DISTRIB_RELEASE\s*=)\s*(.*)", re.I)
++_codename_file_re = re.compile("(?:DISTRIB_CODENAME\s*=)\s*(.*)", re.I)
++
+ def linux_distribution(distname='', version='', id='',
+
+ supported_dists=_supported_dists,
+@@ -328,6 +332,25 @@ def _linux_distribution(distname, versio
+ args given as parameters.
+
+ """
++ # check for the Debian/Ubuntu /etc/lsb-release file first, needed so
++ # that the distribution doesn't get identified as Debian.
++ try:
++ with open("/etc/lsb-release", "r") as etclsbrel:
++ for line in etclsbrel:
++ m = _distributor_id_file_re.search(line)
++ if m:
++ _u_distname = m.group(1).strip()
++ m = _release_file_re.search(line)
++ if m:
++ _u_version = m.group(1).strip()
++ m = _codename_file_re.search(line)
++ if m:
++ _u_id = m.group(1).strip()
++ if _u_distname and _u_version:
++ return (_u_distname, _u_version, _u_id)
++ except (EnvironmentError, UnboundLocalError):
++ pass
++
+ try:
+ etc = os.listdir(_UNIXCONFDIR)
+ except OSError:
+Index: b/Lib/test/test_platform.py
+===================================================================
+--- a/Lib/test/test_platform.py
++++ b/Lib/test/test_platform.py
+@@ -349,6 +349,8 @@ class PlatformTest(unittest.TestCase):
+ self.assertEqual(version, '19')
+ self.assertEqual(distid, 'Schr\xf6dinger\u2019s Cat')
+
++ # we know we are Debian/Ubuntu
++ test_linux_distribution_encoding.skip = True
+
+ class DeprecationTest(unittest.TestCase):
+