diff --git a/pkgs/development/tools/ocaml/camlp5/5.15.nix b/pkgs/development/tools/ocaml/camlp5/5.15.nix new file mode 100644 index 00000000000..7247041cb1d --- /dev/null +++ b/pkgs/development/tools/ocaml/camlp5/5.15.nix @@ -0,0 +1,44 @@ +{stdenv, fetchurl, ocaml, transitional ? false}: + +let + ocaml_version = (builtins.parseDrvName ocaml.name).version; + pname = "camlp5"; + version = "5.15"; + webpage = http://pauillac.inria.fr/~ddr/camlp5/; + metafile = ./META; +in + +stdenv.mkDerivation { + + name = "${pname}${if transitional then "_transitional" else ""}-${version}"; + + src = fetchurl { + url = "${webpage}/distrib/src/${pname}-${version}.tgz"; + sha256 = "1sx5wlfpydqskm97gp7887p3avbl3vanlmrwj35wx5mbzj6kn9nq"; + }; + + buildInputs = [ ocaml ]; + + prefixKey = "-prefix "; + + preConfigure = "configureFlagsArray=(" + (if transitional then "--transitional" else "--strict") + + " --libdir $out/lib/ocaml/${ocaml_version}/site-lib)"; + + buildFlags = "world.opt"; + + postInstall = "cp ${metafile} $out/lib/ocaml/${ocaml_version}/site-lib/camlp5/META"; + + meta = { + description = "Preprocessor-pretty-printer for OCaml"; + longDescription = '' + Camlp5 is a preprocessor and pretty-printer for OCaml programs. + It also provides parsing and printing tools. + ''; + homepage = "${webpage}"; + license = "BSD"; + platforms = ocaml.meta.platforms; + maintainers = [ + stdenv.lib.maintainers.z77z + ]; + }; +} diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix index 7247041cb1d..315bca38f36 100644 --- a/pkgs/development/tools/ocaml/camlp5/default.nix +++ b/pkgs/development/tools/ocaml/camlp5/default.nix @@ -3,7 +3,7 @@ let ocaml_version = (builtins.parseDrvName ocaml.name).version; pname = "camlp5"; - version = "5.15"; + version = "6.02.3"; webpage = http://pauillac.inria.fr/~ddr/camlp5/; metafile = ./META; in @@ -14,9 +14,16 @@ stdenv.mkDerivation { src = fetchurl { url = "${webpage}/distrib/src/${pname}-${version}.tgz"; - sha256 = "1sx5wlfpydqskm97gp7887p3avbl3vanlmrwj35wx5mbzj6kn9nq"; + sha256 = "1z9bwh267117br0vlhirv9yy2niqp2n25zfnl14wg6kgg9bqx7rj"; }; + patches = fetchurl { + url = "${webpage}/distrib/src/patch-${version}-1"; + sha256 = "159qpvr07mnn72yqwx24c6mw7hs6bl77capsii7apg9dcxar8w7v"; + }; + + patchFlags = "-p 0"; + buildInputs = [ ocaml ]; prefixKey = "-prefix "; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2c715b650ac..dd577a0c472 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2342,12 +2342,22 @@ let camlidl = callPackage ../development/tools/ocaml/camlidl { }; - camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { }; + camlp5_5_strict = callPackage ../development/tools/ocaml/camlp5/5.15.nix { }; - camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 { + camlp5_5_transitional = callPackage ../development/tools/ocaml/camlp5/5.15.nix { transitional = true; }; + camlp5_6_strict = callPackage ../development/tools/ocaml/camlp5 { }; + + camlp5_6_transitional = callPackage ../development/tools/ocaml/camlp5 { + transitional = true; + }; + + camlp5_strict = camlp5_6_strict; + + camlp5_transitional = camlp5_6_transitional; + camlzip = callPackage ../development/ocaml-modules/camlzip { }; camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { }; @@ -2398,7 +2408,7 @@ let ounit = callPackage ../development/ocaml-modules/ounit { }; ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 { - camlp5 = camlp5_transitional; + camlp5 = camlp5_5_transitional; }; }; @@ -8206,7 +8216,7 @@ let coq = callPackage ../applications/science/logic/coq { inherit (ocamlPackages) findlib lablgtk; - camlp5 = ocamlPackages.camlp5_transitional; + camlp5 = ocamlPackages.camlp5_5_transitional; }; cvc3 = callPackage ../applications/science/logic/cvc3 {}; @@ -8253,7 +8263,7 @@ let spass = callPackage ../applications/science/logic/spass {}; ssreflect = callPackage ../applications/science/logic/ssreflect { - camlp5 = ocamlPackages.camlp5_transitional; + camlp5 = ocamlPackages.camlp5_5_transitional; }; tptp = callPackage ../applications/science/logic/tptp {};