Debian Bug report logs -
#995092
guile-3.0: reproducible builds: parallelism triggers differences
Reply or subscribe to this bug.
Toggle useless messages
Report forwarded
to debian-bugs-dist@lists.debian.org, reproducible-bugs@lists.alioth.debian.org, Rob Browning <rlb@defaultvalue.org>:
Bug#995092; Package src:guile-3.0.
(Sun, 26 Sep 2021 02:27:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Vagrant Cascadian <vagrant@reproducible-builds.org>:
New Bug report received and forwarded. Copy sent to reproducible-bugs@lists.alioth.debian.org, Rob Browning <rlb@defaultvalue.org>.
(Sun, 26 Sep 2021 02:27:04 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Source: guile-3.0
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: randomness toolchain
X-Debbugs-Cc: reproducible-bugs@lists.alioth.debian.org
The order of references to various .scm files used when building guile
(or using guile to build various .go files) may appear in arbitrary
order, or sometimes even missing (in the example below):
https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/guile-3.0.html
/usr/lib/x86_64-linux-gnu/guile/3.0/ccache/ice-9/deprecated.go
26 ice-9/deprecated.scm vs. 26 ice-9/deprecated.scm
27 ice-9/boot-9.scm 27 ice-9/boot-9.scm
28 ice-9/psyntax.scm
The attached patch fixes this by disabling parallelism in debian/rules.
With this patch applied, guile-3.0 should become reproducible on
tests.reproducible-builds.org once it migrates to bookworm (in the
unstable and experimental suites build paths will still trigger issues).
Though, the underlying issue is also triggered when using guile to build
other packages... so it would be good to fix in guile upstream as well,
as this is part of a toolchain used to build other packages...
Thanks for maintaining guile-3.0!
live well,
vagrant
[0001-debian-rules-Disable-parallelism-to-avoid-embedding-.patch (text/x-diff, inline)]
From e87d944f8f0330f89a2a9d2c8028b9383f78031b Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Sun, 26 Sep 2021 02:01:07 +0000
Subject: [PATCH] debian/rules: Disable parallelism to avoid embedding
references to .scm files in arbitrary order.
---
debian/rules | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/debian/rules b/debian/rules
index 2024c94..dfe8068 100755
--- a/debian/rules
+++ b/debian/rules
@@ -27,10 +27,7 @@ export HOME := $(CURDIR)/debian/no-trespassing
# Keep this in sync with guile-doc.install
expected_info := guile.info $(foreach n,1 2 3 4 5 6 7 8 9 10 11,guile.info-$(n))
-joblimit := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
-ifeq (,$(joblimit))
- joblimit := 1
-endif
+joblimit := 1
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE := 1
@@ -101,7 +98,7 @@ define checkdir
endef
%:
- dh $@ --parallel --with autoreconf
+ dh $@ --no-parallel --with autoreconf
.PHONY: check-vars
check-vars:
--
2.30.2
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to debian-bugs-dist@lists.debian.org, Rob Browning <rlb@defaultvalue.org>:
Bug#995092; Package src:guile-3.0.
(Thu, 02 Dec 2021 17:51:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Vagrant Cascadian <vagrant@reproducible-builds.org>:
Extra info received and forwarded to list. Copy sent to Rob Browning <rlb@defaultvalue.org>.
(Thu, 02 Dec 2021 17:51:03 GMT) (full text, mbox, link).
Message #10 received at 995092@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On 2021-09-25, Vagrant Cascadian wrote:
> The order of references to various .scm files used when building guile
> (or using guile to build various .go files) may appear in arbitrary
> order, or sometimes even missing (in the example below):
>
> https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/guile-3.0.html
>
> /usr/lib/x86_64-linux-gnu/guile/3.0/ccache/ice-9/deprecated.go
>
> 26 ice-9/deprecated.scm vs. 26 ice-9/deprecated.scm
> 27 ice-9/boot-9.scm 27 ice-9/boot-9.scm
> 28 ice-9/psyntax.scm
>
>
> The attached patch fixes this by disabling parallelism in debian/rules.
>
> With this patch applied, guile-3.0 should become reproducible on
> tests.reproducible-builds.org once it migrates to bookworm (in the
> unstable and experimental suites build paths will still trigger issues).
This is also an issue for NixOS, GNU Guix and OpenSUSE:
https://github.com/NixOS/nixpkgs/pull/78778
https://issues.guix.gnu.org/issue/20272
https://build.opensuse.org/request/show/732638
So while disabling parallelism in the build takes somewhat of a
performance hit, it would still be nice to have to get reproducible
builds!
> Though, the underlying issue is also triggered when using guile to build
> other packages... so it would be good to fix in guile upstream as well,
> as this is part of a toolchain used to build other packages...
And this part is still an upstream issue... the workaround for now is to
disable parallelism in any package building with guile.
live well,
vagrant
[signature.asc (application/pgp-signature, inline)]
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Wed May 17 10:03:03 2023;
Machine Name:
buxtehude
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.