summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-01-17 09:17:41 +0100
committerRicardo Wurmus <rekado@elephly.net>2019-01-17 17:56:50 +0100
commit5de93cdba77db3777f8f026c029acadd7b8bdde3 (patch)
tree17ce604d74b6e5070a4ad22d6a91fa2d64d94a1d
parent11b68c90cd89288906c595d5c31a0413ed8a496f (diff)
downloadguix-5de93cdba77db3777f8f026c029acadd7b8bdde3.tar.gz
gnu: ghc-8: Patch ghc-pkg for reproducibility.
Fixes <https://bugs.gnu.org/33922>.

Co-authored-by: Timothy Sample <samplet@ngyro.com>.

* gnu/packages/haskell.scm (ghc-8)[arguments]: Add build phase
"fix-ghc-pkg-nondeterminism".
-rw-r--r--gnu/packages/haskell.scm12
1 files changed, 10 insertions, 2 deletions
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index b40a5d05da..a3ce2a3e4c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
@@ -14,7 +14,7 @@
 ;;; Copyright © 2017 rsiddharth <s@ricketyspace.net>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
-;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;;
@@ -509,6 +509,14 @@ interactive environment for the functional language Haskell.")
                      (assoc-ref inputs "ghc-testsuite")
                      "--strip-components=1")
              #t))
+         ;; This phase patches the 'ghc-pkg' command so that it sorts the list
+         ;; of packages in the binary cache it generates.
+         (add-before 'build 'fix-ghc-pkg-nondeterminism
+           (lambda _
+             (substitute* "utils/ghc-pkg/Main.hs"
+               (("confs = map \\(path </>\\) \\$ filter \\(\".conf\" `isSuffixOf`\\) fs")
+                "confs = map (path </>) $ filter (\".conf\" `isSuffixOf`) (sort fs)"))
+             #t))
          (add-after 'unpack-testsuite 'fix-shell-wrappers
            (lambda _
              (substitute* '("driver/ghci/ghc.mk"