@@ -43,18 +43,20 @@ let
43 cleanSourceHaskell = pkgs.callPackage ./lib/clean-source-haskell.nix {};
43 cleanSourceHaskell = pkgs.callPackage ./lib/clean-source-haskell.nix {};
45 # All packages from Hackage as Nix expressions
45 # All packages from Hackage as Nix expressions
46− hackage = import (fetchExternal {
46+ hackageSrc = fetchExternal {
47 name = "hackage-exprs-source";
47 name = "hackage-exprs-source";
48 specJSON = hackageSourceJSON;
48 specJSON = hackageSourceJSON;
49 override = "hackage";
49 override = "hackage";
51+ hackage = import hackageSrc;
52 # The set of all Stackage snapshots
53 # The set of all Stackage snapshots
53− stackage = import (fetchExternal {
54+ stackageSrc = fetchExternal {
54 name = "stackage-snapshot-source";
55 name = "stackage-snapshot-source";
55 specJSON = stackageSourceJSON;
56 specJSON = stackageSourceJSON;
56 override = "stackage";
57 override = "stackage";
59+ stackage = import stackageSrc;
59 packages = self: ({
61 packages = self: ({
60 # Utility functions for working with the component builder.
62 # Utility functions for working with the component builder.
@@ -196,6 +198,11 @@ let
196 inherit (pkgs.haskellPackages) hpack;
198 inherit (pkgs.haskellPackages) hpack;
197 inherit (self) nix-tools;
199 inherit (self) nix-tools;
202+ # References to the unpacked sources, for caching in a Hydra jobset.
203+ source-pins = self.callPackage ./lib/make-source-pins.nix {
204+ sources = [ hackageSrc stackageSrc pkgs.path ];