summary refs log tree commit diff
path: root/pkgs/development/tools/ocaml/ocamlscript
diff options
context:
space:
mode:
authorVincent Laporte <Vincent.Laporte@gmail.com>2014-11-08 14:26:43 +0000
committerVincent Laporte <Vincent.Laporte@gmail.com>2014-11-08 14:28:38 +0000
commitaa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f (patch)
tree8494743eea531e3075700f1701e2382453431cf0 /pkgs/development/tools/ocaml/ocamlscript
parentcf4a976ced81749a46cf848315fde12ccb79dc2c (diff)
downloadnixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar.gz
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar.bz2
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar.lz
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar.xz
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.tar.zst
nixpkgs-aa2fd47e9dee4e36e4bd494601e0ae5d9b40a78f.zip
Fixes ocamlscript
Diffstat (limited to 'pkgs/development/tools/ocaml/ocamlscript')
-rw-r--r--pkgs/development/tools/ocaml/ocamlscript/Makefile.patch45
-rw-r--r--pkgs/development/tools/ocaml/ocamlscript/default.nix2
2 files changed, 46 insertions, 1 deletions
diff --git a/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch b/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch
index 1a4a6a225a4..4fc887c070d 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 50b9c496aba..1b37c21fdfa 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 ];