···1+{ lib, stdenv, fetchFromGitHub
2+, drat-trim, p7zip
3+}:
4+5+stdenv.mkDerivation rec {
6+ pname = "kissat";
7+ version = "2.0.1";
8+9+ src = fetchFromGitHub {
10+ owner = "arminbiere";
11+ repo = "kissat";
12+ # https://github.com/arminbiere/kissat/issues/18
13+ rev = "abfa45fb782fa3b7c6e2eb6b939febe74d7270b7";
14+ sha256 = "06pbmkjxgf2idhsrd1yzvbxr2wf8l06pjb38bzbygm6n9ami89b8";
15+ };
16+17+ outputs = [ "out" "dev" "lib" ];
18+19+ checkInputs = [ drat-trim p7zip ];
20+ doCheck = true;
21+22+ # 'make test' assumes that /etc/passwd is not writable.
23+ patches = [ ./writable-passwd-is-ok.patch ];
24+25+ # the configure script is not generated by autotools and does not accept the
26+ # arguments that the default configurePhase passes like --prefix and --libdir
27+ dontAddPrefix = true;
28+ setOutputFlags = false;
29+30+ installPhase = ''
31+ runHook preInstall
32+33+ install -Dm0755 build/kissat "$out/bin/kissat"
34+ install -Dm0644 src/kissat.h "$dev/include/kissat.h"
35+ install -Dm0644 build/libkissat.a "$lib/lib/libkissat.a"
36+ mkdir -p "$out/share/doc/kissat/"
37+ install -Dm0644 {LICEN?E,README*,VERSION} "$out/share/doc/kissat/"
38+39+ runHook postInstall
40+ '';
41+42+ meta = with lib; {
43+ description = "A 'keep it simple and clean bare metal SAT solver' written in C";
44+ longDescription = ''
45+ Kissat is a "keep it simple and clean bare metal SAT solver" written in C.
46+ It is a port of CaDiCaL back to C with improved data structures,
47+ better scheduling of inprocessing and optimized algorithms and implementation.
48+ '';
49+ maintainers = with maintainers; [ shnarazk ];
50+ platforms = platforms.unix;
51+ license = licenses.mit;
52+ homepage = "http://fmv.jku.at/kissat";
53+ };
54+}