]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-102362: Fix macOS version number in result of sysconfig.get_platform()...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 19 Dec 2023 18:51:17 +0000 (19:51 +0100)
committerGitHub <noreply@github.com>
Tue, 19 Dec 2023 18:51:17 +0000 (19:51 +0100)
gh-102362: Fix macOS version number in result of sysconfig.get_platform() (GH-112942)

Change _osx_support.get_platform_osx() to make sure that the
version number in the result includes at least a major and
minor version (e.g. 14.2) even if MACOSX_DEPLOYMENT_TARGET is
set to just a major version (e.g. 14).

This matches the versions expected by pip when selecting
appropriate wheels for installation.
(cherry picked from commit 893c9ccf48eacb02fa6ae93632f2d0cb6778dbb6)

Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
Lib/_osx_support.py
Misc/NEWS.d/next/macOS/2023-12-10-20-30-06.gh-issue-102362.y8svbF.rst [new file with mode: 0644]

index aa66c8b9f4189f8b688f26469def701b821e049c..0cb064fcd791be0104242f9f2070b38b53e32dc0 100644 (file)
@@ -507,6 +507,11 @@ def get_platform_osx(_config_vars, osname, release, machine):
     # MACOSX_DEPLOYMENT_TARGET.
 
     macver = _config_vars.get('MACOSX_DEPLOYMENT_TARGET', '')
+    if macver and '.' not in macver:
+        # Ensure that the version includes at least a major
+        # and minor version, even if MACOSX_DEPLOYMENT_TARGET
+        # is set to a single-label version like "14".
+        macver += '.0'
     macrelease = _get_system_version() or macver
     macver = macver or macrelease
 
diff --git a/Misc/NEWS.d/next/macOS/2023-12-10-20-30-06.gh-issue-102362.y8svbF.rst b/Misc/NEWS.d/next/macOS/2023-12-10-20-30-06.gh-issue-102362.y8svbF.rst
new file mode 100644 (file)
index 0000000..55c5ac0
--- /dev/null
@@ -0,0 +1,3 @@
+Make sure the result of :func:`sysconfig.get_plaform` includes at least a
+major and minor versions, even if ``MACOSX_DEPLOYMENT_TARGET`` is set to
+only a major version during build to match the format expected by pip.