Merge pull request #130424 from NixOS/haskell-updates

haskellPackages: update stackage and hackage
This commit is contained in:
sterni 2021-07-26 18:06:23 +02:00 committed by GitHub
commit 6f08b46853
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 2068 additions and 614 deletions

View file

@ -30,9 +30,10 @@ EOF
# clear environment here to avoid things like allowing broken builds in
sort -iu "$tmpfile" >> "$broken_config"
env -i maintainers/scripts/haskell/regenerate-hackage-packages.sh
env -i maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
env -i maintainers/scripts/haskell/regenerate-hackage-packages.sh
clear="env -u HOME -u NIXPKGS_CONFIG"
$clear maintainers/scripts/haskell/regenerate-hackage-packages.sh
$clear maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
$clear maintainers/scripts/haskell/regenerate-hackage-packages.sh
if [[ "${1:-}" == "--do-commit" ]]; then
git add $broken_config

View file

@ -0,0 +1,21 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl gnused -I nixpkgs=.
# On Hackage every package description shows a category "Distributions" which
# lists a "NixOS" version.
# This script uploads a csv to hackage which will update the displayed versions
# based on the current versions in nixpkgs. This happens with a simple http
# request.
# For authorization you just need to have any valid hackage account. This
# script uses the `username` and `password-command` field from your
# ~/.cabal/config file.
# e.g. username: maralorn
# password-command: pass hackage.haskell.org (this can be any command, but not an arbitrary shell expression.)
# Those fields are specified under `upload` on the `cabal` man page.
package_list="$(nix-build -A haskell.package-list)/nixos-hackage-packages.csv"
username=$(grep "^username:" ~/.cabal/config | sed "s/^username: //")
password_command=$(grep "^password-command:" ~/.cabal/config | sed "s/^password-command: //")
curl -u "$username:$($password_command)" --digest -H "Content-type: text/csv" -T "$package_list" http://hackage.haskell.org/distro/NixOS/packages.csv

View file

