Conversation
|
I'm in favour, although I wonder if the compiler packages will create a problem here. However one answer to that could be to move all the compiler packages to a new ocaml-opam-repo that only has compiler packages, and regularly sync them to this repo. |
|
For compiler packages, there's an ongoing discussion with @dra27 via email. What is needed to merge this, 6 weeks later? Would including ocaml-base-compiler and ocaml-variants in the "Exceptions" make it easier to merge? |
|
We need to sweep the current opam-repo to make sure there are no git urls in the current tree. A quick look reveals that many pin-depends have snuck through into the live repo! |
|
Dear @avsm, while I appreciate your comment, my gut feeling is different, in the terms of timeline:
Now, to comment on your Apart from melange-testing-library and lintcstubs there are newer versions without pin-depends in the repository -- so we can archive them or mark them as unavailable. I guess there are two underlying reasons for the merges:
But as said, I think that discussion should be held elsewhere; also I'm aware there are compiler packages which point to arbitrary git branches (and are thus not immutable). Indeed there's some need to figure out how to handle these (would a separate opam-repository for the compiler-curious devs be fine, such as opam-compilers-bleeding-edge)? |
|
I think the policy update is worth it. It doesn't address all the issues that can break reproducibility but it's a step in the right direction. |
|
I also agree. I would push it as far as saying that the pin-depends were likely our mistakes/oversights in most cases |
would you mind to elaborate which "issues that can break reproducibility" are still around? also, i don't think we can ensure reproducibility in opam-repository easily, since any package may capture e.g. the time of the build etc. but reproducibility is not the goal here. the goal is that a package url is immutable: pointing at ocaml.4.14.2 will always refer to the same source code. |
the one i had in mind was versioning of depext tools: any executable the build process calls that's not controlled by opam (so anything outside of ocaml, dune, etc.) can differ from build to build. it can cause build errors (as was the case when gcc got upgraded by most distros) but it could also cause other strange behaviour. it's not even just reproducibility, it's more the build environment can change. theroetically it could even change the sources that you get (e.g., if you have some malicious but as stated above: the update is welcome and we shouldn't delay it for the reason that it's incomplete. |
Luckily for your scenario, there's the operating system providing the package (tar) with a specific version, and that operating system will be able to issue a security advisory with an appropriate package url. Surely, the issue remains that everything that was using the backdoored tar needs to be rebuild -- but honestly once you have such a backdoor on your machine, all you can do is to setup your computer again. TL;DR: We should never issue advisories for the |
addresses #29061