Commit 025b08b5 authored by Ben Wolsieffer's avatar Ben Wolsieffer
Browse files

protobuf3_21: don't build tests on 32-bit platforms

The tests fail to build on 32-bit platforms, due to an upstream bug which will
be fixed in 3.22. Previously, this was holding back the default protobuf version
on 32-bit platforms to 3.20, which in turn broke packages such as mypy-protobuf
which require 3.21

This commit disables building the tests on 32-bit platforms, allowing 3.21 to
build. Note that we don't ever run the tests on any platform, but they are
normally still built.

Now that 3.21 builds on 32-bit, this commit also unpins 3.20 as the default
version.
parent ed60ce09
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -79,7 +79,12 @@ let
      "-Dprotobuf_ABSL_PROVIDER=package"
      ] ++ lib.optionals (!stdenv.targetPlatform.isStatic) [
      "-Dprotobuf_BUILD_SHARED_LIBS=ON"
    ];
    ]
    # Tests fail to build on 32-bit platforms; fixed in 3.22
    # https://github.com/protocolbuffers/protobuf/issues/10418
    ++ lib.optional
      (stdenv.targetPlatform.is32bit && lib.versionOlder version "3.22")
      "-Dprotobuf_BUILD_TESTS=OFF";

    # unfortunately the shared libraries have yet to been patched by nix, thus tests will fail
    doCheck = false;
+1 −7
Original line number Diff line number Diff line
@@ -22664,13 +22664,7 @@ with pkgs;
  prospector = callPackage ../development/tools/prospector { };
  # https://github.com/protocolbuffers/protobuf/issues/10418
  # protobuf versions have to match between build-time and run-time
  # Using "targetPlatform" in the check makes sure that the version of
  # pkgsCross.armv7l-hf-multiplatform.buildPackages.protobuf matches the
  # version of pkgsCross.armv7l-hf-multiplatform.protobuf
  protobuf = if stdenv.targetPlatform.is32bit then protobuf3_20 else
    protobuf3_21;
  protobuf = protobuf3_21;
  protobuf3_21 = callPackage ../development/libraries/protobuf/3.21.nix { };
  protobuf3_20 = callPackage ../development/libraries/protobuf/3.20.nix { };