[squid] Reproducibility bug in squid package

  • Done
  • quality assurance status badge
Details
2 participants
  • Jean-Baptiste Note
  • Ludovic Courtès
Owner
unassigned
Submitted by
Jean-Baptiste Note
Severity
normal
J
J
Jean-Baptiste Note wrote on 30 Oct 2020 21:56
(name . guixpatch)(address . guix-patches@gnu.org)
87wnz7ph4h.fsf@m4x.org
Dear,

The squid package as provided from substitute servers currently crashes
on my (admittedly old) Core 2 Duo server. Though generally observed in
a different context (virtualization), this is an FAQ from SQUID -- see:


I think the fix of disabling -march=native should actually be applied.
In the current state, not only does the package not work on some x86_64
machines, but the outcome of the build depends on the builder machine
and thus defeats reproducibility.

Please find attached a patch implementing the fix from the FAQ, which
yields a SQUID usable on my home server, and reproducible from the two
build machines at my disposal.

NB: maybe a more general fix could be envisionned for these kind of
-march=native issues; this is admittedly a pretty local fix.

Kind regards,
Jean-Baptiste
From 199ca1036197064d609a8f76a7eb46b6e72996fb Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Note <jean-baptiste.note@m4x.org>
Date: Wed, 28 Oct 2020 11:22:39 -0400
Subject: [PATCH] gnu: squid: Fix build reproducibility issue.

* gnu/packages/networking.scm (squid): Add --disable-arch-native configure
flag.
---
gnu/packages/networking.scm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

Toggle diff (19 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 4f506b4bbf..3f4e1e639b 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1559,7 +1559,11 @@ TCP connection, TLS handshake and so on) in the terminal.")
(base32 "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8"))))
(build-system gnu-build-system)
(arguments
- '(#:phases
+ '(#:configure-flags
+ ;; disable -march=native in build for reproducibility; see
+ ;; https://wiki.squid-cache.org/KnowledgeBase/IllegalInstructionError
+ (list "--disable-arch-native")
+ #:phases
(modify-phases %standard-phases
(add-before 'build 'fix-true-path
(lambda* (#:key inputs #:allow-other-keys)
--
2.28.0
L
L
Ludovic Courtès wrote on 2 Nov 2020 14:38
(name . Jean-Baptiste Note)(address . jean-baptiste.note@m4x.org)(address . 44337-done@debbugs.gnu.org)
87a6vznaj9.fsf@gnu.org
Hi Jean-Baptiste,

Jean-Baptiste Note <jean-baptiste.note@m4x.org> skribis:

Toggle quote (11 lines)
> The squid package as provided from substitute servers currently crashes
> on my (admittedly old) Core 2 Duo server. Though generally observed in
> a different context (virtualization), this is an FAQ from SQUID -- see:
>
> https://wiki.squid-cache.org/KnowledgeBase/IllegalInstructionError
>
> I think the fix of disabling -march=native should actually be applied.
> In the current state, not only does the package not work on some x86_64
> machines, but the outcome of the build depends on the builder machine
> and thus defeats reproducibility.

Indeed. Our goal is to provide “generic” binaries, so disabling
‘-march=native’ is the right thing anyway.

Toggle quote (3 lines)
> NB: maybe a more general fix could be envisionned for these kind of
> -march=native issues; this is admittedly a pretty local fix.

In practice it seems that packages rarely do that by default (with
linear algebra software being an exception), though I don’t have hard
figures.

Toggle quote (8 lines)
>>From 199ca1036197064d609a8f76a7eb46b6e72996fb Mon Sep 17 00:00:00 2001
> From: Jean-Baptiste Note <jean-baptiste.note@m4x.org>
> Date: Wed, 28 Oct 2020 11:22:39 -0400
> Subject: [PATCH] gnu: squid: Fix build reproducibility issue.
>
> * gnu/packages/networking.scm (squid): Add --disable-arch-native configure
> flag.

Applied, thanks!

Ludo’.
Closed
?