blocker: Remove All git patches of crate
Xuanwo opened this issue · 11 comments
We have three git patched deps here:
[patch.crates-io]
raft-proto = { git = "https://github.com/tikv/raft-rs", rev="95c532612ee6a83591fce9a8b51d6afe87b58835"}
protobuf-codegen = { git = "https://github.com/pingcap/rust-protobuf", rev="82b49fea7e696fd647b5aca0a6c6ec944eab3189" }
protobuf = { git = "https://github.com/pingcap/rust-protobuf", rev="82b49fea7e696fd647b5aca0a6c6ec944eab3189" }
This will block us to upload the new version of crates. We should remove them and depend on tagged version instead.
cc @ekexium & @andylokandy: Is there a specific reason for using that version? Can we switch to the upstream version? I'm willing to help remove them.
Upon a swift attempt, simply removing the dependency results in compile error in protobuf codegened code.
Let me have a try.
I even can't complie grpc-sys...
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1378:49: error: ‘const class absl::lts_20211102::str_format_internal::FormatConversionSpecImpl’ has no member named ‘conversion_char’
1378 | exp, FormatConversionCharIsUpper(conv.conversion_char()) ? 'E' : 'e',
| ^~~~~~~~~~~~~~~
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1378:66: error: ‘absl::lts_20211102::str_format_internal::FormatConversionCharIsUpper’ cannot be used as a function
1378 | exp, FormatConversionCharIsUpper(conv.conversion_char()) ? 'E' : 'e',
| ^
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1381:49: error: ‘a’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’
1381 | } else if (c == FormatConversionCharInternal::a ||
| ^
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1382:49: error: ‘A’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’
1382 | c == FormatConversionCharInternal::A) {
| ^
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1383:58: error: ‘A’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’
1383 | bool uppercase = (c == FormatConversionCharInternal::A);
I even can't complie grpc-sys...
/home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1378:49: error: ‘const class absl::lts_20211102::str_format_internal::FormatConversionSpecImpl’ has no member named ‘conversion_char’ 1378 | exp, FormatConversionCharIsUpper(conv.conversion_char()) ? 'E' : 'e', | ^~~~~~~~~~~~~~~ /home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1378:66: error: ‘absl::lts_20211102::str_format_internal::FormatConversionCharIsUpper’ cannot be used as a function 1378 | exp, FormatConversionCharIsUpper(conv.conversion_char()) ? 'E' : 'e', | ^ /home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1381:49: error: ‘a’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’ 1381 | } else if (c == FormatConversionCharInternal::a || | ^ /home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1382:49: error: ‘A’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’ 1382 | c == FormatConversionCharInternal::A) { | ^ /home/xuanwo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/grpcio-sys-0.12.1+1.46.5-patched/grpc/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1383:58: error: ‘A’ is not a member of ‘absl::lts_20211102::str_format_internal::FormatConversionCharInternal’ 1383 | bool uppercase = (c == FormatConversionCharInternal::A);
https://github.com/tikv/client-cpp/pull/19/files
This PR may help you to compile
This PR may help you to compile
Thank you so much!
This PR may help you to compile
Hi, thank you for the advice. However, I believe that we need to address this issue from the side of grpcio-sys
(and even grpc
). When we deliver our library which depends on client-rust
(which also means it depends on grpcio-sys
), we cannot enforce all of our users to use the same dev-container for building.
@Xuanwo Do you have any idea to solve this problem? I never met this problem in my centos7/centos8 environment
I never met this problem in my centos7/centos8 environment
Try build client-rust with newer gcc like: gcc version 13.1.1 20230429 (GCC)
Maybe we need to upragde grpc-sys
to target grpc
1.56