Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / tools / analysis / spin / default.nix
blob6c0f359fff5d6c3b0733c0033d07e52ecc5af0b9
1 { stdenv, lib, fetchFromGitHub, makeWrapper, bison, gcc, tk, swarm, graphviz }:
3 let
4   binPath = lib.makeBinPath [ gcc graphviz tk swarm ];
5 in
7 stdenv.mkDerivation rec {
8   pname = "spin";
9   version = "6.5.2";
11   src = fetchFromGitHub {
12     owner = "nimble-code";
13     repo = "Spin";
14     rev = "version-${version}";
15     sha256 = "sha256-drvQXfDZCZRycBZt/VNngy8zs4XVJg+d1b4dQXVcyFU=";
16   };
18   nativeBuildInputs = [ makeWrapper ];
19   buildInputs = [ bison ];
21   sourceRoot = "${src.name}/Src";
23   preBuild = ''
24     mkdir -p $out/bin
25     mkdir -p $out/share/man/man1
26   '';
28   enableParallelBuilding = true;
29   makeFlags = [ "DESTDIR=$(out)" ];
31   postInstall = ''
32     wrapProgram $out/bin/spin --prefix PATH : ${binPath}
34     mkdir -p $out/share/spin
35     cp $src/optional_gui/ispin.tcl $out/share/spin
36     makeWrapper $out/share/spin/ispin.tcl $out/bin/ispin \
37       --prefix PATH : $out/bin:${binPath}
38   '';
40   meta = with lib; {
41     description = "Formal verification tool for distributed software systems";
42     homepage = "https://spinroot.com/";
43     license = licenses.bsd3;
44     platforms = platforms.unix;
45     maintainers = with maintainers; [ pSub siraben ];
46   };