1{
2 fetchurl,
3 lib,
4 stdenv,
5 flex,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "splint";
10 version = "3.1.2";
11
12 src = fetchurl {
13 url = "https://www.splint.org/downloads/${pname}-${version}.src.tgz";
14 sha256 = "02pv8kscsrkrzip9r08pfs9xs98q74c52mlxzbii6cv6vx1vd3f7";
15 };
16
17 patches = [ ./tmpdir.patch ] ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin.patch;
18
19 buildInputs = [ flex ];
20
21 doCheck = true;
22
23 meta = with lib; {
24 homepage = "http://www.splint.org/";
25 description = "Annotation-assisted lightweight static analyzer for C";
26 mainProgram = "splint";
27
28 longDescription = ''
29 Splint is a tool for statically checking C programs for security
30 vulnerabilities and coding mistakes. With minimal effort, Splint
31 can be used as a better lint. If additional effort is invested
32 adding annotations to programs, Splint can perform stronger
33 checking than can be done by any standard lint.
34 '';
35
36 license = licenses.gpl2Plus;
37 platforms = platforms.unix;
38 };
39}