diff options
Diffstat (limited to 'debian/patches/platform-lsbrelease.diff')
-rw-r--r-- | debian/patches/platform-lsbrelease.diff | 65 |
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): + |