diff --git a/default.nix b/default.nix index cea6bf484..c1674f255 100644 --- a/default.nix +++ b/default.nix @@ -33,7 +33,7 @@ let }; # The haskell environment used to build Obelisk itself, e.g. the 'ob' command - ghcObelisk = reflex-platform.ghc; + ghcObelisk = if useGHC810 then reflex-platform.ghc8_10 else reflex-platform.ghc8_6; # Development environments for obelisk packages. ghcObeliskEnvs = pkgs.lib.mapAttrs (n: v: reflex-platform.workOn ghcObelisk v) ghcObelisk; @@ -344,6 +344,10 @@ in rec { shells = { ${if self.userSettings.android == null && self.userSettings.ios == null then null else "ghcSavedSplices"} = lib.filter (x: lib.hasAttr x self.combinedPackages) self.shells-ghcSavedSplices; + + ${if self.userSettings.ios == null then null else "ghcIosAarch64"} = + lib.filter (x: lib.hasAttr x self.combinedPackages) self.shells-ghcSavedSplices; + ghc = lib.filter (x: lib.hasAttr x self.combinedPackages) self.shells-ghc; ghcjs = lib.filter (x: lib.hasAttr x self.combinedPackages) self.shells-ghcjs; }; diff --git a/dep/hnix/github.json b/dep/hnix/github.json index b10ae880b..65bea5f6d 100644 --- a/dep/hnix/github.json +++ b/dep/hnix/github.json @@ -1,9 +1,9 @@ { - "owner": "haskell-nix", + "owner": "obsidiansystems", "repo": "hnix", "branch": "hackage-0.12.0.1", "private": false, - "rev": "0f23778ffe64fe24c2119866437cc53735262856", - "sha256": "sha256-yAR3cIVI/DwuBSlvAt1nKG5a0QcsJlGpsr9ndpZBc0U=", + "rev": "61863c73b54db00aace51fe103d316b4e19dcd9d", + "sha256": "sha256-WebNMei/do+ZXDhBoxzEGjq000PVWdNvdikgSsRS+SM=", "fetchSubmodules": true } diff --git a/dep/logging-effect/default.nix b/dep/logging-effect/default.nix deleted file mode 100644 index 9852e4312..000000000 --- a/dep/logging-effect/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -# DO NOT HAND-EDIT THIS FILE -import (import ./thunk.nix) diff --git a/dep/logging-effect/github.json b/dep/logging-effect/github.json deleted file mode 100644 index b2a4132a3..000000000 --- a/dep/logging-effect/github.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "owner": "ocharles", - "repo": "logging-effect", - "branch": "master", - "private": false, - "rev": "efc856b62aec15f0087be0edb7ba621ed49b0bb1", - "sha256": "13nr3zw39415js1af2vd322vhzwqb2rkrv7b5lkd97h211d7zbj9" -} diff --git a/dep/logging-effect/thunk.nix b/dep/logging-effect/thunk.nix deleted file mode 100644 index 4a58207ab..000000000 --- a/dep/logging-effect/thunk.nix +++ /dev/null @@ -1,12 +0,0 @@ -# DO NOT HAND-EDIT THIS FILE -let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }: - if !fetchSubmodules && !private then builtins.fetchTarball { - url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256; - } else (import (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/3aad50c30c826430b0270fcf8264c8c41b005403.tar.gz"; - sha256 = "0xwqsf08sywd23x0xvw4c4ghq0l28w2ki22h0bdn766i16z9q2gr"; -}) {}).fetchFromGitHub { - inherit owner repo rev sha256 fetchSubmodules private; - }; - json = builtins.fromJSON (builtins.readFile ./github.json); -in fetch json diff --git a/dep/reflex-platform/github.json b/dep/reflex-platform/github.json index 17960950b..cea347103 100644 --- a/dep/reflex-platform/github.json +++ b/dep/reflex-platform/github.json @@ -1,8 +1,8 @@ { "owner": "reflex-frp", "repo": "reflex-platform", - "branch": "develop", + "branch": "lw/develop", "private": false, - "rev": "6c8830e059a6d2859cb1b65acefed3c2f1d216d3", - "sha256": "sha256:06kv45yq8qan0p22wzj5c9mx11ns1wddyqjr1xasjjkf6gaf0080" + "rev": "05000f97f1bce6dad6f3c543169ee0c1391d6bbd", + "sha256": "0fz8aivlsws5wsd64cmb63g5yy6l9zqh1rckp6li6yvmfqgm25fp" } diff --git a/dep/snap-core/default.nix b/dep/snap-core/default.nix deleted file mode 100644 index 0cf822e33..000000000 --- a/dep/snap-core/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -# DO NOT HAND-EDIT THIS FILE -let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }: - if !fetchSubmodules && !private then builtins.fetchTarball { - url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256; - } else (import {}).fetchFromGitHub { - inherit owner repo rev sha256 fetchSubmodules private; - }; -in import (fetch (builtins.fromJSON (builtins.readFile ./github.json))) diff --git a/dep/snap-core/github.json b/dep/snap-core/github.json deleted file mode 100644 index cf959b5fe..000000000 --- a/dep/snap-core/github.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "owner": "obsidiansystems", - "repo": "snap-core", - "branch": "ts-expose-fileserve-internals", - "private": false, - "rev": "e015fc484e38dd9389c58b277b1884395e553bdf", - "sha256": "1793x1h4lw9vnrii5akhfxx1x9yrgxf3052jf6bs8f1mhaic6mxx" -} diff --git a/haskell-overlays/misc-deps.nix b/haskell-overlays/misc-deps.nix index f2bd3f5a3..dce0bb7e6 100644 --- a/haskell-overlays/misc-deps.nix +++ b/haskell-overlays/misc-deps.nix @@ -10,11 +10,10 @@ let in rec { - resolv = haskellLib.dontCheck (self.callHackage "resolv" "0.1.2.0" {}); - cabal-install = haskellLib.doJailbreak ((self.callHackage "cabal-install" "3.4.1.0" {}).overrideScope (self: super: { Cabal = self.Cabal_3_4_0_0; })); - # hpack requires cabal >= 3.0 but the ghc865 package set builds it with 2.4 by default - hpack = super.hpack.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; }); + hpack = if __useNewerCompiler + then super.hpack + else super.hpack.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; }); # These versions work with both the ghc865 and ghc8107 package sets git = self.callCabal2nix "git" (hackGet ../dep/hs-git) { }; @@ -23,12 +22,7 @@ rec { universe-dependent-sum-810 = self.callHackage "universe-dependent-sum" "1.3" {}; universe-some-810 = haskellLib.dontHaddock (haskellLib.appendBuildFlags (haskellLib.doJailbreak (self.callHackage "universe-some" "1.2" { })) [ "--ghc-option=-Wno-inferred-safe-imports" "--ghc-option=-Wno-missing-safe-haskell-mode" ]); - stylish-haskell = null; # FIXME - beam-migrate = self.callHackageDirect { - pkg = "beam-migrate"; - ver = "0.5.1.2"; - sha256 = "sha256-vEv/6DCvuEq6cmxoPKxZNIm5g6YUgrdvAK4YAoZQr/E="; - } {}; + beam-migrate = self.callHackage "beam-migrate" "0.5.1.2" {}; universe-810 = self.callHackage "universe" "1.2" {}; universe-instances-extended-810 = self.callHackage "universe-instances-extended" "1.1.1" {}; @@ -39,7 +33,6 @@ rec { universe-86 = haskellLib.dontCheck (self.callHackage "universe" "1.2" {}); universe-instances-extended-86 = self.callHackage "universe-instances-extended" "1.1.1" {}; - hnix-86 = haskellLib.dontCheck super.hnix; universe = mkVersionset __useNewerCompiler universe-86 universe-810; universe-instances-extended = mkVersionset __useNewerCompiler universe-instances-extended-86 universe-instances-extended-810; @@ -49,38 +42,36 @@ rec { universe-some-86 = self.callHackage "universe-some" "1.2" {}; universe-some = mkVersionset __useNewerCompiler universe-some-86 universe-some-810; - regex-base = self.callHackage "regex-base" "0.94.0.0" { }; - regex-posix = self.callHackage "regex-posix" "0.96.0.0" { }; - regex-tdfa = self.callHackage "regex-tdfa" "1.3.1.0" { }; - test-framework = haskellLib.dontCheck (self.callHackage "test-framework" "0.8.2.0" { }); - hnix-store-core = haskellLib.dontCheck super.hnix-store-core; hnix-store = haskellLib.dontCheck super.hnix-store; - # https://github.com/haskell/hackage-security/issues/247 - hackage-security = haskellLib.dontCheck super.hackage-security; # only tests use aeson and are not compat with 1.5; - heist = haskellLib.dontCheck (haskellLib.doJailbreak super.heist); # aeson 1.5 bump - aeson-gadt-th = haskellLib.doJailbreak super.aeson-gadt-th; # requires aeson 1.5 for ghc8.10 support? - deriving-compat = self.callHackage "deriving-compat" "0.6" { }; - http-api-data = haskellLib.doJailbreak super.http-api-data; nix-derivation = haskellLib.doJailbreak super.nix-derivation; - algebraic-graphs = haskellLib.doJailbreak super.algebraic-graphs; - snap = haskellLib.doJailbreak super.snap; ghcid = self.callCabal2nix "ghcid" (hackGet ../dep/ghcid) { }; - # Exports more internals - snap-core = haskellLib.dontCheck (self.callCabal2nix "snap-core" (hackGet ../dep/snap-core) { }); - logging-effect = self.callCabal2nix "logging-effect" (hackGet ../dep/logging-effect) { }; - resourcet = self.callHackage "resourcet" "1.2.4.2" { }; - unliftio-core = self.callHackage "unliftio-core" "0.2.0.1" { }; shelly = self.callHackage "shelly" "1.9.0" { }; # version >= 0.2.5.2 has a Cabal version of 3.0, which nix doesn't like vector-binary-instances = self.callHackage "vector-binary-instances" "0.2.5.1" {}; - modern-uri = haskellLib.doJailbreak super.modern-uri; - monad-logger = self.callHackage "monad-logger" "0.3.36" { }; + modern-uri = if __useNewerCompiler + then super.modern-uri + else haskellLib.doJailbreak super.modern-uri; neat-interpolation = haskellLib.doJailbreak super.neat-interpolation; - nix-thunk = (import ../dep/nix-thunk { }).makeRunnableNixThunk (self.callCabal2nix "nix-thunk" (hackGet ../dep/nix-thunk) { }); - cli-extras = self.callCabal2nix "cli-extras" (hackGet ../dep/cli-extras) { }; + nix-thunk = (import ../dep/nix-thunk { }).makeRunnableNixThunk (haskellLib.doJailbreak (self.callCabal2nix "nix-thunk" (hackGet ../dep/nix-thunk) { })); + + # aeson 2.0 & attoparsec 0.14 support overrides + binary-instances = haskellLib.doJailbreak (self.callHackage "binary-instances" "1.0.3" {}); + binary-orphans = self.callHackage "binary-orphans" "1.0.3" {}; + semialign-indexed = haskellLib.doJailbreak (self.callHackage "semialign-indexed" "1.2" {}); + io-streams = self.callHackage "io-streams" "1.5.2.1" {}; + io-streams-haproxy = self.callHackage "io-streams-haproxy" "1.0.1.0" {}; + snap-core = self.callHackage "snap-core" "1.0.5.0" {}; + snap-server = haskellLib.doJailbreak super.snap-server; + cborg = self.callHackage "cborg" "0.2.8.0" {}; + heist = haskellLib.dontCheck (self.callHackage "heist" "1.1.1.0" {}); + github = self.callHackage "github" "0.28.0.1" {}; + http-streams = self.callHackage "http-streams" "0.8.9.6" {}; + http-common = self.callHackage "http-common" "0.8.3.4" {}; + + cli-extras = haskellLib.doJailbreak (self.callCabal2nix "cli-extras" (hackGet ../dep/cli-extras) { }); cli-git = haskellLib.overrideCabal (self.callCabal2nix "cli-git" (hackGet ../dep/cli-git) { }) { librarySystemDepends = with pkgs; [ gitMinimal