Julien Lepiller <jul...@lepiller.eu> skribis: > I was replying to the correct message, but not with the correct patch.
OK. :-) > From 96a8ec5f4ad68c14f49335bf58d27ef21c2419f7 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <jul...@lepiller.eu> > Date: Fri, 27 Jan 2017 22:58:50 +0100 > Subject: [PATCH 1/2] gnu: Add ocaml-js-build-tools. > > * 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): Add it. [...] > + (snippet > + `(let ((pattern (string-append "lib/" ,name))) > + ;; 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")))))) For ‘pattern’ to be a literal in the snippet, it needs to be moved it outside of the quasiquote: (let ((pattern (string-append "lib/" name))) `(begin (substitute* foo ((,pattern) …)))) Also could you adjust the indentation of ‘substitute*’? OK with these changes. Thank you! Ludo’.