diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-12-12 00:47:14 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-12-12 00:47:14 +0000 |
commit | f63059dd0517bd144f9f8c4a84c6181540d8c459 (patch) | |
tree | b26d4f00d7d5a6022293189aaa4f2ba77268030e /pkgs/development | |
parent | f62924477e0505d2ef5a47c76ee32b408027b66a (diff) | |
download | nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar.gz nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar.bz2 nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar.lz nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar.xz nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.tar.zst nixlib-f63059dd0517bd144f9f8c4a84c6181540d8c459.zip |
Add Coccinelle, a semantic patch interpreter for C.
svn path=/nixpkgs/trunk/; revision=18909
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/tools/misc/coccinelle/default.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix new file mode 100644 index 000000000000..811a289baed5 --- /dev/null +++ b/pkgs/development/tools/misc/coccinelle/default.nix @@ -0,0 +1,54 @@ +{ fetchurl, stdenv, ocaml, perl, python, ncurses, makeWrapper }: + +stdenv.mkDerivation rec { + name = "coccinelle-0.1.11rc1"; + + src = fetchurl { + url = "http://coccinelle.lip6.fr/distrib/${name}.tgz"; + sha256 = "1rdsv3qcl6zcx3d3zd4cl9d79hdgaw19llxbflkfxipvkg3vk59x"; + }; + + buildInputs = [ ocaml perl python ncurses makeWrapper ]; + + preConfigure = + '' sed -i "configure" -e's|/usr/bin/perl|${perl}/bin/perl|g' + sed -i "globals/config.ml.in" \ + -e"s|/usr/local/share|$out/share|g" + ''; + + buildPhase = "make depend && make all"; + + # Most of the test suite seems to fail (?!). + doCheck = false; + checkPhase = "make test"; + + postInstall = + '' wrapProgram "$out/bin/spatch" \ + --prefix "LD_LIBRARY_PATH" ":" "$out/lib" \ + --prefix "PYTHONPATH" ":" "$out/share/coccinelle/python" + ''; + + meta = { + description = "Coccinelle, a program to apply C code semantic patches"; + + longDescription = + '' Coccinelle is a program matching and transformation engine which + provides the language SmPL (Semantic Patch Language) for specifying + desired matches and transformations in C code. Coccinelle was + initially targeted towards performing collateral evolutions in + Linux. Such evolutions comprise the changes that are needed in + client code in response to evolutions in library APIs, and may + include modifications such as renaming a function, adding a function + argument whose value is somehow context-dependent, and reorganizing + a data structure. Beyond collateral evolutions, Coccinelle is + successfully used (by us and others) for finding and fixing bugs in + systems code. + ''; + + homepage = http://coccinelle.lip6.fr/; + license = "GPLv2"; + + maintainers = [ stdenv.lib.maintainers.ludo ]; + platforms = stdenv.lib.platforms.gnu; # arbitrary choice + }; +} |