aboutsummaryrefslogtreecommitdiff
path: root/examples/python2.7/patches/platform-lsbrelease.diff
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python2.7/patches/platform-lsbrelease.diff')
-rw-r--r--examples/python2.7/patches/platform-lsbrelease.diff41
1 files changed, 41 insertions, 0 deletions
diff --git a/examples/python2.7/patches/platform-lsbrelease.diff b/examples/python2.7/patches/platform-lsbrelease.diff
new file mode 100644
index 0000000..cd6f7d1
--- /dev/null
+++ b/examples/python2.7/patches/platform-lsbrelease.diff
@@ -0,0 +1,41 @@
+# DP: Use /etc/lsb-release to identify the platform.
+
+--- a/Lib/platform.py
++++ b/Lib/platform.py
+@@ -288,6 +288,10 @@
+ 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,
+@@ -312,6 +316,25 @@
+ 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:
++ etclsbrel = open("/etc/lsb-release", "rU")
++ 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('/etc')
+ except os.error: