[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ocaml-stdlib-shims: setting paths for a Coq package
From: |
Julien Lepiller |
Subject: |
Re: ocaml-stdlib-shims: setting paths for a Coq package |
Date: |
Sun, 03 Sep 2023 18:02:29 +0200 |
User-agent: |
K-9 Mail for Android |
Le 2 septembre 2023 20:52:21 GMT+02:00, Garek Dyszel <garekdyszel@disroot.org>
a écrit :
>Hi Guix,
>
>While trying to package coq-elpi, one finds that Findlib is unable to
>find ocaml-stdlib-shims. The problem persists even if ocaml-stdlib-shims
>is located in the inputs and propagated-inputs fields.
>
>Trying to set OCAMLLIB using the following doesn't seem to work.
>(string-append "OCAMLLIB=$OCAMLLIB:"
> #$(this-package-input "ocaml-stdlib-shims"))
>
>Which environment variable should we be setting so that
>ocaml-stdlib-shims can be picked up by Coq?
>
>I can include the whole package file from which this question is
>originating if it would help, but there are about 20 packages in there;
>I don't want to force anybody to read it unless we really have to :)
>
>Garek
>
>
>Make flags for coq-elpi
>--8<---------------cut here---------------start------------->8---
>;; Most of the package definition omitted...
>(arguments ;;...
>`(#:make-flags ,#~(list (string-append "COQBIN="
> #$(this-package-input "coq-core")
> "/bin/")
> (string-append "ELPIDIR="
> #$(this-package-input "ocaml-elpi")
> "/lib/ocaml/site-lib/elpi")
> (string-append "COQLIBINSTALL="
> #$output
> "/lib/coq/user-contrib")
> (string-append "COQMF_COQLIB="
> #$output
> "/lib/ocaml/site-lib/coq")
> (string-append "OCAMLLIB=$OCAMLLIB:"
> #$(this-package-input
> "ocaml-stdlib-shims"))
> (string-append "COQPLUGININSTALL="
> #$output
> "/lib/ocaml/site-lib")
> "OCAMLWARN=")
> ;;...
> ))
>--8<---------------cut here---------------end--------------->8---
>
>Adjusted arguments for ocaml-stdlib-shims (adding the phase install-meta
>doesn't seem to fix the problem)
>--8<---------------cut here---------------start------------->8---
>(define-public ocaml-stdlib-shims
> (package
> (name "ocaml-stdlib-shims")
> (version "0.3.0")
> (source (origin
> (method git-fetch)
> (uri (git-reference
> (url "https://github.com/ocaml/stdlib-shims")
> (commit version)))
> (file-name (git-file-name name version))
> (sha256
> (base32
> "0gmg8w67j3ww17llk7hl4dx0vq7p50rn5s4ib9sy984k543rz59h"))))
> (build-system dune-build-system)
> (arguments
> `(#:phases
> (modify-phases %standard-phases
> (delete 'configure)
> (add-after 'install 'install-meta
> (lambda* (#:key outputs #:allow-other-keys)
> (let ((out (assoc-ref outputs "out")))
> (with-output-to-file
> (string-append out
> "/lib/ocaml/site-lib/stdlib-shims/META")
> (lambda _
> (display
> "package \"stdlib-shims\" (
> description = \"Stdlib shims\"
> requires = \"\"
> archive(byte) = \"stdlib_shims.cma\"
> archive(native) = \"stdlib_shims.cmxa\"
> plugin(byte) = \"stdlib_shims.cma\"
> plugin(native) = \"stdlib_shims.cmxs\"
> )")))))))))
> (home-page "https://github.com/ocaml/stdlib-shims")
> (synopsis "OCaml stdlib features backport to older OCaml compilers")
> (description "This package backports some of the new stdlib features to
>older compilers, such as the Stdlib module. This allows projects that require
>compatibility with older compiler to use these new features in their code.")
> ;; with ocaml-linking exception
> (license license:lgpl2.1+)))
>--8<---------------cut here---------------end--------------->8---
>
Hi Garek,
It should work with OCAMLPATH, not OCAMLLIB. If you use the ocaml-build-system
or the dune-build-system, it should already be set. Otherwise, adding ocaml to
your native-inputs should help.