* dune-based package design trouble
@ 2023-09-20 7:52 Erwan Jahier
2023-09-21 5:57 ` Julien Lepiller
0 siblings, 1 reply; 4+ messages in thread
From: Erwan Jahier @ 2023-09-20 7:52 UTC (permalink / raw
To: help-guix
Hello,
I am a newguix tring to package some of his software.
Since I already have opam packages, I used =guix import opam=, that
helped a little. Of course, my packages have dependancies, and not
all of them exist in the main guix repo.
I have able to build some of them (ocaml-junit, ocaml-junit-alcotest,
ocaml-yaml, ocaml-functory, ocaml-conf-graphviz), but I am having
trouble with ocaml-mlgmpidl, for which the build phase isn't able to
(ocaml-)find gmp (see below). So I've tried to package ocaml-gmp, but I
am stuck again.
The error "/bin/sh: bad interpreter: No such file or directory" is
raised during the build phase that runs a =configure= script that
refers to a non existing /bin/sh.
The problem is that the =patch-source-shebangs= phase cannot be
applied, as this =configure= script is generated and run inside the
build phase (via =dune build=).
I feel like it might be a dune expert question, but I try my luck here.
Erwan.
#+begin_src scheme
(define-public ocaml-gmp
(package
(name "ocaml-gmp")
(version "6.2.1-4")
(source
(origin
(method url-fetch)
(uri "https://github.com/mirage/ocaml-gmp/releases/download/6.2.1-4/gmp-6.2.1-4.tbz")
(sha256 (base32 "0w9b4c180wfha6z7clk51kxs3fdq4z2vb9vdgfaa3azp2bxad3yc"))))
(build-system dune-build-system)
(propagated-inputs (list m4))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'build (lambda _ (invoke "dune" "build" "-p" "gmp") #t))
)))
(home-page "https://github.com/mirage/ocaml-gmp")
(synopsis "The GNU Multiple Precision Arithmetic Library")
(description "Dune packaging of the GMP library, suitable for cross-compilation.")
(license license:lgpl3))
)
(define-public ocaml-mlgmpidl
(package
(name "ocaml-mlgmpidl")
(version "1.2.15")
(source (origin
(method url-fetch)
(uri "https://github.com/nberth/mlgmpidl/archive/1.2.15.tar.gz")
(sha256 (base32 "0hcaan4n5li0rnr55ilgxgd8w00lza9an6w4yj7v66dcb7plbasj"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f;
#:phases
(modify-phases %standard-phases
(add-before 'build 'update-deprecated
(lambda* (#:key outputs #:allow-other-keys)
((invoke "./configure" "--prefix" (assoc-ref outputs "out"))
))))))
(inputs (list perl ocaml-findlib camlidl gmp mpfr ocaml-bigarray-compat))
(home-page "https://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/")
(synopsis "OCaml interface to the GMP library")
(description #f)
(license license:lgpl2.1)) ; with linking exception
)
#+end_src
#+begin_src sh
$ ./pre-inst-env guix build ocaml-gmp --keep-failed
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /home/jahier/local/guix/gnu/packages/ocaml.go
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /gnu/store/a2pk3n91qybpkhghg1zr4260xwz21vqh-profile/lib/guile/3.0/site-ccache/gnu/packages/ocaml.go
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /home/jahier/.cache/guile/ccache/3.0-LE-8-4.6/home/jahier/local/guix/gnu/packages/ocaml.scm.go
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
/gnu/store/j26ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv
building /gnu/store/j26ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/bin:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/bin:/gnu/store/sxx22f98vfbavcqmdksm6as8fvskpxiw-tar-1.34/bin:/gnu/store/x24bm49ag5dvki72mjdz195bfb89nrnb-gzip-1.12/bin:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/bin:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/bin:/gnu/store/zmcf5kpqiighkbh7wslf91qdjwj06yr1-diffutils-3.8/bin:/gnu/store/210yfax18r2g2inxrml9435ikhfcca6m-patch-2.7.6/bin:/gnu/store/c8jyph2lxw0m9na34fg8h70n4nnnz7is-findutils-4.9.0/bin:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/bin:/gnu/store/xxcfsimvxz7z4dj593gnqbkzc6picwzq-sed-4.8/bin:/gnu/store/yrv5f70mn83a876b78i5s79dd2hsh0zf-grep-3.8/bin:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/bin:/gnu/store/a5i8avx826brw5grn3n4qv40g514505c-coreutils-9.1/bin:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/bin:/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin:/gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/sbin:/gnu/store/2awzcd1jdd8h65ahdn62ydllrs2s2pk1-m4-1.4.19/bin:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/bin:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/bin:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/bin'
environment variable `OCAMLPATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib/ocaml:/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib/ocaml/site-lib:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/lib/ocaml:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib/ocaml:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib/ocaml/site-lib:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib/ocaml:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib/ocaml/site-lib:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib/ocaml:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib/ocaml/site-lib:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib/ocaml:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib/ocaml/site-lib'
environment variable `CAML_LD_LIBRARY_PATH' unset
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include/c++:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/lib:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/lib:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/lib:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/lib:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/lib:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/lib:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib:/gnu/store/l0yryi5jsa1grnvw01c9nkz9c81cv224-glibc-2.35-static/lib:/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
gmp-6.2.1-4/.github
gmp-6.2.1-4/.github/workflows
gmp-6.2.1-4/.github/workflows/CI.yml
gmp-6.2.1-4/.gitignore
gmp-6.2.1-4/.ocamlformat
gmp-6.2.1-4/CHANGES.md
gmp-6.2.1-4/COPYING
gmp-6.2.1-4/COPYING.LESSERv3
gmp-6.2.1-4/README.md
gmp-6.2.1-4/dune-project
gmp-6.2.1-4/dune-workspace.solo5
gmp-6.2.1-4/gmp.opam
gmp-6.2.1-4/src
gmp-6.2.1-4/src/build.sh.in
gmp-6.2.1-4/src/dune
gmp-6.2.1-4/src/gmp-6.2.1.tar.xz
gmp-6.2.1-4/test
gmp-6.2.1-4/test/dummy.ml
gmp-6.2.1-4/test/dummy_stubs.c
gmp-6.2.1-4/test/dune
gmp-6.2.1-4/test/test.expected
gmp-6.2.1-4/test/test.ml
phase `unpack' succeeded after 0.2 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./src/build.sh.in: changing `/bin/sh' to `/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/sh'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `ocaml-findlib-environment'
phase `ocaml-findlib-environment' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
File "src/dune", line 14, characters 0-319:
14 | (rule
15 | (targets gmp.h libgmp.a dllgmp.so)
16 | (deps gmp-6.2.1.tar.xz build.sh)
17 | (action
18 | (with-stdout-to
19 | build.log
20 | (run sh ./build.sh "%{ocaml-config:c_compiler}" "%{ocaml-config:host}"
21 | "%{ocaml-config:ocamlc_cflags}"
22 | %{ocaml-config:supports_shared_libraries}
23 | "%{ocaml-config:native_c_libraries}"))))
./build.sh: ./configure: /bin/sh: bad interpreter: No such file or directory
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "dune" arguments: ("build") exit-status: 1 term-signal: #f stop-signal: #f>
phase `build' failed after 0.3 seconds
command "dune" "build" failed with status 1
note: keeping build directory `/tmp/guix-build-ocaml-gmp-6.2.1-4.drv-6'
builder for `/gnu/store/j26ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv' failed with exit code 1
build of /gnu/store/j26ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv failed
View build log at '/var/log/guix/drvs/j2/6ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv.bz2'.
guix build: error: build of `/gnu/store/j26ah7gyimydbw4zi30anbhfcqm7vz8h-ocaml-gmp-6.2.1-4.drv' failed
$ ./pre-inst-env guix build ocaml-mlgmpidl --keep-failed
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /home/jahier/local/guix/gnu/packages/ocaml.go
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /gnu/store/a2pk3n91qybpkhghg1zr4260xwz21vqh-profile/lib/guile/3.0/site-ccache/gnu/packages/ocaml.go
;;; note: source file /home/jahier/local/guix/gnu/packages/ocaml.scm
;;; newer than compiled /home/jahier/.cache/guile/ccache/3.0-LE-8-4.6/home/jahier/local/guix/gnu/packages/ocaml.scm.go
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
/gnu/store/2vss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv
building /gnu/store/2vss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/bin:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/bin:/gnu/store/sxx22f98vfbavcqmdksm6as8fvskpxiw-tar-1.34/bin:/gnu/store/x24bm49ag5dvki72mjdz195bfb89nrnb-gzip-1.12/bin:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/bin:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/bin:/gnu/store/zmcf5kpqiighkbh7wslf91qdjwj06yr1-diffutils-3.8/bin:/gnu/store/210yfax18r2g2inxrml9435ikhfcca6m-patch-2.7.6/bin:/gnu/store/c8jyph2lxw0m9na34fg8h70n4nnnz7is-findutils-4.9.0/bin:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/bin:/gnu/store/xxcfsimvxz7z4dj593gnqbkzc6picwzq-sed-4.8/bin:/gnu/store/yrv5f70mn83a876b78i5s79dd2hsh0zf-grep-3.8/bin:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/bin:/gnu/store/a5i8avx826brw5grn3n4qv40g514505c-coreutils-9.1/bin:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/bin:/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin:/gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/sbin:/gnu/store/lj75fc25zx2y9pqvfp95la84rdhlj4f8-perl-5.36.0/bin:/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/bin:/gnu/store/b29gw382cvsk6963xhq9aj84rlwmhn8m-ocaml-bigarray-compat-1.1.0/bin:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/bin:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/bin:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/bin'
environment variable `OCAMLPATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib/ocaml:/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib/ocaml/site-lib:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/lib/ocaml:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib/ocaml:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib/ocaml/site-lib:/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib/ocaml:/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib/ocaml/site-lib:/gnu/store/b29gw382cvsk6963xhq9aj84rlwmhn8m-ocaml-bigarray-compat-1.1.0/lib/ocaml:/gnu/store/b29gw382cvsk6963xhq9aj84rlwmhn8m-ocaml-bigarray-compat-1.1.0/lib/ocaml/site-lib:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib/ocaml:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib/ocaml/site-lib:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib/ocaml:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib/ocaml/site-lib:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib/ocaml:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib/ocaml/site-lib'
environment variable `CAML_LD_LIBRARY_PATH' unset
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/ib2n2vzqpchc3bhh9i712w5sq9zapn8d-gmp-6.2.1/include:/gnu/store/cs3hw1wnxgijjzsd61whc8ar3qy9wjd6-mpfr-4.2.0/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include/c++:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/ib2n2vzqpchc3bhh9i712w5sq9zapn8d-gmp-6.2.1/include:/gnu/store/cs3hw1wnxgijjzsd61whc8ar3qy9wjd6-mpfr-4.2.0/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/y2mcznccgvcdpc5bl8z0b07nrzccd1na-dune-3.6.1/lib:/gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/lib:/gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/lib:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/lib:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/lib:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/lib:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/lib:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/lib:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib:/gnu/store/l0yryi5jsa1grnvw01c9nkz9c81cv224-glibc-2.35-static/lib:/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib:/gnu/store/lj75fc25zx2y9pqvfp95la84rdhlj4f8-perl-5.36.0/lib:/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib:/gnu/store/ib2n2vzqpchc3bhh9i712w5sq9zapn8d-gmp-6.2.1/lib:/gnu/store/cs3hw1wnxgijjzsd61whc8ar3qy9wjd6-mpfr-4.2.0/lib:/gnu/store/b29gw382cvsk6963xhq9aj84rlwmhn8m-ocaml-bigarray-compat-1.1.0/lib:/gnu/store/6fq5x7m49a3m1d66dawk36k0qcmy6i27-dune-configurator-3.6.1/lib:/gnu/store/spdkficsp4fychyxfplyp8qli0hq47pc-ocaml-csexp-1.5.1/lib:/gnu/store/inkky9cq6fxbv7vsibwix0z8svkxkwmj-ocaml-result-1.5/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale'
environment variable `PERL5LIB' set to `/gnu/store/lj75fc25zx2y9pqvfp95la84rdhlj4f8-perl-5.36.0/lib/perl5/site_perl'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
mlgmpidl-1.2.15/
mlgmpidl-1.2.15/.gitignore
mlgmpidl-1.2.15/COPYING
mlgmpidl-1.2.15/Changes
mlgmpidl-1.2.15/Makefile
mlgmpidl-1.2.15/Makefile.config.in
mlgmpidl-1.2.15/Makefile.config.model
mlgmpidl-1.2.15/Makefile.depend
mlgmpidl-1.2.15/README
mlgmpidl-1.2.15/configure
mlgmpidl-1.2.15/gmp_caml.c
mlgmpidl-1.2.15/gmp_caml.h
mlgmpidl-1.2.15/gmp_random.idl
mlgmpidl-1.2.15/index.tex
mlgmpidl-1.2.15/introduction.mli
mlgmpidl-1.2.15/mlgmpidl.tex
mlgmpidl-1.2.15/mpf.idl
mlgmpidl-1.2.15/mpfr.idl
mlgmpidl-1.2.15/mpfrf.ml
mlgmpidl-1.2.15/mpfrf.mli
mlgmpidl-1.2.15/mpq.idl
mlgmpidl-1.2.15/mpqf.ml
mlgmpidl-1.2.15/mpqf.mli
mlgmpidl-1.2.15/mpz.idl
mlgmpidl-1.2.15/mpzf.ml
mlgmpidl-1.2.15/mpzf.mli
mlgmpidl-1.2.15/opam/
mlgmpidl-1.2.15/opam/opam
mlgmpidl-1.2.15/perlscript_c.pl
mlgmpidl-1.2.15/perlscript_caml.pl
mlgmpidl-1.2.15/session.ml
phase `unpack' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./configure: changing `/bin/sh' to `/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/sh'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `ocaml-findlib-environment'
phase `ocaml-findlib-environment' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `update-deprecated'
checking compilation with cc : not working
checking compilation with gcc : working
checking compilation with gcc -Wcast-qual: working
checking compilation with gcc -Wswitch: working
checking compilation with gcc -Wall: working
checking compilation with gcc -Wextra: working
checking compilation with gcc -Wundef: working
checking compilation with gcc -Wcast-align: working
checking compilation with gcc -Wno-unused: working
checking compilation with gcc -Wno-unused-parameter: working
checking compilation with gcc -Wno-unused-function: working
checking compilation with gcc -fPIC: working
checking compilation with gcc -Werror-implicit-function-declaration: working
checking compilation with gcc -Wbad-function-cast: working
checking compilation with gcc -Wstrict-prototypes: working
checking compilation with gcc -std=c99: working
binary ar: found in /gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin
binary ranlib: found in /gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin
binary sed: found in /gnu/store/xxcfsimvxz7z4dj593gnqbkzc6picwzq-sed-4.8/bin
binary grep: found in /gnu/store/yrv5f70mn83a876b78i5s79dd2hsh0zf-grep-3.8/bin
binary perl: found in /gnu/store/lj75fc25zx2y9pqvfp95la84rdhlj4f8-perl-5.36.0/bin
binary install: found in /gnu/store/a5i8avx826brw5grn3n4qv40g514505c-coreutils-9.1/bin
looking for gmp without prefix
include gmp.h: found
library gmp: found
library gmp found without prefix
looking for mpfr without prefix
include mpfr.h: found
library mpfr: found
library mpfr found without prefix
library mpfr major version: 4
binary ocamlc.opt: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary ocamlopt.opt: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary ocamldep: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary ocamldoc: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary ocamlmktop: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary ocamlmklib: found in /gnu/store/dv3v554glm914qaf1sypwa3bgv5x3g43-ocaml-4.14.0/bin
binary camlidl: found in /gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/bin
binary ocamlfind: found in /gnu/store/vcbmrxf417r1mbazx145y9fmbx1bbk4b-ocaml-findlib-1.9.5/bin
ocamlfind: Package `gmp' not found
include caml/mlvalues.h: found
include caml/camlidlruntime.h: not found
OCaml not found
error: in phase 'update-deprecated': uncaught exception:
%exception #<&invoke-error program: "./configure" arguments: ("--prefix" "/gnu/store/v4c02g0s0r7n4kkl0rvkkf3xnrhqriia-ocaml-mlgmpidl-1.2.15") exit-status: 1 term-signal: #f stop-signal: #f>
phase `update-deprecated' failed after 1.1 seconds
command "./configure" "--prefix" "/gnu/store/v4c02g0s0r7n4kkl0rvkkf3xnrhqriia-ocaml-mlgmpidl-1.2.15" failed with status 1
note: keeping build directory `/tmp/guix-build-ocaml-mlgmpidl-1.2.15.drv-31'
builder for `/gnu/store/2vss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv' failed with exit code 1
build of /gnu/store/2vss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv failed
View build log at '/var/log/guix/drvs/2v/ss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv.bz2'.
guix build: error: build of `/gnu/store/2vss9ph7rgvqamqjd32y1qs1qh72myrl-ocaml-mlgmpidl-1.2.15.drv' failed
$
#+end_src
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: dune-based package design trouble
2023-09-20 7:52 dune-based package design trouble Erwan Jahier
@ 2023-09-21 5:57 ` Julien Lepiller
2023-09-21 6:45 ` Erwan Jahier
2023-09-21 9:58 ` Erwan Jahier
0 siblings, 2 replies; 4+ messages in thread
From: Julien Lepiller @ 2023-09-21 5:57 UTC (permalink / raw
To: Erwan Jahier; +Cc: help-guix
Le Wed, 20 Sep 2023 09:52:03 +0200,
Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> a écrit :
> Hello,
>
> I am a newguix tring to package some of his software.
>
> Since I already have opam packages, I used =guix import opam=, that
> helped a little. Of course, my packages have dependancies, and not
> all of them exist in the main guix repo.
>
> I have able to build some of them (ocaml-junit,
> ocaml-junit-alcotest, ocaml-yaml, ocaml-functory,
> ocaml-conf-graphviz), but I am having trouble with
> ocaml-mlgmpidl, for which the build phase isn't able to
> (ocaml-)find gmp (see below). So I've tried to package ocaml-gmp,
> but I am stuck again.
>
> The error "/bin/sh: bad interpreter: No such file or directory" is
> raised during the build phase that runs a =configure= script
> that refers to a non existing /bin/sh.
>
> The problem is that the =patch-source-shebangs= phase cannot be
> applied, as this =configure= script is generated and run inside the
> build phase (via =dune build=).
>
> I feel like it might be a dune expert question, but I try my luck
> here.
>
> Erwan.
>
It's not very clean, but this works:
(define-public ocaml-mlgmpidl
(package
(name "ocaml-mlgmpidl")
(version "1.2.15")
(source (origin
(method url-fetch)
(uri
"https://github.com/nberth/mlgmpidl/archive/1.2.15.tar.gz")
(sha256
(base32
"0hcaan4n5li0rnr55ilgxgd8w00lza9an6w4yj7v66dcb7plbasj"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f;
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs inputs #:allow-other-keys)
(substitute* "configure"
((".*query gmp.*") "echo \"$camlidl_prefix\n\" \n")
(("camlidl_prefix=`\\$ocamlfind.*")
(string-append "camlidl_prefix=\"" (assoc-ref inputs
"camlidl") "/lib/ocaml/site-lib/camlidl\"\n")))
(invoke "./configure" "--prefix" (assoc-ref outputs
"out")))))))
(inputs (list perl ocaml-findlib camlidl gmp mpfr
ocaml-bigarray-compat))
(home-page
"https://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/")
(synopsis "OCaml interface to the GMP library")
(description #f)
(license license:lgpl2.1)) ; with linking exception
)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: dune-based package design trouble
2023-09-21 5:57 ` Julien Lepiller
@ 2023-09-21 6:45 ` Erwan Jahier
2023-09-21 9:58 ` Erwan Jahier
1 sibling, 0 replies; 4+ messages in thread
From: Erwan Jahier @ 2023-09-21 6:45 UTC (permalink / raw
To: Julien Lepiller; +Cc: help-guix
Julien Lepiller <julien@lepiller.eu> writes:
> It's not very clean, but this works:
Indeed it works ! Thanks a lot Julien.
> (define-public ocaml-mlgmpidl
> (package
> (name "ocaml-mlgmpidl")
> (version "1.2.15")
> (source (origin
> (method url-fetch)
> (uri
> "https://github.com/nberth/mlgmpidl/archive/1.2.15.tar.gz")
> (sha256
> (base32
> "0hcaan4n5li0rnr55ilgxgd8w00lza9an6w4yj7v66dcb7plbasj"))))
> (build-system ocaml-build-system)
> (arguments
> `(#:tests? #f;
> #:phases
> (modify-phases %standard-phases
> (replace 'configure
> (lambda* (#:key outputs inputs #:allow-other-keys)
> (substitute* "configure"
> ((".*query gmp.*") "echo \"$camlidl_prefix\n\" \n")
> (("camlidl_prefix=`\\$ocamlfind.*")
> (string-append "camlidl_prefix=\"" (assoc-ref inputs
> "camlidl") "/lib/ocaml/site-lib/camlidl\"\n")))
> (invoke "./configure" "--prefix" (assoc-ref outputs
> "out")))))))
> (inputs (list perl ocaml-findlib camlidl gmp mpfr
> ocaml-bigarray-compat))
> (home-page
> "https://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/")
> (synopsis "OCaml interface to the GMP library")
> (description #f)
> (license license:lgpl2.1)) ; with linking exception
> )
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: dune-based package design trouble
2023-09-21 5:57 ` Julien Lepiller
2023-09-21 6:45 ` Erwan Jahier
@ 2023-09-21 9:58 ` Erwan Jahier
1 sibling, 0 replies; 4+ messages in thread
From: Erwan Jahier @ 2023-09-21 9:58 UTC (permalink / raw
To: Julien Lepiller; +Cc: help-guix
> It's not very clean, but this works:
Indeed it would be better to make ocamlfind do its job of correctly
finding camlidl (and this is actually biting for another package),
probably by fixing the camlidl recipe I guess.
More precisely
ocamfind query camlidl
returns the wrong path. But
ocamfind prinfconf path
returns
...
/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib/ocaml
/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib/ocaml/site-lib
...
which looks correct. The file
/gnu/store/wazczxixf2s0aakw586gh1pk8s3yc74d-camlidl-1.09/lib/ocaml/site-lib/camlidl/META
exists.
So AFAICT, camlidl install is correct wrt ocamlfind. Any idea of what is
happening?
> (define-public ocaml-mlgmpidl
> (package
> (name "ocaml-mlgmpidl")
> (version "1.2.15")
> (source (origin
> (method url-fetch)
> (uri
> "https://github.com/nberth/mlgmpidl/archive/1.2.15.tar.gz")
> (sha256
> (base32
> "0hcaan4n5li0rnr55ilgxgd8w00lza9an6w4yj7v66dcb7plbasj"))))
> (build-system ocaml-build-system)
> (arguments
> `(#:tests? #f;
> #:phases
> (modify-phases %standard-phases
> (replace 'configure
> (lambda* (#:key outputs inputs #:allow-other-keys)
> (substitute* "configure"
> ((".*query gmp.*") "echo \"$camlidl_prefix\n\" \n")
> (("camlidl_prefix=`\\$ocamlfind.*")
> (string-append "camlidl_prefix=\"" (assoc-ref inputs
> "camlidl") "/lib/ocaml/site-lib/camlidl\"\n")))
> (invoke "./configure" "--prefix" (assoc-ref outputs
> "out")))))))
> (inputs (list perl ocaml-findlib camlidl gmp mpfr
> ocaml-bigarray-compat))
> (home-page
> "https://www.inrialpes.fr/pop-art/people/bjeannet/mlxxxidl-forge/mlgmpidl/")
> (synopsis "OCaml interface to the GMP library")
> (description #f)
> (license license:lgpl2.1)) ; with linking exception
> )
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-21 10:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-20 7:52 dune-based package design trouble Erwan Jahier
2023-09-21 5:57 ` Julien Lepiller
2023-09-21 6:45 ` Erwan Jahier
2023-09-21 9:58 ` Erwan Jahier
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.