[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 46/96] gnu: Add ocaml-js-build-tools
From: |
Julien Lepiller |
Subject: |
[PATCH 46/96] gnu: Add ocaml-js-build-tools |
Date: |
Tue, 3 Jan 2017 20:11:27 +0100 |
* gnu/packages/ocaml.scm (ocaml-js-build-tools): New variable.
* gnu/packages/patches/ocaml-janestreet-fix-libdir.patch: New file.
* gnu/local.mk (dist_patch_DATA): New patch.
---
gnu/local.mk | 1 +
gnu/packages/ocaml.scm | 43 ++++++++++++++++++++++
.../patches/ocaml-janestreet-fix-libdir.patch | 36 ++++++++++++++++++
3 files changed, 80 insertions(+)
create mode 100644 gnu/packages/patches/ocaml-janestreet-fix-libdir.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index ba38f9d43..0b879c367 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -755,6 +755,7 @@ dist_patch_DATA =
\
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-findlib-make-install.patch \
+ %D%/packages/patches/ocaml-janestreet-fix-libdir.patch \
%D%/packages/patches/ocaml-omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openexr-missing-samples.patch \
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 158b99ea2..e30c3a6ef 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -69,6 +69,30 @@
".tar.gz"))
(sha256 (base32 hash))))
+;; 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))
+ (patches (search-patches "ocaml-janestreet-fix-libdir.patch"))))
+
+;; 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")
@@ -1785,3 +1809,22 @@ 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 an exception
+
+(define-public ocaml-js-build-tools
+ (package
+ (name "ocaml-js-build-tools")
+ (version "113.33.06")
+ (home-page "https://github.com/janestreet/js-build-tools/")
+ (source (janestreet-origin "js-build-tools" version
+ "0r8z4fz8iy5y6hkdlkpwf6rk4qigcr3dzyv35585xgg2ahf12zy6"))
+ (native-inputs `(("oasis" ,ocaml-oasis)
+ ("opam" ,opam)))
+ (build-system ocaml-build-system)
+ (arguments janestreet-arguments)
+ (synopsis "Collection of tools to help building Jane Street Packages")
+ (description "This packages contains tools to help building Jane Street
+Packages. However most of it is general purpose. It contains:
+
+- an oasis2opam-install tool to produce a .install file from the oasis build
log
+- an js_build_tools ocamlbuild plugin with various goodies")
+ (license license:asl2.0)))
diff --git a/gnu/packages/patches/ocaml-janestreet-fix-libdir.patch
b/gnu/packages/patches/ocaml-janestreet-fix-libdir.patch
new file mode 100644
index 000000000..07cabe3c4
--- /dev/null
+++ b/gnu/packages/patches/ocaml-janestreet-fix-libdir.patch
@@ -0,0 +1,36 @@
+diff -aur package.pristine/Makefile package.new/Makefile
+--- package.pristine/Makefile 2016-02-06 01:55:14.650150309 +0100
++++ package.new/Makefile 2016-02-06 01:57:56.012174364 +0100
+@@ -29,26 +29,26 @@
+ ocaml -I js-utils js-utils/gen_install.ml
+
+ install: $(NAME).install
+- opam-installer -i --prefix $(PREFIX) $(NAME).install
++ opam-installer -i --prefix $(PREFIX) --libdir $(LIBDIR) $(NAME).install
+
+ uninstall: $(NAME).install
+- opam-installer -u --prefix $(PREFIX) $(NAME).install
++ opam-installer -u --prefix $(PREFIX) --libdir $(LIBDIR) $(NAME).install
+
+ reinstall: $(NAME).install
+- opam-installer -u --prefix $(PREFIX) $(NAME).install &> /dev/null ||
true
+- opam-installer -i --prefix $(PREFIX) $(NAME).install
++ opam-installer -u --prefix $(PREFIX) --libdir $(LIBDIR) $(NAME).install
&> /dev/null || true
++ opam-installer -i --prefix $(PREFIX) --libdir $(LIBDIR) $(NAME).install
+
+ bin.tar.gz: $(NAME).install
+ rm -rf _install
+ mkdir _install
+- opam-installer -i --prefix _install $(NAME).install
++ opam-installer -i --prefix _install --libdir $(LIBDIR) $(NAME).install
+ tar czf bin.tar.gz -C _install .
+ rm -rf _install
+
+ bin.lzo: $(NAME).install
+ rm -rf _install
+ mkdir _install
+- opam-installer -i --prefix _install $(NAME).install
++ opam-installer -i --prefix _install --libdir $(LIBDIR) $(NAME).install
+ cd _install && lzop -1 -P -o ../bin.lzo `find . -type f`
+ rm -rf _install
+
--
2.11.0
- [PATCH 37/96] gnu: Add ocaml-ocurl, (continued)
- [PATCH 37/96] gnu: Add ocaml-ocurl, Julien Lepiller, 2017/01/03
- [PATCH 38/96] gnu: Add ocaml-base64, Julien Lepiller, 2017/01/03
- [PATCH 39/96] gnu: Add ocamlify, Julien Lepiller, 2017/01/03
- [PATCH 41/96] gnu: Add ocaml-batteries, Julien Lepiller, 2017/01/03
- [PATCH 40/96] gnu: Add omake, Julien Lepiller, 2017/01/03
- [PATCH 42/96] gnu: Add ocaml-pcre, Julien Lepiller, 2017/01/03
- [PATCH 43/96] gnu: Add ocaml-expect, Julien Lepiller, 2017/01/03
- [PATCH 44/96] gnu: Add ocaml-fileutils, Julien Lepiller, 2017/01/03
- [PATCH 45/96] gnu: Add ocaml-oasis, Julien Lepiller, 2017/01/03
- [PATCH 46/96] gnu: Add ocaml-js-build-tools,
Julien Lepiller <=
- [PATCH 47/96] gnu: Add ocaml-bin-prot, Julien Lepiller, 2017/01/03
- [PATCH 48/96] gnu: Add ocaml-fieldslib, Julien Lepiller, 2017/01/03
- [PATCH 49/96] gnu: Add ocaml-ppx-core, Julien Lepiller, 2017/01/03
- [PATCH 50/96] gnu: Add ocaml-ppx-optcomp, Julien Lepiller, 2017/01/03
- [PATCH 51/96] gnu: Add ocaml-ppx-driver, Julien Lepiller, 2017/01/03
- [PATCH 52/96] gnu: Add ocaml-cppo, Julien Lepiller, 2017/01/03
- [PATCH 53/96] gnu: Add ocaml-ppx-deriving, Julien Lepiller, 2017/01/03
- [PATCH 54/96] gnu: Add ocaml-ppx-type-conv, Julien Lepiller, 2017/01/03
- [PATCH 55/96] gnu: Add ocaml-ppx-inline-test, Julien Lepiller, 2017/01/03
- [PATCH 56/96] gnu: Add ocaml-ppx-bench, Julien Lepiller, 2017/01/03