Guix is not reproducible

  • Done
  • quality assurance status badge
Details
5 participants
  • Hilton Chain
  • Jakob Kirsch
  • Ludovic Courtès
  • Maxim Cournoyer
  • Simon Tournier
Owner
unassigned
Submitted by
Jakob Kirsch
Severity
normal
J
J
Jakob Kirsch wrote on 4 Nov 19:38 +0100
(address . bug-guix@gnu.org)
ZykUqu7t4WuUF9kj@kernelpanicroom
I've recently noticed that `guix challenge guix` fails since guix isn't reproducible at the moment. As someone pointed out on XMPP, this is due to parallelism issues with Guile so running `guix build guix --no-grafts --cores=1 --check` reliably produces the same output.

I've sent a simple patch in #74112 to address this and I think this is important since the main guix package should definitely be reproducible so it can be trusted.
H
H
Hilton Chain wrote on 5 Nov 11:31 +0100
(name . Jakob Kirsch)(address . jakob.kirsch@web.de)
87fro6yntj.wl-hako@ultrarare.space
Hi Jakob,

On Tue, 05 Nov 2024 02:38:34 +0800,
Jakob Kirsch via Bug reports for GNU Guix wrote:
Toggle quote (10 lines)
>
> I've recently noticed that `guix challenge guix` fails since guix isn't
> reproducible at the moment. As someone pointed out on XMPP, this is due to
> parallelism issues with Guile so running `guix build guix --no-grafts
> --cores=1 --check` reliably produces the same output.
>
> I've sent a simple patch in #74112 to address this and I think this is
> important since the main guix package should definitely be reproducible so it
> can be trusted.

I can confirm the reproducibility issue.

I have two x86_64-linux machines building guix to verify the fix, I'll apply
your patch once they produce matching outputs.

Thanks for reporting!
H
H
Hilton Chain wrote on 5 Nov 16:25 +0100
Re: [bug#74112] bug#74204: Guix is not reproducible
(name . Jakob Kirsch)(address . jakob.kirsch@web.de)
87ed3pzora.wl-hako@ultrarare.space
Hello again,

On Tue, 05 Nov 2024 18:31:04 +0800,
Hilton Chain via Guix-patches via wrote:
Toggle quote (20 lines)
>
> Hi Jakob,
>
> On Tue, 05 Nov 2024 02:38:34 +0800,
> Jakob Kirsch via Bug reports for GNU Guix wrote:
> >
> > I've recently noticed that `guix challenge guix` fails since guix isn't
> > reproducible at the moment. As someone pointed out on XMPP, this is due to
> > parallelism issues with Guile so running `guix build guix --no-grafts
> > --cores=1 --check` reliably produces the same output.
> >
> > I've sent a simple patch in #74112 to address this and I think this is
> > important since the main guix package should definitely be reproducible so it
> > can be trusted.
>
> I can confirm the reproducibility issue.
>
> I have two x86_64-linux machines building guix to verify the fix, I'll apply
> your patch once they produce matching outputs.

Took me quite a while to build 5 rounds. :)

Toggle snippet (4 lines)
$ guix hash --serializer=nar /gnu/store/fs7x07jfn7igpkwv3alrs9by21q70y13-guix-1.4.0-26.5ab3c4c
0kh87wb4qn97kwzrf4igal71cjvv143j6jr2y3dwfzcy1madj1ll

Applied #74112 as 4c56d0cccdc44e12484b26332715f54768738c5f, thanks!
Closed
S
S
Simon Tournier wrote on 7 Nov 18:54 +0100
Re: bug#74204: [bug#74112] Guix is not reproducible
87pln70w16.fsf@gmail.com
Hi,

On Tue, 05 Nov 2024 at 23:25, Hilton Chain via Bug reports for GNU Guix <bug-guix@gnu.org> wrote:

