nixpkgs/pkgs/development/libraries/catch/default.nix
Maximilian Bosch 486f248ce4
catch: fix build w/glibc-2.34
The issue was that `SIGSTKSZ` isn't an actual const anymore and thus
can't be used to define sizes of static variables such as

    static char foo[SIGSTKSZ];

since this results in compiler errors such as

    error: array bound is not an integer constant before ']' token

Fedora worked around this by hard-coding the value in `catch`. Since
this is mainly a testing-framework and there's no other fix for v1 - we
should eventually remove it entirely in favor of v2 anyways - I guess
this is a good-enough fix.

Failing Hydra build: https://hydra.nixos.org/build/152455108
2022-02-27 10:25:36 +01:00

42 lines
1.2 KiB
Nix

{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
stdenv.mkDerivation rec {
pname = "catch";
version = "1.12.2";
src = fetchFromGitHub {
owner = "catchorg";
repo = "Catch";
rev = "v${version}";
sha256 = "1gdp5wm8khn02g2miz381llw3191k7309qj8s3jd6sasj01rhf23";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DUSE_CPP14=ON" ];
patches = [
# https://github.com/catchorg/Catch2/pull/2151
(fetchpatch {
url = "https://github.com/catchorg/Catch2/commit/bb6d08323f23a39eb65dd86671e68f4f5d3f2d6c.patch";
sha256 = "1vhbzx84nrhhf9zlbl6h5zmg3r5w5v833ihlswsysb9wp2i4isc5";
})
# Fix glibc-2.34 build
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/catch1/raw/23276476148a657e7a45ade547f858cbf965a33a/f/catch1-sigstksz.patch";
sha256 = "sha256-XSsI3iDEZCUSbozlYWC0y/LZ7qr/5zwACpn1jHKD0yU=";
})
];
doCheck = true;
checkTarget = "test";
meta = with lib; {
description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
homepage = "http://catch-lib.net";
license = licenses.boost;
maintainers = with maintainers; [ edwtjo knedlsepp ];
platforms = with platforms; unix;
};
}