Skip to content
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

Allow ocaml/opam-repository to be added to a opam-repositories without hash errors #647

Merged
merged 1 commit into from
Mar 4, 2023

Conversation

dra27
Copy link
Member

@dra27 dra27 commented Mar 3, 2023

Currently if you add ocaml/opam-repository to the opam-repositories field, e.g.

  opam-repositories: |
    opam-repository-mingw: https://github.com/fdopen/opam-repository-mingw.git
    default: https://github.com/ocaml/opam-repository.git

The installation of the compiler will fail with:

 #=== ERROR while compiling ocaml-config.3 =====================================#
  Bad hash for D:/.opam/repo/default/packages/ocaml-config/ocaml-config.3/files/gen_ocaml_config.ml.in

This is something which is already fixed in opam 2.1 (see ocaml/opam#3882). The proposed fix here works around the problem with the opam 2.0.10 binary from OCaml for Windows.

The problem is that the initial clone of the repository is checked out using Windows line-endings, which causes the hashing problem. The mechanism opam uses to update repositories means this would not happen on subsequent opam update instructions. The workaround here is that setup-ocaml ensures that core.autocrlf is temporarily set to input while adding the repositories (it then restores whatever setting either the runner or workflow had specified afterwards).

This shim can be removed once setup-ocaml adopts opam 2.2 for the Windows runners.

@smorimoto
Copy link
Member

smorimoto commented Mar 3, 2023

@dra27 I think it would be much better for us in the future if you could leave an explicit comment about removing shim once opam 2.2 is available. (You and I both input so many things into our brains every day that we could easily pass this up...)

This in opam 2.1 already, but shim the opam 2.0 calls on Windows to
inherit it from a global setting.
@dra27
Copy link
Member Author

dra27 commented Mar 4, 2023

I added a comment in the code, and I've put a post-release step on opam 2.2's release checklist

@smorimoto
Copy link
Member

Thank you so much 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants