-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Describe the bug
Trying to build project from source results in protobuf & abseil related compile errors indicating wrong usage of abseil methods from protobuf side.
To Reproduce
Steps to reproduce the behavior:
- sudo pacman -S openssl curl libuv libzip protobuf qt5-base qt5-webengine qt5-declarative qt5-svg qt5-quickcontrols qt5-quickcontrols2 qt5-tools libxrandr libxinerama libxcursor libxi
- git clone --recursive https://github.com/minecraft-linux/mcpelauncher-ui-manifest.git mcpelauncher-ui
- cd mcpelauncher-ui && mkdir -p build && cd build
- cmake ..
- ninja -j$(getconf _NPROCESSORS_ONLN)
- see very very long list of errors on ~200th object
Expected behavior
Executable succeeds to build.
Desktop
- OS: Arch Linux
- Version: Last commit
- Installation Type: Built from source
Additional context
protobuf version: 29.2-1 (also tried 28.3)
abseil-cpp version: 20240722.1-1 (also tried 20240116.1-1)
Some errors:
usr/include/google/protobuf/repeated_field.h:489:5: error: no matching function for call to ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char [46], int, std::string&)’
489 | ABSL_DCHECK_LE(size, Capacity(is_soo));
| ^~~~~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:355:3: note: candidate: ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char*, int, int)’
355 | LogMessageFatal(const char* file, int line,
| ^~~~~~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:356:37: note: no known conversion for argument 3 from ‘std::string’ {aka ‘std::__cxx11::basic_string’} to ‘int’
356 | absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD;
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:354:3: note: candidate: ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char*, int)’
354 | LogMessageFatal(const char* file, int line) ABSL_ATTRIBUTE_COLD;
| ^~~~~~~~~~~~~~~
/usr/include/google/protobuf/repeated_ptr_field.h: In instantiation of ‘void google::protobuf::internal::RepeatedPtrFieldBase::Clear() [with TypeHandler = google::protobuf::internal::GenericTypeHandlerplayapi::proto::finsky::details::BulkDetailsEntry]’:
/usr/include/google/protobuf/repeated_ptr_field.h:1470:43: required from ‘void google::protobuf::RepeatedPtrField::Clear() [with Element = playapi::proto::finsky::details::BulkDetailsEntry]’
1470 | RepeatedPtrFieldBase::Clear();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/user/builds/mcpelauncher-ui/build/google-play-api/play_details.pb.h:2556:22: required from here
2556 | impl.entry_.Clear();
| ~~~~~~~~~~~~~~~~~~~^~
/usr/include/google/protobuf/repeated_ptr_field.h:267:5: error: no matching function for call to ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char [50], int, std::string&)’
267 | ABSL_DCHECK_GE(n, 0);
| ^~~~~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:355:3: note: candidate: ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char*, int, int)’
355 | LogMessageFatal(const char* file, int line,
| ^~~~~~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:356:37: note: no known conversion for argument 3 from ‘std::string’ {aka ‘std::__cxx11::basic_string’} to ‘int’
356 | absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD;
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/usr/local/include/absl/log/internal/log_message.h:354:3: note: candidate: ‘absl::lts_20240116::log_internal::LogMessageFatal::LogMessageFatal(const char*, int)’
354 | LogMessageFatal(const char* file, int line) ABSL_ATTRIBUTE_COLD;
| ^~~~~~~~~~~~~~~
As far as I understand version mismatch (absl::lts_20240116 and 20240722.1-1) is OK cuz of LTS; prebuilt protobuf binary on pacman is linked against 20240722 version and wouldn't work with 20240116 or some other version in any way.