linux-libre is not reproducible (regression)

  • Open
  • quality assurance status badge
Details
One participant
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
normal
M
M
Maxim Cournoyer wrote on 14 May 17:40 +0200
(name . bug-guix)(address . bug-guix@gnu.org)
87a5ksz9jg.fsf@gmail.com
Hello,

I've investigated non-determinism in our linux-libre package, which
sadly appears to have regressed in that regard since I last looked into
it 3 years ago (see commit 01ea70a29c5c1ded31c37ce8c43192bc1956b2ca
("gnu: linux-libre: Make build reproducible.")).

I'm currently seeing these differing files:

Toggle snippet (7 lines)
$ diff -ql /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9{,-check}
Files /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/bzImage and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/bzImage differ
Common subdirectories: /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/lib and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/lib
Common subdirectories: /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/share and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/share
Files /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/System.map and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/System.map differ

I'll take a look at what Yocto does differently, if anything.

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 26 May 20:15 +0200
(address . 70943@debbugs.gnu.org)
87o78sh21s.fsf@gmail.com
Hi,

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

Toggle quote (17 lines)
> Hello,
>
> I've investigated non-determinism in our linux-libre package, which
> sadly appears to have regressed in that regard since I last looked into
> it 3 years ago (see commit 01ea70a29c5c1ded31c37ce8c43192bc1956b2ca
> ("gnu: linux-libre: Make build reproducible.")).
>
> I'm currently seeing these differing files:
>
> $ diff -ql /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9{,-check}
> Files /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/bzImage and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/bzImage differ
> Common subdirectories: /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/lib and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/lib
> Common subdirectories: /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/share and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/share
> Files /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9/System.map and /gnu/store/6vx6vkranmggv690ggm79zhdhwvmbji9-linux-libre-6.8.9-check/System.map differ
>
> I'll take a look at what Yocto does differently, if anything.

I didn't see anything special, although some BPF switches got turned on
in the kernel by default in newer 6.X releases, and BPF appears to
introduce non-determinism, accordingy to the Reproducible Builds website
which says this [0]:

Several distributions noticed recent versions of the Linux Kernel are
no longer reproducible because the BPF Type Format (BTF) metadata is
not generated in a deterministic way. This was discussed on the
#reproducible-builds IRC channel, but no solution appears to be in
sight for now.


So it seems there'll need to be some reproducibility work for that
feature in the kernel before it can be resolved (we could also disable
all BPF features, but that seems counter-current at this point in time).

--
Thanks,
Maxim
?
Your comment

Commenting via the web interface is currently disabled.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 70943
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