[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 09/10] gnu: Add ocaml-js-build-tools.
From: |
Marius Bakke |
Subject: |
Re: [PATCH 09/10] gnu: Add ocaml-js-build-tools. |
Date: |
Wed, 18 Jan 2017 23:21:07 +0100 |
User-agent: |
Notmuch/0.23.5 (https://notmuchmail.org) Emacs/25.1.1 (x86_64-unknown-linux-gnu) |
Julien Lepiller <address@hidden> writes:
> * 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 | 49
> ++++++++++++++++++++++
> .../patches/ocaml-janestreet-fix-libdir.patch | 36 ++++++++++++++++
> 3 files changed, 86 insertions(+)
> create mode 100644 gnu/packages/patches/ocaml-janestreet-fix-libdir.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5b919dd86..7b210c7b3 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -778,6 +778,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 35e0d081e..120095118 100644
> --- a/gnu/packages/ocaml.scm
> +++ b/gnu/packages/ocaml.scm
> @@ -66,6 +66,35 @@
> (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))
> + (patches (search-patches "ocaml-janestreet-fix-libdir.patch"))
> + (modules '((guix build utils)))
> + (snippet `(substitute* "install.ml"
> + (((string-append "lib/" ,name))
> + (string-append "lib/ocaml/site-lib/"
> ,name))))))
> +
> +;; 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")
> @@ -1927,3 +1956,23 @@ 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")
> + (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 packages contains tools to help building Jane Street
> +Packages. However most of it is general purpose. It contains:
The second sentence is difficult to parse. Maybe ", but can also be used
for other purposes."
> +
> +- an oasis2opam-install tool to produce a .install file from the oasis build
> log
> +- an js_build_tools ocamlbuild plugin with various goodies")
Please use @enumerate here too.
Hopefully someone else can chime in on the helper functions above, if it
works I'd say they are fine. LGTM!
> + (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
signature.asc
Description: PGP signature
- [PATCH 04/10] gnu: Add ocaml-batteries., (continued)
- [PATCH 04/10] gnu: Add ocaml-batteries., Julien Lepiller, 2017/01/18
- [PATCH 03/10] gnu: Add omake., Julien Lepiller, 2017/01/18
- [PATCH 06/10] gnu: Add ocaml-expect., Julien Lepiller, 2017/01/18
- [PATCH 05/10] gnu: Add ocaml-pcre., Julien Lepiller, 2017/01/18
- [PATCH 08/10] gnu: Add ocaml-oasis., Julien Lepiller, 2017/01/18
- [PATCH 07/10] gnu: Add ocaml-fileutils., Julien Lepiller, 2017/01/18
- [PATCH 10/10] gnu: Add ocaml-bin-prot., Julien Lepiller, 2017/01/18
- [PATCH 09/10] gnu: Add ocaml-js-build-tools., Julien Lepiller, 2017/01/18
- Re: [PATCH 09/10] gnu: Add ocaml-js-build-tools.,
Marius Bakke <=
- Re: [PATCH 00/10] ocaml patches, Marius Bakke, 2017/01/18
- [PATCH 00/10] ocaml patches, Julien Lepiller, 2017/01/31
- [PATCH 02/10] gnu: Add ocaml-ppx-core., Julien Lepiller, 2017/01/31
- [PATCH 01/10] gnu: Add ocaml-fieldslib., Julien Lepiller, 2017/01/31
- [PATCH 03/10] gnu: Add ocaml-ppx-optcomp., Julien Lepiller, 2017/01/31
- [PATCH 04/10] gnu: Add ocaml-ppx-driver., Julien Lepiller, 2017/01/31
- [PATCH 05/10] gnu: Add ocaml-cppo., Julien Lepiller, 2017/01/31
- [PATCH 06/10] gnu: Add ocaml-ppx-deriving., Julien Lepiller, 2017/01/31