I just realized that we have an open bug that we can use to track this,
so let me post a status with some context.
I took the liberty of packaging and uploading golang-google-grpc_1.64.0
to experimental. Please have a look and let's see what's
left to do before we can upload this to unstable.
Okay, I've now looked at the packages that directly depend on
google-genproto/grpc 1.64 in testing, and rebuilt them using the packages
in experimental. All used build scripts and intermediary results can be
inspected at
https://people.debian.org/~siretart/grpc.
Briefly, I think the situation is manageable. There are a few packages
that I think we should remove from testing, see below. The main source
of concern is clearly src:google-cloud-api and containerd.
I'd appreciate help, comments and other thoughts on how to proceed.
What follows is a summary with details.
I don't think
https://tracker.debian.org/pkg/golang-gogottrpc is a concern
any more, I've updated that package to an upstream version that no longer
uses gogoproto.
The following packages rebuil
d just fine:
golang-github-sigstore-sigstore, OK
prometheus, OK
golang-github-openshift-imagebuilder, OK
gh, OK
golang-gocloud, OK
golang-google-api, OK
golang-github-mendersoftware-mender-artifact, OK
golang-github-googlecloudplatform-guest-logging-go, OK
golang-github-kurin-blazer, depends on golang-goprotobuf-dev, Updated in experimental,
now builds fine
golang-github-lightstep-lightstep-tracer-common, depends on golang-goprotobuf-dev,
updated in experimental, but depends on gogoproto.
However, as Upstream appears dead, cf.
https://github.com/lightstep/lightstep-tracer-common/issues/52I've filed #1074143 and think we should remove this from testing and/or unstable.
golang-github-gogo-status, requires the use of gogoprotobuf, won't possibly work as such with newer grpc
Since there don't appear to be any reverse dependencies, I think we should remove it from testing.
golang-github-grpc-ecosystem-grpc-gateway, -- needed some dependency updates to compile
with newer protobuf. However when compiling against protobuf@1.5, the package builds fine,
but its unit tests end up in a segfault, cf. #1074144.
This issue is likely fixed in a newer upstream version.
golang-google-cloud, depends on
golang-github-golang-protobuf-1-3-dev, which is easy to update.
However,even with those updates, it turns out that changes in genproto broke compilation of #
1074133
This probably requires a major upstream upgrade and more work.
Also,
containerd 1.6.24 appears to break to build with the newer grpc, probably because of protobuf
changes. I haven't looked into whether this is easy to patch and fix yet.
However, I'm also working on packaging containerd 1.7 that completely
avoids any gogoproto dependency, so that should avoid that problem as well. Still stuck on
a few dependencies in NEW....
Status update:
golang-google-cloud: I've uploaded a new version of the package to experimental that disables
a few packages and thus closes #1074133. I think this should unblock this transition. I'd like to note
that the package is badly outdated, but updating it is quite tricky, see #991942 for details.
golang-github-grpc-ecosystem-grpc-gateway, -- updating this package away from the protobuf APIv1
is not going to work. It seems that moving the codebase to APIv2 (which is implemented by
golang-github-golang-protobuf-1-5-dev and golang-google-protobuf-dev), is what upstream implemented in
their [grpc-gateway@v2.0.0] release. Thankfully, we have that already packaged in debian as
golang-github-grpc-ecosystem-grpc-gateway.v2-dev, currently in experimental only, because it depends
on the newer grpc.
So in order to make progress, I propose that we retire the golang-github-grpc-ecosystem-grpc-gateway-dev
package in favor of golang-github-grpc-ecosystem-grpc-gateway.v2-dev. For this, the following packages
need to be updated:
siretart@x1:~ $ build-rdeps --distribution testing --old golang-github-grpc-ecosystem-grpc-gateway-dev
Reverse Build-depends in testing/main:
--------------------------------------
golang-github-kurin-blazer
golang-github-census-instrumentation-opencensus-proto
prometheus
etcd
golang-github-backblaze-blazer
Found a total of 5 reverse build-depend(s) for golang-github-grpc-ecosystem-grpc-gateway-dev.
I'll file bugs against those five packages and will try to get them updated to build against
grpc-gateway.v2 that we have in experimental.