-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dune install wants opam or --prefix #5455
Comments
I'm not even sure why dune would run opam at all. |
Do you mean because it is given during the compilation of dune with I think the main problem is this configuration command doesn't allow to give a default Just to check before writing a fix do you prefer one option during the configuration of dune for each of the root directories? (e.g also one for ( dune/src/dune_engine/install.ml Lines 142 to 168 in 065466c
CC @ejgallego |
Yes, that is what I mean.
Sure, that makes sense. In that case, we would like to set the default prefix along with the libdir.
Actually, the other defaults are all fine for us. We just need to special case libdir. We can work with setting a default prefix, or with setting all of the directories individually. Either is fine. Thank you for looking at this issue. |
I’m not sure why the |
Is there cases when one way will work and not the other? If |
But just because |
Ok So the priority:
During build Still I don't understand why in mirage/ocaml-tar#85 and #5488 , |
@jamesjer at the end, when everything is added and fixed in dune, it seems needed to give the full list of the directory to both the
|
My personal preference is to use the values passed to configure as defaults. That is, if I run |
fwiw, an esy sandbox also doesn't have the |
The value given to configure will be used as default. I just though that you preferred that user can do simply |
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
@bobot esy installs it at |
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
With `dune install` you must either provide the installation `--prefix` or have `opam` installed. Unfortunately in some cases neither is an option because we're in a non-Opam environment (e.g. Nix) and don't control the invocation of Dune. Providing an environment variable `DUNE_INSTALL_PREFIX` may alleviate that pain. Might help some suffering from ocaml#5455. Signed-off-by: Ole Krüger <[email protected]>
With `dune install` you must either provide the installation `--prefix` or have `opam` installed. Unfortunately in some cases neither is an option because we're in a non-Opam environment (e.g. Nix) and don't control the invocation of Dune. Providing an environment variable `DUNE_INSTALL_PREFIX` may alleviate that pain. Might help some suffering from #5455. Signed-off-by: Ole Krüger <[email protected]> ps-id: 2D3AA66B-4717-45EE-884B-F22F9D6008C8
Shouldn't this be labelled |
Indeed. It's properly labelled now. |
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
- Fix ocaml#5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
- Fix #5455 - Installation can fail if OPAM_SWITCH_PREFIX is not present, ./configure has not been fully populated, and the missing directories are not given on the command line Signed-off-by: François Bobot <[email protected]>
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info, dune-action-plugin and chrome-trace (3.2.0) CHANGES: - Fixed ``dune describe workspace --with-deps`` so that it correctly handles Reason files, as well as files any other dialect. (ocaml/dune#5701, @esope) - Disable alerts when compiling code in vendored directories (ocaml/dune#5683, @NathanReb) - Fixed ``dune describe --with-deps``, that crashed when some preprocessing was required in a dune file using ``per_module``. (ocaml/dune#5682, fixes ocaml/dune#5680, @esope) - Add `$ dune describe pp` to print the preprocssed ast of sources. (ocaml/dune#5615, fixes ocaml/dune#4470, @cannorin) - Report dune file evaluation errors concurrently. In the same way we report build errors. (ocaml/dune#5655, @rgrinberg) - Watch mode now default to clearing the terminal on rebuild (ocaml/dune#5636, fixes, ocaml/dune#5216, @rgrinberg) - The output of jobs that finished but were cancelled is now omitted. (ocaml/dune#5631, fixes ocaml/dune#5482, @rgrinberg) - Allows to configure all the default destination directories with `./configure` (adds `bin`, `sbin`, `data`, `libexec`). Use `OPAM_SWITCH_PREFIX` instead of calling the `opam` binaries in `dune install`. Fix handling of multiple `libdir` in `./configure` for handling `/usr/lib/ocaml/` and `/usr/local/lib/ocaml`. In `dune install` forbid relative directories in `libdir`, `docdir` and others specific directory setting because their handling was inconsistent (ocaml/dune#5516, fixes ocaml/dune#3978 and ocaml/dune#5455, @bobot) - `--terminal-persistence=clear-on-rebuild` will no longer destroy scrollback on some terminals (ocaml/dune#5646, @rgrinberg) - Add a fmt command as a shortcut of `dune build @fmt --auto-promote` (ocaml/dune#5574, @tmattio) - Watch mode now tracks copied external files, external directories for dependencies, dune files in OCaml syntax, files used by `include` stanzas, dune-project, opam files, libraries builtin with compiler, and foreign sources (ocaml/dune#5627, ocaml/dune#5645, ocaml/dune#5652, ocaml/dune#5656, ocaml/dune#5672, ocaml/dune#5691, ocaml/dune#5722, fixes ocaml/dune#5331, @rgrinberg) - Improve metrics for cram tests. Include test names in the event and add a category for cram tests (ocaml/dune#5626, @rgrinberg) - Allow specifying multiple licenses in project file (ocaml/dune#5579, fixes ocaml/dune#5574, @liyishuai) - Match `glob_files` only against files in external directories (ocaml/dune#5614, fixes ocaml/dune#5540, @rgrinberg) - Add pid's to chrome trace output (ocaml/dune#5617, @rgrinberg) - Fix race when creating local cache directory (ocaml/dune#5613, fixes ocaml/dune#5461, @rgrinberg) - Add `not` to boolean expressions (ocaml/dune#5610, fix ocaml/dune#5503, @rgrinberg) - Fix relative dependencies outside the workspace (ocaml/dune#4035, fixes ocaml/dune#5572, @bobot) - Allow to specify `--prefix` via the environment variable `DUNE_INSTALL_PREFIX` (ocaml/dune#5589, @vapourismo) - Dune-site.plugin: add support for `archive(native|byte, plugin)` used in the wild before findlib documented `plugin(native|byte)` in 2015 (ocaml/dune#5518, @bobot) - Fix a bug where Dune would not correctly interpret `META` files in alternative layout (ie when the META file is named `META.$pkg`). The `Llvm` bindings were affected by this issue. (ocaml/dune#5619, fixes ocaml/dune#5616, @nojb) - Support `(binaries)` in `(env)` in dune-workspace files (ocaml/dune#5560, fix ocaml/dune#5555, @emillon) - (mdx) stanza: add support for (locks). (ocaml/dune#5628, fixes ocaml/dune#5489, @emillon) - (mdx) stanza: support including files in different directories using relative paths, and provide better error messages when paths are invalid (ocaml/dune#5703, ocaml/dune#5704, fixes ocaml/dune#5596, @emillon) - Fix ctypes rules for external lib names which aren't valid ocaml names (ocaml/dune#5667, fixes ocaml/dune#5511, @Khady)
Expected Behavior
With dune 2.x, we could run "dune install --destdir=" when building Fedora packages with dune, and that would populate our buildroot as expected.
Actual Behavior
With dune 3.0.2, the same dune invocation results in this error:
That is not helpful when we are trying to build the dependencies of opam. I have found that if I add
--prefix=/usr
, then dune stops asking for opam ... but it installs the library files into the wrong directory. We configured dune with--libdir
, but that setting is ignored if the prefix is given. So now I have to pass both--prefix
and--libdir
to dune install, even though dune should already know the correct libdir.Reproduction
Specifications
dune
(output ofdune --version
): n/a <-- That is the actual output ofdune --version
. It is really 3.0.2.ocaml
(output ofocamlc --version
): 4.13.1Additional information
dune
with the--verbose
flag):Running
dune --verbose
just prints help text. Is it supposed to show configuration values? Runningdune build --verbose
on the other hand prints this: https://gist.github.com/jamesjer/0c2a5b82c7af23fa47e65587f6a67f6fThe text was updated successfully, but these errors were encountered: