croc: 10.1.1 -> 10.1.3 (#364662)
[NixPkgs.git] / pkgs / development / tools / build-managers / fac / default.nix
blobce8b4a52cf2b0d4b4d1b9a4a60159ef316b7e069
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchCrate,
6   git,
7   CoreServices,
8 }:
10 rustPlatform.buildRustPackage rec {
11   pname = "fac-build";
12   version = "0.5.4";
14   src = fetchCrate {
15     inherit version;
16     crateName = "fac";
17     hash = "sha256-+JJVuKUdnjJoQJ4a2EE0O6jZdVoFxPwbPgfD2LfiDPI=";
18   };
20   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices ];
21   cargoHash = "sha256-XT4FQVE+buORuZAFZK5Qnf/Fl3QSvw4SHUuCzWhxUdk=";
23   # fac includes a unit test called ls_files_works which assumes it's
24   # running in a git repo. Nix's sandbox runs cargo build outside git,
25   # so this test won't work.
26   checkFlags = [ "--skip=ls_files_works" ];
28   # fac calls git at runtime, expecting it to be in the PATH,
29   # so we need to patch it to call git by absolute path instead.
30   postPatch = ''
31     substituteInPlace src/git.rs \
32         --replace 'std::process::Command::new("git")' \
33         'std::process::Command::new("${git}/bin/git")'
34     substituteInPlace tests/lib.rs \
35         --replace 'std::process::Command::new("git")' \
36         'std::process::Command::new("${git}/bin/git")'
37   '';
39   meta = with lib; {
40     broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
41     description = ''
42       A build system that uses ptrace to handle dependencies automatically
43     '';
44     longDescription = ''
45       Fac is a general-purpose build system inspired by make that utilizes
46       ptrace to ensure that all dependences are enumerated and that all
47       source files are added to a (git) repo. An important feature of fac
48       is that it automatically handles dependencies, rather than either
49       complaining about them or giving an incorrect build. Currently, fac
50       only runs on linux systems, but on those systems it is incredibly
51       easy to use!
52     '';
53     homepage = "https://physics.oregonstate.edu/~roundyd/fac";
54     license = licenses.gpl2Plus;
55     platforms = platforms.unix;
56     maintainers = with maintainers; [ dpercy ];
57     mainProgram = "fac";
58   };