Skip to content

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

Merged
smorimoto merged 1 commit intoocaml:masterfrom
dra27:shim-autocrlf
Mar 4, 2023
Merged

Allow ocaml/opam-repository to be added to a opam-repositories without hash errors#647
smorimoto merged 1 commit intoocaml:masterfrom
dra27:shim-autocrlf

Conversation

@dra27
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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