File Use-lsb_release-fallback-code-if-import-distro-fails.patch of Package hplip

From 1f97ae55acde846513c8634966252865d4a134ca Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck@suse.com>
Date: Mon, 2 Jan 2023 15:33:07 +0100
Subject: [PATCH 11/33] Use lsb_release fallback code if "import distro" fails

With python 3.8, the standard python "platform" module doesn't
provide the "dist()" function any more. The "distro" module is
used instead. However, not all distributions ship the "distro"
module by default. Catch the resulting exception, and use the
already existing fallback code to determine the distribution
using lsb_release.
---
 base/utils.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/base/utils.py b/base/utils.py
index d176c0d..e8fe42c 100644
--- a/base/utils.py
+++ b/base/utils.py
@@ -2551,10 +2551,14 @@ def get_distro_name(passwordObj = None):
             name = platform.dist()[0].lower()
             ver = platform.dist()[1]
         except AttributeError:
-            import distro
-            name = distro.linux_distribution()[0].lower()
-            ver = distro.linux_distribution()[1]
-            distro_release_name = distro.distro_release_attr('name')
+            try:
+                import distro
+                name = distro.linux_distribution()[0].lower()
+                ver = distro.linux_distribution()[1]
+                distro_release_name = distro.distro_release_attr('name')
+            except (ImportError, AttributeError):
+                # Use fallback code below
+                pass
         if not name:
             found = False
             log.debug("Not able to detect distro")
-- 
2.52.0

openSUSE Build Service is sponsored by