diff --git a/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch b/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch index 1a4a6a225a49..4fc887c070d7 100644 --- a/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch +++ b/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch @@ -9,6 +9,15 @@ STDBIN = $(shell dirname `which ocamlfind`) ifndef PREFIX PREFIX = $(shell dirname $(STDBIN)) +@@ -15,7 +17,7 @@ + endif + export BINDIR + +-PACKS = unix str ++PACKS = unix str findlib + PP = camlp4o -I . -parser pa_tryfinally.cmo -parser pa_opt.cmo + export PP + @@ -36,11 +38,11 @@ common: version.ml @@ -23,3 +32,39 @@ cp pa_tryfinally310.cmo pa_tryfinally.cmo && \ cp pa_tryfinally310.cmi pa_tryfinally.cmi +--- a/main.ml 2014-11-08 09:05:12.516401313 +0000 ++++ b/main.ml 2014-11-08 09:09:59.801311230 +0000 +@@ -250,9 +250,15 @@ + Sys.getcwd ()) + | `File script_name -> "", get_dir script_name in + ++ let findlibdir = ++ Filename.( ++ concat (Findlib.package_directory "findlib") parent_dir_name ++ ) in ++ + let file, oc = Filename.open_temp_file "meta" ".ml" in + fprintf oc "\ + #%i %S;; ++#directory \"%s\";; + #use \"topfind\";; + #require \"ocamlscript\";; + Ocamlscript.Common.verbose := %s;; +@@ -261,7 +267,7 @@ + open Ocamlscript;; + open Utils;; + #%i %S;;\n" +- pos source verbose script_dir extra_args trash pos source; ++ pos source findlibdir verbose script_dir extra_args trash pos source; + + List.iter (output_line oc) lines; + +@@ -544,6 +550,7 @@ + exit compilation_status + + let _ = ++ Findlib.init (); + try main () + with Failure s -> + eprintf "ocamlscript: %s\n%!" s; + diff --git a/pkgs/development/tools/ocaml/ocamlscript/default.nix b/pkgs/development/tools/ocaml/ocamlscript/default.nix index 50b9c496abaf..1b37c21fdfa7 100644 --- a/pkgs/development/tools/ocaml/ocamlscript/default.nix +++ b/pkgs/development/tools/ocaml/ocamlscript/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation { sha256 = "1v1i24gijxwris8w4hi95r9swld6dm7jbry0zp72767a3g5ivlrd"; }; - buildInputs = [ ocaml findlib camlp4 ]; + propagatedBuildInputs = [ ocaml findlib camlp4 ]; patches = [ ./Makefile.patch ];