about summary refs log tree commit diff
path: root/pkgs/applications/science/logic/nusmv/default.nix
blob: d7ecbc7cd887420f78ce9dfe25fb3ed9f286e5fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{ stdenv
, lib
, fetchurl
, autoPatchelfHook
}:

stdenv.mkDerivation rec {
  pname = "NuSMV";
  version = "2.6.0";

  src = with stdenv; fetchurl (
    if isx86_64 && isLinux then {
      url = "https://nusmv.fbk.eu/distrib/NuSMV-${version}-linux64.tar.gz";
      sha256 = "1370x2vwjndv9ham5q399nn84hvhm1gj1k7pq576qmh4pi12xc8i";
    } else if isx86_32 && isLinux then {
      url = "https://nusmv.fbk.eu/distrib/NuSMV-${version}-linux32.tar.gz";
      sha256 = "1qf41czwbqxlrmv0rv2daxgz2hljza5xks85sx3dhwpjy2iav9jb";
    } else throw "only linux x86_64 and x86_32 are currently supported") ;


  nativeBuildInputs = [ autoPatchelfHook ];

  installPhase = ''
    install -m755 -D bin/NuSMV $out/bin/NuSMV
    install -m755 -D bin/ltl2smv $out/bin/ltl2smv
    cp -r include $out/include
    cp -r share $out/share
  '';

  meta = with lib; {
    description = "New symbolic model checker for the analysis of synchronous finite-state and infinite-state systems";
    homepage = "https://nuxmv.fbk.eu/pmwiki.php";
    maintainers = with maintainers; [ mgttlinger ];
    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
    platforms = platforms.linux;
  };
}