about summary refs log tree commit diff
path: root/modules/profiles
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-09-10 19:19:11 +0200
committeraszlig <aszlig@redmoonstudios.org>2015-09-10 19:19:11 +0200
commita93b7583084ff9084d73873d80d8dc428406593c (patch)
treea4f435b052f8a1ecaa60bf68b2f45a445025d1ef /modules/profiles
parentb43f5b71436d8709b5840e839f3b7b8cef0d1331 (diff)
profiles/common: Force rebuilding GHC+packages.
I was glad that the issues because of the longstanding GHC determinism
bug (https://ghc.haskell.org/trac/ghc/ticket/4012) happened less
frequently with GHC 7.10.

Unfortunately, they still happen, as reported by @Profpatsch at
headcounter/deployment#19 so we're going to override the GHC derivation
with an additional attribute that is exported into the environment of
the builder.

This attribute causes GHC and all dependant packages to be rebuilt on
the Headcounter Hydra. The original issue was because we're using the
official NixOS binary cache as well as building everything from source.

It's helpful for not needing to rebuild the entire world, but for
Haskell packages it's harmful until the mentioned GHC bug has been
fixed.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'modules/profiles')
-rw-r--r--modules/profiles/common.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/profiles/common.nix b/modules/profiles/common.nix
index 9dc788cb..c941d636 100644
--- a/modules/profiles/common.nix
+++ b/modules/profiles/common.nix
@@ -26,6 +26,14 @@ with lib;
 
   config = {
     nixpkgs.config.packageOverrides = pkgs: {
+      # XXX: REAAAALLLY UGLY hack to force the Headcounter Hydra to rebuild GHC
+      # and all its packages and not use binary substitution.
+      haskellPackages = pkgs.haskellPackages.override {
+        ghc = pkgs.haskellPackages.ghc.overrideDerivation (const {
+          forceRebuild = true;
+        });
+      };
+
       inherit (import ../../pkgs {
         # We need to make sure to incorporate other package overrides,
         # otherwise we are unable to override packages in vuizvui.*.