From 032f6c6f936589f3020ffc303dea4c566bfd281f Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Fri, 4 Aug 2023 18:25:08 +0200 Subject: [PATCH] =?UTF-8?q?ocamlPackages.camlp5:=207.14=20=E2=86=92=208.00?= =?UTF-8?q?.05?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/ocaml/camlp5/default.nix | 56 ++++++++++++++----- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix index 9d81c46e20c9..a09f226b3f13 100644 --- a/pkgs/development/tools/ocaml/camlp5/default.nix +++ b/pkgs/development/tools/ocaml/camlp5/default.nix @@ -1,31 +1,57 @@ -{ lib, stdenv, fetchFromGitHub, ocaml, perl }: +{ lib, stdenv, fetchFromGitHub, ocaml, findlib, perl, makeWrapper +, rresult, bos, ocaml_pcre, re, camlp-streams +}: if lib.versionOlder ocaml.version "4.02" -|| lib.versionOlder "4.13" ocaml.version then throw "camlp5 is not available for OCaml ${ocaml.version}" else -stdenv.mkDerivation rec { +let params = + if lib.versionAtLeast ocaml.version "4.12" + then rec { + version = "8.00.05"; - pname = "camlp5"; - version = "7.14"; + src = fetchFromGitHub { + owner = "camlp5"; + repo = "camlp5"; + rev = version; + hash = "sha256-Havr3RB6iUP7QzV+LUGwMHtGzmRdS5RqYsqJ0N5w6gE="; + }; - src = fetchFromGitHub { - owner = "camlp5"; - repo = "camlp5"; - rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}"; - sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w"; - }; + nativeBuildInputs = [ makeWrapper ocaml findlib perl ]; + buildInputs = [ bos ocaml_pcre re rresult ]; + propagatedBuildInputs = [ camlp-streams ]; + + postFixup = '' + for p in camlp5 camlp5o camlp5r camlp5sch mkcamlp5 ocpp5 + do + wrapProgram $out/bin/$p \ + --suffix CAML_LD_LIBRARY_PATH : ${ocaml_pcre}/lib/ocaml/${ocaml.version}/site-lib/stublibs + done + ''; + } else rec { + version = "7.14"; + src = fetchFromGitHub { + owner = "camlp5"; + repo = "camlp5"; + rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}"; + sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w"; + }; + nativeBuildInputs = [ ocaml perl ]; + } +; in + +stdenv.mkDerivation (params // { + + pname = "ocaml${ocaml.version}-camlp5"; strictDeps = true; - nativeBuildInputs = [ ocaml perl ]; - prefixKey = "-prefix "; preConfigure = '' configureFlagsArray=(--strict --libdir $out/lib/ocaml/${ocaml.version}/site-lib) - patchShebangs ./config/find_stuffversion.pl + patchShebangs ./config/find_stuffversion.pl etc/META.pl ''; buildFlags = [ "world.opt" ]; @@ -45,4 +71,4 @@ stdenv.mkDerivation rec { maggesi vbgl ]; }; -} +})