https://github.com/python/cpython/commit/08477dbf300020cc67006c180917c02ee8a5cec8
commit: 08477dbf300020cc67006c180917c02ee8a5cec8
branch: main
author: Andrew J. Hesford <[email protected]>
committer: zware <[email protected]>
date: 2025-11-22T12:17:40-06:00
summary:
gh-141600: Fix musl version detection on Void Linux (GH-141602)
files:
A Misc/NEWS.d/next/Library/2025-11-15-14-58-12.gh-issue-141600.XY2BXg.rst
M Lib/platform.py
M Lib/test/test_platform.py
M Lib/test/test_support.py
diff --git a/Lib/platform.py b/Lib/platform.py
index 4db93bea2a39e1..b5017dbdb02252 100644
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -197,7 +197,7 @@ def libc_ver(executable=None, lib='', version='',
chunksize=16384):
| (GLIBC_([0-9.]+))
| (libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)
| (musl-([0-9.]+))
- | (libc.musl(?:-\w+)?.so(?:\.(\d[0-9.]*))?)
+ | ((?:libc\.|ld-)musl(?:-\w+)?.so(?:\.(\d[0-9.]*))?)
""",
re.ASCII | re.VERBOSE)
@@ -236,7 +236,7 @@ def libc_ver(executable=None, lib='', version='',
chunksize=16384):
elif V(glibcversion) > V(ver):
ver = glibcversion
elif so:
- if lib != 'glibc':
+ if lib not in ('glibc', 'musl'):
lib = 'libc'
if soversion and (not ver or V(soversion) > V(ver)):
ver = soversion
diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py
index c07f96aecf4a78..9ee97b922ad48e 100644
--- a/Lib/test/test_platform.py
+++ b/Lib/test/test_platform.py
@@ -569,6 +569,8 @@ def test_libc_ver(self):
(b'/aports/main/musl/src/musl-1.2.5.7', ('musl', '1.2.5.7')),
(b'libc.musl.so.1', ('musl', '1')),
(b'libc.musl-x86_64.so.1.2.5', ('musl', '1.2.5')),
+ (b'ld-musl.so.1', ('musl', '1')),
+ (b'ld-musl-x86_64.so.1.2.5', ('musl', '1.2.5')),
(b'', ('', '')),
):
with open(filename, 'wb') as fp:
@@ -591,6 +593,10 @@ def test_libc_ver(self):
b'libc.musl-x86_64.so.1.4.1\0libc.musl-x86_64.so.2.1.1\0libc.musl-x86_64.so.2.0.1',
('musl', '2.1.1'),
),
+ (
+
b'ld-musl-x86_64.so.1.4.1\0ld-musl-x86_64.so.2.1.1\0ld-musl-x86_64.so.2.0.1',
+ ('musl', '2.1.1'),
+ ),
(b'no match here, so defaults are used', ('test', '100.1.0')),
):
with open(filename, 'wb') as f:
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index d69328a6a6ac90..667fcc81d8e378 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -798,10 +798,10 @@ def test_linked_to_musl(self):
self.assertTrue(linked)
# The value is cached, so make sure it returns the same value again.
self.assertIs(linked, support.linked_to_musl())
- # The unlike libc, the musl version is a triple.
+ # The musl version is either triple or just a major version number.
if linked:
self.assertIsInstance(linked, tuple)
- self.assertEqual(3, len(linked))
+ self.assertIn(len(linked), (1, 3))
for v in linked:
self.assertIsInstance(v, int)
diff --git
a/Misc/NEWS.d/next/Library/2025-11-15-14-58-12.gh-issue-141600.XY2BXg.rst
b/Misc/NEWS.d/next/Library/2025-11-15-14-58-12.gh-issue-141600.XY2BXg.rst
new file mode 100644
index 00000000000000..8071246f130ace
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-11-15-14-58-12.gh-issue-141600.XY2BXg.rst
@@ -0,0 +1 @@
+Fix musl version detection on Void Linux.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]