diff --git a/ghc-rpm-macros.changes b/ghc-rpm-macros.changes index 8a62021..3ba4e7e 100644 --- a/ghc-rpm-macros.changes +++ b/ghc-rpm-macros.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Tue Oct 24 14:39:05 UTC 2023 - Peter Simons + +- Apply "reproducible-builds.patch", which makes GHC output + deterministic by disabling multi-threaded compilation. Adding + + Macros: + # Enable multi-threaded builds in this project. This makes our + # build products non-deterministic, e.g. not reproducible, but + # we don't need them to be and would rather have fast results. + %ghc_smp_mflags %{?_smp_mflags} + :Macros + + to an OBS project configuration re-enables multi-threaded builds, + which might be useful for development projects that don't deliver + binaries. + ------------------------------------------------------------------- Sun Aug 6 14:34:29 UTC 2023 - Ondřej Súkup @@ -24,7 +41,7 @@ Thu Mar 16 18:26:11 UTC 2023 - Ondřej Súkup ------------------------------------------------------------------- Mon Nov 1 05:59:41 UTC 2021 - Ondřej Súkup -- fix build, remove white space +- fix build, remove white space ------------------------------------------------------------------- Mon May 10 10:37:06 UTC 2021 - Ondřej Súkup diff --git a/ghc-rpm-macros.spec b/ghc-rpm-macros.spec index 9b0e5fc..b4b6f46 100644 --- a/ghc-rpm-macros.spec +++ b/ghc-rpm-macros.spec @@ -26,6 +26,7 @@ Group: Development/Libraries/Other URL: https://fedoraproject.org/wiki/Haskell_SIG # source gets updated with osc service dr Source0: %{name}-%{version}.tar.xz +Patch1: https://github.com/opensuse-haskell/ghc-rpm-macros/pull/1.patch#/reproducible-builds.patch BuildRequires: xz Requires: rpm Requires: chrpath @@ -49,7 +50,7 @@ Extra macros used for subpackaging of Haskell libraries, for example in ghc and haskell-platform. %prep -%setup -q +%autosetup -p1 %build echo no build stage needed diff --git a/reproducible-builds.patch b/reproducible-builds.patch new file mode 100644 index 0000000..17a50aa --- /dev/null +++ b/reproducible-builds.patch @@ -0,0 +1,25 @@ +From fc753c7f752ea77650ca708104acc384f025dd54 Mon Sep 17 00:00:00 2001 +From: "Bernhard M. Wiedemann" +Date: Sat, 15 Apr 2023 07:09:01 +0200 +Subject: [PATCH] Compile with only 1 thread + +but give an option to do fast non-deterministic builds + +parallel compile causes assignment of random symbol names +so we build single-threaded, which is slower, but gives reproducible results +--- + macros.ghc-suse | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/macros.ghc-suse b/macros.ghc-suse +index 3fe39a0..61a154a 100644 +--- a/macros.ghc-suse ++++ b/macros.ghc-suse +@@ -29,4 +29,6 @@ mkdir -p %{buildroot}/usr/src/debug + %with_ghc_prof 1 + + # %%{?_smp_ncpus_max:--jobs=%%{?_smp_ncpus_max}} +-%ghc_smp_mflags %{?_smp_mflags} ++# parallel compile causes assignment of random symbol names ++# so for distribution releases we build single-threaded, which is slower, but gives reproducible results ++# for devel project set ghc_smp_flags in Macros