https://fedoraproject.org/wiki/Changes/LIBFFI34 == Summary == Rebase libffi in Fedora 34 from libffi 3.1 to libffi 3.4 (released June 28 2021), and provide a libffi3.1 compatibility package to handle the library SONAME transition. == Owner == * Name: [[User:codonell| Carlos O'Donell]] * Email: carlos@xxxxxxxxxx == Detailed Description == Libffi 3.4 was released in June 28 2021 after a long period of upstream testing supported directly by Fedora (DJ Delorie). Intel Control-flow Enforcement Technology support has been added, which is a desirable feature for Fedora. Fedora is currently using libffi 3.1, released in 2014. This change will require a SONAME bump due to ABI changes. A libffi3.1 package has been prepared, and tested in a side-tag along with libffi 3.4, and supports a smooth transition between existing binaries and binaries using the new library. No package needs to be rebuilt, old packages will require and install the compat libffi3.1 package. The libffi3.1 package would enter the distribution first, followed by libffi updated to version 3.4. Again, no packages need to be rebuilt for the transition to happen. == Benefit to Fedora == Stay up to date with upstream libffi, including bug fixes et al. Stay compatible with other distros which have updated already. Add support for Intel CET and Power10. == Scope == * Proposal owners: Update to libffi 3.4 * Other developers: Packages which link against libffi do not need to be rebuilt. Depending on your API usage, some code changes might be required after the update, but existing builds will continue to work. * Release engineering: * Policies and guidelines: The policies and guidelines do not need to be updated. * Trademark approval: N/A (not needed for this Change) * Alignment with Objectives: None == Upgrade/compatibility impact == Packages built on the previous version of libffi will have an auto-requires on the old SONAME and will cause dnf to install libffi3.1 (compat package with runtime). When packages are rebuilt against libffi 3.4 they will automatically switch to using the new SONAME. libffi's latest static trampolines feature has been disabled because it has an impact on == How To Test == libffi includes its own testsuite. A side-tag rebuild has been carried out to rebuild dependent packages and verify their correct operation, this includes: * python3.9 * dnf * gobject-introspection * glib2 * p11-kit * rubygem-ffi * guile22 * git-annex * php * llvm Correct operation of these packages was verified by reviewing testsuite results. == User Experience == The new version of libffi, aside from the usual internal bugfixes and tweaks, introduces support for Intel CET and Power10. == Dependencies == The key dependencies for libffi are python and dnf. Correct operation of python and dnf during the transition requires the libffi3.1 compat package to allow a smooth rebuild path from one SONAME to the next. Verification of this was carried out in a side-tag in Fedora Rawhide. == Contingency Plan == * Contingency mechanism: Revert to libffi 3.1 (dropping libffi3.1 and the libffi 3.4 update) * Contingency deadline: 2021-08-24 * Blocks release? No * Blocks product? N/A == Documentation == libffi includes its own documentation. No additional documentation work is required. == Release Notes == libffi does not public formal release notes. A change list can be found in libffi's git history: https://github.com/libffi/libffi/commits/master -- Ben Cotton He / Him / His Fedora Program Manager Red Hat TZ=America/Indiana/Indianapolis _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx 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/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure