https://github.com/python/cpython/commit/c9a4a3d502cdd9706de6d3e9c7d21a09cdc81f19 commit: c9a4a3d502cdd9706de6d3e9c7d21a09cdc81f19 branch: 3.14 author: Miss Islington (bot) <[email protected]> committer: zware <[email protected]> date: 2025-11-22T18:47:47Z summary:
[3.14] gh-141600: Fix musl version detection on Void Linux (GH-141850) (cherry picked from commit 08477dbf300020cc67006c180917c02ee8a5cec8) Co-authored-by: Andrew J. Hesford <[email protected]> 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 784b6b749b7524..b017b841311be3 100644 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -199,7 +199,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) @@ -238,7 +238,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 187a3d54809105..e879e48571f3f7 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -562,6 +562,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: @@ -584,6 +586,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 e8d5e0d72e79c8..dba1dbf2c5a8e6 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -788,10 +788,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]
