-
Notifications
You must be signed in to change notification settings - Fork 28
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
How to get a reproducible build #184
Comments
Hi @ben-grande, thanks for your detailed report. The build host should not change the reproducibility result. However the Dockerfile assumes that http://snapshot.notset.fr/rchive/debian/ provides packets snapshots for debian (and is unfortunately offline so far, leading to I tested and got the exact same hashsum both with fresh debian-12 and fedora-38 AppVMs. Now, to go further I changed Dockerfile snapshots from notset to debian, checked that every versions from debian packages are the same as in the last github action log, as well as every opam packages versions, and I still have the same hashsum as yours. I'll have to look deeper into packages versions and unfortunately I don't have anymore temporary compilation artifacts from a matching hash :( |
Update: thanks to an old save, I saw that the duniverse cmdliner version is different (1.1.1 -> 1.2.0+dune). I'm unsure why this version is selected since 2 days and not since its release (april 2023). There is probably something to find behind the So far I think it's not a supply chain attack and as your shasum has been reproducted (at least on my computer, maybe also by @Szewcson?) I'll update the scripts to match the new shasum with updated cmdliner. |
A delay exists between the upstream version in |
Thanks @dinosaure for your reply, definitely not a supply chain attack :) Do you know if it is possible to fix a opam-overlay hash (EDIT: with opam-monorepo) to avoid future issues? I guess I'll have to cut out a new release with the correct hashsum (and while at it, updated opam-repository). |
That is indeed concerning. The underlying issue is that we attempt to pin some pieces, but we're not having a full build-info from docker and the build script (also, environment variables are not cleaned up -- there's quite some story why I worked on orb, maybe we should just use that, and publish the build-info together with a release?). We pin the opam-repository to a specific commit. What we as well need to do is to pin the opam-overlays and mirage-overlays to a specific commit:
Please note I have not tested the above, and am not sure whether the syntax for |
This (using orb) is probably the way to go for reproductible builds :)
Thanks I'll try that before merging the PR. |
Thanks, fixed in #185. |
Fix confirmed:
|
Software version
I have built with docker on Debian using the docker repository
Logs
Build log:
Manual check of build:
Manual check of release v0.8.5:
Questions
I have read that docker should be run on Fedora, but I used the Docker repository on Debian, maybe it caused the difference?
What can I do to get a reproducible build?
The text was updated successfully, but these errors were encountered: