Fix Permission Denied on Win32 install operation #4827
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The Windows preconditions are:
Then when the package is recompiled it will fail with
Permission denied
.For example:
The file was initially installed read-only.
Specifically, from the Cygwin and Windows' perspectives the file and its ACL looks like:
and from the MSYS2 perspective the file looks like:
$ ls -l $(cygpath 'Z:\source\diskuv-ocaml-starter\build\dev\Debug\_opam\bin\dune.exe') -r-xr-xr-x 1 beckf beckf 6927360 Sep 4 18:00 /z/source/diskuv-ocaml-starter/build/dev/Debug/_opam/bin/dune.exe
Solution
Do a
chmod 640
and delete the file before trying to do a truncate+write into it.