Hi Timothee, Did you try building the package in a guix shell container (e.g. --container). That way you're assured that nothing from the users main environment is impacting the build.
You mention a C++ code-base, so the most likely thing is some discrepancy in the libs that are being used right. So somehow it' using some lib at a different version between the Arch and the Ubuntu based systems. If you build inside a container there's no chance it's doing so. And, I assume we're on the same CPU architecture etc, nothing particularly different between the Arch and Ubuntu systems. Steve / Futurile On 29 Apr, Timothee Mathieu wrote: > Thanks. I checked and there is no extra channels. > > I also tried to use a system container instead of a shell container and > still, there is a discrepancy. > I am a bit baffled because I have no idea what can cause this that would not > be handled by Guix. > From what I understand all the low-level maths libraries should be fixed by > Guix so there is not really a lot that should depend on the host OS. > Moreover, I tried with different kernels for the host OS and Arch based is > still reproducible with the other Arch Laptop even with very different > kernels, but still not reproducible with Ubuntu. > I don't know if this is relevant but the code I am testing depend on a > fairly complex physics simulator that is compiled from C++, in fact this is > the package I am trying to have reproducible results on, and we did manage to > implement it as a Guix package so it should be reproducible (?). > > Timothée > > ----- Mail original ----- > > De: "Ludovic Courtès" <[email protected]> > > À: "Timothee Mathieu" <[email protected]> > > Cc: "Cayetano Santos" <[email protected]>, "help-guix" > > <[email protected]> > > Envoyé: Jeudi 24 Avril 2025 18:01:38 > > Objet: Re: Reproducibility of guix shell container across different host OS > > > Hello, > > > > Timothee Mathieu <[email protected]> writes: > > > >> An oversight, I just now fixed it and reran the experiment, fixing the > >> guix-science commit still gives the same discrepancy (I suspect that > >> even before we had the same commit because I did a guix pull recently > >> for all of these computers). > > > > Note that, as a rule of thumb, you should not write ‘channels.scm’ by > > hand. Instead, once you have a satisfying environment, take the output > > of: > > > > guix describe -f channels > > > > It’s important to do it this way because it may include channels pulled > > by the channels you’re interested in, and these dependencies need to be > > pinned as well. > > > > Ludo’. >
