Add Coccinelle, a semantic patch interpreter for C.
svn path=/nixpkgs/trunk/; revision=18909
This commit is contained in:
parent
f62924477e
commit
f63059dd05
2 changed files with 58 additions and 0 deletions
54
pkgs/development/tools/misc/coccinelle/default.nix
Normal file
54
pkgs/development/tools/misc/coccinelle/default.nix
Normal file
|
@ -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
|
||||
};
|
||||
}
|
|
@ -2652,6 +2652,10 @@ let
|
|||
inherit fetchurl stdenv replace ncurses;
|
||||
};
|
||||
|
||||
coccinelle = import ../development/tools/misc/coccinelle {
|
||||
inherit fetchurl stdenv perl python ocaml ncurses makeWrapper;
|
||||
};
|
||||
|
||||
cproto = import ../development/tools/misc/cproto {
|
||||
inherit fetchurl stdenv flex bison;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue