diff --git a/default.nix b/default.nix index 075e77245..9a379bf2e 100644 --- a/default.nix +++ b/default.nix @@ -117,34 +117,31 @@ let iosSupport = system == "x86_64-darwin"; configureFlags = ["--enable-shared" "--enable-static"]; }); }; - zlib = super.zlib.override (lib.optionalAttrs - (self.stdenv.hostPlatform != self.stdenv.buildPlatform) - { static = true; shared = true; }); + #zlib = super.zlib.override (lib.optionalAttrs + # (self.stdenv.hostPlatform != self.stdenv.buildPlatform) + # { static = true; shared = true; }); }; mobileGhcOverlay = import ./nixpkgs-overlays/mobile-ghc { inherit lib; }; - allCabalHashesOverlay = import ./nixpkgs-overlays/all-cabal-hashes; - nixpkgsArgs = { inherit system; overlays = [ - (import ./nixpkgs-overlays/ghc.nix { inherit lib; }) hackGetOverlay bindHaskellOverlays forceStaticLibs splicesEval mobileGhcOverlay - allCabalHashesOverlay + #allCabalHashesOverlay (self: super: { runtimeShellPackage = if (self.stdenv.hostPlatform.isGhcjs || self.stdenv.targetPlatform.isiOS) then super.buildPackages.runtimeShellPackage else super.runtimeShellPackage; - polkit = super.polkit.override { - gobject-introspection = super.gobject-introspection-unwrapped; - }; + #polkit = super.polkit.override { + # gobject-introspection = super.gobject-introspection-unwrapped; + #}; darwin = super.darwin.overrideScope (dself: dsuper: { ios-deploy = dsuper.ios-deploy.overrideAttrs (_: { @@ -170,10 +167,6 @@ let iosSupport = system == "x86_64-darwin"; ''; }); - libiconv = super.libiconv.overrideAttrs (old: lib.optionalAttrs (self.stdenv.hostPlatform.useAndroidPrebuilt or false) { - configureFlags = [ "--disable-shared" "--enable-static" ]; - }); - libffi = if (self.stdenv.hostPlatform.useAndroidPrebuilt or false) then super.libffi_3_3 else super.libffi; }) ] ++ nixpkgsOverlays; @@ -306,7 +299,10 @@ let iosSupport = system == "x86_64-darwin"; }) ]); }; - ghcjs = if __useNewerCompiler then ghcjs8_10 else ghcjs8_6; + ghcjs = ghcjs9_12; + ghcjs9_12 = (makeRecursivelyOverridable nixpkgs.pkgsCross.ghcjs.haskell.packages.ghc912).override { + overrides = nixpkgs.haskell.overlays.combined; + }; ghcjs8_6 = (makeRecursivelyOverridable (nixpkgsCross.ghcjs.haskell.packages.ghcjs86.override (old: { ghc = old.ghc.override { bootPkgs = old.ghc.bootPkgs // { happy = old.ghc.bootPkgs.happy_1_19_12; }; @@ -332,7 +328,10 @@ let iosSupport = system == "x86_64-darwin"; overrides = nixpkgsCross.wasm.haskell.overlays.combined; }); - ghc = if __useNewerCompiler then ghc8_10 else ghc8_6; + ghc = ghc9_12; + ghc9_12 = (makeRecursivelyOverridable nixpkgs.haskell.packages.ghc912).override { + overrides = nixpkgs.haskell.overlays.combined; + }; ghcHEAD = (makeRecursivelyOverridable nixpkgs.haskell.packages.ghcHEAD).override { overrides = nixpkgs.haskell.overlays.combined; }; @@ -549,19 +548,18 @@ in let this = rec { # Tools that are useful for development under both ghc and ghcjs generalDevTools' = { nativeHaskellPackages ? ghc }: { inherit (nativeHaskellPackages) + haskell-language-server Cabal - cabal-install - ghcid hasktags - stylish-haskell # Recent stylish-haskell only builds with AMP in place - reflex-ghci ; inherit (nixpkgs) + cabal-install + ghcid cabal2nix curl nix-prefetch-scripts nodejs - pkgconfig + pkg-config closurecompiler ; }; diff --git a/haskell-overlays/default.nix b/haskell-overlays/default.nix index 087c50fd5..5a090e463 100644 --- a/haskell-overlays/default.nix +++ b/haskell-overlays/default.nix @@ -47,7 +47,6 @@ rec { reflexPackages profiling - untriaged (optionalExtension enableExposeAllUnfoldings exposeAllUnfoldings) @@ -118,8 +117,6 @@ rec { combined-ghc = self: super: foldExtensions [ (self: super: { - hoogle = self.callHackage "hoogle" "5.0.18.3" {}; - hpack = self.callHackage "hpack" "0.34.5" {}; }) (optionalExtension (versionWildcard [ 8 6 ] super.ghc.version) ghc-8_6) (optionalExtension (lib.versionOlder "8.11" super.ghc.version) ghc-head) diff --git a/haskell-overlays/reflex-packages/default.nix b/haskell-overlays/reflex-packages/default.nix index f7cc5c535..bf601e5c8 100644 --- a/haskell-overlays/reflex-packages/default.nix +++ b/haskell-overlays/reflex-packages/default.nix @@ -5,36 +5,17 @@ , useWebkit2Gtk }: -with haskellLib; +with haskellLib.compose; self: super: let - universeRepo = self._dep.universe; - reflexDomRepo = self._dep.reflex-dom; - jsaddleSrc = self._dep.jsaddle; - gargoyleSrc = self._dep.gargoyle; - wasmCross = hackGet ../../wasm-cross; - reflexOptimizerFlag = lib.optional (useReflexOptimizer && (self.ghc.cross or null) == null) "-fuse-reflex-optimizer"; useTemplateHaskellFlag = lib.optional (!__useTemplateHaskell) "-f-use-template-haskell"; useWebkit2GtkFlag = if useWebkit2Gtk then ["-fwebkit2gtk"] else ["-f-webkit2gtk"] ++ lib.optional ((nixpkgs.stdenv.hostPlatform.isLinux or false) && !nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt) "-fuse-warp"; # Enable warp on linux if webkit2gtk is disabled. Other platforms have other default runners - inherit (nixpkgs) stdenv; - # Older chromium for reflex-dom-core test suite - nixpkgs_oldChromium = import ../../nixpkgs-old-chromium { - inherit (nixpkgs.stdenv.buildPlatform) system; - overlays = [ (self: super: { - # Disable tests for p11-kit, a dependency of chromium - # They fail on non-NixOS systems - # https://github.com/NixOS/nixpkgs/issues/96715 - p11-kit = super.p11-kit.overrideAttrs (oldAttrs: { - doCheck = false; - }); - })]; - }; in { _dep = super._dep or {} // thunkSet ./dep; @@ -43,206 +24,85 @@ in ## Reflex family ## - reflex = self.callCabal2nixWithOptions "reflex" self._dep.reflex (lib.concatStringsSep " " (lib.concatLists [ - (lib.optional enableTraceReflexEvents "-fdebug-trace-events") - reflexOptimizerFlag - useTemplateHaskellFlag - (lib.optional useFastWeak "-ffast-weak") - ])) {}; - - reflex-todomvc = - let - flags = - if useWebkit2Gtk && nixpkgs.stdenv.hostPlatform.isLinux - then [ "-f-warp" "-f-webkitgtk" "-f-wkwebview" ] - else if (nixpkgs.stdenv.hostPlatform.isLinux && !nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt) - then [ "-fwarp" "-f-webkitgtk" "-f-wkwebview" "-f-webkit2gtk" ] - else if self.ghc.stdenv.targetPlatform.isiOS - then [ "-f-webkit2gtk" "-f-warp" "-f-webkitgtk" ] - else if nixpkgs.stdenv.hostPlatform.isDarwin - then [ "-fwkwebview" "-f-webkit2gtk" "-f-webkitgtk" ] - else []; - in - (haskellLib.doJailbreak (self.callCabal2nixWithOptions "reflex-todomvc" self._dep.reflex-todomvc (lib.concatStringsSep " " flags) {})); - reflex-aeson-orphans = self.callCabal2nix "reflex-aeson-orphans" self._dep.reflex-aeson-orphans {}; - - # The tests for reflex-dom-core are not deterministic, disable them, and run them manually - reflex-dom-core = let - inherit (self) ghc; - noGcTest = stdenv.hostPlatform.system != "x86_64-linux" - || stdenv.hostPlatform != stdenv.buildPlatform - || stdenv.targetPlatform.isiOS - || (ghc.isGhcjs or false); - in haskellLib.overrideCabal - (self.callCabal2nixWithOptions "reflex-dom-core" (reflexDomRepo + "/reflex-dom-core") (lib.concatStringsSep " " (lib.concatLists [ - reflexOptimizerFlag - useTemplateHaskellFlag - (lib.optional enableLibraryProfiling "-fprofile-reflex") - [ "-f-hydration-tests" ] - [ "-f-gc-tests" ] - ])) {}) - (drv: { - # TODO: Get hlint working for cross-compilation - #doCheck = stdenv.hostPlatform == stdenv.buildPlatform && !(ghc.isGhcjs or false); - doCheck = false; - # The headless browser run as part of the tests will exit without this - preBuild = (drv.preBuild or "") + '' - export HOME="$PWD" - ''; - - # Show some output while running tests, so we might notice what's wrong - testTarget = "--show-details=streaming"; - - testHaskellDepends = with self; (drv.testHaskellDepends or []) ++ lib.optionals (!noGcTest) [ - temporary - jsaddle-warp - process - chrome-test-utils - ]; - - testSystemDepends = with nixpkgs; (drv.testSystemDepends or []) ++ lib.optionals (nixpkgs.stdenv.hostPlatform.isLinux) [ - nixpkgs_oldChromium.selenium-server-standalone - nixpkgs_oldChromium.chromium - which - ] ++ lib.optionals (!noGcTest) [ - nixpkgs.iproute2 - ]; - } // lib.optionalAttrs (!noGcTest) { - # The headless browser run as part of gc tests would hang/crash without this - preCheck = '' - export FONTCONFIG_PATH=${nixpkgs.fontconfig.out}/etc/fonts - '' + (drv.preCheck or ""); - }); - - reflex-dom = haskellLib.doJailbreak (haskellLib.overrideCabal (self.callCabal2nixWithOptions "reflex-dom" (reflexDomRepo + "/reflex-dom") (lib.concatStringsSep " " (lib.concatLists [ - reflexOptimizerFlag - useTemplateHaskellFlag - useWebkit2GtkFlag - ])) { }) (drv: { - preConfigure = (drv.preConfigure or "") + '' - sed -i 's|aeson >=1.4 && <1.6|aeson -any|g' *.cabal - ''; - - libraryHaskellDepends = [ - self.reflex - self.reflex-dom-core - self.aeson - ] ++ lib.optional (nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt or false) self.android-activity - ++ lib.optional (nixpkgs.stdenv.hostPlatform.isDarwin or false) self.jsaddle-wkwebview - ++ lib.optional ((nixpkgs.stdenv.hostPlatform.isLinux or false) && !nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt) self.jsaddle-warp; - })); - - chrome-test-utils = self.callCabal2nix "chrome-test-utils" (reflexDomRepo + "/chrome-test-utils") {}; - - ## - ## Terminal / Conventional OS - ## - - reflex-vty = haskellLib.doJailbreak (self.callCabal2nix "reflex-vty" self._dep.reflex-vty {}); - reflex-process = self.callCabal2nix "reflex-process" self._dep.reflex-process {}; - reflex-fsnotify = self.callCabal2nix "reflex-fsnotify" self._dep.reflex-fsnotify {}; - - ## - ## Tooling - ## - - reflex-ghci = dontCheck (self.callCabal2nix "reflex-ghci" self._dep.reflex-ghci {}); - - ## - ## GHCJS and JSaddle - ## - - jsaddle = doJailbreak (self.callCabal2nix "jsaddle" (jsaddleSrc + "/jsaddle") {}); - jsaddle-clib = self.callCabal2nix "jsaddle-clib" (jsaddleSrc + "/jsaddle-clib") {}; - jsaddle-webkit2gtk = overrideCabal (self.callCabal2nix "jsaddle-webkit2gtk" (jsaddleSrc + "/jsaddle-webkit2gtk") {}) (drv: { - preConfigure = "substituteInPlace jsaddle-webkit2gtk.cabal --replace 'aeson >=0.8.0.2 && <2.1' aeson"; - }); - jsaddle-webkitgtk = self.callCabal2nix "jsaddle-webkitgtk" (jsaddleSrc + "/jsaddle-webkitgtk") {}; - jsaddle-wkwebview = overrideCabal (self.callCabal2nix "jsaddle-wkwebview" (jsaddleSrc + "/jsaddle-wkwebview") {}) (drv: { - preConfigure = "substituteInPlace jsaddle-wkwebview.cabal --replace 'aeson >=0.8.0.2 && <2.1' aeson"; - libraryFrameworkDepends = (drv.libraryFrameworkDepends or []) ++ - (if nixpkgs.stdenv.hostPlatform.useiOSPrebuilt then [ - "${nixpkgs.buildPackages.darwin.xcode}/Contents/Developer/Platforms/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.platform/Developer/SDKs/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.sdk/System" - ] else (with nixpkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ])); - buildDepends = lib.optional (!nixpkgs.stdenv.hostPlatform.useiOSPrebuilt) [ nixpkgs.buildPackages.darwin.cf-private ]; - }); - - # another broken test - # phantomjs has issues with finding the right port - # jsaddle-warp = dontCheck (addTestToolDepend (self.callCabal2nix "jsaddle-warp" "${jsaddleSrc}/jsaddle-warp" {})); - jsaddle-warp = overrideCabal (dontCheck (self.callCabal2nix "jsaddle-warp" (jsaddleSrc + "/jsaddle-warp") {})) (derv: { - preConfigure = "substituteInPlace jsaddle-warp.cabal --replace 'aeson >=0.8.0.2 && <2.1' aeson"; - }); - - jsaddle-dom = doJailbreak (self.callCabal2nix "jsaddle-dom" self._dep.jsaddle-dom {}); - jsaddle-wasm = self.callCabal2nix "jsaddle-wasm" (hackGet (wasmCross + "/jsaddle-wasm")) {}; - ghcjs-dom = self.callCabal2nix "ghcjs-dom" (self._dep.ghcjs-dom + "/ghcjs-dom") {}; - ghcjs-dom-jsaddle = self.callCabal2nix "ghcjs-dom-jsaddle" (self._dep.ghcjs-dom + "/ghcjs-dom-jsaddle") {}; - ghcjs-dom-jsffi = self.callCabal2nix "ghcjs-dom-jsffi" (self._dep.ghcjs-dom + "/ghcjs-dom-jsffi") {}; - - ## - ## Gargoyle and dependencies - ## - - gargoyle = self.callCabal2nixWithOptions "gargoyle" gargoyleSrc "--subpath gargoyle" {}; - gargoyle-postgresql = haskellLib.overrideCabal - (self.callCabal2nixWithOptions "gargoyle-postgresql" gargoyleSrc "--subpath gargoyle-postgresql" {}) - (drv: { - testSystemDepends = (drv.testSystemDepends or []) ++ [ nixpkgs.postgresql_10 ]; - }); - gargoyle-postgresql-nix = haskellLib.overrideCabal - (self.callCabal2nixWithOptions "gargoyle-postgresql-nix" gargoyleSrc "--subpath gargoyle-postgresql-nix" {}) - (drv: { - librarySystemDepends = (drv.librarySystemDepends or []) ++ [ nixpkgs.postgresql_10 ]; - }); - gargoyle-postgresql-connect = self.callCabal2nixWithOptions "gargoyle-postgresql-connect" gargoyleSrc "--subpath gargoyle-postgresql-connect" {}; - which = self.callHackage "which" "0.2" {}; - - ## - ## Misc other dependencies - ## - - haskell-gi-overloading = dontHaddock (self.callHackage "haskell-gi-overloading" "0.0" {}); - monoidal-containers = self.callHackage "monoidal-containers" "0.6.3.0" {}; - patch = self.callCabal2nix "patch" self._dep.patch {}; - commutative-semigroups = self.callCabal2nix "commutative-semigroups" self._dep.commutative-semigroups {}; - witherable = self.callHackage "witherable" "0.4.2" {}; - - webdriver = markUnbroken (self.callHackage "webdriver" "0.9.0.1" {}); - - # Not on Hackage yet - # Version 1.2.1 not on Hackage yet - hspec-webdriver = self.callCabal2nix "hspec-webdriver" (fetchFromGitHub { - owner = "dfordivam"; - repo = "hspec-webdriver-clone"; - rev = "0d748b7bb7cd74dce0a55a1ec86b01dbb8a71cd8"; - sha256 = "1criynifhvmnqwhrshmzylikqkvlgq98xf72w9cdd2zpjw539qf0"; - }) {}; - - constraints-extras = self.callCabal2nix "constraints-extras" (hackGet ./dep/constraints-extras) {}; - some = self.callHackage "some" "1.0.4" {}; - prim-uniq = self.callHackage "prim-uniq" "0.2" {}; - aeson-gadt-th = self.callHackage "aeson-gadt-th" "0.2.5.1" {}; - dependent-map = self.callCabal2nix "dependent-map" (hackGet ./dep/dependent-map) {}; - dependent-monoidal-map = self.callCabal2nix "dependent-monoidal-map" self._dep.dependent-monoidal-map {}; - dependent-sum = self.callCabal2nix "dependent-sum" self._dep.dependent-sum {}; - dependent-sum-template = self.callCabal2nix "dependent-sum-template" self._dep.dependent-sum-template {}; - dependent-sum-universe-orphans = self.callCabal2nix "dependent-sum-universe-orphans" self._dep.dependent-sum-universe-orphans {}; - dependent-sum-aeson-orphans = self.callCabal2nix "dependent-sum-aeson-orphans" self._dep.dependent-sum-aeson-orphans {}; - - # Need to use `--subpath` because LICENSE in each dir is a symlink to the repo root. - universe = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe" {}; - universe-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-base" {}; - universe-dependent-sum = nixpkgs.haskell.lib.doJailbreak (self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-dependent-sum" {}); - universe-instances-extended = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-instances-extended" {}; - universe-reverse-instances = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-reverse-instances" {}; - universe-instances-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath deprecated/universe-instances-base" {}; - - th-abstraction = self.callHackage "th-abstraction" "0.4.3.0" {}; - - vessel = self.callCabal2nix "vessel" self._dep.vessel {}; - - # Slightly newer version to fix - # https://github.com/danfran/cabal-macosx/issues/13 - cabal-macosx = self.callHackage "cabal-macosx" "0.2.4.2" {}; -} + #reflex = self.callCabal2nixWithOptions "reflex" self._dep.reflex (lib.concatStringsSep " " (lib.concatLists [ + # (lib.optional enableTraceReflexEvents "-fdebug-trace-events") + # reflexOptimizerFlag + # useTemplateHaskellFlag + # (lib.optional useFastWeak "-ffast-weak") + #])) {}; + + #reflex-todomvc = + # let + # flags = + # if useWebkit2Gtk && nixpkgs.stdenv.hostPlatform.isLinux + # then [ "-f-warp" "-f-webkitgtk" "-f-wkwebview" ] + # else if (nixpkgs.stdenv.hostPlatform.isLinux && !nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt) + # then [ "-fwarp" "-f-webkitgtk" "-f-wkwebview" "-f-webkit2gtk" ] + # else if self.ghc.stdenv.targetPlatform.isiOS + # then [ "-f-webkit2gtk" "-f-warp" "-f-webkitgtk" ] + # else if nixpkgs.stdenv.hostPlatform.isDarwin + # then [ "-fwkwebview" "-f-webkit2gtk" "-f-webkitgtk" ] + # else []; + # in + # (haskellLib.doJailbreak (self.callCabal2nixWithOptions "reflex-todomvc" self._dep.reflex-todomvc (lib.concatStringsSep " " flags) {})); + #reflex-aeson-orphans = self.callCabal2nix "reflex-aeson-orphans" self._dep.reflex-aeson-orphans {}; + + ## The tests for reflex-dom-core are not deterministic, disable them, and run them manually + #reflex-dom-core = let + # inherit (self) ghc; + # noGcTest = stdenv.hostPlatform.system != "x86_64-linux" + # || stdenv.hostPlatform != stdenv.buildPlatform + # || stdenv.targetPlatform.isiOS + # || (ghc.isGhcjs or false); + #in haskellLib.overrideCabal + # (self.callCabal2nixWithOptions "reflex-dom-core" (reflexDomRepo + "/reflex-dom-core") (lib.concatStringsSep " " (lib.concatLists [ + # reflexOptimizerFlag + # useTemplateHaskellFlag + # (lib.optional enableLibraryProfiling "-fprofile-reflex") + # [ "-f-hydration-tests" ] + # [ "-f-gc-tests" ] + # ])) {}) + # (drv: { + # # TODO: Get hlint working for cross-compilation + # #doCheck = stdenv.hostPlatform == stdenv.buildPlatform && !(ghc.isGhcjs or false); + # doCheck = false; + # # The headless browser run as part of the tests will exit without this + # preBuild = (drv.preBuild or "") + '' + # export HOME="$PWD" + # ''; + + # # Show some output while running tests, so we might notice what's wrong + # testTarget = "--show-details=streaming"; + + # testHaskellDepends = with self; (drv.testHaskellDepends or []) ++ lib.optionals (!noGcTest) [ + # temporary + # jsaddle-warp + # process + # chrome-test-utils + # ]; + + # testSystemDepends = with nixpkgs; (drv.testSystemDepends or []) ++ lib.optionals (nixpkgs.stdenv.hostPlatform.isLinux) [ + # nixpkgs_oldChromium.selenium-server-standalone + # nixpkgs_oldChromium.chromium + # which + # ] ++ lib.optionals (!noGcTest) [ + # nixpkgs.iproute2 + # ]; + # } // lib.optionalAttrs (!noGcTest) { + # # The headless browser run as part of gc tests would hang/crash without this + # preCheck = '' + # export FONTCONFIG_PATH=${nixpkgs.fontconfig.out}/etc/fonts + # '' + (drv.preCheck or ""); + # }); + + reflex-dom = lib.pipe super.reflex-dom [ + (appendConfigureFlags [reflexOptimizerFlag useTemplateHaskellFlag useWebkit2GtkFlag]) + (if useWebkit2Gtk then lib.id else addBuildDepends [self.jsaddle-warp]) + (x: x.override { + jsaddle-webkit2gtk = if useWebkit2Gtk + then self.jsaddle-webkit2gtk + else null; + }) + ]; + + } diff --git a/haskell-overlays/untriaged.nix b/haskell-overlays/untriaged.nix deleted file mode 100644 index 212967497..000000000 --- a/haskell-overlays/untriaged.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ haskellLib -, fetchFromGitHub -, nixpkgs -}: - -with haskellLib; - -self: super: { - - # Need an older version for GHC 8.6 - haddock-api = dontHaddock (doJailbreak (self.callHackage "haddock-api" "2.22.0" {})); - # TODO this conflicts with the pandoc version - # haddock-library = doJailbreak (self.callHackage "haddock-library" "1.7.0" {}); - - # Fixing things that are marked broken in 20.09: - constrained-dynamic = dontCheck (markUnbroken super.constrained-dynamic); - haven = doJailbreak (markUnbroken super.haven); - - # These take over an hour to run, each - cryptonite = dontCheck super.cryptonite; - scientific = dontCheck (self.callHackage "scientific" "0.3.7.0" {}); - - # pandoc 2.16 and dependencies - pandoc = self.callHackage "pandoc" "2.16.2" {}; - citeproc = self.callHackage "citeproc" "0.6" {}; - hslua-marshalling = self.callHackage "hslua-marshalling" "2.0.1" {}; - hslua-module-path = self.callHackage "hslua-module-path" "1.0.0" {}; - hslua-module-version = self.callHackage "hslua-module-version" "1.0.0" {}; - lpeg = self.callHackage "lpeg" "1.0.1" {}; - tasty-bench = self.callHackage "tasty-bench" "0.3.1" {}; - unicode-collation = self.callHackage "unicode-collation" "0.1.3.1" {}; - - # beam packages - beam-core = self.callHackage "beam-core" "0.10.0.0" {}; - beam-migrate = self.callHackage "beam-migrate" "0.5.2.0" {}; - beam-postgres = haskellLib.dontCheck (self.callHackage "beam-postgres" "0.5.3.0" {}); - beam-automigrate = self.callHackage "beam-automigrate" "0.1.3.0" {}; - - # hnix 0.12 and dependencies - hnix = dontCheck - (overrideCabal (self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix) {}) (drv: { - librarySystemDepends = (drv.librarySystemDepends or []) ++ [ nixpkgs.nix ]; - testHaskellDepends = (drv.testHaskellDepends or []) ++ [ nixpkgs.nix super.criterion ]; - })); - hnix-store-core = - self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-core") {}; - hnix-store-remote = - self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-remote") {}; - neat-interpolation = self.callHackage "neat-interpolation" "0.4" {}; - prettyprinter = self.callHackage "prettyprinter" "1.7.0" {}; - cryptohash-sha512 = doJailbreak super.cryptohash-sha512; - ListLike = self.callHackage "ListLike" "4.7.3" {}; - - # ghcjs-promise is marked broken in nixpkgs - ghcjs-promise = self.callHackage "ghcjs-promise" "0.1.0.3" {}; - - utf8-string = self.callHackage "utf8-string" "1.0.1.1" {}; - - ghcjs-base = doJailbreak (self.callHackage "ghcjs-base" "0.2.1.0" {}); - hlint = self.callHackage "hlint" "3.2.8" {}; - - # aeson 2 support - # jailbreak to allow older primitive version - aeson = doJailbreak (self.callHackage "aeson" "2.1.1.0" {}); - aeson-pretty = overrideCabal (self.callHackage "aeson-pretty" "0.8.9" {}) (drv: { - jailbreak = true; - # support our version of unordered-containers - preConfigure = '' - substituteInPlace Data/Aeson/Encode/Pretty.hs \ - --replace "import qualified Data.HashMap.Strict as H (toList, mapKeys)" "import qualified Data.HashMap.Strict as H (toList)" - ''; - }); - hashable = self.callHackage "hashable" "1.3.5.0" {}; - generically = self.callHackage "generically" "0.1" {}; - OneTuple = self.callHackage "OneTuple" "0.3.1" {}; - attoparsec = self.callHackage "attoparsec" "0.14.4" {}; - quickcheck-instances = self.callHackage "quickcheck-instances" "0.3.28" {}; - vector = self.callHackage "vector" "0.12.3.1" {}; - indexed-traversable = self.callHackage "indexed-traversable" "0.1.2" {}; - semialign = self.callHackage "semialign" "1.2.0.1" {}; - text-short = self.callHackage "text-short" "0.1.5" {}; - time-compat = self.callHackage "time-compat" "1.9.6.1" {}; - base-orphans = self.callHackage "base-orphans" "0.8.7" {}; - yaml = self.callHackage "yaml" "0.11.7.0" {}; - websockets = self.callHackage "websockets" "0.12.7.3" {}; - http2 = self.callHackage "http2" "3.0.3" {}; - HsYAML-aeson = self.callHackage "HsYAML-aeson" "0.2.0.1" {}; - fsnotify = self.callHackage "fsnotify" "0.4.1.0" {}; - unliftio = dontCheck (self.callHackage "unliftio" "0.2.24.0" {}); - sandwich = self.callHackage "sandwich" "0.1.0.6" {}; - ghcid = self.callHackage "ghcid" "0.8.8" {}; - postgresql-simple = self.callHackage "postgresql-simple" "0.6.5" {}; - ghc-lib-parser = super.ghc-lib-parser_8_10_7_20220219; - ghc-lib-parser-ex = super.ghc-lib-parser-ex_8_10_0_24; - stylish-haskell = doJailbreak (self.callHackage "stylish-haskell" "0.13.0.0" {}); # jailbreak to allow newer aeson -} diff --git a/nixpkgs-overlays/all-cabal-hashes/default.nix b/nixpkgs-overlays/all-cabal-hashes/default.nix deleted file mode 100644 index c2e7be659..000000000 --- a/nixpkgs-overlays/all-cabal-hashes/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -self: _: { - - all-cabal-hashes = self.fetchurl { - url = https://github.com/commercialhaskell/all-cabal-hashes/archive/f297f1f3fc337e2f94783f254cb6db1ee2022adb.tar.gz; - sha256 = "sha256-j2HovXCSBkPircuu6N0ZVTIFUTvET7UC4eaiRITrk2g="; - }; -} diff --git a/nixpkgs-overlays/ghc.nix b/nixpkgs-overlays/ghc.nix deleted file mode 100644 index 3d4aaaa21..000000000 --- a/nixpkgs-overlays/ghc.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib }: - -self: super: { - cabal2nix-unwrapped = self.haskell.packages.ghc8107.cabal2nix; - cabal-install = self.haskell.packages.ghc8107.cabal-install; - # Apply custom patches to Haskell compilers - haskell = super.haskell // { - compiler = super.haskell.compiler // { - ghc8107 = super.haskell.compiler.ghc8107.overrideAttrs (drv: { - patches = (drv.patches or []) ++ lib.optionals (self.stdenv.targetPlatform.isiOS || self.stdenv.targetPlatform.isAarch64 && self.stdenv.targetPlatform.isDarwin) [ - (super.fetchurl { - url = "https://raw.githubusercontent.com/reflex-frp/reflex-platform/mars/modules/patches/aarch64-darwin/fix_dead_strip.patch"; - sha256 = "sha256-1VcftxpaMmLzMnB8X4M6Xg9o+OmgpaNOeF7Yrn1x0EI="; - }) - ]; - }); - }; - packages = super.haskell.packages // { - ghc8107 = super.haskell.packages.ghc8107.override { - buildHaskellPackages = self.buildPackages.haskell.packages.ghc8107; - ghc = self.buildPackages.haskell.compiler.ghc8107; - }; - }; - }; -} diff --git a/nixpkgs/github.json b/nixpkgs/github.json index 3a5419336..1bd897376 100644 --- a/nixpkgs/github.json +++ b/nixpkgs/github.json @@ -1,8 +1,8 @@ { - "owner": "obsidiansystems", + "owner": "nixos", "repo": "nixpkgs", - "branch": "reflex-platform-unstable", + "branch": "haskell-updates", "private": false, - "rev": "22cf53eb29f52af963398de744c422d6fe15a3d4", - "sha256": "1hz0jhf40byn5v44sznx27msy5mx3a8i25pbqyh5dd42rripdd8z" + "rev": "9bd652c4305d1f6b6b59451036fd0a44a13f78d5", + "sha256": "0prw6ixmcw92khcijdi20h2bckfx6jz7i3asw3d8d59ybdniljqd" }