Le 2 septembre 2023 20:52:21 GMT+02:00, Garek Dyszel <[email protected]> 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.
