Protobuf 5.x/6.x
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 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: Michel Lind, Jonathan Wright, Neal Gompa
- Email: michel@michel-slm.name, jonathan@almalinux.org, ngompa13@gmail.com
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
- Package
-
Other developers:
- Help update your own packages to ideally use
protobuf
5.x/6.x or at least to switch them to useprotobuf3
- Report packaging issues
- Help update your own packages to ideally use
-
Release engineering: #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
For packagers: build your packages against the Protobuf COPR (to be added here once it is available)
For users: enable the COPR and report issues with the applications there
User Experience
Users will benefit from having newer packages available that are currently blocked on the stale protobuf
version
Dependencies
70 source RPMs
$ 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
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 (not a System Wide Change)
Release Notes
Last edited by @amoloney 2024-12-24T15:58:17Z
Last edited by @amoloney 2024-12-24T15:58:17Z