From: Marius Bakke <mbakke@fastmail.com>
To: Julien Lepiller <julien@lepiller.eu>, guix-devel@gnu.org
Subject: Re: [PATCH 09/10] gnu: Add ocaml-js-build-tools.
Date: Wed, 18 Jan 2017 23:21:07 +0100 [thread overview]
Message-ID: <87shog6mcs.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <20170118202802.5073-10-julien@lepiller.eu>
[-- Attachment #1: Type: text/plain, Size: 6304 bytes --]
Julien Lepiller <julien@lepiller.eu> 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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
next prev parent reply other threads:[~2017-01-18 22:21 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-18 20:27 [PATCH 00/10] ocaml patches Julien Lepiller
2017-01-18 20:27 ` [PATCH 01/10] gnu: Add ocaml-base64 Julien Lepiller
2017-01-18 20:27 ` [PATCH 02/10] gnu: Add ocamlify Julien Lepiller
2017-01-18 20:27 ` [PATCH 03/10] gnu: Add omake Julien Lepiller
2017-01-18 22:00 ` Marius Bakke
2017-01-18 20:27 ` [PATCH 04/10] gnu: Add ocaml-batteries Julien Lepiller
2017-01-18 20:27 ` [PATCH 05/10] gnu: Add ocaml-pcre Julien Lepiller
2017-01-18 20:27 ` [PATCH 06/10] gnu: Add ocaml-expect Julien Lepiller
2017-01-18 20:27 ` [PATCH 07/10] gnu: Add ocaml-fileutils Julien Lepiller
2017-01-18 20:28 ` [PATCH 08/10] gnu: Add ocaml-oasis Julien Lepiller
2017-01-18 22:14 ` Marius Bakke
2017-01-18 20:28 ` [PATCH 09/10] gnu: Add ocaml-js-build-tools Julien Lepiller
2017-01-18 22:21 ` Marius Bakke [this message]
2017-01-20 13:28 ` Ludovic Courtès
2017-01-18 20:28 ` [PATCH 10/10] gnu: Add ocaml-bin-prot Julien Lepiller
2017-01-18 22:27 ` [PATCH 00/10] ocaml patches Marius Bakke
2017-01-19 8:56 ` Julien Lepiller
-- strict thread matches above, loose matches on Subject: below --
2017-01-27 22:12 [PATCH 00/10] ocaml patches v2 Julien Lepiller
2017-01-27 22:12 ` [PATCH 09/10] gnu: Add ocaml-js-build-tools Julien Lepiller
2017-01-30 9:19 ` Ludovic Courtès
2017-01-30 9:22 ` Ludovic Courtès
2017-01-30 21:08 ` Julien Lepiller
2017-01-30 22:23 ` Ludovic Courtès
2017-01-30 22:48 ` Julien Lepiller
2017-01-31 9:22 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87shog6mcs.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me \
--to=mbakke@fastmail.com \
--cc=guix-devel@gnu.org \
--cc=julien@lepiller.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.