diff options
author | Ludovic Courtès <ludo@gnu.org> | 2008-07-11 09:13:34 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2008-07-11 09:13:34 +0000 |
commit | 57030a28aa48dcd8ee76ad5f772d6f2802155b60 (patch) | |
tree | 83da0fe2d369cd4fcc8f8f543a479f5aa33cab05 /pkgs/development/tools/analysis/splint | |
parent | bb72d9080500f418630f96ee7ed5c437a5704f8f (diff) |
Add Splint, a static code analyzer for C.
svn path=/nixpkgs/trunk/; revision=12343
Diffstat (limited to 'pkgs/development/tools/analysis/splint')
-rw-r--r-- | pkgs/development/tools/analysis/splint/default.nix | 31 | ||||
-rw-r--r-- | pkgs/development/tools/analysis/splint/tmpdir.patch | 16 |
2 files changed, 47 insertions, 0 deletions
diff --git a/pkgs/development/tools/analysis/splint/default.nix b/pkgs/development/tools/analysis/splint/default.nix new file mode 100644 index 0000000000000..cb804b9e6b0d1 --- /dev/null +++ b/pkgs/development/tools/analysis/splint/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, flex }: + +stdenv.mkDerivation rec { + name = "splint-3.1.2"; + + src = fetchurl { + url = "http://www.splint.org/downloads/${name}.src.tgz"; + sha256 = "02pv8kscsrkrzip9r08pfs9xs98q74c52mlxzbii6cv6vx1vd3f7"; + }; + + patches = [ ./tmpdir.patch ]; + + buildInputs = [ flex ]; + + doCheck = true; + + meta = { + homepage = http://splint.org/; + description = "Splint, an annotation-assisted lightweight static analyzer for C"; + + longDescription = '' + Splint is a tool for statically checking C programs for security + vulnerabilities and coding mistakes. With minimal effort, Splint + can be used as a better lint. If additional effort is invested + adding annotations to programs, Splint can perform stronger + checking than can be done by any standard lint. + ''; + + license = "GPLv2+"; + }; +} \ No newline at end of file diff --git a/pkgs/development/tools/analysis/splint/tmpdir.patch b/pkgs/development/tools/analysis/splint/tmpdir.patch new file mode 100644 index 0000000000000..01402ce943bc7 --- /dev/null +++ b/pkgs/development/tools/analysis/splint/tmpdir.patch @@ -0,0 +1,16 @@ +Have Splint honor $TMPDIR. + +--- splint-3.1.2/src/context.c 2004-07-31 21:04:26.000000000 +0200 ++++ splint-3.1.2/src/context.c 2008-07-11 10:55:16.000000000 +0200 +@@ -801,7 +801,10 @@ context_resetAllFlags (void) + val = cstring_makeLiteral (env != NULL ? env : DEFAULT_TMPDIR); + } + # else +- val = cstring_makeLiteral (DEFAULT_TMPDIR); ++ { ++ char *env = getenv ("TMPDIR"); ++ val = cstring_makeLiteral (env != NULL ? env : DEFAULT_TMPDIR); ++ } + # endif /* !defined(OS2) && !defined(MSDOS) */ + + break; |