@ -114,8 +114,9 @@ with lib.maintainers; {
haskell = {
members = [
maralorn
cdepillabout
expipiplus1
maralorn
sternenseemann
];
scope = "Maintain Haskell packages and infrastructure.";

View file

@ -46,6 +46,7 @@ let
defaults =
{ pname
, meta
, buildInputs ? []
, everythingFile ? "./Everything.agda"
, libraryName ? pname
@ -76,6 +77,7 @@ let
find -not \( -path ${everythingFile} -or -path ${lib.interfaceFile everythingFile} \) -and \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} +
runHook postInstall
'';
meta = if meta.broken or false then meta // { hydraPlatforms = lib.platforms.none; } else meta;
};
in
{

View file

@ -1,6 +1,6 @@
{
"commit": "360e4a3b93ab9fc49673c9d91eebd963ddd7e132",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/360e4a3b93ab9fc49673c9d91eebd963ddd7e132.tar.gz",
"sha256": "0pzi0kjlma36s0z5wfcghn6h6lwx61vvq8f7322nz80fs4drpn64",
"msg": "Update from Hackage at 2021-07-07T20:16:30Z"
"commit": "51c018b566e360a908addb7fcabf98fc0fbaafbe",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/51c018b566e360a908addb7fcabf98fc0fbaafbe.tar.gz",
"sha256": "0xbc0z6zx60c0m3ck0iaa5xsw7d5phk2d8wh66w66j7ci7dyah85",
"msg": "Update from Hackage at 2021-07-21T05:42:12Z"
}

View file

@ -309,6 +309,10 @@ stdenv.mkDerivation (rec {
maintainers = with lib.maintainers; [ marcweber andres peti ];
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
# integer-simple builds are broken when GHC links against musl.
# See https://github.com/NixOS/nixpkgs/pull/129606#issuecomment-881323743.
broken = enableIntegerSimple && hostPlatform.isMusl;
};
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {

View file

@ -319,6 +319,10 @@ stdenv.mkDerivation (rec {
maintainers = with lib.maintainers; [ marcweber andres peti ];
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
# integer-simple builds are broken when GHC links against musl.
# See https://github.com/NixOS/nixpkgs/pull/129606#issuecomment-881323743.
broken = enableIntegerSimple && hostPlatform.isMusl;
};
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);

View file

@ -296,6 +296,10 @@ stdenv.mkDerivation (rec {
maintainers = with lib.maintainers; [ marcweber andres peti ];
timeout = 24 * 3600;
inherit (ghc.meta) license platforms;
# integer-simple builds are broken when GHC links against musl.
# See https://github.com/NixOS/nixpkgs/pull/129606#issuecomment-881323743.
broken = enableIntegerSimple && hostPlatform.isMusl;
};
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {

View file

@ -241,6 +241,14 @@ When you've double-checked these points, go ahead and merge the `haskell-updates
After merging, **make sure not to delete the `haskell-updates` branch**, since it
causes all currently open Haskell-related pull-requests to be automatically closed on GitHub.
## Update Hackage Version Information
After merging into `master` you can update what hackage displays as the current
version in NixOS for every individual package.
To do this you run `maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh`.
See the script for how to provide credentials. Once you have configured that
running this takes only a few seconds.
## Additional Info
Here are some additional tips that didn't fit in above.
@ -287,3 +295,34 @@ Here are some additional tips that didn't fit in above.
- The Haskell team members generally hang out in the Matrix room
[#haskell:nixos.org](https://matrix.to/#/#haskell:nixos.org).
- This is a checklist for things that need to happen when a new
member is added to the Nixpkgs Haskell team.
1. Add the person to the
[@NixOS/haskell](https://github.com/orgs/NixOS/teams/haskell)
team. You may need to ask someone in the NixOS organization
to do this, like [@domenkozar](https://github.com/domenkozar).
This gives the new member access to the GitHub repos like
[cabal2nix](https://github.com/NixOS/cabal2nix).
1. Add the person as a maintainer for the following packages
on Hackage:
- https://hackage.haskell.org/package/cabal2nix
- https://hackage.haskell.org/package/distribution-nixpkgs
- https://hackage.haskell.org/package/hackage-db
- https://hackage.haskell.org/package/jailbreak-cabal
- https://hackage.haskell.org/package/language-nix
1. Add the person to the `haskell` team in
[`maintainers/team-list.nix`](../../../maintainers/team-list.nix).
This team is responsible for some important packages in
[release-haskell.nix](../../top-level/release-haskell.nix).
1. Update the
[Nextcloud Calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky)
and work the new member into the `haskell-updates` rotation.
1. Optionally, have the new member add themselves to the Haskell
section in [`CODEOWNERS`](../../../.github/CODEOWNERS). This
will cause them to get pinged on most Haskell-related PRs.

View file

@ -64,7 +64,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "0nvaaba06dgkl2kfq6ldmj0v6mm2dh7wfky6lsxxy5kskbncyqjr";
sha256 = "0jnxh12vkrssz0lj4fpkqw7nxwyc1kisvvpm85cd4zf525m5sgg3";
# delete android and Android directories which cause issues on
# darwin (case insensitive directory). Since we don't need them
# during the build process, we can delete it to prevent a hash
@ -178,51 +178,17 @@ self: super: {
digit = doJailbreak super.digit;
hnix = generateOptparseApplicativeCompletion "hnix"
(overrideCabal super.hnix (drv: {
(overrideCabal (super.hnix.override {
# needs newer version of relude and semialign than stackage has
relude = self.relude_1_0_0_1;
semialign = self.semialign_1_2;
}) (drv: {
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
doCheck = false;
# 2021-05-12: Revert a few dependency cleanups which depend on release
# that are not in stackage yet:
# * Depend on semialign-indexed for Data.Semialign.Indexed
# (remove when semialign >= 1.2 in stackage)
# * Readd dependencies to text and unordered-containers.
# (remove when relude >= 1.0.0.0 is in stackage, see
# https://github.com/haskell-nix/hnix/issues/933)
libraryHaskellDepends = [
self.semialign-indexed
] ++ drv.libraryHaskellDepends;
patches = [
# depend on semialign-indexed again
(pkgs.fetchpatch {
url = "https://github.com/haskell-nix/hnix/commit/16fc342a4f2974f855968472252cd9274609f177.patch";
sha256 = "0gm4gy3jpn4dqnrhnqlsavfpw9c1j1xa8002v54knnlw6vpk9niy";
revert = true;
})
# depend on text again
(pkgs.fetchpatch {
url = "https://github.com/haskell-nix/hnix/commit/73057618576e86bb87dfd42f62b855d24bbdf469.patch";
sha256 = "03cyk96d5ad362i1pnz9bs8ifr84kpv8phnr628gys4j6a0bqwzc";
revert = true;
})
# depend on unordered-containers again
(pkgs.fetchpatch {
url = "https://github.com/haskell-nix/hnix/commit/70643481883ed448b51221a030a76026fb5eb731.patch";
sha256 = "0pqmijfkysjixg3gb4kmrqdif7s2saz8qi6k337jf15i0npzln8d";
revert = true;
})
# allow relude < 1.0 again
(pkgs.fetchpatch {
url = "https://github.com/haskell-nix/hnix/commit/f4ea5dcb344369916586498ba33c00d0fc605a79.patch";
sha256 = "1ajl7d49d658xhalgf3pc5svmbq73dsysy6z434n75vb1357mx86";
revert = true;
})
] ++ (drv.patches or []);
# make sure patches are not broken by cabal file revisions
revision = null;
editedCabalFile = null;
}));
# Fails for non-obvious reasons while attempting to use doctest.
focuslist = dontCheck super.focuslist;
search = dontCheck super.search;
# see https://github.com/LumiGuide/haskell-opencv/commit/cd613e200aa20887ded83256cf67d6903c207a60
@ -1944,12 +1910,6 @@ EOT
# Fixed on upstream: https://github.com/softwarefactory-project/matrix-client-haskell/commit/4ca4963cfd06379d9bdce49742af854aed6a0d37
matrix-client = dontCheck super.matrix-client;
# Flakey tests
# upstream https://github.com/circuithub/rel8/issues/86
rel8 = dontCheck (super.rel8.override {
opaleye = dontCheck super.opaleye_0_7_2_0;
});
# Release 1.0.0.0 added version bounds (was unrestricted before),
# but with too strict lower bounds for our lts-18.
graphql = assert pkgs.lib.versionOlder self.parser-combinators.version "1.3.0";

View file

@ -1999,6 +1999,7 @@ broken-packages:
- hedgehog-checkers
- hedgehog-generic
- hedgehog-golden
- hedgehog-optics
- hedgehog-servant
- hedis-config
- hedis-namespace
@ -2023,7 +2024,6 @@ broken-packages:
- heterogeneous-list-literals
- hetris
- heukarya
- hevm
- HExcel
- hexchat
- hexif
@ -2211,6 +2211,7 @@ broken-packages:
- hs2ps
- hsakamai
- hsaml2
- hs-aws-lambda
- hsay
- hsbc
- hsbencher
@ -3172,6 +3173,7 @@ broken-packages:
- naqsha
- narc
- nationstates
- nat-optics
- nats-client
- nat-sized-numbers
- natural
@ -3468,6 +3470,7 @@ broken-packages:
- parsergen
- parser-helper
- parsers-megaparsec
- parser-unbiased-choice-monad-embedding
- parsimony
- parsley
- parsley-core
@ -3734,6 +3737,7 @@ broken-packages:
- process-leksah
- process-listlike
- processmemory
- procex
- procrastinating-variable
- procstat
- prof2pretty
@ -4805,7 +4809,6 @@ broken-packages:
- Titim
- tkhs
- tkyprof
- tmp-postgres
- todo
- tofromxml
- to-haskell

View file

@ -85,9 +85,8 @@ default-package-overrides:
- dual-tree < 0.2.3.0
- diagrams-core < 1.5.0
- diagrams-lib < 1.4.4
# 2021-06-14: hnix still needs old versions https://github.com/haskell-nix/hnix/issues/952
- hnix-store-core < 0.5
- hnix-store-remote < 0.5
# streamly-bytestring 0.1.3 needs streamly 0.8.0 which is not included in our stackage snapshot
- streamly-bytestring == 0.1.2
extra-packages:
- base16-bytestring < 1 # required for cabal-install etc.
@ -115,11 +114,14 @@ extra-packages:
- crackNum < 3.0 # 2021-05-21: 3.0 removed the lib which sbv 7.13 uses
- ShellCheck == 0.7.1 # 2021-05-09: haskell-ci 0.12.1 pins this version
- hackage-db < 2.1.1 # 2021-06-10: Need older hackage-db as long as Cabal < 3.4, see https://github.com/NixOS/cabal2nix/issues/501
- opaleye < 0.7.3.0 # 2021-07-11: for rel8 <= 1.0.0.1, see https://github.com/circuithub/rel8/issues/95#issuecomment-877616118
package-maintainers:
abbradar:
- Agda
Anton-Latukha:
- hnix
- hnix-store-core
- hnix-store-remote
berberman:
- nvfetcher
- arch-web

View file

@ -1,4 +1,4 @@
# Stackage LTS 18.1
# Stackage LTS 18.2
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
@ -207,7 +207,7 @@ default-package-overrides:
- backprop ==0.2.6.4
- backtracking ==0.1.0
- bank-holidays-england ==0.2.0.6
- barbies ==2.0.2.0
- barbies ==2.0.3.0
- base16 ==0.3.0.1
- base16-bytestring ==1.0.1.0
- base16-lens ==0.1.3.2
@ -601,7 +601,7 @@ default-package-overrides:
- di-core ==1.0.4
- dictionary-sharing ==0.1.0.0
- Diff ==0.4.0
- digest ==0.0.1.2
- digest ==0.0.1.3
- digits ==0.3.1
- dimensional ==1.4
- di-monad ==1.3.1
@ -703,7 +703,7 @@ default-package-overrides:
- errors ==2.3.0
- errors-ext ==0.4.2
- ersatz ==0.4.9
- esqueleto ==3.5.2.0
- esqueleto ==3.5.2.1
- essence-of-live-coding ==0.2.5
- essence-of-live-coding-gloss ==0.2.5
- essence-of-live-coding-pulse ==0.2.5
@ -794,7 +794,7 @@ default-package-overrides:
- foldable1 ==0.1.0.0
- fold-debounce ==0.2.0.9
- fold-debounce-conduit ==0.2.0.6
- foldl ==1.4.11
- foldl ==1.4.12
- folds ==0.7.6
- follow-file ==0.0.3
- FontyFruity ==0.5.3.5
@ -896,7 +896,7 @@ default-package-overrides:
- ghc-parser ==0.2.3.0
- ghc-paths ==0.1.0.12
- ghc-prof ==1.4.1.8
- ghc-source-gen ==0.4.0.0
- ghc-source-gen ==0.4.1.0
- ghc-syntax-highlighter ==0.0.6.0
- ghc-tcplugins-extra ==0.4.2
- ghc-trace-events ==0.1.2.3
@ -978,7 +978,7 @@ default-package-overrides:
- happy ==1.20.0
- happy-meta ==0.2.0.11
- HasBigDecimal ==0.1.1
- hasbolt ==0.1.5.0
- hasbolt ==0.1.6.1
- hashable ==1.3.0.0
- hashable-time ==0.2.1
- hashids ==1.0.2.4
@ -1121,7 +1121,7 @@ default-package-overrides:
- hspec-golden ==0.1.0.3
- hspec-golden-aeson ==0.7.0.0
- hspec-hedgehog ==0.0.1.2
- hspec-junit-formatter ==1.0.0.4
- hspec-junit-formatter ==1.0.0.5
- hspec-leancheck ==0.0.6
- hspec-megaparsec ==2.2.0
- hspec-meta ==2.7.8
@ -1218,7 +1218,7 @@ default-package-overrides:
- ieee754 ==0.8.0
- if ==0.1.0.0
- iff ==0.0.6
- ihaskell ==0.10.2.0
- ihaskell ==0.10.2.1
- ihs ==0.1.0.3
- ilist ==0.4.0.1
- imagesize-conduit ==1.1
@ -2024,7 +2024,7 @@ default-package-overrides:
- safe-coloured-text-terminfo ==0.0.0.0
- safecopy ==0.10.4.2
- safe-decimal ==0.2.1.0
- safe-exceptions ==0.1.7.1
- safe-exceptions ==0.1.7.2
- safe-foldable ==0.1.0.0
- safeio ==0.0.5.0
- safe-json ==1.1.1.1
@ -2562,7 +2562,7 @@ default-package-overrides:
- vector-algorithms ==0.8.0.4
- vector-binary-instances ==0.2.5.2
- vector-buffer ==0.4.1
- vector-builder ==0.3.8.1
- vector-builder ==0.3.8.2
- vector-bytes-instances ==0.1.1
- vector-circular ==0.1.3
- vector-instances ==3.4

View file

@ -1444,7 +1444,6 @@ dont-distribute-packages:
- hasql-cursor-query
- hasql-postgres
- hasql-postgres-options
- hasql-queue
- hasql-th
- hastache-aeson
- haste-app
@ -2341,6 +2340,7 @@ dont-distribute-packages:
- polysemy-fskvstore
- polysemy-http
- polysemy-keyed-state
- polysemy-kvstore
- polysemy-kvstore-jsonfile
- polysemy-log
- polysemy-log-co
@ -2351,11 +2351,14 @@ dont-distribute-packages:
- polysemy-optics
- polysemy-path
- polysemy-plugin
- polysemy-plugin_0_4_0_0
- polysemy-readline
- polysemy-req
- polysemy-resume
- polysemy-socket
- polysemy-test
- polysemy-time
- polysemy-uncontrolled
- polysemy-video
- polysemy-vinyl
- polysemy-webserver
@ -2893,7 +2896,6 @@ dont-distribute-packages:
- swearjure
- sweet-egison
- switch
- sydtest-persistent-postgresql
- sylvia
- sym-plot
- symantic-atom

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,19 @@
{ runCommand, haskellPackages, lib, all-cabal-hashes, writeShellScript }:
let
pkgLine = name: pkg:
let
version = pkg.version or "";
in
if version != "" then
''"${name}","${version}","http://hydra.nixos.org/job/nixpkgs/trunk/haskellPackages.${name}.x86_64-linux"''
else "";
all-haskellPackages = builtins.toFile "all-haskellPackages" (lib.concatStringsSep "\n" (lib.filter (x: x != "") (lib.mapAttrsToList pkgLine haskellPackages)));
in
runCommand "hackage-package-list" { }
# This command will make a join between all packages on hackage and haskellPackages.*.
# It creates a valid csv file which can be uploaded to hackage.haskell.org.
# The call is wrapped in echo $(...) to trim trailing newline, which hackage requires.
''
mkdir -p $out/bin
echo -n "$(tar -t -f ${all-cabal-hashes} | sed 's![^/]*/\([^/]*\)/.*!"\1"!' | sort -u | join -t , - ${all-haskellPackages})" > $out/nixos-hackage-packages.csv
''

View file

@ -1,14 +1,14 @@
{ lib, mkDerivation, fetchFromGitHub, standard-library }:
mkDerivation rec {
version = "0.1.6";
version = "0.1.7.1";
pname = "agda-categories";
src = fetchFromGitHub {
owner = "agda";
repo = "agda-categories";
rev = "v${version}";
sha256 = "1s75yqcjwj13s1m3fg29krnn05lws6143ccfdygc6c4iynvvznsh";
sha256 = "1acb693ad2nrmnn6jxsyrlkc0di3kk2ksj2w9wnyfxrgvfsil7rn";
};
buildInputs = [ standard-library ];

View file

@ -19,6 +19,8 @@ mkDerivation rec {
'';
meta = with lib; {
# Remove if a version compatible with agda 2.6.2 is made
broken = true;
homepage = "https://github.com/UlfNorell/agda-prelude";
description = "Programming library for Agda";
license = lib.licenses.mit;

View file

@ -18,6 +18,8 @@ mkDerivation rec {
'';
meta = with lib; {
# Remove if a version compatible with agda 2.6.2 is made
broken = true;
homepage = "https://github.com/ryanorendorff/functional-linear-algebra";
description = ''
Formalizing linear algebra in Agda by representing matrices as functions

View file

@ -21,6 +21,8 @@ mkDerivation rec {
'';
meta = with lib; {
# Remove if a version compatible with agda 2.6.2 is made
broken = true;
description =
"A library for doing generic programming in Agda";
homepage = src.meta.homepage;

View file

@ -20,14 +20,14 @@
}:
mkDerivation rec {
pname = "nix-linter-unstable";
version = "2021-06-16";
pname = "nix-linter";
version = "0.2.0.3";
src = fetchFromGitHub {
owner = "Synthetica9";
repo = "nix-linter";
rev = "74707ed48dcc58dbfa27ae25ee0e044c072cc344";
sha256 = "17scghkinpx3pzlw3hw023ybnd8cy7bqfy8b48vwaq8a7bnm2rs3";
rev = "38c4a14681cf3a1e6f098d8b723db503910a28d8";
sha256 = "16igk4xnm4mg9mw0zg2zk6s44axia3fs6334fasvjy0c7cjwk4c7";
};
isLibrary = false;

View file

@ -42,6 +42,8 @@ let
in {
lib = haskellLib;
package-list = callPackage ../development/haskell-modules/package-list.nix {};
compiler = {
ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };

View file

@ -18,18 +18,22 @@ let
};
inherit (releaseLib)
pkgs
packagePlatforms
lib
mapTestOn
aggregate
packagePlatforms
pkgs
;
inherit (pkgs) lib;
# helper function which traverses a (nested) set
# Helper function which traverses a (nested) set
# of derivations produced by mapTestOn and flattens
# it to a list of derivations suitable to be passed
# to `releaseTools.aggregate` as constituents.
# Removes all non derivations from the input jobList.
#
# accumulateDerivations :: [ Either Derivation AttrSet ] -> [ Derivation ]
#
# > accumulateDerivations [ drv1 "string" { foo = drv2; bar = { baz = drv3; }; } ]
# [ drv1 drv2 drv3 ]
accumulateDerivations = jobList:
lib.concatMap (
attrs:
@ -81,8 +85,45 @@ let
recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
staticHaskellPackagesPlatforms =
packagePlatforms pkgs.pkgsStatic.haskell.packages.integer-simple.ghc8104;
# Remove multiple elements from a list at once.
#
# removeMany
# :: [a] -- list of elements to remove
# -> [a] -- list of elements from which to remove
# -> [a]
#
# > removeMany ["aarch64-linux" "x86_64-darwin"] ["aarch64-linux" "x86_64-darwin" "x86_64-linux"]
# ["x86_64-linux"]
removeMany = itemsToRemove: list: lib.foldr lib.remove list itemsToRemove;
# Recursively remove platforms from the values in an attribute set.
#
# removePlatforms
# :: [String]
# -> AttrSet
# -> AttrSet
#
# > attrSet = {
# foo = ["aarch64-linux" "x86_64-darwin" "x86_64-linux"];
# bar.baz = ["aarch64-linux" "x86_64-linux"];
# bar.quux = ["aarch64-linux" "x86_64-darwin"];
# }
# > removePlatforms ["aarch64-linux" "x86_64-darwin"] attrSet
# {
# foo = ["x86_64-linux"];
# bar = {
# baz = ["x86_64-linux"];
# quux = [];
# };
# }
removePlatforms = platformsToRemove: packageSet:
lib.mapAttrsRecursive
(_: val:
if lib.isList val
then removeMany platformsToRemove val
else val
)
packageSet;
jobs = recursiveUpdateMany [
(mapTestOn {
@ -91,23 +132,8 @@ let
tests.haskell = packagePlatforms pkgs.tests.haskell;
pkgsMusl.haskell.compiler = packagePlatforms pkgs.pkgsMusl.haskell.compiler // {
# remove musl ghc865Binary since it is known to be broken and
# causes an evaluation error on darwin.
# TODO: remove ghc865Binary altogether and use ghc8102Binary
ghc865Binary = {};
};
# test some statically linked packages to catch regressions
# and get some cache going for static compilation with GHC
# Use integer-simple to avoid GMP linking problems (LGPL)
pkgsStatic.haskell.packages.integer-simple.ghc8104 = {
inherit (staticHaskellPackagesPlatforms)
hello
random
lens
;
};
nixosTests.agda = (packagePlatforms pkgs.nixosTests).agda;
agdaPackages = packagePlatforms pkgs.agdaPackages;
# top-level packages that depend on haskellPackages
inherit (pkgsPlatforms)
@ -215,6 +241,56 @@ let
;
elmPackages.elm = pkgsPlatforms.elmPackages.elm;
# GHCs linked to musl.
pkgsMusl.haskell.compiler = packagePlatforms pkgs.pkgsMusl.haskell.compiler // {
# remove musl ghc865Binary since it is known to be broken and
# causes an evaluation error on darwin.
# TODO: remove ghc865Binary altogether and use ghc8102Binary
ghc865Binary = {};
# remove integer-simple because it appears to be broken with
# musl and non-static-linking.
integer-simple = {};
};
# Get some cache going for MUSL-enabled GHC.
pkgsMusl.haskellPackages =
removePlatforms
[
# pkgsMusl is compiled natively with musl. It is not
# cross-compiled (unlike pkgsStatic). We can only
# natively bootstrap GHC with musl on x86_64-linux because
# upstream doesn't provide a musl bindist for aarch64.
"aarch64-linux"
# musl only supports linux, not darwin.
"x86_64-darwin"
]
{
inherit (packagePlatforms pkgs.pkgsMusl.haskellPackages)
hello
lens
random
;
};
# Test some statically linked packages to catch regressions
# and get some cache going for static compilation with GHC.
# Use integer-simple to avoid GMP linking problems (LGPL)
pkgsStatic.haskell.packages.integer-simple.ghc8104 =
removePlatforms
[
"aarch64-linux" # times out on Hydra
"x86_64-darwin" # TODO: reenable when static libiconv works on darwin
]
{
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.integer-simple.ghc8104)
hello
lens
random
;
};
})
(versionedCompilerJobs {
# Packages which should be checked on more than the
@ -291,25 +367,7 @@ let
(name: jobs.haskellPackages."${name}")
(maintainedPkgNames pkgs.haskellPackages));
};
staticHaskellPackages = pkgs.releaseTools.aggregate {
name = "static-haskell-packages";
meta = {
description = "Static haskell builds using the pkgsStatic infrastructure";
maintainers = [
lib.maintainers.sternenseemann
lib.maintainers.rnhmjoj
];
};
constituents = [
# TODO: reenable darwin builds if static libiconv works
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.hello.x86_64-linux
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.hello.aarch64-linux
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.lens.x86_64-linux
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.lens.aarch64-linux
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.random.x86_64-linux
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.random.aarch64-linux
];
};
muslGHCs = pkgs.releaseTools.aggregate {
name = "haskell-pkgsMusl-ghcs";
meta = {
@ -325,6 +383,22 @@ let
jobs.pkgsMusl.haskell.compiler.ghc901
];
};
staticHaskellPackages = pkgs.releaseTools.aggregate {
name = "static-haskell-packages";
meta = {
description = "Static haskell builds using the pkgsStatic infrastructure";
maintainers = [
lib.maintainers.sternenseemann
lib.maintainers.rnhmjoj
];
};
constituents = accumulateDerivations [
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.hello
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.lens
jobs.pkgsStatic.haskell.packages.integer-simple.ghc8104.random
];
};
}
];