diff --git a/flake.nix b/flake.nix index fd06ef7df7cf6a96e865dbf1c7b95f1947bdbe50..c0573fbe80a4adbbdbbaebd6259021e350a25be4 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,7 @@ compilerVersion = ghcVersion; packageName = "gbs-downloader"; hsPkgsOverrides = import ./nix/haskell-packages.nix { + inherit pkgs; haskellLib = pkgs.haskell.lib; }; }; diff --git a/nix/haskell-packages.nix b/nix/haskell-packages.nix index 0411c50574ae51acb05dd80f11bd70435fdebcfe..834ddd811b37b4157b87d57579679ba46ef3b9f5 100644 --- a/nix/haskell-packages.nix +++ b/nix/haskell-packages.nix @@ -1,8 +1,23 @@ -{haskellLib}: hfinal: hprev: { +{ + pkgs, + haskellLib, +}: hfinal: hprev: { tahoe-chk = hfinal.callPackage ./tahoe-chk.nix {}; tahoe-great-black-swamp = hfinal.callPackage ./tahoe-great-black-swamp.nix {}; # A broken dependency of a tahoe-great-black-swamp executable that we don't # use. Flip the broken bit so we can get a build. language-ecmascript = haskellLib.unmarkBroken hprev.language-ecmascript; + + # hs-flake-utils does a callCabal2nix for us but we can't use it because we + # need to overide an argument. This overlay runs before the hs-flake-utils + # overlay (a mistake?) so we can't even use hprev.gbs-downloader.override - + # we just have to re-do it all ourselves. + gbs-downloader = hfinal.callCabal2nix "gbs-downloader" ../. { + # cabal2nix gives the generated nix expression a `zlib` parameter which is + # then satisfied *from the Haskell package set* because there is a zlib + # package there and it gets precedence over the zlib in the top-level + # package set. Then the build fails because that's not the zlib we want. + inherit (pkgs) zlib; + }; }