From 7b49b870cb2326b998e90818a22055fd6e52959d Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 25 Aug 2018 15:24:41 +0200 Subject: [PATCH] haskell: have a dedicated file for non Hackage packages We had a few "overrides" in configuration-common.nix that were really extensions. They introduced packages that weren't in hackage-packages.nix. The advantage of having a dedicated file for these packages is that we can still place Nix-specific overrides to these packages in configuration-nix.nix. We weren't able do this before because configuration-nix.nix extended only the packages from hackage-packages.nix. --- .../haskell-modules/configuration-common.nix | 9 --------- pkgs/development/haskell-modules/default.nix | 5 ++++- .../haskell-modules/non-hackage-packages.nix | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 pkgs/development/haskell-modules/non-hackage-packages.nix diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 46e104e34724..15bd1507cc93 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -704,12 +704,6 @@ self: super: { then appendConfigureFlag super.gtk "-fhave-quartz-gtk" else super.gtk; - # vaultenv is not available from Hackage. - vaultenv = self.callPackage ../tools/haskell/vaultenv { }; - - # futhark is not available from Hackage. - futhark = self.callPackage ../compilers/futhark { }; - # https://github.com/Philonous/hs-stun/pull/1 # Remove if a version > 0.1.0.1 ever gets released. stunclient = overrideCabal super.stunclient (drv: { @@ -950,9 +944,6 @@ self: super: { # Tries to read a file it is not allowed to in the test suite load-env = dontCheck super.load-env; - # Add support for https://github.com/haskell-hvr/multi-ghc-travis. - multi-ghc-travis = self.callPackage ../tools/haskell/multi-ghc-travis {}; - # https://github.com/yesodweb/Shelly.hs/issues/162 shelly = dontCheck super.shelly; diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix index b8943a55394a..a4f0399cf3c6 100644 --- a/pkgs/development/haskell-modules/default.nix +++ b/pkgs/development/haskell-modules/default.nix @@ -4,6 +4,7 @@ , packageSetConfig ? (self: super: {}) , overrides ? (self: super: {}) , initialPackages ? import ./initial-packages.nix +, nonHackagePackages ? import ./non-hackage-packages.nix , configurationCommon ? import ./configuration-common.nix , configurationNix ? import ./configuration-nix.nix }: @@ -26,7 +27,9 @@ let (extends packageSetConfig (extends compilerConfig (extends commonConfiguration - (extends nixConfiguration haskellPackages))))); + (extends nixConfiguration + (extends nonHackagePackages + haskellPackages)))))); in diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix new file mode 100644 index 000000000000..642c6bff6b53 --- /dev/null +++ b/pkgs/development/haskell-modules/non-hackage-packages.nix @@ -0,0 +1,14 @@ +# EXTRA HASKELL PACKAGES NOT ON HACKAGE +# +# This file should only contain packages that are not in ./hackage-packages.nix. +# Attributes in this set should be nothing more than a callPackage call. +# Overrides to these packages should go to either configuration-nix.nix, +# configuration-common.nix or to one of the compiler specific configuration +# files. +self: super: { + multi-ghc-travis = self.callPackage ../tools/haskell/multi-ghc-travis { }; + + vaultenv = self.callPackage ../tools/haskell/vaultenv { }; + + futhark = self.callPackage ../compilers/futhark { }; +}