opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
$ opam pin .
Package test does not exist, create as a NEW package? [y/n] y
The following additional pinnings are required by test.dev:
- blah.dev at http://localhost:8000/blah
Pin and install them? [y/n] y
Package blah does not exist, create as a NEW package? [y/n] y
[blah.dev] fetching sources failed: Download failed
[ERROR] Error getting source from http://localhost:8000/blah:
- http://localhost:8000/blah (download failed)
using debug-level=3 you can see what actually fail:
error: Cannot remove ~/.opam/trunk/.opam-switch/sources/blah/blah (opam: "unlink" failed on ~/.opam/trunk/.opam-switch/sources/blah/blah: Is a directory).
It turns-out the pin-depends system seems to be downloading and extracting the pin-depends twice or something and failing because it's trying to remove a file that is currently a directory
Issue encounted by @leostera during the mirageOS retreat
Reproducible minimal test case:
using debug-level=3 you can see what actually fail:
It turns-out the pin-depends system seems to be downloading and extracting the pin-depends twice or something and failing because it's trying to remove a file that is currently a directory
Tested with both opam 2.1.5 and 2.2.0~beta2