From 7922eb06bb86bbfc18ccaeca2cfaad67219dd78f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 05:30:13 +0000 Subject: [PATCH 1/4] chore(deps): update dependency com_google_protobuf to v27 --- haskell/repositories.bzl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/haskell/repositories.bzl b/haskell/repositories.bzl index 91c7b4086..772d028b5 100644 --- a/haskell/repositories.bzl +++ b/haskell/repositories.bzl @@ -121,10 +121,10 @@ def rules_haskell_dependencies(): maybe( http_archive, name = "com_google_protobuf", - sha256 = "22fdaf641b31655d4b2297f9981fa5203b2866f8332d3c6333f6b0107bb320de", - strip_prefix = "protobuf-21.12", + sha256 = "da288bf1daa6c04d03a9051781caa52aceb9163586bff9aa6cfb12f69b9395aa", + strip_prefix = "protobuf-27.0", urls = [ - "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v21.12.tar.gz", + "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v27.0.tar.gz", ], ) From 928febdfa0971d442e480fd49577769b30bcb70a Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Tue, 14 May 2024 07:49:10 +0200 Subject: [PATCH 2/4] Add `com_google_absl` to dependencies It is needed by com_google_protobuf. --- haskell/repositories.bzl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/haskell/repositories.bzl b/haskell/repositories.bzl index 772d028b5..5cd30fe02 100644 --- a/haskell/repositories.bzl +++ b/haskell/repositories.bzl @@ -127,6 +127,15 @@ def rules_haskell_dependencies(): "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v27.0.tar.gz", ], ) + maybe( + http_archive, + name = "com_google_absl", + urls = [ + "https://github.com/abseil/abseil-cpp/releases/download/20240116.0/abseil-cpp-20240116.0.tar.gz", + ], + sha256 = "338420448b140f0dfd1a1ea3c3ce71b3bc172071f24f4d9a57d59b45037da440", + strip_prefix = "abseil-cpp-20240116.0", + ) maybe( http_archive, From 467e2e7d8c2452ad99f26029cb6087cc59b3b542 Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Mon, 13 May 2024 17:57:08 +0200 Subject: [PATCH 3/4] Use 2014 ISO C++ standard on the host to compile abseil-cpp This is only needed when using the cc toolchain from nixpkgs, since it explicitly adds the flag `-std=c++0x` - see [1]. [1]: https://github.com/tweag/rules_nixpkgs/blob/4089de9a9cad10c703d0bbb1bba119ca99299e54/toolchains/cc/cc.nix#L201-L204 --- .bazelrc.common | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.bazelrc.common b/.bazelrc.common index 6d8fa4fd1..c746b343f 100644 --- a/.bazelrc.common +++ b/.bazelrc.common @@ -41,6 +41,9 @@ build:linux-nixpkgs --config=nixpkgs build:macos-nixpkgs --config=nixpkgs build:nixpkgs --host_platform=@rules_nixpkgs_core//platforms:host +# abseil c++ (a dependency of protobuf) needs a C++14 compiler, but rules_nixpkgs cc sets `-std=c++0x` +build:nixpkgs --host_cxxopt=-std=c++14 + # Build and Test Filters # ---------------------- # Note tag filters do not compose. If you wish to augment these filters on the From 5cd62705c51add73745550ce3b318fc7f29f099f Mon Sep 17 00:00:00 2001 From: Claudio Bley Date: Wed, 26 Jun 2024 10:20:06 +0200 Subject: [PATCH 4/4] Add patch for com_google_protobuf See https://github.com/protocolbuffers/protobuf/issues/16844 --- .../com_google_protobuf-protoc-dbghlp.diff | 27 +++++++++++++++++++ haskell/repositories.bzl | 5 ++++ 2 files changed, 32 insertions(+) create mode 100644 haskell/private/com_google_protobuf-protoc-dbghlp.diff diff --git a/haskell/private/com_google_protobuf-protoc-dbghlp.diff b/haskell/private/com_google_protobuf-protoc-dbghlp.diff new file mode 100644 index 000000000..a318a5fc9 --- /dev/null +++ b/haskell/private/com_google_protobuf-protoc-dbghlp.diff @@ -0,0 +1,27 @@ +diff --git a/build_defs/cpp_opts.bzl b/build_defs/cpp_opts.bzl +index f667a4088..da463ca45 100644 +--- a/build_defs/cpp_opts.bzl ++++ b/build_defs/cpp_opts.bzl +@@ -44,6 +44,9 @@ LINK_OPTS = select({ + "-lm", + "-framework CoreFoundation", + ], ++ "@platforms//os:windows": [ ++ "-ldbghelp", ++ ], + "//conditions:default": [ + "-lpthread", + "-lm", +diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc +index 60900d215..10c41b441 100644 +--- a/src/google/protobuf/port_def.inc ++++ b/src/google/protobuf/port_def.inc +@@ -673,7 +673,7 @@ static_assert(PROTOBUF_ABSL_MIN(20230125, 3), + #error PROTOBUF_DESCRIPTOR_WEAK_MESSAGES_ALLOWED was previously defined + #endif + #if defined(__GNUC__) && defined(__clang__) && !defined(__APPLE__) && \ +- !defined(_MSC_VER) ++ !defined(_MSC_VER) && !defined(_WIN32) + #define PROTOBUF_DESCRIPTOR_WEAK_MESSAGES_ALLOWED + #endif + diff --git a/haskell/repositories.bzl b/haskell/repositories.bzl index 5cd30fe02..44fcc1868 100644 --- a/haskell/repositories.bzl +++ b/haskell/repositories.bzl @@ -126,6 +126,11 @@ def rules_haskell_dependencies(): urls = [ "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v27.0.tar.gz", ], + patches = [ + # see https://github.com/protocolbuffers/protobuf/issues/16844 + "@rules_haskell//haskell:private/com_google_protobuf-protoc-dbghlp.diff", + ], + patch_args = ["-p1"], ) maybe( http_archive,