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@redhat.com
== 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
On 7/14/21 11:28 AM, Ben Cotton wrote:
== 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
Looks like this section got cut off.
On 7/14/21 2:33 PM, Samuel Sieb wrote:
On 7/14/21 11:28 AM, Ben Cotton wrote:
== 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
Looks like this section got cut off.
Sorry. Updated.
Thee static templates impact gobject-introspection and ghc.
On Wed, Jul 14 2021 at 02:28:50 PM -0400, Ben Cotton bcotton@redhat.com wrote:
Rebase libffi in Fedora 34
Is this a typo? F34 or F35?
On 7/14/21 3:00 PM, Michael Catanzaro wrote:
On Wed, Jul 14 2021 at 02:28:50 PM -0400, Ben Cotton bcotton@redhat.com wrote:
Rebase libffi in Fedora 34
Is this a typo? F34 or F35?
Sorry. Fixed. Typo.
We've been carrying this change proposal since F34 as we work with upstream to release libffi 3.4.
On Wed, Jul 14, 2021 at 02:28:50PM -0400, Ben Cotton wrote:
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.
The usual: please don't say "rebase" in public-facing documents. It's packaging jargon that is not clear to users.
Looks all reasonable… With the compat package, this should be very smooth.
== 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
Those sentences are slightly garbled too.
Zbyszek
On 7/15/21 6:52 AM, Zbigniew Jędrzejewski-Szmek wrote:
On Wed, Jul 14, 2021 at 02:28:50PM -0400, Ben Cotton wrote:
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.
The usual: please don't say "rebase" in public-facing documents. It's packaging jargon that is not clear to users.
Switched to "Update" since that's what we're doing.
Thanks for the feedback! I've been filing system-wide change requests for years with glibc, and I was never quite sure of the exact audience that might be reading them.
I'll try to make the text more "user friendly" in the future. I certainly appreciate the feedback.
Looks all reasonable… With the compat package, this should be very smooth.
I agree, the compat package is required, it really makes the whole transition very smooth.
== 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
Those sentences are slightly garbled too.
Upstream is providing release notes.
I've updated them to list the important notes for Fedora users.
Many will be happy about the RISC-V support.
On Thu, Jul 15, 2021 at 02:28:20PM -0400, Carlos O'Donell wrote:
On 7/15/21 6:52 AM, Zbigniew Jędrzejewski-Szmek wrote:
On Wed, Jul 14, 2021 at 02:28:50PM -0400, Ben Cotton wrote:
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.
The usual: please don't say "rebase" in public-facing documents. It's packaging jargon that is not clear to users.
Switched to "Update" since that's what we're doing.
Thanks for the feedback! I've been filing system-wide change requests for years with glibc, and I was never quite sure of the exact audience that might be reading them.
I think nobody knows the exact audience, except that it's certainly very varied. For example, phoronix is a popular website and it often releases article directly based on the change text. This is pretty clear in the list of articles about F34 [1]. We also know that sometimes the change page lives on, like the merged-usr page [2], which is still being cited regularly. So I think getting the texts on those pages approachable and clear is very important.
[1] https://www.phoronix.com/scan.php?page=search&q=Fedora+34 [2] https://fedoraproject.org/wiki/Features/UsrMove
Zbyszek
On Thu, Jul 15, 2021 at 12:31 PM Carlos O'Donell carlos@redhat.com wrote:
On 7/15/21 6:52 AM, Zbigniew Jędrzejewski-Szmek wrote:
On Wed, Jul 14, 2021 at 02:28:50PM -0400, Ben Cotton wrote:
== 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
Those sentences are slightly garbled too.
Upstream is providing release notes.
I think he is referring to the use of "public" where "publish" is the correct word.
On Wed, Jul 14, 2021 at 2:28 PM Ben Cotton bcotton@redhat.com wrote:
This proposal has been deferred to Fedora Linux 36.