Closed mseri closed 3 years ago
I think what is going on is that the DUNE_BUILD_DIR
variable in the cross-compilation builds is not set globally, so the script does not know that it needs to check in _build/linux.musl.x86_64/META.checkseum
.
It is puzzling that there is not a better way here, either using dune
which knows where to look or at least being able to query the right path.
Why cannot one ask dune
itself to execute ./install/install.ml
and maybe passing the right information?
Seems highly related to #48 (and fixed before). I'm not an user of esy so it's hard for me to understand the whole workflow.
The trick about install/install.ml
is explained here: #46. It's completely unusual bit nobody found a solution 😕 .
Yes I had looked at that at first. I have a fork with a hack to use the correct build folder but even that fails without the file. I think then the other issue is that install.ml
requires also opam to be installed, which is not the case in the cross compilation environment created by esy. If I come up with something decent I’ll send a PR
@mseri the problem is still accurate? I will cut a release for the big endian support. It can be a good opportunity to fix this issue.
My workaround is here: https://github.com/mseri/doi2bib/blob/main/.github/workflows/workflow.yml#L161 Let me try a second what happens without it
Yes, it is still a problem:
# esy-build-package: running: 'mv' '_____install_____' '/home/runner/.esy/3__________________________________________________________________/s/__linux.musl.x86__64__s____opam__checkseum-b6dc16f4/linux.musl.x86_64-sysroot'
# esy-build-package: running: 'dune' 'build' '-p' 'checkseum' '-j' '4' '-x' 'linux.musl.x86_64' '@install'
make freestanding/libcheckseum_freestanding_stubs.a [default.linux.musl.x86_64]
make: opam: Command not found
touch libcheckseum_freestanding_stubs.a
# esy-build-package: running: './install/install.ml'
Exception:
Unix.Unix_error(Unix.ENOENT, "chmod", "_build/default/META.checkseum")
error: command failed: './install/install.ml' (exited with 2)
esy-build-package: exiting with errors above...
From: https://github.com/mseri/doi2bib/pull/11/checks?check_run_id=3191007237
Can you integrate this patch: https://github.com/mirage/checkseum/pull/53? It seems a possible solution according your error.
Seems to be still failing:
# esy-build-package: running: 'dune' 'build' '-p' 'checkseum' '-j' '4' '-x' 'linux.musl.x86_64' '@install'
make freestanding/libcheckseum_freestanding_stubs.a [default.linux.musl.x86_64]
make: command: Command not found
touch libcheckseum_freestanding_stubs.a
# esy-build-package: running: './install/install.ml'
Exception:
Unix.Unix_error(Unix.ENOENT, "chmod", "_build/default/META.checkseum")
error: command failed: './install/install.ml' (exited with 2)
esy-build-package: exiting with errors above...
The full log is here if you need: https://github.com/mseri/doi2bib/runs/3191847441
Fixed by #56
looks like there are still some issues with esy, at least when esy is used for cross compilation. I attach here the logs for refernce (form https://github.com/mseri/doi2bib/runs/2255652909?check_suite_focus=true)
I still have to investigate this properly, I will send a PR if I figure it out but I am very unexperienced with esy.