diff options
author | Shea Levy <shea@shealevy.com> | 2018-03-02 09:37:02 -0500 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2018-03-02 09:37:02 -0500 |
commit | 62a1abe20465a2fd1da08cfea3cdeedcf1913ebb (patch) | |
tree | 4b9fdab296eee6bb8a92bb717f926f7217762bb1 /pkgs/development/haskell-modules/make-package-set.nix | |
parent | 336eb53f727820e5081a48715f040d8db4e3c367 (diff) | |
download | nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar.gz nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar.bz2 nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar.lz nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar.xz nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.tar.zst nixlib-62a1abe20465a2fd1da08cfea3cdeedcf1913ebb.zip |
haskellPackages.callCabal2nix: Depend on the expression.
This ensures that as long as the package derivation is alive, its nix expressions do not need to be regenerated. Fixes #36190.
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r-- | pkgs/development/haskell-modules/make-package-set.nix | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index 458c4eae136d..2a96c66dced5 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -145,17 +145,21 @@ in package-set { inherit pkgs stdenv callPackage; } self // { callHackage = name: version: self.callPackage (self.hackage2nix name version); # Creates a Haskell package from a source package by calling cabal2nix on the source. - callCabal2nix = name: src: args: - overrideCabal (self.callPackage (haskellSrc2nix { + callCabal2nix = name: src: args: let + filter = path: type: + pkgs.lib.hasSuffix "${name}.cabal" path || + baseNameOf path == "package.yaml"; + expr = haskellSrc2nix { inherit name; - src = - let filter = path: type: - pkgs.lib.hasSuffix "${name}.cabal" path || - baseNameOf path == "package.yaml"; - in if pkgs.lib.canCleanSource src - then pkgs.lib.cleanSourceWith { inherit src filter; } - else src; - }) args) (_: { inherit src; }); + src = if pkgs.lib.canCleanSource src + then pkgs.lib.cleanSourceWith { inherit src filter; } + else src; + }; + in overrideCabal (self.callPackage expr args) (orig: { + inherit src; + preConfigure = + "# Generated from ${expr}\n${orig.preConfigure or ""}"; + }); # : { root : Path # , source-overrides : Defaulted (Either Path VersionNumber) |