Hi, Am 26.10.22 um 20:27 schrieb Shengjing Zhu:
Hi all,On Sun, Jul 10, 2022 at 6:53 AM Shengjing Zhu <z...@debian.org> wrote:I should have mentioned it earlier. For this particular transition (google/protobuf 1.3 -> 1.4+), ratt is not enough. For example, containerd will panic at runtime (root cause is #975431). The incompatibility is not at compile time, but at runtime. For safety, I think google/protobuf (>= 1.4) should mark Breaks: golang-gogoprotobuf-dev. Otherwise all package maintainers should verify if the package is still functional after rebuilding.I just uploaded golang-github-golang-protobuf-1-5 to unstable. So please keep golang-goprotobuf at 1.3, I will ask removing the 1.5 version in experimental shortly. If you're blocked _only_ by github.com/golang/protobuf v1.4+, then you can start to use golang-github-golang-protobuf-1-5. There's still puzzle for the next steps. For example, + golang-google-genproto, the pb.go files in new version need to be generated by new protoc-gen-go. However by doing this, it will be come incompatible with gogo/protobuf and cause runtime panic (you will not notice build error). This at least will break containerd, and then all container tools like docker/podman.
I have two questions on this:1. Would it be possible to have two versions for each golang-google-genproto(-dev) and golang-google-grpc(-dev) in the archives, one with regenerated pb.go files for api v2 and one that is is backwards-compatible api v1, resp. gogo/protobuf, that declare incompatibility on each other?
2. For golang-google-genproto-dev and golang-google-grpc-dev, I uploaded two newer version of each with dependencies on golang-goprotobuf-dev (>= 1.4.3~) to experimental a while ago. Since golang-goprotobuf-dev (1.4.3) is no longer in experimental, they should instead build on golang-github-golang-protobuf-1-5-dev. In fact, the packages won't build even with golang-goprotobuf-dev (1.4.3) removed from experimental.
I just attempted to build those with github-golang-protobuf-1-5-dev, but there is a circular dependency. In debian/README.source it says:
There's a circular dependency in this package, it has golang-google-genproto-dev in Build-Depends, which depends this package as well. To break this, we vendor the original protobuf definitions for rpc functionality, from the following repos and commits: https://github.com/grpc/grpc-proto/tree/master/grpc at commit da219ab. https://github.com/googleapis/googleapis/tree/master/google/rpc at commit ae909b8.
I must admit I don't understand how to go on with this, any help or hint would be appreciated.
cheers, Peymaneh
OpenPGP_signature
Description: OpenPGP digital signature