diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix index cf867408dd315..c8669a2761f82 100644 --- a/pkgs/development/compilers/ghc/8.10.7.nix +++ b/pkgs/development/compilers/ghc/8.10.7.nix @@ -131,23 +131,44 @@ let targetCC = builtins.head toolsForTarget; - # Sometimes we have to dispatch between the bintools wrapper and the unwrapped - # derivation for certain tools depending on the platform. - bintoolsFor = { - # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is - # part of the bintools wrapper (due to codesigning requirements), but not on - # x86_64-darwin. - install_name_tool = - if stdenv.targetPlatform.isAarch64 - then targetCC.bintools - else targetCC.bintools.bintools; - # Same goes for strip. - strip = - # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" - if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin - then targetCC.bintools - else targetCC.bintools.bintools; - }; + # toolPath calculates the absolute path to the name tool associated with a + # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take + # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct + # subpath of the tool. + toolPath = name: cc: + let + tools = { + "cc" = cc; + "c++" = cc; + as = cc.bintools.bintools; + + ar = cc.bintools.bintools; + ranlib = cc.bintools.bintools; + nm = cc.bintools.bintools; + readelf = cc.bintools.bintools; + + ld = cc.bintools; + "ld.gold" = cc.bintools; + + otool = cc.bintools.bintools; + + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. We decide based on target platform to have consistent tools + # across all GHC stages. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then cc.bintools + else cc.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then cc.bintools + else cc.bintools.bintools; + }.${name}; + in + "${tools}/bin/${tools.targetPrefix}${name}"; # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 @@ -255,19 +276,19 @@ stdenv.mkDerivation (rec { done # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" - export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + export CC="${toolPath "cc" targetCC}" + export CXX="${toolPath "c++" targetCC}" # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" - export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}" + export AS="${toolPath "as" targetCC}" + export AR="${toolPath "ar" targetCC}" + export NM="${toolPath "nm" targetCC}" + export RANLIB="${toolPath "ranlib" targetCC}" + export READELF="${toolPath "readelf" targetCC}" + export STRIP="${toolPath "strip" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' - export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" - export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + export OTOOL="${toolPath "otool" targetCC}" + export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" '' + lib.optionalString useLLVM '' export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" diff --git a/pkgs/development/compilers/ghc/9.4.8.fixme.nix b/pkgs/development/compilers/ghc/9.4.8.nix similarity index 100% rename from pkgs/development/compilers/ghc/9.4.8.fixme.nix rename to pkgs/development/compilers/ghc/9.4.8.nix diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix index fcb5d43de7c0d..b5fef30332f7f 100644 --- a/pkgs/development/compilers/ghc/common-hadrian.nix +++ b/pkgs/development/compilers/ghc/common-hadrian.nix @@ -13,6 +13,7 @@ , pkgsBuildTarget , pkgsHostTarget , targetPackages +, fetchpatch # build-tools , bootPkgs @@ -170,6 +171,13 @@ then ./docs-sphinx-7-ghc98.patch else ./docs-sphinx-7.patch ) ] + ++ lib.optionals (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8") [ + (fetchpatch { + name = "fix-fully_static.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/1bb24432ff77e11a0340a7d8586e151e15bba2a1.diff"; + hash = "sha256-MpvTmFFsNiPDoOp9BhZyWeapeibQ77zgEV+xzZ1UAXs="; + }) + ] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [ # Prevent the paths module from emitting symbols that we don't use # when building with separate outputs. @@ -259,23 +267,44 @@ let targetCC = builtins.head toolsForTarget; - # Sometimes we have to dispatch between the bintools wrapper and the unwrapped - # derivation for certain tools depending on the platform. - bintoolsFor = { - # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is - # part of the bintools wrapper (due to codesigning requirements), but not on - # x86_64-darwin. - install_name_tool = - if stdenv.targetPlatform.isAarch64 - then targetCC.bintools - else targetCC.bintools.bintools; - # Same goes for strip. - strip = - # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" - if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin - then targetCC.bintools - else targetCC.bintools.bintools; - }; + # toolPath calculates the absolute path to the name tool associated with a + # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take + # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct + # subpath of the tool. + toolPath = name: cc: + let + tools = { + "cc" = cc; + "c++" = cc; + as = cc.bintools.bintools; + + ar = cc.bintools.bintools; + ranlib = cc.bintools.bintools; + nm = cc.bintools.bintools; + readelf = cc.bintools.bintools; + + ld = cc.bintools; + "ld.gold" = cc.bintools; + + otool = cc.bintools.bintools; + + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. We decide based on target platform to have consistent tools + # across all GHC stages. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then cc.bintools + else cc.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then cc.bintools + else cc.bintools.bintools; + }.${name}; + in + "${tools}/bin/${tools.targetPrefix}${name}"; # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 @@ -321,19 +350,19 @@ stdenv.mkDerivation ({ done # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" - export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + export CC="${toolPath "cc" targetCC}" + export CXX="${toolPath "c++" targetCC}" # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" - export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}" + export AS="${toolPath "as" targetCC}" + export AR="${toolPath "ar" targetCC}" + export NM="${toolPath "nm" targetCC}" + export RANLIB="${toolPath "ranlib" targetCC}" + export READELF="${toolPath "readelf" targetCC}" + export STRIP="${toolPath "strip" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' - export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" - export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + export OTOOL="${toolPath "otool" targetCC}" + export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" '' + lib.optionalString useLLVM '' export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" @@ -555,10 +584,6 @@ stdenv.mkDerivation ({ ] ++ lib.teams.haskell.members; timeout = 24 * 3600; inherit (ghc.meta) license platforms; - # https://github.com/NixOS/nixpkgs/issues/208959 - broken = - (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8") - && stdenv.targetPlatform.isStatic; }; dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm; diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index 6142c76f64078..79fced444f562 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -136,23 +136,44 @@ let targetCC = builtins.head toolsForTarget; - # Sometimes we have to dispatch between the bintools wrapper and the unwrapped - # derivation for certain tools depending on the platform. - bintoolsFor = { - # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is - # part of the bintools wrapper (due to codesigning requirements), but not on - # x86_64-darwin. - install_name_tool = - if stdenv.targetPlatform.isAarch64 - then targetCC.bintools - else targetCC.bintools.bintools; - # Same goes for strip. - strip = - # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" - if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin - then targetCC.bintools - else targetCC.bintools.bintools; - }; + # toolPath calculates the absolute path to the name tool associated with a + # given `stdenv.cc` derivation, i.e. it picks the correct derivation to take + # the tool from (cc, cc.bintools, cc.bintools.bintools) and adds the correct + # subpath of the tool. + toolPath = name: cc: + let + tools = { + "cc" = cc; + "c++" = cc; + as = cc.bintools.bintools; + + ar = cc.bintools.bintools; + ranlib = cc.bintools.bintools; + nm = cc.bintools.bintools; + readelf = cc.bintools.bintools; + + ld = cc.bintools; + "ld.gold" = cc.bintools; + + otool = cc.bintools.bintools; + + # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is + # part of the bintools wrapper (due to codesigning requirements), but not on + # x86_64-darwin. We decide based on target platform to have consistent tools + # across all GHC stages. + install_name_tool = + if stdenv.targetPlatform.isAarch64 + then cc.bintools + else cc.bintools.bintools; + # Same goes for strip. + strip = + # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold" + if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin + then cc.bintools + else cc.bintools.bintools; + }.${name}; + in + "${tools}/bin/${tools.targetPrefix}${name}"; # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues. # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856 @@ -265,19 +286,19 @@ stdenv.mkDerivation (rec { done # GHC is a bit confused on its cross terminology, as these would normally be # the *host* tools. - export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" - export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++" + export CC="${toolPath "cc" targetCC}" + export CXX="${toolPath "c++" targetCC}" # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 - export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}" - export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" - export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" - export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" - export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" - export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" - export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip" + export LD="${toolPath "ld${lib.optionalString useLdGold ".gold"}" targetCC}" + export AS="${toolPath "as" targetCC}" + export AR="${toolPath "ar" targetCC}" + export NM="${toolPath "nm" targetCC}" + export RANLIB="${toolPath "ranlib" targetCC}" + export READELF="${toolPath "readelf" targetCC}" + export STRIP="${toolPath "strip" targetCC}" '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") '' - export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool" - export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool" + export OTOOL="${toolPath "otool" targetCC}" + export INSTALL_NAME_TOOL="${toolPath "install_name_tool" targetCC}" '' + lib.optionalString useLLVM '' export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc" export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt" diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index cefce06d8431d..e1efb46422a37 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -234,10 +234,16 @@ self: super: { fused-effects-random = doJailbreak super.fused-effects-random; fused-effects-readline = doJailbreak super.fused-effects-readline; - # fix tests failure for base≥4.15 (https://github.com/kim/leveldb-haskell/pull/41) - leveldb-haskell = appendPatch (fetchpatch { - url = "https://github.com/kim/leveldb-haskell/commit/f5249081f589233890ddb1945ec548ca9fb717cf.patch"; - sha256 = "14gllipl28lqry73c5dnclsskzk1bsrrgazibl4lkl8z98j2csjb"; + leveldb-haskell = overrideCabal (drv: { + version = "2024-05-05-unstable"; + # Fix tests on mtl ≥ 2.3 + # https://github.com/kim/leveldb-haskell/pull/42 + src = pkgs.fetchFromGitHub { + owner = "kim"; + repo = "leveldb-haskell"; + rev = "3a505f3a7de0f5d14463538d7c2c9a9881a60eb9"; + sha256 = "sha256-okUn5ZuWcj8vPr0GWXvO1LygNCrDfttkDaUoOt+FLA0="; + }; }) super.leveldb-haskell; # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs @@ -268,12 +274,6 @@ self: super: { sha256 = "1c7knpvxr7p8c159jkyk6w29653z5yzgjjqj11130bbb8mk9qhq7"; }) super.c2hsc; - # Some Hackage packages reference this attribute, which exists only in the - # GHCJS package set. We provide a dummy version here to fix potential - # evaluation errors. - ghcjs-base = null; - ghcjs-prim = null; - ghc-debug-client = doJailbreak super.ghc-debug-client; # Test failure. Tests also disabled in Stackage: @@ -971,12 +971,12 @@ self: super: { # See https://github.com/valderman/selda/issues/187 inherit (let mkSeldaPackage = name: overrideCabal (drv: { - version = "2023-02-05-unstable"; + version = "2024-05-05-unstable"; src = pkgs.fetchFromGitHub { owner = "valderman"; repo = "selda"; - rev = "ab9619db13b93867d1a244441bb4de03d3e1dadb"; - hash = "sha256-P0nqAYzbeTyEEgzMij/3mKcs++/p/Wgc7Y6bDudXt2U="; + rev = "50c3ba5c5da72bb758a4112363ba2fe1c0e968ea"; + hash = "sha256-LEAJsSsDL0mmVHntnI16fH8m5DmePfcU0hFw9ErqTgQ="; } + "/${name}"; }) super.${name}; in @@ -1367,18 +1367,17 @@ self: super: { ''; }) super.PortMidi; - # Fix for base >= 4.11 scat = overrideCabal (drv: { patches = [ - # Fix build with base >= 4.11 + # Fix build with base >= 4.11 (https://github.com/redelmann/scat/pull/6) (fetchpatch { url = "https://github.com/redelmann/scat/commit/429f22944b7634b8789cb3805292bcc2b23e3e9f.diff"; hash = "sha256-FLr1KfBaSYzI6MiZIBY1CkgAb5sThvvgjrSAN8EV0h4="; }) - # Fix build with vector >= 0.13 + # Fix build with vector >= 0.13, mtl >= 2.3 (https://github.com/redelmann/scat/pull/8) (fetchpatch { - url = "https://github.com/redelmann/scat/commit/e21cc9c17b5b605b5bc0aacad66d44bbe0beb8c4.diff"; - hash = "sha256-MifHb2EKZx8skOcs+2t54CzxAS4PaEC0OTEfq4yVXzk="; + url = "https://github.com/redelmann/scat/compare/e8e064f7e6a152fe25a6ccd743573a16974239d0..c6a3636548d628f32d8edc73a333188ce24141a7.patch"; + hash = "sha256-BU4MUn/TnZHpZBlX1vDHE7QZva5yhlLTb8zwpx7UScI"; }) ]; }) super.scat; @@ -1561,13 +1560,36 @@ self: super: { doJailbreak ]; - jsaddle-dom = overrideCabal (old: { - postPatch = old.postPatch or "" + '' - rm Setup.hs - ''; - }) super.jsaddle-dom; - jsaddle-hello = doJailbreak super.jsaddle-hello; - ghcjs-dom-hello = doJailbreak super.ghcjs-dom-hello; + ghcjs-dom-hello = appendPatches [ + (fetchpatch { + url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/53991df6a4eba9f1e9633eb22f6a0486a79491c3.patch"; + sha256 = "sha256-HQeUgjvzYyY14+CDYiMahAMn7fBcy2d7p8/kqGq+rnI="; + }) + (fetchpatch { + url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/d766d937121f7ea5c4c154bd533a1eae47f531c9.patch"; + sha256 = "sha256-QTkH+L+JMwGyuoqzHBnrokT7KzpHC4YiAWoeiaFBLUw="; + }) + (fetchpatch { + url = "https://github.com/ghcjs/ghcjs-dom-hello/commit/831464d995f4033c9aa84f9ed9fb37a268f34d4e.patch"; + sha256 = "sha256-hQMy+78geTuxd3kbdiyYqoAFrauu90HbpPi0EEKjMzM="; + }) + ] super.ghcjs-dom-hello; + + # Needs https://github.com/ghcjs/jsaddle-hello/pull/5 and hackage release + jsaddle-hello = appendPatches [ + (fetchpatch { + url = "https://github.com/ghcjs/jsaddle-hello/commit/c4de837675117b821c50a5079d20d84ec16ff26a.patch"; + sha256 = "sha256-NsM7QqNLt5V8i5bveYgMrawGnZVsIuAoJfBF75jBwV0="; + }) + (fetchpatch { + url = "https://github.com/ghcjs/jsaddle-hello/commit/5c437363833684ea951ec74a0d0fdf5b6fbaca85.patch"; + sha256 = "sha256-CUyZsts0FAQ3c8Z+zfvwbmlAJCMcidV80n8dA/SoRls="; + }) + (fetchpatch { + url = "https://github.com/ghcjs/jsaddle-hello/commit/e2da9e266fbfa8f7fcf3009ab6cfbf825a8bcf7a.patch"; + sha256 = "sha256-WL0CcnlMt6KI7MOZMg74fNN/I4gYSO3n+GiaXB2BOP0="; + }) + ] super.jsaddle-hello; # Too strict upper bounds on text lsql-csv = doJailbreak super.lsql-csv; @@ -1691,6 +1713,14 @@ self: super: { # Test suite fails to compile https://github.com/agrafix/Spock/issues/177 Spock = dontCheck super.Spock; + Spock-core = appendPatches [ + (fetchpatch { + url = "https://github.com/agrafix/Spock/commit/d0b51fa60a83bfa5c1b5fc8fced18001e7321701.patch"; + sha256 = "sha256-l9voiczOOdYVBP/BNEUvqARb21t0Rp2kpsNbRFUWSLg="; + stripLen = 1; + }) + ] (doJailbreak super.Spock-core); + # https://github.com/strake/filtrable.hs/issues/6 filtrable = doJailbreak super.filtrable; @@ -2647,18 +2677,6 @@ self: super: { # https://github.com/ngless-toolkit/ngless/issues/152 NGLess = dontCheck super.NGLess; - # Raise version bounds: https://github.com/well-typed/lens-sop/pull/4 - lens-sop = appendPatches [ - (fetchpatch { - url = "https://github.com/well-typed/lens-sop/commit/d8657f27c12191a7c0a91701c0fcd9a590e0090e.patch"; - sha256 = "sha256-9ODfbOb6Bs3EVTY9b7cUvkNmqzzZPWUmgmlAneaN3Tw="; - }) - (fetchpatch { - url = "https://github.com/well-typed/lens-sop/commit/b7ecffdeb836d19373871659e2f8cd24da6f7312.patch"; - sha256 = "sha256-hDUQ2fW9Qyom65YvtW9bsbz7XtueRmdsAbAB42D+gu4="; - }) - ] super.lens-sop; - # Raise version bounds: https://github.com/kosmikus/records-sop/pull/15 records-sop = appendPatch (fetchpatch { url = "https://github.com/kosmikus/records-sop/commit/fb149f453a816ff14d0cb20b3ea56b80ff49d9f1.patch"; diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix index 5985d29f8b591..16e5d2613fb2e 100644 --- a/pkgs/development/haskell-modules/configuration-darwin.nix +++ b/pkgs/development/haskell-modules/configuration-darwin.nix @@ -323,6 +323,20 @@ self: super: ({ # Tests fail on macOS https://github.com/mrkkrp/zip/issues/112 zip = dontCheck super.zip; + warp = super.warp.overrideAttrs (drv: { + __darwinAllowLocalNetworking = true; + }); + + ghcjs-dom-hello = overrideCabal (drv: { + libraryHaskellDepends = with self; [ jsaddle jsaddle-warp ]; + executableHaskellDepends = with self; [ ghcjs-dom jsaddle-wkwebview ]; + }) super.ghcjs-dom-hello; + + jsaddle-hello = overrideCabal (drv: { + libraryHaskellDepends = with self; [ jsaddle lens ]; + executableHaskellDepends = with self; [ jsaddle-warp jsaddle-wkwebview ]; + }) super.jsaddle-hello; + jsaddle-wkwebview = overrideCabal (drv: { libraryFrameworkDepends = with pkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ]; libraryHaskellDepends = with self; [ aeson data-default jsaddle ]; # cabal2nix doesn't add darwin-only deps diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix index bf05ee9ef3ff7..c8750bc22631d 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix @@ -68,6 +68,7 @@ self: super: { stylish-haskell = self.stylish-haskell_0_14_6_0; hlint = self.hlint_3_8; ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_11_0; + websockets = self.websockets_0_13_0_0; # A given major version of ghc-exactprint only supports one version of GHC. ghc-exactprint = self.ghc-exactprint_1_8_0_0; diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix similarity index 97% rename from pkgs/development/haskell-modules/configuration-ghcjs.nix rename to pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix index c74fdb09232c2..3f6e399f795b8 100644 --- a/pkgs/development/haskell-modules/configuration-ghcjs.nix +++ b/pkgs/development/haskell-modules/configuration-ghcjs-8.x.nix @@ -24,6 +24,11 @@ self: super: aeson = self.aeson_1_5_6_0; }); + # Included in ghcjs itself + ghcjs-prim = null; + + ghcjs-websockets = markUnbroken super.ghcjs-websockets; + # GHCJS does not ship with the same core packages as GHC. # https://github.com/ghcjs/ghcjs/issues/676 stm = doJailbreak self.stm_2_5_3_1; diff --git a/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix new file mode 100644 index 0000000000000..3b1f8dc4558e1 --- /dev/null +++ b/pkgs/development/haskell-modules/configuration-ghcjs-9.x.nix @@ -0,0 +1,22 @@ +{ pkgs, haskellLib }: + +with haskellLib; + +# cabal2nix doesn't properly add dependencies conditional on arch(javascript) +(self: super: { + ghcjs-base = addBuildDepends (with self; [ + aeson + attoparsec + dlist + hashable + primitive + scientific + unordered-containers + vector + ]) super.ghcjs-base; + + ghcjs-dom = addBuildDepend self.ghcjs-dom-javascript super.ghcjs-dom; + ghcjs-dom-javascript = addBuildDepend self.ghcjs-base super.ghcjs-dom-javascript; + jsaddle = addBuildDepend self.ghcjs-base super.jsaddle; + jsaddle-dom = addBuildDepend self.ghcjs-base super.jsaddle-dom; +}) diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml index 7e743d3eacdf9..ebc065df7ef47 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml @@ -1995,11 +1995,11 @@ broken-packages: - ghc-internal # failure in job https://hydra.nixos.org/build/260723678 at 2024-05-25 - ghcitui # failure in job https://hydra.nixos.org/build/252737339 at 2024-03-16 - ghcjs-base-stub # timeout - - ghcjs-dom-javascript # failure in job https://hydra.nixos.org/build/255688382 at 2024-04-16 - ghcjs-dom-jsffi # failure in job https://hydra.nixos.org/build/233215225 at 2023-09-02 - ghcjs-fetch # timeout - ghcjs-promise # failure in job https://hydra.nixos.org/build/233243985 at 2023-09-02 - ghcjs-xhr # failure in job https://hydra.nixos.org/build/233235693 at 2023-09-02 + - ghcjs-websockets # Does not work on the js backend added in 9.6+, only on ghcjs, where we markUnbroken - ghc-justdoit # failure in job https://hydra.nixos.org/build/233221884 at 2023-09-02 - ghclive # failure in job https://hydra.nixos.org/build/233231592 at 2023-09-02 - ghc-man-completion # failure in job https://hydra.nixos.org/build/233245740 at 2023-09-02 @@ -2609,7 +2609,6 @@ broken-packages: - hledger-chart # failure in job https://hydra.nixos.org/build/233205387 at 2023-09-02 - hledger-diff # failure in job https://hydra.nixos.org/build/233199639 at 2023-09-02 - hledger-flow # failure in job https://hydra.nixos.org/build/233252169 at 2023-09-02 - - hledger-iadd # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/238288021 at 2023-10-21 - hledger-irr # failure in job https://hydra.nixos.org/build/233230276 at 2023-09-02 - hledger-makeitso # failure in job https://hydra.nixos.org/build/233213046 at 2023-09-02 - hledger-vty # failure in job https://hydra.nixos.org/build/233191782 at 2023-09-02 @@ -2897,7 +2896,6 @@ broken-packages: - HTicTacToe # failure in job https://hydra.nixos.org/build/233235397 at 2023-09-02 - htiled # failure in job https://hydra.nixos.org/build/233219305 at 2023-09-02 - htlset # failure in job https://hydra.nixos.org/build/233203886 at 2023-09-02 - - html-parse # failure in job https://hydra.nixos.org/build/233241759 at 2023-09-02 - html-rules # failure in job https://hydra.nixos.org/build/233200615 at 2023-09-02 - html-tokenizer # failure in job https://hydra.nixos.org/build/233243581 at 2023-09-02 - htoml # failure in job https://hydra.nixos.org/build/233246670 at 2023-09-02 @@ -3436,7 +3434,6 @@ broken-packages: - lens-process # failure in job https://hydra.nixos.org/build/233242948 at 2023-09-02 - lensref # failure in job https://hydra.nixos.org/build/233205479 at 2023-09-02 - lens-simple # failure in job https://hydra.nixos.org/build/233245452 at 2023-09-02 - - lens-sop # failure in job https://hydra.nixos.org/build/259961739 at 2024-05-19 - lens-tell # failure in job https://hydra.nixos.org/build/233234619 at 2023-09-02 - lens-text-encoding # failure in job https://hydra.nixos.org/build/233222713 at 2023-09-02 - lens-th-rewrite # failure in job https://hydra.nixos.org/build/233201025 at 2023-09-02 @@ -3448,7 +3445,6 @@ broken-packages: - lenz-template # failure in job https://hydra.nixos.org/build/233206822 at 2023-09-02 - less-arbitrary # failure in job https://hydra.nixos.org/build/233231412 at 2023-09-02 - Level0 # failure in job https://hydra.nixos.org/build/233220758 at 2023-09-02 - - leveldb-haskell # failure in job https://hydra.nixos.org/build/252739424 at 2024-03-16 - level-monad # failure in job https://hydra.nixos.org/build/233257036 at 2023-09-02 - levmar # failure in job https://hydra.nixos.org/build/233254731 at 2023-09-02 - lfst # failure in job https://hydra.nixos.org/build/233240622 at 2023-09-02 @@ -4813,7 +4809,6 @@ broken-packages: - pusher-ws # failure in job https://hydra.nixos.org/build/233204133 at 2023-09-02 - pushme # failure in job https://hydra.nixos.org/build/233212481 at 2023-09-02 - push-notifications # failure in job https://hydra.nixos.org/build/233199364 at 2023-09-02 - - push-notify-apn # failure in job https://hydra.nixos.org/build/260189652 at 2024-05-19 - pushover # failure in job https://hydra.nixos.org/build/252739908 at 2024-03-16 - putlenses # failure in job https://hydra.nixos.org/build/233197372 at 2023-09-02 - puzzle-draw # failure in job https://hydra.nixos.org/build/233204953 at 2023-09-02 @@ -5188,7 +5183,6 @@ broken-packages: - scale # failure in job https://hydra.nixos.org/build/233222189 at 2023-09-02 - scaleimage # failure in job https://hydra.nixos.org/build/233240688 at 2023-09-02 - scalendar # failure in job https://hydra.nixos.org/build/233206581 at 2023-09-02 - - scat # failure in job https://hydra.nixos.org/build/252730427 at 2024-03-16 - scc # failure in job https://hydra.nixos.org/build/233247446 at 2023-09-02 - scgi # failure in job https://hydra.nixos.org/build/233247314 at 2023-09-02 - schedevr # failure in job https://hydra.nixos.org/build/233240124 at 2023-09-02 @@ -5244,7 +5238,6 @@ broken-packages: - secure-sockets # failure in job https://hydra.nixos.org/build/233254170 at 2023-09-02 - secureUDP # failure in job https://hydra.nixos.org/build/233215410 at 2023-09-02 - SegmentTree # failure in job https://hydra.nixos.org/build/233216161 at 2023-09-02 - - selda # failure in job https://hydra.nixos.org/build/252735635 at 2024-03-16 - selda-postgresql # failure in job https://hydra.nixos.org/build/245539286 at 2024-01-02 - selectors # failure in job https://hydra.nixos.org/build/233227433 at 2023-09-02 - selenium # failure in job https://hydra.nixos.org/build/233214276 at 2023-09-02 @@ -5344,7 +5337,6 @@ broken-packages: - sessions # failure in job https://hydra.nixos.org/build/233214614 at 2023-09-02 - sessiontypes # failure in job https://hydra.nixos.org/build/233224975 at 2023-09-02 - setdown # failure in job https://hydra.nixos.org/build/241521053 at 2023-12-03 - - set-extra # failure in job https://hydra.nixos.org/build/252738545 at 2024-03-16 - setgame # failure in job https://hydra.nixos.org/build/233218664 at 2023-09-02 - set-of # failure in job https://hydra.nixos.org/build/233202960 at 2023-09-02 - setoid # failure in job https://hydra.nixos.org/build/233213744 at 2023-09-02 @@ -5607,7 +5599,6 @@ broken-packages: - splot # failure in job https://hydra.nixos.org/build/252715661 at 2024-03-16 - Spock-api-ghcjs # failure in job https://hydra.nixos.org/build/233246163 at 2023-09-02 - Spock-auth # failure in job https://hydra.nixos.org/build/233212125 at 2023-09-02 - - Spock-core # failure in job https://hydra.nixos.org/build/252720122 at 2024-03-16 - spoonutil # failure in job https://hydra.nixos.org/build/233257645 at 2023-09-02 - spotify # failure in job https://hydra.nixos.org/build/233254990 at 2023-09-02 - spoty # failure in job https://hydra.nixos.org/build/233233863 at 2023-09-02 diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 93eebf297e8e8..03dd4e728f4e4 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -152,6 +152,7 @@ package-maintainers: - ghcjs-dom - ghcjs-dom-hello - ghcjs-dom-javascript + - ghcjs-dom-jsaddle - haveibeenpwned - jsaddle - jsaddle-clib @@ -649,6 +650,24 @@ package-maintainers: - nix-tree zowoq: - ShellCheck + mpscholten: + - ihp-hsx + - push-notify-apn + - hs-pkpass + - raven-haskell + - stripe-concepts + - stripe-signature + - http2-client + - zip + - currencies + - string-random + - inflections + - pcre-heavy + - mmark + - mmark-ext + - typerep-map + - minio-hs + - smtp-mail unsupported-platforms: Allure: [ platforms.darwin ] @@ -670,7 +689,6 @@ unsupported-platforms: freenect: [ platforms.darwin ] FTGL: [ platforms.darwin ] fuzzytime: [ platforms.darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2 - ghcjs-dom-hello: [ platforms.darwin ] ghc-gc-hook: [ platforms.darwin ] # requires C11 threads which Apple doesn't support gi-adwaita: [ platforms.darwin ] gi-dbusmenugtk3: [ platforms.darwin ] @@ -699,7 +717,6 @@ unsupported-platforms: intricacy: [ platforms.darwin ] # depends on mesa iwlib: [ platforms.darwin ] Jazzkell: [ platforms.darwin ] # depends on Euterpea - jsaddle-hello: [ platforms.darwin ] # depends on jsaddle-webkit2gtk jsaddle-webkit2gtk: [ platforms.darwin ] Kulitta: [ platforms.darwin ] # depends on Euterpea LambdaHack: [ platforms.darwin ] @@ -792,6 +809,8 @@ supported-platforms: geomancy: [ platforms.x86 ] # x86 intrinsics geomancy-layout: [ platforms.x86 ] # x86 intrinsics gi-gtkosxapplication: [ platforms.darwin ] + ghcjs-base: [ javascript-ghcjs ] + ghcjs-dom-javascript: [ javascript-ghcjs ] gtk-mac-integration: [ platforms.darwin ] gtk3-mac-integration: [ platforms.darwin ] halide-haskell: [ platforms.linux ] diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml index b048efbfb5455..02e2d5954d20f 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml @@ -378,11 +378,6 @@ dont-distribute-packages: - SourceGraph - SpacePrivateers - SpinCounter - - Spock - - Spock-api-server - - Spock-digestive - - Spock-lucid - - Spock-worker - StockholmAlignment - Strafunski-Sdf2Haskell - SybWidget @@ -670,7 +665,6 @@ dont-distribute-packages: - bip32 - birch-beer - bird - - bisc - biscuit-servant - bishbosh - bit-array @@ -2424,7 +2418,6 @@ dont-distribute-packages: - json-query - json-rpc-client - json-schema - - json-sop - json-spec-elm - json-spec-elm-servant - json-spec-openapi @@ -3575,8 +3568,6 @@ dont-distribute-packages: - secrm - sednaDBXML - seitz-symbol - - selda-json - - selda-sqlite - selenium-server - semantic-source - semantic-version diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix index 3f8a0bb750c71..73ce1af7735a0 100644 --- a/pkgs/development/haskell-modules/default.nix +++ b/pkgs/development/haskell-modules/default.nix @@ -9,6 +9,7 @@ , configurationNix ? import ./configuration-nix.nix , configurationArm ? import ./configuration-arm.nix , configurationDarwin ? import ./configuration-darwin.nix +, configurationJS ? import ./configuration-ghcjs-9.x.nix }: let @@ -26,7 +27,10 @@ let (configurationArm { inherit pkgs haskellLib; }) ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ (configurationDarwin { inherit pkgs haskellLib; }) - ]; + ] ++ lib.optionals stdenv.hostPlatform.isGhcjs [ + (configurationJS { inherit pkgs haskellLib; }) + ] + ; extensions = lib.composeManyExtensions ([ (nonHackagePackages { inherit pkgs haskellLib; }) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 785ba249099bf..6c60efe1bce50 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -7,6 +7,13 @@ let isCross = stdenv.buildPlatform != stdenv.hostPlatform; + # Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs. + # ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC. + # (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript + # backend. The latter is a normal cross compilation backend and needs little + # special accommodation. + outputsJS = ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs; + # Pass the "wrong" C compiler rather than none at all so packages that just # use the C preproccessor still work, see # https://github.com/haskell/cabal/issues/6466 for details. @@ -19,15 +26,11 @@ let fetchurl removeReferencesTo pkg-config coreutils gnugrep glibcLocales emscripten; + in { pname -# Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs. -# ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC. -# (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript -# backend. The latter is a normal cross compilation backend and needs little -# special accommodation. -, dontStrip ? (ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs) +, dontStrip ? outputsJS , version, revision ? null , sha256 ? null , src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; } @@ -44,7 +47,7 @@ in , doHaddockQuickjump ? doHoogle , doInstallIntermediates ? false , editedCabalFile ? null -, enableLibraryProfiling ? !(ghc.isGhcjs or false) +, enableLibraryProfiling ? !outputsJS , enableExecutableProfiling ? false , profilingDetail ? "exported-functions" # TODO enable shared libs for cross-compiling @@ -223,7 +226,7 @@ let ] ++ optional (allPkgconfigDepends != []) "--with-pkg-config=${pkg-config.targetPrefix}pkg-config"; - parallelBuildingFlags = "-j$NIX_BUILD_CORES" + optionalString stdenv.isLinux " +RTS -A64M -RTS"; + makeGhcOptions = opts: lib.concatStringsSep " " (map (opt: "--ghc-option=${opt}") opts); buildFlagsString = optionalString (buildFlags != []) (" " + concatStringsSep " " buildFlags); @@ -241,8 +244,8 @@ let "--package-db=$packageConfDir" (optionalString (enableSharedExecutables && stdenv.isLinux) "--ghc-option=-optl=-Wl,-rpath=$out/${ghcLibdir}/${pname}-${version}") (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names") - (optionalString enableParallelBuilding "--ghc-options=${parallelBuildingFlags}") - (optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp") + (optionalString enableParallelBuilding (makeGhcOptions [ "-j$NIX_BUILD_CORES" "+RTS" "-A64M" "-RTS" ])) + (optionalString useCpphs ("--with-cpphs=${cpphs}/bin/cpphs " + (makeGhcOptions [ "-cpp" "-pgmP${cpphs}/bin/cpphs" "-optP--cpp" ]))) (enableFeature enableLibraryProfiling "library-profiling") (optionalString (enableExecutableProfiling || enableLibraryProfiling) "--profiling-detail=${profilingDetail}") (enableFeature enableExecutableProfiling "profiling") @@ -265,16 +268,14 @@ let ) ++ optionals enableSeparateBinOutput [ "--bindir=${binDir}" ] ++ optionals (doHaddockInterfaces && isLibrary) [ - "--ghc-options=-haddock" + "--ghc-option=-haddock" ]; postPhases = optional doInstallIntermediates "installIntermediatesPhase"; setupCompileFlags = [ (optionalString (!coreSetup) "-package-db=$setupPackageConfDir") - (optionalString enableParallelBuilding parallelBuildingFlags) "-threaded" # https://github.com/haskell/cabal/issues/2398 - "-rtsopts" # allow us to pass RTS flags to the generated Setup executable ]; isHaskellPkg = x: x ? isHaskellLibrary; diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 0a1efccb62a40..d05b86212b646 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -20331,7 +20331,6 @@ self: { ]; description = "Another Haskell web framework for rapid development"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "Spock-api" = callPackage @@ -20371,7 +20370,6 @@ self: { libraryHaskellDepends = [ base hvect mtl Spock-api Spock-core ]; description = "Another Haskell web framework for rapid development"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "Spock-auth" = callPackage @@ -20415,8 +20413,6 @@ self: { ]; description = "Another Haskell web framework for rapid development"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "Spock-digestive" = callPackage @@ -20433,7 +20429,6 @@ self: { ]; description = "Digestive functors support for Spock"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "Spock-lucid" = callPackage @@ -20445,7 +20440,6 @@ self: { libraryHaskellDepends = [ base lucid Spock transformers ]; description = "Lucid support for Spock"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; }) {}; "Spock-worker" = callPackage @@ -20463,7 +20457,6 @@ self: { testHaskellDepends = [ base containers HTF stm vector ]; description = "Background workers for Spock"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "SpreadsheetML" = callPackage @@ -50668,7 +50661,6 @@ self: { ]; description = "A small tool that clears cookies (and more)"; license = lib.licenses.gpl3Only; - hydraPlatforms = lib.platforms.none; mainProgram = "bisc"; }) {}; @@ -121353,6 +121345,7 @@ self: { sha256 = "1cx9jqpbr6b30qckp2zpsfk3swa58snjb79pq0l6485nvrxa9mls"; description = "base library for GHCJS"; license = lib.licenses.mit; + platforms = [ "javascript-ghcjs" ]; maintainers = [ lib.maintainers.alexfmpe ]; }) {}; @@ -121422,7 +121415,6 @@ self: { ]; description = "GHCJS DOM Hello World, an example package"; license = lib.licenses.mit; - badPlatforms = lib.platforms.darwin; maintainers = [ lib.maintainers.alexfmpe ]; }) {}; @@ -121434,9 +121426,8 @@ self: { sha256 = "0im7wn7bn43rhkblh0wn9angadbdvywsalfz0adr9pkwv6hvc8qs"; description = "DOM library using JSFFI and GHCJS"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; + platforms = [ "javascript-ghcjs" ]; maintainers = [ lib.maintainers.alexfmpe ]; - broken = true; }) {}; "ghcjs-dom-jsaddle" = callPackage @@ -121449,6 +121440,7 @@ self: { doHaddock = false; description = "DOM library that supports both GHCJS and GHC using jsaddle"; license = lib.licenses.mit; + maintainers = [ lib.maintainers.alexfmpe ]; }) {}; "ghcjs-dom-jsffi" = callPackage @@ -121573,6 +121565,8 @@ self: { ]; description = "Deprecated: use ghcjs-base's native websockets"; license = lib.licenses.mit; + hydraPlatforms = lib.platforms.none; + broken = true; }) {}; "ghcjs-xhr" = callPackage @@ -151711,9 +151705,7 @@ self: { testToolDepends = [ hspec-discover ]; description = "A terminal UI as drop-in replacement for hledger add"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "hledger-iadd"; - broken = true; }) {}; "hledger-iadd_1_3_21" = callPackage @@ -151749,7 +151741,6 @@ self: { license = lib.licenses.bsd3; hydraPlatforms = lib.platforms.none; mainProgram = "hledger-iadd"; - broken = true; }) {}; "hledger-interest" = callPackage @@ -163899,8 +163890,6 @@ self: { ]; description = "A high-performance HTML tokenizer"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "html-parse-util" = callPackage @@ -178690,7 +178679,6 @@ self: { ]; description = "JSaddle Hello World, an example package"; license = lib.licenses.mit; - badPlatforms = lib.platforms.darwin; maintainers = [ lib.maintainers.alexfmpe ]; }) {}; @@ -179537,7 +179525,6 @@ self: { ]; description = "Generics JSON (de)serialization using generics-sop"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.alexfmpe ]; }) {}; @@ -189161,9 +189148,7 @@ self: { ]; description = "Computing lenses generically using generics-sop"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; maintainers = [ lib.maintainers.alexfmpe ]; - broken = true; }) {}; "lens-tell" = callPackage @@ -189498,8 +189483,6 @@ self: { ]; description = "Haskell bindings to LevelDB"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {inherit (pkgs) leveldb;}; "leveldb-haskell-fork" = callPackage @@ -249277,9 +249260,7 @@ self: { testHaskellDepends = [ aeson base hspec ]; description = "Send push notifications to mobile iOS devices"; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; mainProgram = "sendapn"; - broken = true; }) {}; "push-notify-ccs" = callPackage @@ -267562,9 +267543,7 @@ self: { description = "Generates unique passwords for various websites from a single password"; license = lib.licenses.bsd3; platforms = lib.platforms.x86; - hydraPlatforms = lib.platforms.none; mainProgram = "scat"; - broken = true; }) {}; "scc" = callPackage @@ -269939,8 +269918,6 @@ self: { ]; description = "Multi-backend, high-level EDSL for interacting with SQL databases"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "selda-json" = callPackage @@ -269952,7 +269929,6 @@ self: { libraryHaskellDepends = [ aeson base bytestring selda text ]; description = "JSON support for the Selda database library"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "selda-postgresql" = callPackage @@ -269987,7 +269963,6 @@ self: { ]; description = "SQLite backend for the Selda database EDSL"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "select" = callPackage @@ -274945,8 +274920,6 @@ self: { libraryHaskellDepends = [ base containers mtl syb ]; description = "Functions that could be added to Data.Set."; license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - broken = true; }) {}; "set-monad" = callPackage @@ -336488,7 +336461,6 @@ self: { ]; description = "Add CSP headers to Yesod apps"; license = lib.licenses.mit; - hydraPlatforms = lib.platforms.none; }) {}; "yesod-datatables" = callPackage diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index 75f0e54d697cb..b924a29f26162 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -229,7 +229,7 @@ in { buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12; llvmPackages = pkgs.llvmPackages_12; }; - ghc948 = callPackage ../development/compilers/ghc/9.4.8.fixme.nix { + ghc948 = callPackage ../development/compilers/ghc/9.4.8.nix { bootPkgs = # Building with 9.2 is broken due to # https://gitlab.haskell.org/ghc/ghc/-/issues/21914 @@ -568,7 +568,7 @@ in { buildHaskellPackages = ghc.bootPkgs; ghc = bh.compiler.ghcjs810; compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { }; - packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { }; + packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs-8.x.nix { }; }; # The integer-simple attribute set contains package sets for all the GHC compilers