Toggle quote (14 lines)
>> I can confirm the reproducibility issue.
>>
>> I have two x86_64-linux machines building guix to verify the fix, I'll apply
>> your patch once they produce matching outputs.
>
> Took me quite a while to build 5 rounds. :)
>
> --8<---------------cut here---------------start------------->8---
> $ guix hash --serializer=nar /gnu/store/fs7x07jfn7igpkwv3alrs9by21q70y13-guix-1.4.0-26.5ab3c4c
> 0kh87wb4qn97kwzrf4igal71cjvv143j6jr2y3dwfzcy1madj1ll
> --8<---------------cut here---------------end--------------->8---
>
> Applied #74112 as 4c56d0cccdc44e12484b26332715f54768738c5f, thanks!

Maybe I am missing something. To my knowledge, .go files produced by
Guile are not always reproducible, see bug#20272 [1]. And, from my
understanding, Guix cannot be reproducible until this bug had been
fixed. Therefore, I am not convinced that this patch is worth under
this frame considering the build-time penalty it brings.

That’s said, maybe it’s better than nothing and the package ’guix’ is
barely built after all. I do not know.

What people think?

Cheers,
simon

Closed
M
M
Maxim Cournoyer wrote on 10 Nov 10:11 +0100
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
87a5e7xxkl.fsf@gmail.com
Hi Simon,

Simon Tournier <zimon.toutoune@gmail.com> writes:

Toggle quote (29 lines)
> Hi,
>
> On Tue, 05 Nov 2024 at 23:25, Hilton Chain via Bug reports for GNU Guix <bug-guix@gnu.org> wrote:
>
>>> I can confirm the reproducibility issue.
>>>
>>> I have two x86_64-linux machines building guix to verify the fix, I'll apply
>>> your patch once they produce matching outputs.
>>
>> Took me quite a while to build 5 rounds. :)
>>
>> --8<---------------cut here---------------start------------->8---
>> $ guix hash --serializer=nar /gnu/store/fs7x07jfn7igpkwv3alrs9by21q70y13-guix-1.4.0-26.5ab3c4c
>> 0kh87wb4qn97kwzrf4igal71cjvv143j6jr2y3dwfzcy1madj1ll
>> --8<---------------cut here---------------end--------------->8---
>>
>> Applied #74112 as 4c56d0cccdc44e12484b26332715f54768738c5f, thanks!
>
> Maybe I am missing something. To my knowledge, .go files produced by
> Guile are not always reproducible, see bug#20272 [1]. And, from my
> understanding, Guix cannot be reproducible until this bug had been
> fixed. Therefore, I am not convinced that this patch is worth under
> this frame considering the build-time penalty it brings.
>
> That’s said, maybe it’s better than nothing and the package ’guix’ is
> barely built after all. I do not know.
>
> What people think?

Perhaps we should set the default parallel-build? to #f in the
guile-build-system at least in the meantime, with a prominent comment as
to why and a reference to the upstream issue? Many Guile packages use
the gnu-build-system so that wouldn't cover all of them like
'guix'... I'm not sure.

It'd be nicer to fix the underlying guile issue (again?), but I doubt
many people are up to this.

--
Thanks,
Maxim
Closed
L
L
Ludovic Courtès wrote on 14 Nov 11:01 +0100
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87o72ip20w.fsf@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (2 lines)
> Simon Tournier <zimon.toutoune@gmail.com> writes:

[...]

Toggle quote (17 lines)
>> Maybe I am missing something. To my knowledge, .go files produced by
>> Guile are not always reproducible, see bug#20272 [1]. And, from my
>> understanding, Guix cannot be reproducible until this bug had been
>> fixed. Therefore, I am not convinced that this patch is worth under
>> this frame considering the build-time penalty it brings.
>>
>> That’s said, maybe it’s better than nothing and the package ’guix’ is
>> barely built after all. I do not know.
>>
>> What people think?
>
> Perhaps we should set the default parallel-build? to #f in the
> guile-build-system at least in the meantime, with a prominent comment as
> to why and a reference to the upstream issue? Many Guile packages use
> the gnu-build-system so that wouldn't cover all of them like
> 'guix'... I'm not sure.

Sounds good to me: packages using ‘guile-build-system’ are usually
relatively small so the impact is negligible.

‘guix’ is a little different because it takes so much time to build
sequentially…

Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74204@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74204
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch