python312Packages.types-aiobotocore: 2.15.2 -> 2.15.2.post3 (#361801)
[NixPkgs.git] / pkgs / by-name / at / atf / package.nix
blob5edb2d6366b8f96a02f5a4a69eb180414e9b20b5
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchpatch,
6   autoreconfHook,
7   kyua,
8   gitUpdater,
9 }:
11 stdenv.mkDerivation (finalAttrs: {
12   pname = "atf";
13   version = "0.21-unstable-2021-09-01"; # Match the commit used in FreeBSD’s port.
15   src = fetchFromGitHub {
16     owner = "freebsd";
17     repo = "atf";
18     rev = "55c21b2c5fb189bbdfccb2b297bfa89236502542";
19     hash = "sha256-u0YBPcoIBvqBVaytaO9feBaRnQygtzEPGJV0ItI1Vco=";
20   };
22   patches = [
23     # Fixes use after free that causes failures in Kyua’s test suite.
24     # https://github.com/freebsd/atf/pull/57
25     # https://github.com/freebsd/kyua/issues/223
26     (fetchpatch {
27       name = "fix-use-after-free.patch";
28       url = "https://github.com/freebsd/atf/commit/fb22f3837bcfdce5ce8b3c0e18af131bb6902a02.patch";
29       hash = "sha256-p4L3sxSYfMSzwKrUDlEZpoJydbaK3Hcbvn90KlPHkic=";
30     })
31   ];
33   postPatch =
34     lib.optionalString finalAttrs.doInstallCheck ''
35       # https://github.com/freebsd/atf/issues/61
36       substituteInPlace atf-c/check_test.c \
37         --replace-fail 'ATF_TP_ADD_TC(tp, build_cpp)' ""
38       substituteInPlace atf-c++/check_test.cpp \
39         --replace-fail 'ATF_ADD_TEST_CASE(tcs, build_cpp);' ""
40       # Can’t find `c_helpers` in the work folder.
41       substituteInPlace test-programs/Kyuafile \
42         --replace-fail 'atf_test_program{name="srcdir_test"}' ""
43     ''
44     # These tests fail on Darwin.
45     + lib.optionalString (finalAttrs.doInstallCheck && stdenv.hostPlatform.isDarwin) ''
46       substituteInPlace atf-c/detail/process_test.c \
47         --replace-fail 'ATF_TP_ADD_TC(tp, status_coredump);' ""
48     ''
49     # This test fails on Linux.
50     + lib.optionalString (finalAttrs.doInstallCheck && stdenv.hostPlatform.isLinux) ''
51       substituteInPlace atf-c/detail/fs_test.c \
52         --replace-fail 'ATF_TP_ADD_TC(tp, eaccess);' ""
53     '';
55   strictDeps = true;
57   nativeBuildInputs = [ autoreconfHook ];
59   enableParallelBuilding = true;
61   makeFlags = [
62     # ATF isn’t compatible with C++17, which is the default on current clang and GCC.
63     "CXXFLAGS=-std=c++11"
64   ];
66   doInstallCheck = true;
68   nativeInstallCheckInputs = [ kyua ];
70   installCheckPhase = ''
71     runHook preInstallCheck
72     HOME=$TMPDIR PATH=$out/bin:$PATH kyua test
73     runHook postInstallCheck
74   '';
76   passthru.updateScript = gitUpdater { rev-prefix = "atf-"; };
78   __structuredAttrs = true;
80   meta = {
81     description = "Libraries to write tests in C, C++, and shell";
82     homepage = "https://github.com/freebsd/atf/";
83     license = lib.licenses.bsd3;
84     mainProgram = "atf-sh";
85     maintainers = with lib.maintainers; [ reckenrode ];
86     platforms = lib.platforms.unix;
87   };