diff --git a/flake.lock b/flake.lock index 1899f99fe9c005acd7dd8c9d0b04494490a35edb..b6e93c4e4e70bdb11a562d13367ee6df620b7440 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,22 @@ { "nodes": { + "all-cabal-hashes": { + "flake": false, + "locked": { + "lastModified": 1662285362, + "narHash": "sha256-g/IZZ7AT1ARv3o3mnnVKBHHRsI55bNMmd+Ax8kZ8fQg=", + "owner": "commercialhaskell", + "repo": "all-cabal-hashes", + "rev": "fc7a6bfbfb1b33192e82e6cdfaa2e7b39e34961d", + "type": "github" + }, + "original": { + "owner": "commercialhaskell", + "ref": "hackage", + "repo": "all-cabal-hashes", + "type": "github" + } + }, "cborg": { "flake": false, "locked": { @@ -33,22 +50,6 @@ "type": "github" } }, - "composite-dhall": { - "flake": false, - "locked": { - "lastModified": 1662127799, - "narHash": "sha256-kfrR4pUnlHy58qIQkVo8TKr0qvySrTXXrl3JELOjCCo=", - "ref": "refs/heads/master", - "rev": "d9858c59e6ba8fcfa85ab0a30f662e25f9400d41", - "revCount": 46, - "type": "git", - "url": "https://gitlab.homotopic.tech/haskell/composite-dhall" - }, - "original": { - "type": "git", - "url": "https://gitlab.homotopic.tech/haskell/composite-dhall" - } - }, "composite-lens-extra": { "flake": false, "locked": { @@ -65,6 +66,23 @@ "url": "https://gitlab.homotopic.tech/haskell/composite-lens-extra" } }, + "doctest": { + "flake": false, + "locked": { + "lastModified": 1652986762, + "narHash": "sha256-Ehlq1U6EUscYndVnH7IVe2MdjzHQTgqRQDEWR9wGVzk=", + "owner": "parsonsmatt", + "repo": "doctest", + "rev": "a5f696b80bb8220d284e34d90f0b94291b859e77", + "type": "github" + }, + "original": { + "owner": "parsonsmatt", + "repo": "doctest", + "rev": "a5f696b80bb8220d284e34d90f0b94291b859e77", + "type": "github" + } + }, "double-conversion": { "flake": false, "locked": { @@ -197,11 +215,11 @@ "hedgehog": { "flake": false, "locked": { - "lastModified": 1661722659, - "narHash": "sha256-M8b3+VYLsSIg6jOeHGPL5ctDKzp9LHhykeZ+5j8ESqE=", + "lastModified": 1662195978, + "narHash": "sha256-aZ+yA9yN80ftM2C1bpjV8SRprY6a1HsdaTDnaoM0zog=", "owner": "hedgehogqa", "repo": "haskell-hedgehog", - "rev": "70cf9fd0719e2d0ace1093cbe75673d7b9b4cf65", + "rev": "648c148a62105e09f4d76ce01bae96e56a98b7c6", "type": "github" }, "original": { @@ -280,11 +298,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1661704917, - "narHash": "sha256-h1deRhxLw9iaYzIovHT9mLFuZq/9hoge+pXSbX98B78=", + "lastModified": 1662096612, + "narHash": "sha256-R+Q8l5JuyJryRPdiIaYpO5O3A55rT+/pItBrKcy7LM4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "adf66cc31390f920854340679d7505ac577a5a8b", + "rev": "21de2b973f9fee595a7a1ac4693efff791245c34", "type": "github" }, "original": { @@ -294,28 +312,13 @@ "type": "github" } }, - "polysemy-time": { - "flake": false, - "locked": { - "lastModified": 1660942587, - "narHash": "sha256-tQQO43HgOkgxMqa1R+HC3DipJpcoM/9fK0MJf5Q3MP0=", - "owner": "tek", - "repo": "polysemy-time", - "rev": "34d406f5c270fc2cd52c80612077433e8013791f", - "type": "github" - }, - "original": { - "owner": "tek", - "repo": "polysemy-time", - "type": "github" - } - }, "root": { "inputs": { + "all-cabal-hashes": "all-cabal-hashes", "cborg": "cborg", "cereal": "cereal", - "composite-dhall": "composite-dhall", "composite-lens-extra": "composite-lens-extra", + "doctest": "doctest", "double-conversion": "double-conversion", "flake-parts": "flake-parts", "flake-utils": "flake-utils", @@ -328,7 +331,6 @@ "lint-utils": "lint-utils", "memory": "memory", "nixpkgs": "nixpkgs_2", - "polysemy-time": "polysemy-time", "tasty": "tasty", "tasty-hedgehog": "tasty-hedgehog", "th-lift-instances": "th-lift-instances" diff --git a/flake.nix b/flake.nix index f461c90b0a9a364e099dc55099231c6118bb8b2d..931dca7444c16d3586fa64268eb7b0e17c03d38d 100644 --- a/flake.nix +++ b/flake.nix @@ -8,14 +8,14 @@ url = "github:GaloisInc/cereal"; flake = false; }; - composite-dhall = { - url = "git+https://gitlab.homotopic.tech/haskell/composite-dhall"; - flake = false; - }; composite-lens-extra = { url = "git+https://gitlab.homotopic.tech/haskell/composite-lens-extra"; flake = false; }; + doctest = { + url = "github:parsonsmatt/doctest/a5f696b80bb8220d284e34d90f0b94291b859e77"; + flake = false; + }; double-conversion = { url = "github:haskell/double-conversion"; flake = false; @@ -61,20 +61,29 @@ url = "github:bennofs/th-lift-instances"; flake = false; }; - polysemy-time = { - url = "github:tek/polysemy-time"; + all-cabal-hashes = { + url = "github:commercialhaskell/all-cabal-hashes?ref=hackage"; flake = false; }; }; outputs = inputs@{ self, nixpkgs, flake-utils, lint-utils, ... }: - flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: let - pkgs = import nixpkgs { inherit system; }; + overlay-ach = final: prev: { all-cabal-hashes = inputs.all-cabal-hashes; }; + pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [overlay-ach]; }; + overrides-hp = import ./overlay.nix { inherit inputs pkgs; }; + hp = pkgs.haskell.packages.ghc942.override { + overrides = overrides-hp; + }; + hp' = pkgs.lib.filterAttrs (n: v: v != null + && builtins.typeOf v == "set" + && pkgs.lib.hasAttr "type" v + && v.type == "derivation" + && v.meta.broken == false) hp; in { - checks = { - nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt ./.; + checks.x86_64-linux = { + nixpkgs-fmt = lint-utils.outputs.linters.x86_64-linux.nixpkgs-fmt ./.; }; - overlays = import ./overlay.nix { inherit inputs pkgs; }; - }); + packages.x86_64-linux = hp'; + }; } diff --git a/overlay.nix b/overlay.nix index 9cd97237a049c8f8c0f901a133c50050d0dfbf80..0473651e3128f203bea98af02b7f2a7c379ab9b7 100644 --- a/overlay.nix +++ b/overlay.nix @@ -1,9 +1,14 @@ { inputs, pkgs }: final: prev: with pkgs.haskell.lib; { + + Cabal = prev.callHackage "Cabal" "3.8.1.0" {}; + ChasingBottoms = prev.callHackage "ChasingBottoms" "1.3.1.12" { }; OneTuple = prev.callHackage "OneTuple" "0.3.1" { }; + OpenGLRaw = prev.callHackage "OpenGLRaw" "3.3.4.1" { }; + aeson = prev.callHackage "aeson" "2.1.0.0" { }; ansi-terminal = prev.callHackage "ansi-terminal" "0.11.3" { }; @@ -12,106 +17,208 @@ final: prev: with pkgs.haskell.lib; { async = prev.callHackage "async" "2.2.4" { }; - basement = doJailbreak (prev.callCabal2nix "basement" (inputs.foundation + /basement) { }); + basement = prev.callHackage "basement" "0.0.15" { }; + + base-compat = prev.callHackage "base-compat" "0.12.2" { }; + + base-compat-batteries = prev.callHackage "base-compat-batteries" "0.12.2" { }; + + base-orphans = prev.callHackage "base-orphans" "0.8.7" { }; + + binary-orphans = prev.callHackage "binary-orphans" "1.0.3" { }; - base-compat = final.callHackage "base-compat" "0.12.2" { }; + blaze-markup = prev.callHackage "blaze-markup" "0.8.2.8" { }; - base-compat-batteries = final.callHackage "base-compat-batteries" "0.12.2" { }; + boring = prev.callHackage "boring" "0.2" { }; + + bsb-http-chunked = prev.callHackage "bsb-http-chunked" "0.0.0.4" { }; + + bytes = prev.callHackage "bytes" "0.17.2" { }; + + cabal-doctest = prev.callHackage "cabal-doctest" "1.0.9" { }; - base-orphans = dontCheck prev.base-orphans; - binary-orphans = doJailbreak (dontCheck prev.binary-orphans); - blaze-markup = doJailbreak prev.blaze-markup; - boring = doJailbreak prev.boring; - bsb-http-chunked = dontCheck (prev.bsb-http-chunked); - bytes = doJailbreak prev.bytes; - cabal-doctest = doJailbreak (prev.cabal-doctest); cborg = doJailbreak (prev.callCabal2nix "cborg" (inputs.cborg + /cborg) { }); + cborg-json = doJailbreak (prev.callCabal2nix "cborg-json" (inputs.cborg + /cborg-json) { }); + cereal = prev.callCabal2nix "cereal" inputs.cereal { }; - composite-base = doJailbreak (final.callHackage "composite-base" "0.8.1.0" { }); - composite-dhall = prev.callCabal2nix "composite-dhall" inputs.composite-dhall { }; - composite-lens-extra = prev.callCabal2nix "composite-dhall" inputs.composite-lens-extra { }; + + comonad = prev.callHackage "comonad" "5.0.8" { }; + + composite-base = doJailbreak (prev.callHackage "composite-base" "0.8.1.0" { }); + + composite-dhall = prev.callHackage "composite-dhall" "0.1.0.1" {}; + + composite-lens-extra = prev.callCabal2nix "composite-lens-extra" inputs.composite-lens-extra { }; + conduit = dontCheck prev.conduit; + constraints = doJailbreak prev.constraints; + cryptohash-sha1 = doJailbreak prev.cryptohash-sha1; + cryptonite = prev.callHackage "cryptonite" "0.30" { }; + data-fix = doJailbreak prev.data-fix; + dec = doJailbreak prev.dec; - dhall = doJailbreak prev.dhall; - doctest = doJailbreak (prev.callHackage "doctest" "0.20.0" { }); + + dhall = doJailbreak (prev.callHackage "dhall" "1.41.2" { }); + + doctest = dontCheck (prev.callCabal2nix "doctest" inputs.doctest { }); + double-conversion = prev.callCabal2nix "double-conversion" inputs.double-conversion { }; + email-validate = dontCheck prev.email-validate; + extra = dontCheck prev.extra; + fcf-containers = dontCheck prev.fcf-containers; + first-class-families = doJailbreak prev.first-class-families; + foldl = dontCheck (prev.foldl); + foundation = doJailbreak (prev.callCabal2nix "foundation" (inputs.foundation + /foundation) { }); + generic-lens-lite = doJailbreak prev.generic-lens-lite; + generic-optics-lite = doJailbreak prev.generic-optics-lite; + ghc-byteorder = doJailbreak prev.ghc-byteorder; + + ghc-paths = prev.callHackage "ghc-paths" "0.1.0.12" { }; + ghc-tcplugins-extra = final.callCabal2nix "ghc-tcplugins-extra" inputs.ghc-tcplugins-extra { }; - hashable = dontCheck (prev.callCabal2nix "hashable" inputs.hashable { }); + + hashable = prev.callHackage "hashable" "1.4.1.0" {}; + + hashtables = prev.callHackage "hashtables" "1.3" {}; + hedgehog = dontHaddock (prev.callCabal2nix "hedgehog" (inputs.hedgehog + /hedgehog) { }); + hourglass = dontCheck prev.hourglass; + hspec = doJailbreak prev.hspec; + hspec-core = dontCheck (prev.callHackage "hspec-core" "2.10.0.1" { }); + hspec-discover = dontCheck (prev.callHackage "hspec-discover" "2.10.0.1" { }); + hspec-meta = dontCheck (prev.callHackage "hspec-meta" "2.9.3" { }); + http-client = dontCheck (prev.http-client); + http-date = dontCheck (prev.http-date); + http-types = dontCheck (prev.http-types); + http2 = dontCheck prev.http2; + incipit-base = doJailbreak prev.incipit-base; + incipit-core = doJailbreak prev.incipit-core; + indexed-traversable = doJailbreak (final.callHackage "indexed-traversable" "0.1.2" { }); + indexed-traversable-instances = doJailbreak (dontCheck prev.indexed-traversable-instances); + integer-logarithms = final.callCabal2nix "integer-logarithms" inputs.integer-logarithms { }; + invariant = doJailbreak prev.invariant; + iproute = dontCheck (prev.iproute); - lens = doJailbreak (prev.callHackage "lens" "5.1" { }); + + lens = doJailbreak (prev.callHackage "lens" "5.2" { }); + lens-aeson = prev.callHackage "lens-aeson" "1.2.1" { }; + lifted-async = doJailbreak prev.lifted-async; + linear = doJailbreak prev.linear; + lucid = doJailbreak prev.lucid; + memory = prev.callCabal2nix "memory" inputs.memory { }; + network-byte-order = dontCheck (prev.network-byte-order); + nothunks = dontCheck prev.nothunks; + parallel = doJailbreak (final.callHackage "parallel" "3.2.2.0" { }); - polysemy = dontCheck prev.polysemy; - polysemy-time = dontCheck (prev.callCabal2nix "polysemy-time" (inputs.polysemy-time + /packages/time) { }); + + polysemy = dontCheck (prev.callHackage "polysemy" "1.7.1.0" {}); + + polysemy-time = dontCheck (prev.callHackage "polysemy-time" "0.5.1.0" {}); + postgresql-libpq = doJailbreak prev.postgresql-libpq; + postgresql-simple = doJailbreak prev.postgresql-simple; + pretty-simple = dontCheck prev.pretty-simple; + prettyprinter-ansi-terminal = dontCheck prev.prettyprinter-ansi-terminal; + primitive = dontCheck (prev.callHackage "primitive" "0.7.4.0" { }); + proteaaudio = doJailbreak prev.proteaaudio; + proteaaudio-sdl = doJailbreak prev.proteaaudio-sdl; + quickcheck-instances = doJailbreak prev.quickcheck-instances; + retry = dontCheck prev.retry; - scientific = doJailbreak prev.scientific; + + scientific = prev.callHackage "scientific" "0.3.7.0" { }; + sdl2 = dontCheck (final.callHackage "sdl2" "2.5.3.3" { }); + semialign = doJailbreak prev.semialign; - serialise = prev.callCabal2nix "serialise" (inputs.cborg + /serialise) { }; + + serialise = doJailbreak (prev.callCabal2nix "serialise" (inputs.cborg + /serialise) { }); + singleton-bool = doJailbreak prev.singleton-bool; + some = doJailbreak prev.some; + sop-core = doJailbreak prev.sop-core; + split = doJailbreak prev.split; + splitmix = doJailbreak (prev.splitmix); + streaming-commons = dontCheck prev.streaming-commons; + syb = dontCheck prev.syb; + tasty = doJailbreak (prev.callCabal2nix "tasty" (inputs.tasty + /core) { }); + tasty-hedgehog = doJailbreak (prev.callCabal2nix "tasty-hedgehog" inputs.tasty-hedgehog { }); + tasty-hunit = doJailbreak (prev.callCabal2nix "tasty" (inputs.tasty + /hunit) { }); + these = doJailbreak prev.these; + th-lift-instances = prev.callCabal2nix "th-lift-instances" inputs.th-lift-instances { }; + time-compat = doJailbreak prev.time-compat; + type-errors-pretty = dontCheck (doJailbreak prev.type-errors-pretty); + type-errors = dontCheck (doJailbreak prev.type-errors); + type-equality = doJailbreak prev.type-equality; + unordered-containers = doJailbreak (prev.callHackage "unordered-containers" "0.2.19.1" { }); + vault = doJailbreak prev.vault; - vector = dontCheck (prev.vector); + + vector = dontCheck (prev.callHackage "vector" "0.13.0.0" { }); + vinyl = final.callHackage "vinyl" "0.14.3" { }; + warp = dontCheck (prev.warp); + witherable = dontCheck prev.witherable; + }