meson: Support for both packaging and distutils
authorYonggang Luo <luoyonggang@gmail.com>
Mon, 18 Dec 2023 10:16:47 +0000 (18:16 +0800)
committerEric Engestrom <eric@engestrom.ch>
Tue, 2 Jan 2024 16:20:17 +0000 (16:20 +0000)
distutils was deprecated and is now gone on modern systems.
so the default behavior is to use the supported thing, which is packaging.version, and when on an old system, fallback to the old distutils.version.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9943

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26746>
(cherry picked from commit 670a799ebff9a98daafccf49324c2a01311b0c41)

.pick_status.json
meson.build

index 423bf9a..3017416 100644 (file)
         "description": "meson: Support for both packaging and distutils",
         "nominated": false,
         "nomination_type": 3,
-        "resolution": 4,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null,
         "notes": null
index 35cc5f1..2902c10 100644 (file)
@@ -886,9 +886,12 @@ prog_python = import('python').find_installation('python3')
 has_mako = run_command(
   prog_python, '-c',
   '''
-from distutils.version import StrictVersion
+try:
+  from packaging.version import Version
+except:
+  from distutils.version import StrictVersion as Version
 import mako
-assert StrictVersion(mako.__version__) >= StrictVersion("0.8.0")
+assert Version(mako.__version__) >= Version("0.8.0")
   ''', check: false)
 if has_mako.returncode() != 0
   error('Python (3.x) mako module >= 0.8.0 required to build mesa.')