2012-04-12 17:30:02 +02:00
|
|
|
{ fetchurl, stdenv, python, ncurses, ocamlPackages, makeWrapper }:
|
2009-12-12 01:47:14 +01:00
|
|
|
|
2012-04-09 11:42:20 +02:00
|
|
|
let
|
|
|
|
|
|
|
|
name = "coccinelle-1.0.0-rc12";
|
|
|
|
sha256 = "03b8930a53623ec79dc2486e9b6a569e373958cf46074c5f1d0028c70708498d";
|
|
|
|
|
|
|
|
in stdenv.mkDerivation {
|
|
|
|
inherit name;
|
2009-12-12 01:47:14 +01:00
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "http://coccinelle.lip6.fr/distrib/${name}.tgz";
|
2012-04-09 11:42:20 +02:00
|
|
|
inherit sha256;
|
2009-12-12 01:47:14 +01:00
|
|
|
};
|
|
|
|
|
2012-04-09 11:42:20 +02:00
|
|
|
buildInputs = with ocamlPackages; [
|
|
|
|
ocaml findlib menhir
|
|
|
|
ocaml_pcre ocaml_sexplib pycaml
|
2012-04-12 17:30:02 +02:00
|
|
|
python ncurses makeWrapper
|
2012-04-09 11:42:20 +02:00
|
|
|
];
|
2012-02-17 00:55:46 +01:00
|
|
|
|
2012-04-09 11:42:20 +02:00
|
|
|
configureFlagsArray = [ "--enable-release" ];
|
2009-12-12 01:47:14 +01:00
|
|
|
|
2012-04-12 17:30:02 +02:00
|
|
|
postInstall =
|
|
|
|
# On non-NixOS systems, Coccinelle would end up looking up Python modules
|
|
|
|
# in the wrong directory.
|
|
|
|
'' for p in "$out/bin/"*
|
|
|
|
do
|
|
|
|
wrapProgram "$p" \
|
|
|
|
--prefix "PYTHONPATH" ":" "${python}/lib/python${python.majorVersion}"
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
|
2009-12-12 01:47:14 +01:00
|
|
|
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
|
|
|
|
};
|
|
|
|
}
|