#995092 guile-3.0: reproducible builds: parallelism triggers differences

Package:
src:guile-3.0
Source:
guile-3.0
Submitter:
Vagrant Cascadian
Date:
2025-02-21 02:42:02 UTC
Severity:
normal
Tags:
#995092#5
Date:
2021-09-26 02:22:13 UTC
From:
To:
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

#995092#10
Date:
2021-12-02 17:46:10 UTC
From:
To:
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!

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

#995092#15
Date:
2025-02-21 02:31:53 UTC
From:
To:
Vagrant Cascadian <vagrant@reproducible-builds.org> writes:

I noticed that the current reproducible builds report is "sunny", but
wondered if that was because the problem's been resolved somehow, or
perhaps because guile-3.0's been special-cased somewhere?

Thanks