diff options
Diffstat (limited to 'nixpkgs/pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r-- | nixpkgs/pkgs/development/haskell-modules/make-package-set.nix | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix index 6b5ecc1df8af..04cbd88989a6 100644 --- a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix +++ b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix @@ -118,9 +118,10 @@ let inherit packages; }; + # Use cabal2nix to create a default.nix for the package sources found at 'src'. haskellSrc2nix = { name, src, sha256 ? null, extraCabal2nixOptions ? "" }: let - sha256Arg = if isNull sha256 then "--sha256=" else ''--sha256="${sha256}"''; + sha256Arg = if sha256 == null then "--sha256=" else ''--sha256="${sha256}"''; in pkgs.buildPackages.stdenv.mkDerivation { name = "cabal2nix-${name}"; nativeBuildInputs = [ pkgs.buildPackages.cabal2nix ]; @@ -174,8 +175,14 @@ in package-set { inherit pkgs stdenv callPackage; } self // { inherit (haskellLib) packageSourceOverrides; + # callHackage :: Text -> Text -> AttrSet -> HaskellPackage + # + # e.g., while overriding a package set: + # '... foo = self.callHackage "foo" "1.5.3" {}; ...' callHackage = name: version: callPackageKeepDeriver (self.hackage2nix name version); + # callHackageDirect :: Text -> Text -> AttrSet -> HaskellPackage + # # This function does not depend on all-cabal-hashes and therefore will work # for any version that has been released on hackage as opposed to only # versions released before whatever version of all-cabal-hashes you happen |