Conversation
Patch grpc-gateway dependency in Debian to fix build failure:
# github.com/pingcap/kvproto/pkg/configpb
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:45:44: cannot use &protoReq (value of type *GetRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *GetRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:58:44: cannot use &protoReq (value of type *GetRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *GetRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:112:44: cannot use &protoReq (value of type *DeleteRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *DeleteRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:125:44: cannot use &protoReq (value of type *DeleteRequest) as "google.golang.org/protobuf/proto".Message value in argument to runtime.PopulateQueryParameters: *DeleteRequest does not implement protoreflect.ProtoMessage (missing method ProtoReflect)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:304:107: too many arguments in call to runtime.NewPattern
have (number, []int, []string, string, unknown type)
want (int, []int, []string, string)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:304:115: undefined: runtime.AssumeColonVerbOpt
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:306:110: too many arguments in call to runtime.NewPattern
have (number, []int, []string, string, unknown type)
want (int, []int, []string, string)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:306:118: undefined: runtime.AssumeColonVerbOpt
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:308:110: too many arguments in call to runtime.NewPattern
have (number, []int, []string, string, unknown type)
want (int, []int, []string, string)
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:308:118: undefined: runtime.AssumeColonVerbOpt
src/github.com/pingcap/kvproto/pkg/configpb/configpb.pb.gw.go:125:44: too m
This can be dropped once Debian has upgraded to newer protobuffer libraries.
|
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
FYI: @dveeden |
|
Should there be a GitHub action to do the package build? |
Yes, that is a good idea. Or are you asking if there is an existing GitHub action? I am sure there are many, this is such a common thing. I am aware of at least https://github.com/centic9/debian-packages/blob/main/.github/workflows/debian-package-debcraft.yml Most GitHub Actions run in a Ubuntu container anyway, so they just need to install dependencies and run |
fc27c4e to
e50c38f
Compare
e9bd428 to
4b0463b
Compare
|
This has now a CI (exampe log) that uses the GitHub runner ubuntu-latest, which is Ubuntu 24.04 at the time of writing. This will detect if the build is completely broken, but it wont provide early detection about interactions with new versions of dependencies that might break things, so I also created an alternative CI in https://github.com/ottok/tikv-kvproto/commits/native-debian-packaging-container/ that runs the CI inside a Debian unstable container (example log). I am not sure which one is better, so I will leave this here for a while and return later to decide how to finalize this. |
This is a draft as the protobuffer version in Debian is old and I had to downgrade it with an extra commit (same as in Debian), which is not a suitable thing to merge upstream. We need to wait for protobuffer to update in Debian unstable before merging this. In the meanwhile you can use this branch for testing.
Add subdirectory
debian/with native Debian packaging. This can be built in a Debian (unstable) container using regular commands (e.g.dpkg-buildpackage).See commits for details.
Closes: #1416
Build log for reference: