Wiki: https://fedoraproject.org/wiki/Changes/Bump_Minimum_Rust_Bindgen_To_v0.72
Discussion Thread: https://discussion.fedoraproject.org/t/179475 **This is a proposed Change for Fedora Linux.** This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee. == Summary == Fedora currently includes packages for v0.68, v0.69, v0.71, and v0.72 of the Rust "bindgen" crate. All dependent packages will be updated to use bindgen v0.72 (or newer) to address breaking changes in LLVM 22 that are only fixed in bindgen v0.72.1 and newer. == Owner == * Name: [[User:Decathorpe| Fabio Valentini]] * Email: decathorpe AT gmail DOT com * Name: Rust SIG * Email: rust AT lists DOT fedoraproject DOT org == Detailed Description == LLVM 22 brings (potentially breaking) [ https://github.com/llvm/llvm-project/pull/147835 changes] to how clang represents parsed AST. This required [ https://github.com/rust-lang/rust-bindgen/pull/3278 changes] in the bindgen crate, which have only been released in [ https://github.com/rust-lang/rust-bindgen/releases/tag/v0.72.1 v0.72.1] and newer. Older versions of the bindgen crate will potentially generate broken code with libclang 22, so all dependent packages in Fedora will be updated to use bindgen v0.72.1 or newer, and packages for old versions of bindgen will be retired from Fedora when they are no longer needed. This process has been ongoing for the past few months, but there are a few remaining packages that need to be handled: * rust-tss-esapi-sys (bindgen v0.68 -> v0.72) * clamav (bindgen v0.69 -> v0.72) * retis (bindgen v0.69 -> v0.72) * rust-krun-sys (bindgen v0.69 -> v0.72) * rust-libbpf-sys (bindgen v0.69 -> v0.72) * rust-libmonado (bindgen v0.69 -> v0.72) * rust-libspa-sys0.8 (bindgen v0.69 -> v0.72) * rust-pipewire-sys0.8 (bindgen v0.69 -> v0.72) * rust-scx_utils (bindgen v0.69 -> v0.72) * rust-tree-sitter0.23 (bindgen v0.69 -> v0.72) * rust-tree-sitter0.24 (bindgen v0.69 -> v0.72) * kryoptic (bindgen v0.71 -> v0.72) * rust-tree-sitter (bindgen v0.71 -> v0.72) Updating and / or patching packages that include "bindgen" in vendored Rust dependencies is explicitly out of scope of this Change. == Feedback == N/Y == Benefit to Fedora == Fedora packages are only built with versions of the "bindgen" crate that officially support LLVM 22 (not accounting for packages that build with vendored Rust dependencies). == Scope == * Proposal owners: ** Submit packaging changes (and upstream pull requests) for updating the "bindgen" dependency, where necessary. ** Submit pull requests for packages not under the Rust SIG umbrella (clamav, retis, kryoptic). * Other developers: ** Merge + build pull requests and / or rely on provenpackagers to merge + build pull requests for packages not under the Rust SIG umbrella. * Release engineering: N/A * Policies and guidelines: N/A * Trademark approval: N/A * Alignment with the Fedora Strategy: N/A == Upgrade/compatibility impact == There should be no upgrade / compatibility impact, other than improved support for building Rust packages when using LLVM 22 - the default version of LLVM in Fedora 44. == Early Testing (Optional) == N/A Do you require 'QA Blueprint' support? N == How To Test == * Check that all packages that depend on "crate(bindgen)" are built with bindgen v0.72.1 or newer. * Verify that packages for older versions of the "bindgen" crate were retired from Fedora 44+. == User Experience == No change in user experience (not a user-facing change). == Dependencies == Three dependent packages are not co-maintained by the Rust SIG (clamav, retis, kryoptic). Maintainers of these packages (or provenpackagers) will need to merge pull requests and / or implement necessary changes themselves. == Contingency Plan == If packages cannot be ported to bindgen v0.72 in time for the final freeze, retirement of older bindgen versions can be postponed to later versions of Fedora, as necessary. Not all packages will be affected by the changes in LLVM 22. * Contingency mechanism: Postpone retirement of old bindgen versions to a later Fedora release. * Contingency deadline: Final freeze. * Blocks release? No / N/A (not a System Wide Change) == Documentation == * https://github.com/rust-lang/rust-bindgen/releases/tag/v0.72.1 * https://github.com/rust-lang/rust-bindgen/issues/3264 * https://github.com/rust-lang/rust-bindgen/pull/3278 * https://github.com/llvm/llvm-project/pull/147835 == Release Notes == \nThe minimum version of the "bindgen" crate in Fedora has been raised to v0.72.1 to address compatibility issues with LLVM 22.
-- _______________________________________________ devel-announce 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
-- _______________________________________________ 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
