A recent bug report indicated that builds of Python 3.14 from a buildroot that included expat 2.7.2 could be deployed on systems that had older builds of expat installed. That would lead to something like:

>>> import pyexpat
Traceback...
ImportError: ...pyexpat.cpython-314-x86_64-linux-gnu.so: undefined symbol: XML_SetAllocTrackerActivationThreshold

The python 3.14 package has been modified to generate a runtime requirement on a version at least as new as the one in the build root:

https://src.fedoraproject.org/rpms/python3.14/c/8236063d9f0539e2ac7df38c8d0313c37bc7d39a?branch=rawhide

Another way to solve the problem would be to offer the upstream project versioned symbols.. probably something like this (but I've probably got the cmake config wrong):

https://github.com/gordonmessmer/libexpat/commit/813248dd89d1f9e88661094c11b867aae6bece36

I would guess that it wouldn't be hard to convince libexpat to adopt versioned symbols, since they already maintain a substantially similar file for MS VC++

... but even if we encourage upstream projects to adopt versioned symbols, I think rpm should do something better for the libraries that haven't adopted them, in the meantime.


--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to