Wiki - https://fedoraproject.org/wiki/Changes/Protobuf_5.x/6.x Discussion thread - https://discussion.fedoraproject.org/t/f42-change-proposal-protobuf-5-x-6-x-system-wide/140620 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 == Update Protobuf to the latest version (5.x), and 6.x if it arrives in time before freeze in Q1 2025. Note that Protobuf's versioning is complicated, C++ and Python are at version 5, other language bindings at version 4, and they all embed the version of `protoc`; we are using the C++ version here so we can reference its [https://protobuf.dev/support/version-support/#cpp support policy]. A compatibility package, `protobuf3` will be packaged for current `protobuf` dependencies, but will be marked as deprecated as v3 EOLed in March 2024. == Owner == * Name: [[User:salimma|Michel Lind]], [[User:jonathanspw|Jonathan Wright]], [[User:ngompa|Neal Gompa]] * Email: michel@xxxxxxxxxxxxxxx, jonathan@xxxxxxxxxxxxx, ngompa13@xxxxxxxxx == Detailed Description == `protobuf` has historically been a problem to maintain in Fedora because upstream aggressively releases new versions; we hope to make it easier to keep up by providing compatibility packages for the older major version as soon as a new major version of `protobuf` C++ is out. Specifically, we will start by packaging `protobuf3` for legacy use cases and updating `protobuf` to version 5, then when version 6 is out, immediately package `protobuf5` and update `protobuf` to version 6. Older `protobuf` versions will be marked as `deprecated()` as soon as upstream considers them out of support, and once this happens we have the option of retiring them as soon as either there is a major security issue affecting it or, in Rawhide, as soon as there are no longer any dependent package. We will add version suffixes for the binary packages for `protobuf` 5.x/6.x, and if we don't see any issue, for the compat `protobuf3` subpackages as well. == Feedback == == Benefit to Fedora == Other packagers and users benefit from having an up to date version of Protobuf. This would unblock updating several dependent packages. == Scope == * Proposal owners: ** Package `protobuf3` ** Provide a COPR for testing ** Update `protobuf` in COPR ** Rebuild dependents in a COPR to make sure this work ** Send PRs to packages that need to be adapted to build against `protobuf3` ** (stretch) send PRs to packages to switch them to use `protobuf` 5.x/6.x * Other developers: ** Help update your own packages to ideally use `protobuf` 5.x/6.x or at least to switch them to use `protobuf3` ** Report packaging issues * Release engineering: [https://pagure.io/releng/issue/12506 #12506] * Policies and guidelines: N/A (not needed for this Change) * Trademark approval: N/A (not needed for this Change) * Alignment with the Fedora Strategy: == Upgrade/compatibility impact == This should have minimal impact for users. The only issue would be if a package transitively depends on both `protobuf` 3.x and 5.x/6.x at build time. == Early Testing (Optional) == Do you require 'QA Blueprint' support? N == How To Test == == User Experience == Users will benefit from having newer packages available that are currently blocked on the stale `protobuf` version == Dependencies == 70 source RPMs <nowiki>$ fedrq whatrequires protobuf-devel --src CuraEngine-1:5.4.0-7.fc42.src CuraEngine_grpc_definitions-0.1.0-7.fc42.src HepMC3-3.3.0-2.fc41.src OliveTin-2022.11.14-8.fc40.src actor-framework-1.0.1-1.fc42.src android-tools-1:35.0.1-2.fc41.src bear-3.1.5-2.fc42.src bloaty-1.1-38.fc42.src buildbox-1.2.33-1.fc42.src caffe-1.0^git20200212.9b89154-14.fc42.src chatty-0.8.5-1.fc42.src chromiumos-platform-0~20240902git67bc17e-4.fc42.src clementine-1.4.0~rc2-10.fc42.src cockatrice-2.9.0-5.fc41.src credentials-fetcher-1.3.6-0.fc40.src criu-4.0-3.fc42.src dnsdist-1.9.7-1.fc42.src fcitx5-mozc-2.17.2102.102.1-36.20230508git242b4f7.fc42.src gazebo-10.2.0-11.fc42.src grpc-1.48.4-41.fc42.src hidviz-0.2-6.fc41.src ignition-msgs-1.0.0-21.fc41.src ignition-transport-4.0.0-22.fc41.src kf5-kitinerary-23.08.5-3.fc42.src kismet-0.0.2023.07.R1-7.fc41.src kitinerary-24.12.0-1.fc42.src kosmindoormap-24.12.0-1.fc42.src libarcus-5.3.0-5.fc41.src libcompizconfig-1:0.8.18-14.fc41.src libopenshot-0.3.3-4.fc42.src liborc-2.0.3-1.fc42.src libphonenumber-8.13.50-3.fc42.src libzypp-17.34.1-4.fc42.src marble-1:24.12.0-1.fc42.src merkaartor-0.20.0-3.fc42.src meson-1.5.1-1.fc42.src mmsd-tng-2.5.0-4.fc41.src mosh-1.4.0-6.fc41.src mozc-2.29.5111.102-11.fc42.src mumble-1.4.287-5.fc41.src mypaint-2.0.1-11.fc41.src nanopb-0.4.9-1.fc42.src ncid-1.17-3.fc42.src ncnn-20240820-1.fc42.src netdata-2.0.3-2.fc42.src onnx-1.15.0-4.fc41.src onnxruntime-1.17.3-6.fc42.src opencv-4.10.0-7.fc42.src opentrep-0.07.16-1.fc42.src osgearth-3.7-2.fc42.src osmpbf-1.5.1-4.fc41.src paraview-5.12.1-8.fc42.src pdns-4.9.2-2.fc42.src pdns-recursor-5.1.2-2.fc42.src perfetto-48.0-1.fc42.src perl-Alien-ProtoBuf-0.09-24.fc41.src plasma-dialer-1:6.2.4-1.fc42.src pokerth-1.1.2-30.fc41.src protobuf-c-1.5.0-4.fc41.src protozero-1.7.1-9.fc41.src python-torch-2.5.0-1.fc42.src python-torchaudio-2.4.1-2.fc42.src qt6-qtgrpc-6.8.1-2.fc42.src raceintospace-2.0.0-12.rc1.fc41.src ricochet-1.1.4-36.fc41.src root-6.32.08-2.fc42.src rust-tonic-types-0.12.3-1.fc42.src spacebar-1:6.2.4-1.fc42.src srpc-0.10.3-1.fc42.src usbguard-1.1.3-2.fc41.src </nowiki> == Contingency Plan == * Contingency mechanism: The minimum change we can do is update `protobuf` to the latest 3.x, but that still requires some compatibility testing and leave us with an obsolete version * Contingency deadline: Beta freeze * Blocks release? Yes == Documentation == N/A == Release Notes == -- Aoife Moloney Fedora Operations Architect Fedora Project Matrix: @amoloney:fedora.im IRC: amoloney -- _______________________________________________ devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-announce-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-announce@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue -- _______________________________________________ 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, report it: https://pagure.io/fedora-infrastructure/new_issue