[PATCH 2/3] sb/linux.py: Workaround for Python >= 3.8

Anders Montonen Anders.Montonen at iki.fi
Mon Apr 27 19:15:27 UTC 2020


The platform.dist() interface has been deprecated since Python 3.5, and
has been removed in Python 3.8.

Fixes:
Traceback (most recent call last):
  File "/home/anders/work/rtems/rsb/source-builder/sb/options.py", line 682, in load
    overrides = linux.load()
  File "/home/anders/work/rtems/rsb/source-builder/sb/linux.py", line 60, in load
    distro = platform.dist()[0]
AttributeError: module 'platform' has no attribute 'dist'

Signed-off-by: Anders Montonen <Anders.Montonen at iki.fi>
---
 source-builder/sb/linux.py | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/source-builder/sb/linux.py b/source-builder/sb/linux.py
index c3059a9..791bbd6 100644
--- a/source-builder/sb/linux.py
+++ b/source-builder/sb/linux.py
@@ -55,13 +55,17 @@ def load():
         '__tar':            ('exe',     'required', '/bin/tar')
         }
 
-    # Works for LSB distros
-    try:
-        distro = platform.dist()[0]
-        distro_ver = float(platform.dist()[1])
-    except ValueError:
-        # Non LSB distro found, use failover"
-        pass
+    # platform.dist() was removed in Python 3.8
+    if hasattr(platform, 'dist'):
+        # Works for LSB distros
+        try:
+            distro = platform.dist()[0]
+            distro_ver = float(platform.dist()[1])
+        except ValueError:
+         # Non LSB distro found, use failover"
+         pass
+    else:
+         distro = ''
 
     # Non LSB - fail over to issue
     if distro == '':
-- 
2.25.1



More information about the devel mailing list