[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
09/10: gnu: Add ocaml-js-build-tools.
From: |
julien lepiller |
Subject: |
09/10: gnu: Add ocaml-js-build-tools. |
Date: |
Tue, 31 Jan 2017 20:36:13 +0000 (UTC) |
roptat pushed a commit to branch master
in repository guix.
commit f95ebba51634e27073d2c9bf09d0b6bda1eef737
Author: Julien Lepiller <address@hidden>
Date: Fri Jan 27 22:58:50 2017 +0100
gnu: Add ocaml-js-build-tools.
* gnu/packages/ocaml.scm (ocaml-js-build-tools): New variable.
---
gnu/packages/ocaml.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 2e00af0..271fbcd 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -66,6 +66,46 @@
(number->string file-number) "/" name "-" version
".tar.gz"))
+;; Janestreet packages are found in a similar way and all need the same patch.
+(define (janestreet-origin name version hash)
+ (origin (method url-fetch)
+ (uri (string-append "https://ocaml.janestreet.com/ocaml-core/"
+ (version-major+minor version) "/files/"
+ name "-" version ".tar.gz"))
+ (sha256 (base32 hash))
+ (modules '((guix build utils)))
+ (snippet
+ (let ((pattern (string-append "lib/" name)))
+ `(begin
+ ;; install.ml contains an invalid reference to the ppx file and
+ ;; propagates this error to the generated META file. It
+ ;; looks for it in the "lib" directory, but it is installed in
+ ;; "lib/ocaml/site-lib/package". This substitute does not
change
+ ;; this file for non ppx packages.
+ (substitute* "install.ml"
+ ((,pattern) (string-append "lib/ocaml/site-lib/" ,name)))
+ ;; The standard Makefile would try to install janestreet
modules
+ ;; in OCaml's directory in the store, which is read-only.
+ (substitute* "Makefile"
+ (("--prefix")
+ "--libdir $(LIBDIR) --prefix")))))))
+
+;; They also require almost the same set of arguments
+(define janestreet-arguments
+ `(#:use-make? #t
+ #:make-flags
+ (list (string-append "CONFIGUREFLAGS=--prefix "
+ (assoc-ref %outputs "out")
+ " --enable-tests")
+ (string-append "LIBDIR="
+ (assoc-ref %outputs "out")
+ "/lib/ocaml/site-lib")
+ ;; for ocaml-bin-prot, otherwise ignored
+ (string-append "OCAML_TOPLEVEL_PATH="
+ (assoc-ref %build-inputs "findlib")
+ "/lib/ocaml/site-lib"))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
+
(define-public ocaml
(package
(name "ocaml")
@@ -1942,3 +1982,25 @@ file (POSIX like) and filename.")
system in your OCaml projects. It helps to create standard entry points in
your
build system and allows external tools to analyse your project easily.")
(license license:lgpl2.1+))) ; with ocaml static compilation exception
+
+(define-public ocaml-js-build-tools
+ (package
+ (name "ocaml-js-build-tools")
+ (version "113.33.06")
+ (source (janestreet-origin "js-build-tools" version
+ "0r8z4fz8iy5y6hkdlkpwf6rk4qigcr3dzyv35585xgg2ahf12zy6"))
+ (native-inputs
+ `(("oasis" ,ocaml-oasis)
+ ("opam" ,opam)))
+ (build-system ocaml-build-system)
+ (arguments janestreet-arguments)
+ (home-page "https://github.com/janestreet/js-build-tools")
+ (synopsis "Collection of tools to help building Jane Street Packages")
+ (description "This package contains tools to help building Jane Street
+packages, but can be used for other purposes. It contains:
address@hidden
address@hidden an @command{oasis2opam-install} tool to produce a
@file{.install} file
+from the oasis build log
address@hidden a @code{js_build_tools} ocamlbuild plugin with various goodies.
address@hidden enumerate")
+ (license license:asl2.0)))
- branch master updated (59ae241 -> f5c8cf3), julien lepiller, 2017/01/31
- 05/10: gnu: Add ocaml-pcre., julien lepiller, 2017/01/31
- 06/10: gnu: Add ocaml-expect., julien lepiller, 2017/01/31
- 07/10: gnu: Add ocaml-fileutils., julien lepiller, 2017/01/31
- 09/10: gnu: Add ocaml-js-build-tools.,
julien lepiller <=
- 03/10: gnu: Add omake., julien lepiller, 2017/01/31
- 01/10: gnu: Add ocaml-base64., julien lepiller, 2017/01/31
- 08/10: gnu: Add ocaml-oasis., julien lepiller, 2017/01/31
- 10/10: gnu: Add ocaml-bin-prot., julien lepiller, 2017/01/31
- 02/10: gnu: Add ocamlify., julien lepiller, 2017/01/31
- 04/10: gnu: Add ocaml-batteries., julien lepiller, 2017/01/31