···437 <> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
438 <> "*"
439 ]
440- brokenLine (name, rdeps) = "[" <> name <> "](https://search.nixos.org/packages?channel=unstable&show=haskellPackages." <> name <> "&query=haskellPackages." <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps)
441 numSummary = statusToNumSummary summary
442 jobsByState predicate = Map.filter (predicate . worstState) summary
443 worstState = foldl' min Success . fmap state . summaryBuilds
···464 if' (isNothing mergeableJob) "No `mergeable` job found." <>
465 if' (isNothing maintainedJob) "No `maintained` job found." <>
466 if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <>
467- if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too much outstanding jobs on x86_64-linux." <>
468- if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too much outstanding jobs on aarch64-linux."
469 if' p e = if p then [e] else mempty
470 outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
471 maintainedJob = Map.lookup "maintained" summary
···437 <> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
438 <> "*"
439 ]
440+ brokenLine (name, rdeps) = "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps) <> " "
441 numSummary = statusToNumSummary summary
442 jobsByState predicate = Map.filter (predicate . worstState) summary
443 worstState = foldl' min Success . fmap state . summaryBuilds
···464 if' (isNothing mergeableJob) "No `mergeable` job found." <>
465 if' (isNothing maintainedJob) "No `maintained` job found." <>
466 if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <>
467+ if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <>
468+ if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux."
469 if' p e = if p then [e] else mempty
470 outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
471 maintainedJob = Map.lookup "maintained" summary
+7-3
maintainers/scripts/haskell/merge-and-open-pr.sh
···75echo "Merging https://github.com/NixOS/nixpkgs/pull/${curr_haskell_updates_pr_num}..."
76gh pr merge --repo NixOS/nixpkgs --merge "$curr_haskell_updates_pr_num"
77000078# Update stackage, Hackage hashes, and regenerate Haskell package set
79echo "Updating Stackage..."
80./maintainers/scripts/haskell/update-stackage.sh --do-commit
···84./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
8586# Push these new commits to the haskell-updates branch
87-echo "Pushing commits just created to the haskell-updates branch"
88git push
8990# Open new PR
···9394This PR is the regular merge of the \`haskell-updates\` branch into \`master\`.
9596-This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
9798We roughly aim to merge these \`haskell-updates\` PRs at least once every two weeks. See the @NixOS/haskell [team calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky) for who is currently in charge of this branch.
99···114EOF
115)
116117-echo "Opening a PR for the next haskell-updates merge cycle"
118gh pr create --repo NixOS/nixpkgs --base master --head haskell-updates --title "haskellPackages: update stackage and hackage" --body "$new_pr_body"
···75echo "Merging https://github.com/NixOS/nixpkgs/pull/${curr_haskell_updates_pr_num}..."
76gh pr merge --repo NixOS/nixpkgs --merge "$curr_haskell_updates_pr_num"
7778+# Update the list of Haskell package versions in NixOS on Hackage.
79+echo "Updating list of Haskell package versions in NixOS on Hackage..."
80+./maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh
81+82# Update stackage, Hackage hashes, and regenerate Haskell package set
83echo "Updating Stackage..."
84./maintainers/scripts/haskell/update-stackage.sh --do-commit
···88./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
8990# Push these new commits to the haskell-updates branch
91+echo "Pushing commits just created to the remote haskell-updates branch..."
92git push
9394# Open new PR
···9798This PR is the regular merge of the \`haskell-updates\` branch into \`master\`.
99100+This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at [cdepillabout/nix-haskell-updates-status](https://github.com/cdepillabout/nix-haskell-updates-status).
101102We roughly aim to merge these \`haskell-updates\` PRs at least once every two weeks. See the @NixOS/haskell [team calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky) for who is currently in charge of this branch.
103···118EOF
119)
120121+echo "Opening a PR for the next haskell-updates merge cycle..."
122gh pr create --repo NixOS/nixpkgs --base master --head haskell-updates --title "haskellPackages: update stackage and hackage" --body "$new_pr_body"
···206 script uses the `gh` command to merge the current PR and open a new one.
207 You should only need to do this once.
20800209 ```console
210 $ gh auth login
211 ```
21200000000002131. Make sure you have correctly marked packages broken. One of the previous
214 sections explains how to do this.
000000002152161. Merge `master` into `haskell-updates` and make sure to push to the
217 `haskell-updates` branch. (This can be skipped if `master` has recently
···237 `origin/haskell-updates`.
238239 1. Merges the currently open `haskell-updates` PR.
00240241 1. Updates Stackage and Hackage snapshots. Regenerates the Haskell package set.
242
···206 script uses the `gh` command to merge the current PR and open a new one.
207 You should only need to do this once.
208209+ This command can be used to authenticate:
210+211 ```console
212 $ gh auth login
213 ```
214215+ This command can be used to confirm that you have already authenticated:
216+217+ ```console
218+ $ gh auth status
219+ ```
220+221+1. Make sure you have setup your `~/.cabal/config` file for authentication
222+ for uploading the NixOS package versions to Hackage. See the following
223+ section for details on how to do this.
224+2251. Make sure you have correctly marked packages broken. One of the previous
226 sections explains how to do this.
227+228+ In short:
229+230+ ```console
231+ $ ./maintainers/scripts/haskell/hydra-report.hs get-report
232+ $ ./maintainers/scripts/haskell/hydra-report.hs mark-broken-list
233+ $ ./maintainers/scripts/haskell/mark-broken.sh --do-commit
234+ ```
2352361. Merge `master` into `haskell-updates` and make sure to push to the
237 `haskell-updates` branch. (This can be skipped if `master` has recently
···257 `origin/haskell-updates`.
258259 1. Merges the currently open `haskell-updates` PR.
260+261+ 1. Updates the version of Haskell packages in NixOS on Hackage.
262263 1. Updates Stackage and Hackage snapshots. Regenerates the Haskell package set.
264
···605 '';
606 });
6070000000000000000000608 # * The standard libraries are compiled separately.
609 # * We need multiple patches from master to fix compilation with
610 # updated dependencies (haskeline and megaparsec) which can be
···777778 # https://github.com/haskell-hvr/cryptohash-sha256/issues/11
779 # Jailbreak is necessary to break out of tasty < 1.x dependency.
780- cryptohash-sha256 = markUnbroken (doJailbreak super.cryptohash-sha256);
000000781782 # The test suite has all kinds of out-dated dependencies, so it feels easier
783 # to just disable it.
···1148 sha256 = "097wqn8hxsr50b9mhndg5pjim5jma2ym4ylpibakmmb5m98n17zp";
1149 });
11500000000001151 # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
1152 # This upstream issue is relevant:
1153 # https://github.com/polysemy-research/polysemy/issues/322
···1231 gi-cairo-render = doJailbreak super.gi-cairo-render;
1232 gi-cairo-connector = doJailbreak super.gi-cairo-connector;
12330000001234 # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
1235 # https://github.com/lehins/massiv/pull/104
1236 massiv = dontCheck super.massiv;
···1272 })) (drv: {
1273 patches = [ ./patches/graphql-engine-mapkeys.patch ];
1274 doHaddock = false;
1275- version = "2.0.7";
1276 });
1277 hasura-ekg-core = super.hasura-ekg-core.overrideScope (self: super: {
1278 hspec = dontCheck self.hspec_2_8_3;
···19381939 # 2021-09-18: https://github.com/haskell/haskell-language-server/issues/2205
1940 hls-stylish-haskell-plugin = doJailbreak super.hls-stylish-haskell-plugin;
0000000019411942} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
···605 '';
606 });
607608+ d-bus = let
609+ # The latest release on hackage is missing necessary patches for recent compilers
610+ # https://github.com/Philonous/d-bus/issues/24
611+ newer = overrideSrc super.d-bus {
612+ version = "unstable-2021-01-08";
613+ src = pkgs.fetchFromGitHub {
614+ owner = "Philonous";
615+ repo = "d-bus";
616+ rev = "fb8a948a3b9d51db618454328dbe18fb1f313c70";
617+ hash = "sha256-R7/+okb6t9DAkPVUV70QdYJW8vRcvBdz4zKJT13jb3A=";
618+ };
619+ };
620+ # Add now required extension on recent compilers.
621+ # https://github.com/Philonous/d-bus/pull/23
622+ in appendPatch newer (pkgs.fetchpatch {
623+ url = "https://github.com/Philonous/d-bus/commit/e5f37900a3a301c41d98bdaa134754894c705681.patch";
624+ sha256 = "6rQ7H9t483sJe1x95yLPAZ0BKTaRjgqQvvrQv7HkJRE=";
625+ });
626+627 # * The standard libraries are compiled separately.
628 # * We need multiple patches from master to fix compilation with
629 # updated dependencies (haskeline and megaparsec) which can be
···796797 # https://github.com/haskell-hvr/cryptohash-sha256/issues/11
798 # Jailbreak is necessary to break out of tasty < 1.x dependency.
799+ # hackage2nix generates this as a broken package due to the (fake) dependency
800+ # missing from hackage, so we need to fix the meta attribute set.
801+ cryptohash-sha256 = overrideCabal super.cryptohash-sha256 (drv: {
802+ jailbreak = true;
803+ broken = false;
804+ hydraPlatforms = pkgs.lib.platforms.all;
805+ });
806807 # The test suite has all kinds of out-dated dependencies, so it feels easier
808 # to just disable it.
···1173 sha256 = "097wqn8hxsr50b9mhndg5pjim5jma2ym4ylpibakmmb5m98n17zp";
1174 });
11751176+ # Pick patch from 1.6.0 which allows compilation with doctest 0.18
1177+ polysemy = appendPatches super.polysemy [
1178+ (pkgs.fetchpatch {
1179+ name = "allow-doctest-0.18.patch";
1180+ url = "https://github.com/polysemy-research/polysemy/commit/dbcf851eb69395ce3143ecf2dd616dcad953a339.patch";
1181+ sha256 = "1qf5pghc8p1glwaadkr95x12d74vhb98mg8dqwilyxbc6gq763w2";
1182+ })
1183+ ];
1184+1185 # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
1186 # This upstream issue is relevant:
1187 # https://github.com/polysemy-research/polysemy/issues/322
···1265 gi-cairo-render = doJailbreak super.gi-cairo-render;
1266 gi-cairo-connector = doJailbreak super.gi-cairo-connector;
12671268+ # Remove when https://github.com/gtk2hs/svgcairo/pull/10 gets merged.
1269+ svgcairo = appendPatch super.svgcairo (pkgs.fetchpatch {
1270+ url = "https://github.com/gtk2hs/svgcairo/commit/df6c6172b52ecbd32007529d86ba9913ba001306.patch";
1271+ sha256 = "128qrns56y139vfzg1rbyqfi2xn8gxsmpnxv3zqf4v5spsnprxwh";
1272+ });
1273+1274 # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
1275 # https://github.com/lehins/massiv/pull/104
1276 massiv = dontCheck super.massiv;
···1312 })) (drv: {
1313 patches = [ ./patches/graphql-engine-mapkeys.patch ];
1314 doHaddock = false;
1315+ version = "2.0.9";
1316 });
1317 hasura-ekg-core = super.hasura-ekg-core.overrideScope (self: super: {
1318 hspec = dontCheck self.hspec_2_8_3;
···19781979 # 2021-09-18: https://github.com/haskell/haskell-language-server/issues/2205
1980 hls-stylish-haskell-plugin = doJailbreak super.hls-stylish-haskell-plugin;
1981+1982+ # 2021-09-29: unnecessary lower bound on generic-lens
1983+ hw-ip = assert pkgs.lib.versionOlder self.generic-lens.version "2.2.0.0";
1984+ doJailbreak super.hw-ip;
1985+ hw-eliasfano = assert pkgs.lib.versionOlder self.generic-lens.version "2.2.0.0";
1986+ doJailbreak super.hw-eliasfano;
1987+ hw-xml = assert pkgs.lib.versionOlder self.generic-lens.version "2.2.0.0";
1988+ doJailbreak super.hw-xml;
19891990} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
···69 ];
7071 meta = with lib; {
72- homepage = "http://www.desmume.com";
73 description = "An open-source Nintendo DS emulator";
74 longDescription = ''
75- DeSmuME is a freeware emulator for the NDS roms & Nintendo DS
76- Lite games created by YopYop156. It supports many homebrew nds
77- rom demoes as well as a handful of Wireless Multiboot demo nds
78- roms. DeSmuME is also able to emulate nearly all of the
79 commercial nds rom titles which other DS Emulators aren't.
80 '';
81 license = licenses.gpl2Plus;
···84 };
85}
86# TODO: investigate the patches
0
···69 ];
7071 meta = with lib; {
72+ homepage = "https://www.github.com/TASVideos/desmume/";
73 description = "An open-source Nintendo DS emulator";
74 longDescription = ''
75+ DeSmuME is a freeware emulator for the NDS roms & Nintendo DS Lite games
76+ created by YopYop156 and now maintained by the TASvideos team. It supports
77+ many homebrew nds rom demoes as well as a handful of Wireless Multiboot
78+ demo nds roms. DeSmuME is also able to emulate nearly all of the
79 commercial nds rom titles which other DS Emulators aren't.
80 '';
81 license = licenses.gpl2Plus;
···84 };
85}
86# TODO: investigate the patches
87+# TODO: investigate other platforms
···71 };
7273 ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
74- # the oldest ghc with aarch64-darwin support is 8.10.5
75- bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
76- packages.ghc8107BinaryMinimal
77 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
78 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
79- else if stdenv.isAarch64 || stdenv.targetPlatform.isMusl then
80 packages.ghc8102BinaryMinimal
81 else
82 packages.ghc865Binary;
···85 llvmPackages = pkgs.llvmPackages_7;
86 };
87 ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
88- # the oldest ghc with aarch64-darwin support is 8.10.5
89- bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
90- packages.ghc8107BinaryMinimal
91 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
092 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
93- else if stdenv.isAarch64 || stdenv.isAarch32 || stdenv.targetPlatform.isMusl then
94- packages.ghc8102BinaryMinimal
95 else
96- packages.ghc865Binary;
97 inherit (buildPackages.python3Packages) sphinx;
98 # Need to use apple's patched xattr until
99 # https://github.com/xattr/xattr/issues/44 and
···103 llvmPackages = pkgs.llvmPackages_9;
104 };
105 ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
106- # the oldest ghc with aarch64-darwin support is 8.10.5
107- bootPkgs = if stdenv.isDarwin && stdenv.isAarch64 then
00108 packages.ghc8107BinaryMinimal
109- # aarch64 ghc8102Binary exceeds max output size on hydra
110- else if stdenv.isAarch64 || stdenv.isAarch32 then
111- packages.ghc8102BinaryMinimal
112 else
113- packages.ghc8102Binary;
114 inherit (buildPackages.python3Packages) sphinx;
115 buildLlvmPackages = buildPackages.llvmPackages_10;
116 llvmPackages = pkgs.llvmPackages_10;
117 };
118 ghc921 = callPackage ../development/compilers/ghc/9.2.1.nix {
119- # aarch64 ghc8102Binary exceeds max output size on hydra
120- bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
121- packages.ghc8102BinaryMinimal
0122 else
123- packages.ghc8102Binary;
124 inherit (buildPackages.python3Packages) sphinx;
125 # Need to use apple's patched xattr until
126 # https://github.com/xattr/xattr/issues/44 and
···71 };
7273 ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
74+ bootPkgs =
0075 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
76 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
77+ if stdenv.isAarch64 || stdenv.hostPlatform.isMusl then
78 packages.ghc8102BinaryMinimal
79 else
80 packages.ghc865Binary;
···83 llvmPackages = pkgs.llvmPackages_7;
84 };
85 ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
86+ bootPkgs =
0087 # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
88+ # the oldest ghc with aarch64-darwin support is 8.10.5
89 # Musl bindists do not exist for ghc 8.6.5, so we use 8.10.* for them
90+ if stdenv.isAarch64 || stdenv.isAarch32 then
91+ packages.ghc8107BinaryMinimal
92 else
93+ packages.ghc8107Binary;
94 inherit (buildPackages.python3Packages) sphinx;
95 # Need to use apple's patched xattr until
96 # https://github.com/xattr/xattr/issues/44 and
···100 llvmPackages = pkgs.llvmPackages_9;
101 };
102 ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
103+ bootPkgs =
104+ # aarch64 ghc8107Binary exceeds max output size on hydra
105+ # the oldest ghc with aarch64-darwin support is 8.10.5
106+ if stdenv.isAarch64 || stdenv.isAarch32 then
107 packages.ghc8107BinaryMinimal
000108 else
109+ packages.ghc8107Binary;
110 inherit (buildPackages.python3Packages) sphinx;
111 buildLlvmPackages = buildPackages.llvmPackages_10;
112 llvmPackages = pkgs.llvmPackages_10;
113 };
114 ghc921 = callPackage ../development/compilers/ghc/9.2.1.nix {
115+ bootPkgs =
116+ # aarch64 ghc8107Binary exceeds max output size on hydra
117+ if stdenv.isAarch64 || stdenv.isAarch32 then
118+ packages.ghc8107BinaryMinimal
119 else
120+ packages.ghc8107Binary;
121 inherit (buildPackages.python3Packages) sphinx;
122 # Need to use apple's patched xattr until
123 # https://github.com/xattr/xattr/issues/44 and