Merge pull request #121627 from NixOS/haskell-updates

This commit is contained in:
maralorn 2021-05-07 23:55:19 +02:00 committed by GitHub
commit 958855d30c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 4672 additions and 4071 deletions

12
.github/CODEOWNERS vendored
View File

@ -79,11 +79,13 @@
/pkgs/development/tools/poetry2nix @adisbladis
# Haskell
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann
/pkgs/development/haskell-modules @cdepillabout @sternenseemann
/pkgs/development/haskell-modules/default.nix @cdepillabout @sternenseemann
/pkgs/development/haskell-modules/generic-builder.nix @cdepillabout @sternenseemann
/pkgs/development/haskell-modules/hoogle.nix @cdepillabout @sternenseemann
/doc/languages-frameworks/haskell.section.md @cdepillabout @sternenseemann @maralorn
/maintainers/scripts/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/development/compilers/ghc @cdepillabout @sternenseemann @maralorn
/pkgs/development/haskell-modules @cdepillabout @sternenseemann @maralorn
/pkgs/test/haskell @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/release-haskell.nix @cdepillabout @sternenseemann @maralorn
/pkgs/top-level/haskell-packages.nix @cdepillabout @sternenseemann @maralorn
# Perl
/pkgs/development/interpreters/perl @volth @stigtsp

3
.github/labeler.yml vendored
View File

@ -50,10 +50,13 @@
"6.topic: haskell":
- doc/languages-frameworks/haskell.section.md
- maintainers/scripts/haskell/**/*
- pkgs/development/compilers/ghc/**/*
- pkgs/development/haskell-modules/**/*
- pkgs/development/tools/haskell/**/*
- pkgs/test/haskell/**/*
- pkgs/top-level/haskell-packages.nix
- pkgs/top-level/release-haskell.nix
"6.topic: kernel":
- pkgs/build-support/kernel/**/*

View File

@ -0,0 +1,37 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix -I nixpkgs=.
# This script is used to regenerate nixpkgs' Haskell package set, using a tool
# called hackage2nix. hackage2nix looks at the config files in
# pkgs/development/haskell-modules/configuration-hackage2nix and generates
# a Nix expression for package version specified there, using the Cabal files
# from the Hackage database (available under all-cabal-hashes) and its
# companion tool cabal2nix.
#
# Related scripts are update-hackage.sh, for updating the snapshot of the
# Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
# for updating the version of hackage2nix used to perform this task.
set -euo pipefail
extraction_derivation='with import ./. {}; runCommand "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"'
unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"
config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
hackage2nix \
--hackage "$unpacked_hackage" \
--preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \
--nixpkgs "$PWD" \
--config "$config_dir/main.yaml" \
--config "$config_dir/stackage.yaml" \
--config "$config_dir/broken.yaml" \
--config "$config_dir/transitive-broken.yaml"
if [[ "${1:-}" == "--do-commit" ]]; then
git add pkgs/development/haskell-modules/hackage-packages.nix
git commit -F - << EOF
hackage-packages.nix: Regenerate based on current config
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
EOF
fi

View File

@ -0,0 +1,3 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils nix gnused -I nixpkgs=.
echo -e $(nix-instantiate --eval --strict maintainers/scripts/haskell/transitive-broken-packages.nix) | sed 's/\"//' > pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml

View File

@ -0,0 +1,21 @@
let
nixpkgs = import ../../..;
inherit (nixpkgs {}) pkgs lib;
getEvaluating = x:
builtins.attrNames (
lib.filterAttrs (
_: v: (builtins.tryEval (v.outPath or null)).success && lib.isDerivation v && !v.meta.broken
) x
);
brokenDeps = lib.subtractLists
(getEvaluating pkgs.haskellPackages)
(getEvaluating (nixpkgs { config.allowBroken = true; }).haskellPackages);
in
''
# This file is automatically generated by
# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
# It is supposed to list all haskellPackages that cannot evaluate because they
# depend on a dependency marked as broken.
dont-distribute-packages:
${lib.concatMapStringsSep "\n" (x: " - ${x}") brokenDeps}
''

View File

@ -0,0 +1,17 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils curl jq gnused haskellPackages.cabal2nix-unstable -I nixpkgs=.
# Updates cabal2nix-unstable to the latest master of the nixos/cabal2nix repository.
# See regenerate-hackage-packages.sh for details on the purpose of this script.
set -euo pipefail
# fetch current master HEAD from Github
head_info="$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/NixOS/cabal2nix/branches/master)"
# extract commit hash
commit="$(jq -r .commit.sha <<< "$head_info")"
# extract commit timestamp and convert to date
date="$(date "--date=$(jq -r .commit.commit.committer.date <<< "$head_info")" +%F)"
# generate nix expression from cabal file, replacing the version with the commit date
echo '# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.' > pkgs/development/haskell-modules/cabal2nix-unstable.nix
cabal2nix "https://github.com/NixOS/cabal2nix/archive/$commit.tar.gz" | sed -e 's/version = ".*"/version = "'"unstable-$date"'"/' >> pkgs/development/haskell-modules/cabal2nix-unstable.nix

View File

@ -0,0 +1,35 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl jq nix-prefetch-github git gnused -I nixpkgs=.
# See regenerate-hackage-packages.sh for details on the purpose of this script.
set -euo pipefail
pin_file=pkgs/data/misc/hackage/pin.json
current_commit="$(jq -r .commit $pin_file)"
old_date="$(jq -r .msg $pin_file | sed 's/Update from Hackage at //')"
git_info="$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/commercialhaskell/all-cabal-hashes/branches/hackage)"
head_commit="$(echo "$git_info" | jq -r .commit.sha)"
commit_msg="$(echo "$git_info" | jq -r .commit.commit.message)"
new_date="$(echo "$commit_msg" | sed 's/Update from Hackage at //')"
if [ "$current_commit" != "$head_commit" ]; then
url="https://github.com/commercialhaskell/all-cabal-hashes/archive/$head_commit.tar.gz"
hash="$(nix-prefetch-url "$url")"
jq -n \
--arg commit "$head_commit" \
--arg hash "$hash" \
--arg url "$url" \
--arg commit_msg "$commit_msg" \
'{commit: $commit, url: $url, sha256: $hash, msg: $commit_msg}' \
> $pin_file
fi
if [[ "${1:-}" == "--do-commit" ]]; then
git add pkgs/data/misc/hackage/pin.json
git commit -F - << EOF
all-cabal-hashes: $old_date -> $new_date
This commit has been generated by maintainers/scripts/haskell/update-hackage.sh
EOF
fi

View File

@ -0,0 +1,68 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p nix curl jq nix-prefetch-github git gnused gnugrep -I nixpkgs=.
set -eu -o pipefail
tmpfile=$(mktemp "update-stackage.XXXXXXX")
# shellcheck disable=SC2064
stackage_config="pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml"
trap "rm ${tmpfile} ${tmpfile}.new" 0
touch "$tmpfile" "$tmpfile.new" # Creating files here so that trap creates no errors.
curl -L -s "https://stackage.org/nightly/cabal.config" >"$tmpfile"
old_version=$(grep "# Stackage Nightly" $stackage_config | sed -E 's/.*([0-9]{4}-[0-9]{2}-[0-9]{2}).*/\1/')
version=$(sed -rn "s/^--.*http:..(www.)?stackage.org.snapshot.nightly-//p" "$tmpfile")
if [[ "$old_version" == "$version" ]]; then
echo "No new stackage version"
exit 0 # Nothing to do
fi
# Create a simple yaml version of the file.
sed -r \
-e '/^--/d' \
-e 's|^constraints:||' \
-e 's|^ +| - |' \
-e 's|,$||' \
-e '/installed$/d' \
-e '/^$/d' \
< "${tmpfile}" | sort --ignore-case >"${tmpfile}.new"
cat > $stackage_config << EOF
# Stackage Nightly $version
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
EOF
# Drop restrictions on some tools where we always want the latest version.
sed -r \
-e '/ cabal-install /d' \
-e '/ cabal2nix /d' \
-e '/ cabal2spec /d' \
-e '/ distribution-nixpkgs /d' \
-e '/ git-annex /d' \
-e '/ hindent /d' \
-e '/ hledger/d' \
-e '/ hlint /d' \
-e '/ hoogle /d' \
-e '/ hopenssl /d' \
-e '/ jailbreak-cabal /d' \
-e '/ json-autotype/d' \
-e '/ language-nix /d' \
-e '/ shake /d' \
-e '/ ShellCheck /d' \
-e '/ stack /d' \
-e '/ weeder /d' \
< "${tmpfile}.new" >> $stackage_config
if [[ "${1:-}" == "--do-commit" ]]; then
git add $config_file
git commit -F - << EOF
Stackage Nightly: $old_version -> $version
This commit has been generated by maintainers/scripts/haskell/update-stackage.sh
EOF
fi

View File

@ -96,6 +96,15 @@ with lib.maintainers; {
scope = "Maintain GNOME desktop environment and platform.";
};
haskell = {
members = [
maralorn
cdepillabout
sternenseemann
];
scope = "Maintain Haskell packages and infrastructure.";
};
home-assistant = {
members = [
fab

View File

@ -1,12 +1,8 @@
{ mkDerivation, callPackage, buildPackages
{ mkDerivation
, async, base, bytestring, containers, fetchFromGitLab, mtl
, parallel-io, parsec, lib, stm, transformers
, parallel-io, parsec, lib, stm, transformers, sbv_7_13, z3
}:
let
z3 = callPackage ./z3.nix { gomp = null; z3 = buildPackages.z3; };
in let
sbv = callPackage ./sbv-7.13.nix { inherit z3; };
in
mkDerivation rec {
pname = "petrinizer";
version = "0.9.1.1";
@ -22,10 +18,11 @@ mkDerivation rec {
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [
async base bytestring containers mtl parallel-io parsec sbv stm
async base bytestring containers mtl parallel-io parsec sbv_7_13 stm
transformers
];
description = "Safety and Liveness Analysis of Petri Nets with SMT solvers";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ raskin ];
inherit (sbv_7_13.meta) platforms;
}

View File

@ -1,26 +0,0 @@
{ mkDerivation, array, async, base, bytestring, containers
, crackNum, deepseq, directory, doctest, filepath, generic-deriving
, ghc, Glob, hlint, mtl, pretty, process, QuickCheck, random
, lib, syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
, template-haskell, time, z3
}:
mkDerivation {
pname = "sbv";
version = "7.13";
sha256 = "0bk400swnb4s98c5p71ml1px6jndaiqhf5dj7zmnliyplqcgpfik";
enableSeparateDataOutput = true;
libraryHaskellDepends = [
array async base containers crackNum deepseq directory filepath
generic-deriving ghc mtl pretty process QuickCheck random syb
template-haskell time
];
testHaskellDepends = [
base bytestring containers crackNum directory doctest filepath Glob
hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
tasty-quickcheck template-haskell
];
testSystemDepends = [ z3 ];
homepage = "http://leventerkok.github.com/sbv/";
description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
license = lib.licenses.bsd3;
}

View File

@ -1,24 +0,0 @@
{ mkDerivation, fetchpatch
, base, containers, gomp, hspec, QuickCheck, lib
, transformers, z3
}:
mkDerivation {
pname = "z3";
version = "408.0";
sha256 = "13qkzy9wc17rm60i24fa9sx15ywbxq4a80g33w20887gvqyc0q53";
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [ base containers transformers ];
librarySystemDepends = [ gomp z3 ];
testHaskellDepends = [ base hspec QuickCheck ];
homepage = "https://github.com/IagoAbal/haskell-z3";
description = "Bindings for the Z3 Theorem Prover";
license = lib.licenses.bsd3;
doCheck = false;
patches = [
(fetchpatch {
url = "https://github.com/IagoAbal/haskell-z3/commit/b10e09b8a809fb5bbbb1ef86aeb62109ece99cae.patch";
sha256 = "13fnrs27mg3985r3lwks8fxfxr5inrayy2cyx2867d92pnl3yry4";
})
];
}

View File

@ -1,7 +1,9 @@
{ lib, stdenv, ghcWithPackages, makeWrapper, packages ? (x: []) }:
{ lib, stdenv, haskellPackages, makeWrapper, packages ? (x: []) }:
let
taffybarEnv = ghcWithPackages (self: [ self.taffybar ] ++ packages self);
taffybarEnv = haskellPackages.ghc.withPackages (self: [
self.taffybar
] ++ packages self);
in stdenv.mkDerivation {
name = "taffybar-with-packages-${taffybarEnv.version}";
@ -13,8 +15,5 @@ in stdenv.mkDerivation {
--set NIX_GHC "${taffybarEnv}/bin/ghc"
'';
meta = {
platforms = lib.platforms.unix;
license = lib.licenses.bsd3;
};
inherit (haskellPackages.taffybar) meta;
}

View File

@ -1,6 +1,10 @@
# Hackage database snapshot, used by maintainers/scripts/regenerate-hackage-packages.sh
# and callHackage
{ fetchurl }:
let
pin = builtins.fromJSON (builtins.readFile ./pin.json);
in
fetchurl {
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/d202e2aff06500ede787ed63544476f6d41e9eb7.tar.gz";
sha256 = "00hmclrhr3a2h9vshsl909g0zgymlamx491lkhwr5kgb3qx9sfh2";
inherit (pin) url sha256;
passthru.updateScript = ../../../../maintainers/scripts/haskell/update-hackage.sh;
}

View File

@ -0,0 +1,6 @@
{
"commit": "95e79fb1492c7f34c2454dcb783ac8b46c0f5c8c",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/95e79fb1492c7f34c2454dcb783ac8b46c0f5c8c.tar.gz",
"sha256": "1wp7m8j6z2j6h8z14cnzg223jmkcgpsafraxiirbih3h4wqq2nhr",
"msg": "Update from Hackage at 2021-05-03T20:39:01Z"
}

View File

@ -0,0 +1,40 @@
# This file defines cabal2nix-unstable, used by maintainers/scripts/haskell/regenerate-hackage-packages.sh.
{ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, Cabal
, containers, deepseq, directory, distribution-nixpkgs, fetchzip
, filepath, hackage-db, hopenssl, hpack, language-nix, lens, lib
, monad-par, monad-par-extras, mtl, optparse-applicative, pretty
, process, split, tasty, tasty-golden, text, time, transformers
, yaml
}:
mkDerivation {
pname = "cabal2nix";
version = "unstable-2021-05-06";
src = fetchzip {
url = "https://github.com/NixOS/cabal2nix/archive/b598bc4682b0827554b5780acdd6f948d320283b.tar.gz";
sha256 = "04afm56cyhj2l41cvq4z11k92jjchr21a8vg9pjaz438pma7jgw1";
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson ansi-wl-pprint base bytestring Cabal containers deepseq
directory distribution-nixpkgs filepath hackage-db hopenssl hpack
language-nix lens optparse-applicative pretty process split text
time transformers yaml
];
executableHaskellDepends = [
aeson base bytestring Cabal containers directory
distribution-nixpkgs filepath hopenssl language-nix lens monad-par
monad-par-extras mtl optparse-applicative pretty
];
testHaskellDepends = [
base Cabal containers directory filepath language-nix lens pretty
process tasty tasty-golden
];
preCheck = ''
export PATH="$PWD/dist/build/cabal2nix:$PATH"
export HOME="$TMPDIR/home"
'';
homepage = "https://github.com/nixos/cabal2nix#readme";
description = "Convert Cabal files into Nix build instructions";
license = lib.licenses.bsd3;
}

View File

@ -197,7 +197,19 @@ self: super: {
digit = doJailbreak super.digit;
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
hnix = generateOptparseApplicativeCompletion "hnix"
(overrideCabal super.hnix (drv: {
doCheck = false;
prePatch = ''
# fix encoding problems when patching
${pkgs.dos2unix}/bin/dos2unix hnix.cabal
'' + (drv.prePatch or "");
patches = [
# support ref-tf in hnix 0.12.0.1, can be removed after
# https://github.com/haskell-nix/hnix/pull/918
./patches/hnix-ref-tf-0.5-support.patch
] ++ (drv.patches or []);
}));
# Fails for non-obvious reasons while attempting to use doctest.
search = dontCheck super.search;
@ -291,7 +303,6 @@ self: super: {
htsn = dontCheck super.htsn;
htsn-import = dontCheck super.htsn-import;
http-link-header = dontCheck super.http-link-header; # non deterministic failure https://hydra.nixos.org/build/75041105
ihaskell = dontCheck super.ihaskell;
influxdb = dontCheck super.influxdb;
integer-roots = dontCheck super.integer-roots; # requires an old version of smallcheck, will be fixed in > 1.0
itanium-abi = dontCheck super.itanium-abi;
@ -362,7 +373,6 @@ self: super: {
tickle = dontCheck super.tickle;
tpdb = dontCheck super.tpdb;
translatable-intset = dontCheck super.translatable-intset;
trifecta = if pkgs.stdenv.hostPlatform.isAarch64 then dontCheck super.trifecta else super.trifecta; # affected by this bug https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295461
ua-parser = dontCheck super.ua-parser;
unagi-chan = dontCheck super.unagi-chan;
wai-logger = dontCheck super.wai-logger;
@ -854,9 +864,6 @@ self: super: {
snap-templates = doJailbreak super.snap-templates; # https://github.com/snapframework/snap-templates/issues/22
swagger2 = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontHaddock (dontCheck super.swagger2) else super.swagger2;
# hledger-lib requires the latest version of pretty-simple
hledger-lib = super.hledger-lib.override { pretty-simple = self.pretty-simple; };
# Copy hledger man pages from data directory into the proper place. This code
# should be moved into the cabal2nix generator.
hledger = overrideCabal super.hledger (drv: {
@ -1284,16 +1291,34 @@ self: super: {
# https://github.com/kowainik/policeman/issues/57
policeman = doJailbreak super.policeman;
haskell-gi-base = addBuildDepends super.haskell-gi-base [ pkgs.gobject-introspection ];
# nixpkgs has bumped gdkpixbuf C lib, so we need gi-gdkpixbuf_2_0_26 to link against that.
# This leads to all this bumps which can be removed once stackage has haskell-gi 0.25.
haskell-gi = self.haskell-gi_0_25_0;
haskell-gi-base = addBuildDepends super.haskell-gi-base_0_25_0 [ pkgs.gobject-introspection ];
gi-glib = self.gi-glib_2_0_25;
gi-cairo = self.gi-cairo_1_0_25;
gi-gobject = self.gi-gobject_2_0_26;
gi-atk = self.gi-atk_2_0_23;
gi-gio = self.gi-gio_2_0_28;
gi-harfbuzz = self.gi-harfbuzz_0_0_4;
gi-javascriptcore = self.gi-javascriptcore_4_0_23;
gi-pango = self.gi-pango_1_0_24;
gi-soup = self.gi-soup_2_4_24;
gi-gdkpixbuf = self.gi-gdkpixbuf_2_0_26;
gi-gdk = self.gi-gdk_3_0_24;
gi-gtk = self.gi-gtk_3_0_37;
gi-webkit2 = self.gi-webkit2_4_0_27;
gi-cairo-render = doJailbreak super.gi-cairo-render;
gi-cairo-connector = doJailbreak super.gi-cairo-connector;
gi-gtk-hs = self.gi-gtk-hs_0_3_10;
gi-dbusmenu = self.gi-dbusmenu_0_4_9;
gi-xlib = self.gi-xlib_2_0_10;
gi-gdkx11 = self.gi-gdkx11_3_0_11;
gi-dbusmenugtk3 = self.gi-dbusmenugtk3_0_4_10;
# 2020-08-14: Needs some manual patching to be compatible with haskell-gi-base 0.24
# 2021-05-17: Needs some manual patching to be compatible with haskell-gi-base 0.25
# Created upstream PR @ https://github.com/ghcjs/jsaddle/pull/119
jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk (pkgs.fetchpatch {
url = "https://github.com/ghcjs/jsaddle/compare/9727365...f842748.patch";
sha256 = "07l4l999lmlx7sqxf7v4f70rmxhx9r0cjblkgc4n0y6jin4iv1cb";
stripLen = 2;
extraPrefix = "";
});
jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk ./patches/jsaddle-webkit2gtk.patch;
# Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
# https://github.com/lehins/massiv/pull/104
@ -1790,4 +1815,74 @@ self: super: {
excludes = ["test/buildtest"];
});
# workaround for https://github.com/peti/distribution-nixpkgs/issues/9
pam = super.pam.override { inherit (pkgs) pam; };
# Too strict version bounds on base:
# https://github.com/obsidiansystems/database-id/issues/1
database-id-class = doJailbreak super.database-id-class;
cabal2nix-unstable = overrideCabal super.cabal2nix-unstable {
passthru.updateScript = ../../../maintainers/scripts/haskell/update-cabal2nix-unstable.sh;
};
# Too strict version bounds on base and optparse-applicative
# https://github.com/diagrams/diagrams-cairo/issues/77
diagrams-cairo = doJailbreak super.diagrams-cairo;
# Too strict version bounds on base
# https://github.com/gibiansky/IHaskell/issues/1217
ihaskell-display = doJailbreak super.ihaskell-display;
ihaskell-basic = doJailbreak super.ihaskell-basic;
# too strict bounds on QuickCheck
# https://github.com/HeinrichApfelmus/hyper-haskell/issues/42
hyper-extra = doJailbreak super.hyper-extra;
# Fixes too strict version bounds on regex libraries
# Presumably to be removed at the next release
yi-language = appendPatch super.yi-language (pkgs.fetchpatch {
url = "https://github.com/yi-editor/yi/commit/0d3bcb5ba4c237d57ce33a3dc39b63c56d890765.patch";
sha256 = "0r4mzngs0x1akqpajzx7ssa9rax977fvj5ra8d3grfbpx6z0nm01";
includes = [ "yi-language.cabal" ];
stripLen = 2;
extraPrefix = "";
});
# https://github.com/ghcjs/jsaddle/issues/123
jsaddle = overrideCabal super.jsaddle (drv: {
# lift conditional version constraint on ref-tf
postPatch = ''
sed -i 's/ref-tf.*,/ref-tf,/' jsaddle.cabal
'' + (drv.postPatch or "");
});
# Doctests fail on aarch64 due to a GHCi linking bug
# https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
ad = overrideCabal super.ad {
doCheck = !pkgs.stdenv.hostPlatform.isAarch64;
};
trifecta = if pkgs.stdenv.hostPlatform.isAarch64 then dontCheck super.trifecta else super.trifecta;
vinyl = overrideCabal super.vinyl {
doCheck = !pkgs.stdenv.hostPlatform.isAarch64;
};
# Tests need to lookup target triple x86_64-unknown-linux
# https://github.com/llvm-hs/llvm-hs/issues/334
llvm-hs = overrideCabal super.llvm-hs {
doCheck = pkgs.stdenv.targetPlatform.system == "x86_64-linux";
};
# Fix build failure by picking patch from 8.5,
# we need this version of sbv for petrinizer
sbv_7_13 = appendPatch super.sbv_7_13
(pkgs.fetchpatch {
url = "https://github.com/LeventErkok/sbv/commit/57014b9c7c67dd9b63619a996e2c66e32c33c958.patch";
sha256 = "10npa8nh2413n6p6qld795qfkbld08icm02bspmk93y0kabpgmgm";
});
# Too strict bounds on ref-tf
# https://github.com/travitch/haggle/issues/4
haggle = doJailbreak super.haggle;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View File

@ -98,4 +98,10 @@ self: super: {
# The test suite seems pretty broken.
base64-bytestring = dontCheck super.base64-bytestring;
# 5.6 introduced support for GHC 9.0.x, but hasn't landed in stackage yet
profunctors = super.profunctors_5_6_2;
# 5 introduced support for GHC 9.0.x, but hasn't landed in stackage yet
lens = super.lens_5_0_1;
}

View File

@ -0,0 +1,439 @@
# pkgs/development/haskell-modules/configuration-hackage2nix.yaml
compiler: ghc-8.10.4
core-packages:
- array-0.5.4.0
- base-4.14.1.0
- binary-0.8.8.0
- bytestring-0.10.12.0
- Cabal-3.2.1.0
- containers-0.6.2.1
- deepseq-1.4.4.0
- directory-1.3.6.0
- exceptions-0.10.4
- filepath-1.4.2.1
- ghc-8.10.4
- ghc-boot-8.10.4
- ghc-boot-th-8.10.4
- ghc-compact-0.1.0.0
- ghc-heap-8.10.4
- ghc-prim-0.6.1
- ghci-8.10.4
- haskeline-0.8.0.1
- hpc-0.6.1.0
- integer-gmp-1.0.3.0
- libiserv-8.10.4
- mtl-2.2.2
- parsec-3.1.14.0
- pretty-1.1.3.6
- process-1.6.9.0
- rts-1.0
- stm-2.5.0.0
- template-haskell-2.16.0.0
- terminfo-0.4.1.4
- text-1.2.4.1
- time-1.9.3
- transformers-0.5.6.2
- unix-2.7.2.2
- xhtml-3000.2.2.1
# Hack: The following package is a core package of GHCJS. If we don't declare
# it, then hackage2nix will generate a Hackage database where all dependants
# of this library are marked as "broken".
- ghcjs-base-0
# This is a list of packages with versions from the latest Stackage LTS release.
#
# The packages and versions in this list cause the `hackage2nix` tool to
# generate the package at the given version.
#
# For instance, with a line like the following:
#
# - aeson ==1.4.6.0
#
# `hackage2nix` will generate the `aeson` package at version 1.4.6.0 in the
# ./hackage-packages.nix file.
#
# Since the packages in the LTS package set are sometimes older than the latest
# on Hackage, `hackage2nix` is smart enough to also generate the latest version
# of a given package.
#
# In the above example with aeson, if there was version 1.5.0.0 of aeson
# available on Hackage, `hackage2nix` would generate two packages, `aeson`
# at version 1.4.6.0 and `aeson_1_5_0_0` at version 1.5.0.0.
#
# WARNING: This list is generated semiautomatically based on the most recent
# LTS package set. If you want to add entries to it, you must do so before the
# comment saying "# LTS Haskell x.y". Any changes after that comment will be
# lost the next time `update-stackage.sh` runs.
default-package-overrides:
# This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
- MissingH ==1.4.2.0
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
# not yet available in Nixpkgs
- gi-gdkx11 < 4
# Needs Cabal 3.4 for Setup.hs
- gi-javascriptcore < 4.0.23 #
- gi-soup < 2.4.24 #
- gi-webkit2 < 4.0.27 #
# To stay hls 1.0 compatible
- ghcide < 1.1
- hls-retrie-plugin < 1.0.0.1
- lsp < 1.2
- lsp-types < 1.2
- hls-plugin-api < 1.1.0.0
- hls-explicit-imports-plugin < 1.0.0.1
extra-packages:
- base16-bytestring < 1 # required for cabal-install etc.
- Cabal == 2.2.* # required for jailbreak-cabal etc.
- Cabal == 2.4.* # required for cabal-install etc.
- Cabal == 3.2.* # required for cabal-install etc.
- dependent-map == 0.2.4.0 # required by Hasura 1.3.1, 2020-08-20
- dependent-sum == 0.4 # required by Hasura 1.3.1, 2020-08-20
- dhall == 1.29.0 # required for ats-pkg
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
- ghc-tcplugins-extra ==0.3.2 # required for polysemy-plugin 0.2.5.0
- haddock == 2.23.* # required on GHC < 8.10.x
- haddock-api == 2.23.* # required on GHC < 8.10.x
- haddock-library ==1.7.* # required by stylish-cabal-0.5.0.0
- happy == 1.19.9 # for purescript
- hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
- hlint < 3.3 # We dont have ghc-lib-parser 9.0.X yet.
- immortal == 0.2.2.1 # required by Hasura 1.3.1, 2020-08-20
- lsp-test < 0.14 # needed for hls 1.0.0
- mmorph == 1.1.3 # Newest working version of mmorph on ghc 8.6.5. needed for hls
- network == 2.6.3.1 # required by pkgs/games/hedgewars/default.nix, 2020-11-15
- optparse-applicative < 0.16 # needed for niv-0.2.19
- refinery == 0.3.* # required by hls-tactics-plugin-1.0.0.0
- resolv == 0.1.1.2 # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x
- sbv == 7.13 # required for pkgs.petrinizer
- gi-gdk == 3.0.24 # 2021-05-07: For haskell-gi 0.25 without gtk4
- gi-gtk < 4.0 # 2021-05-07: For haskell-gi 0.25 without gtk4
- gi-gdkx11 == 3.0.11 # 2021-05-07: For haskell-gi 0.25 without gtk4
package-maintainers:
peti:
- cabal-install
- cabal2nix
- cabal2spec
- distribution-nixpkgs
- funcmp
- git-annex
- hackage-db
- hledger
- hledger-interest
- hledger-ui
- hledger-web
- hopenssl
- hsdns
- hsemail
- hsyslog
- jailbreak-cabal
- language-nix
- logging-facade-syslog
- nix-paths
- pandoc
- structured-haskell-mode
- titlecase
- xmonad
- xmonad-contrib
gridaphobe:
- located-base
jb55:
# - bson-lens
- cased
- elm-export-persistent
# - pipes-mongodb
- streaming-wai
kiwi:
- config-schema
- config-value
- glirc
- irc-core
- matterhorn
- mattermost-api
- mattermost-api-qc
- Unique
psibi:
- path-pieces
- persistent
- persistent-sqlite
- persistent-template
- shakespeare
abbradar:
- Agda
roberth:
- arion-compose
- hercules-ci-agent
- hercules-ci-api
- hercules-ci-api-agent
- hercules-ci-api-core
- hercules-ci-cli
- hercules-ci-cnix-expr
- hercules-ci-cnix-store
cdepillabout:
- pretty-simple
- spago
terlar:
- nix-diff
maralorn:
- reflex-dom
- cabal-fmt
- shh
- neuron
- releaser
- taskwarrior
- haskell-language-server
- shake-bench
- iCalendar
- stm-containers
sorki:
- cayenne-lpp
- data-stm32
- gcodehs
- nix-derivation
- nix-narinfo
- ttn
- ttn-client
- update-nix-fetchgit
- zre
utdemir:
- nix-tree
turion:
- rhine
- rhine-gloss
- essence-of-live-coding
- essence-of-live-coding-gloss
- essence-of-live-coding-pulse
- essence-of-live-coding-quickcheck
- Agda
- dunai
- finite-typelits
- pulse-simple
- simple-affine-space
sternenseemann:
# also maintain upstream package
- spacecookie
- gopher-proxy
# other packages I can help out for
- systemd
- fast-logger
- flat
- Euterpea2
- utc
- socket
- gitit
- yarn-lock
- yarn2nix
poscat:
- hinit
bdesham:
- pinboard-notes-backup
unsupported-platforms:
alsa-mixer: [ x86_64-darwin ]
alsa-pcm: [ x86_64-darwin ]
alsa-seq: [ x86_64-darwin ]
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
barbly: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
bdcs-api: [ x86_64-darwin ]
bindings-sane: [ x86_64-darwin ]
bindings-directfb: [ x86_64-darwin ]
cut-the-crap: [ x86_64-darwin ]
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
dx9base: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Euterpea: [ x86_64-darwin ]
freenect: [ x86_64-darwin ]
FTGL: [ x86_64-darwin ]
gi-dbusmenugtk3: [ x86_64-darwin ]
gi-dbusmenu: [ x86_64-darwin ]
gi-ggit: [ x86_64-darwin ]
gi-ibus: [ x86_64-darwin ]
gi-ostree: [ x86_64-darwin ]
gi-vte: [ x86_64-darwin ]
gnome-keyring: [ x86_64-darwin ]
gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
gtk-sni-tray: [ x86_64-darwin ]
gtk-sni-tray: [ x86_64-darwin ]
haskell-snake: [ x86_64-darwin ]
hcwiid: [ x86_64-darwin ]
HFuse: [ x86_64-darwin ]
hidapi: [ x86_64-darwin ]
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
HSoM: [ x86_64-darwin ]
iwlib: [ x86_64-darwin ]
libmodbus: [ x86_64-darwin ]
libsystemd-journal: [ x86_64-darwin ]
libsystemd-journal: [ x86_64-darwin ]
libtelnet: [ x86_64-darwin ]
libzfs: [ x86_64-darwin ]
linearEqSolver: [ aarch64-linux ]
lio-fs: [ x86_64-darwin ]
logging-facade-journald: [ x86_64-darwin ]
midi-alsa: [ x86_64-darwin ]
mpi-hs: [ aarch64-linux, x86_64-darwin ]
mpi-hs-binary: [ aarch64-linux, x86_64-darwin ]
mpi-hs-cereal: [ aarch64-linux, x86_64-darwin ]
mpi-hs-store: [ aarch64-linux, x86_64-darwin ]
mplayer-spot: [ aarch64-linux ]
oculus: [ x86_64-darwin ]
pam: [ x86_64-darwin ]
piyo: [ x86_64-darwin ]
PortMidi-simple: [ x86_64-darwin ]
PortMidi: [ x86_64-darwin ]
posix-api: [ x86_64-darwin ]
Raincat: [ x86_64-darwin ]
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
reflex-dom: [ x86_64-darwin ]
rtlsdr: [ x86_64-darwin ]
rubberband: [ x86_64-darwin ]
sbv: [ aarch64-linux ]
sdl2-mixer: [ x86_64-darwin ]
sdl2-ttf: [ x86_64-darwin ]
synthesizer-alsa: [ x86_64-darwin ]
taffybar: [ x86_64-darwin ]
termonad: [ x86_64-darwin ]
tokyotyrant-haskell: [ x86_64-darwin ]
udev: [ x86_64-darwin ]
vrpn: [ x86_64-darwin ]
vulkan: [ i686-linux, armv7l-linux, x86_64-darwin ]
VulkanMemoryAllocator: [ i686-linux, armv7l-linux ]
VulkanMemoryAllocator: [ x86_64-darwin ]
vulkan-utils: [ x86_64-darwin ]
webkit2gtk3-javascriptcore: [ x86_64-darwin ]
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
xattr: [ x86_64-darwin ]
xgboost-haskell: [ aarch64-linux, armv7l-linux ]
XInput: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
xmobar: [ x86_64-darwin ]
xmonad-extras: [ x86_64-darwin ]
xmonad-volume: [ x86_64-darwin ]
dont-distribute-packages:
# Depends on shine, which is a ghcjs project.
- shine-varying
# these packages depend on software with an unfree license
- accelerate-bignum
- accelerate-blas
- accelerate-cublas
- accelerate-cuda
- accelerate-cufft
- accelerate-examples
- accelerate-fft
- accelerate-fourier-benchmark
- accelerate-io-array
- accelerate-io-bmp
- accelerate-io-bytestring
- accelerate-io-cereal
- accelerate-io-JuicyPixels
- accelerate-io-repa
- accelerate-io-vector
- accelerate-kullback-liebler
- accelerate-llvm-ptx
- bindings-yices
- boolector
- ccelerate-cuda
- containers-accelerate
- cplex-hs
- cublas
- cuda # 2020-08-18 because of dependency nvidia-x11
- cufft
- cusolver
- cusparse
- gloss-raster-accelerate
- hashable-accelerate
- libnvvm
- matlab
- nvvm
- Obsidian
- odpic-raw
- patch-image
# license for input data unclear, dependency not on Hackage
# see https://github.com/NixOS/nixpkgs/pull/88604
- tensorflow-mnist
- yices-easy
- yices-painless
# these packages don't evaluate because they have broken (system) dependencies
- XML
- comark
- couch-simple
- diagrams-hsqml
- diagrams-reflex
- dialog
- fltkhs-demos
- fltkhs-fluid-demos
- fltkhs-hello-world
- fltkhs-themes
- ghcjs-dom-hello
- ghcjs-dom-webkit
- gi-javascriptcore
- gi-webkit
- gi-webkit2
- gi-webkit2webextension
- gsmenu
- haste-gapi
- haste-perch
- hbro
- hplayground
- hs-mesos
- hsqml
- hsqml-datamodel
- hsqml-datamodel-vinyl
- hsqml-datemodel-vinyl
- hsqml-demo-manic
- hsqml-demo-morris
- hsqml-demo-notes
- hsqml-demo-notes
- hsqml-demo-samples
- hsqml-morris
- hsqml-morris
- hstorchat
- imprevu-happstack
- jsaddle-webkit2gtk
- jsaddle-webkitgtk
- jsc
- lambdacat
- leksah
- manatee-all
- manatee-browser
- manatee-reader
- markup-preview
- nomyx-api
- nomyx-core
- nomyx-language
- nomyx-library
- nomyx-server
- passman-cli
- passman-core
- reflex-dom-colonnade
- reflex-dom-contrib
- reflex-dom-fragment-shader-canvas
- reflex-dom-helpers
- reflex-jsx
- sneathlane-haste
- spike
- tianbar
- trasa-reflex
- treersec
- wai-middleware-brotli
- web-browser-in-haskell
- webkit
- webkitgtk3
- webkitgtk3-javascriptcore
- websnap

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,121 @@
# This file is automatically generated by
# maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh
# It is supposed to list all haskellPackages that cannot evaluate because they
# depend on a dependency marked as broken.
dont-distribute-packages:
- AesonBson
- HGamer3D-API
- HGamer3D-CAudio-Binding
- HGamer3D-OIS-Binding
- HipmunkPlayground
- Holumbus-Distribution
- Holumbus-MapReduce
- Holumbus-Storage
- KiCS
- KiCS-debugger
- KiCS-prophecy
- RESTng
- ViennaRNA-bindings
- XML
- acme-safe
- aeson-bson
- approx-rand-test
- barley
- bson-mapping
- clash-prelude-quickcheck
- click-clack
- cloudyfs
- cognimeta-utils
- comark
- comonad-random
- containers-accelerate
- definitive-graphics
- ecdsa
- effective-aspects-mzv
- eliminators_0_8
- fltkhs-demos
- fltkhs-fluid-demos
- fltkhs-hello-world
- fltkhs-themes
- fluent-logger-conduit
- gi-gtk_4_0_4
- goat
- gridfs
- gsmenu
- gtk2hs-cast-glade
- gtk2hs-cast-gnomevfs
- gtk2hs-cast-gtkglext
- gtk2hs-cast-gtksourceview2
- hakyll-contrib-i18n
- hascat
- hascat-lib
- hascat-setup
- hascat-system
- haste-gapi
- haste-perch
- hatexmpp3
- hplayground
- hs2dot
- hsqml-datamodel-vinyl
- hsqml-demo-morris
- hsqml-morris
- hubris
- hxt-binary
- hxt-filter
- imprevu-happstack
- javaclass
- keera-posture
- lambdabot-xmpp
- leksah
- liquidhaskell-cabal-demo
- mp3decoder
- network-pgi
- nomyx-api
- nomyx-core
- nomyx-language
- nomyx-library
- nomyx-server
- one-liner_2_0
- openpgp-crypto-api
- patch-image
- perdure
- persistent-mysql_2_12_1_0
- persistent-postgresql_2_12_1_1
- persistent-sqlite_2_12_0_0
- pontarius-mediaserver
- pontarius-xmpp-extras
- pontarius-xpmn
- procrastinating-structure
- reactive
- redHandlers
- reflex-dom-colonnade
- regex-genex
- ribosome
- ribosome-root
- ribosome-test
- ripple
- robot
- roguestar-engine
- roguestar-gl
- roguestar-glut
- route-generator
- sc2hs
- sexpresso
- shine-varying
- singleton-nats_0_4_6
- smtp2mta
- sneathlane-haste
- sock2stream
- starrover2
- text-xml-generic
- trasa-reflex
- treersec
- tuple-hlist
- wai-dispatch
- wai-hastache
- wai-middleware-brotli
- wai-session-tokyocabinet
- wx
- wxc
- wxcore

View File

@ -657,10 +657,6 @@ self: super: builtins.intersectAttrs super {
spago =
let
# spago requires an older version of megaparsec, but it appears to work
# fine with newer versions.
spagoWithOverrides = doJailbreak super.spago;
docsSearchApp_0_0_10 = pkgs.fetchurl {
url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/docs-search-app.js";
sha256 = "0m5ah29x290r0zk19hx2wix2djy7bs4plh9kvjz6bs9r45x25pa5";
@ -681,17 +677,8 @@ self: super: builtins.intersectAttrs super {
sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6";
};
spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
spagoDocs = overrideCabal super.spago (drv: {
postUnpack = (drv.postUnpack or "") + ''
# The source for spago is pulled directly from GitHub. It uses a
# package.yaml file with hpack, not a .cabal file. In the package.yaml file,
# it uses defaults from the master branch of the hspec repo. It will try to
# fetch these at build-time (but it will fail if running in the sandbox).
#
# The following line modifies the package.yaml to not pull in
# defaults from the hspec repo.
substituteInPlace "$sourceRoot/package.yaml" --replace 'defaults: hspec/hspec@master' ""
# Spago includes the following two files directly into the binary
# with Template Haskell. They are fetched at build-time from the
# `purescript-docs-search` repo above. If they cannot be fetched at
@ -717,9 +704,8 @@ self: super: builtins.intersectAttrs super {
'';
});
# Because of the problem above with pulling in hspec defaults to the
# package.yaml file, the tests are disabled.
spagoWithoutChecks = dontCheck spagoFixHpack;
# Tests require network access.
spagoWithoutChecks = dontCheck spagoDocs;
in
spagoWithoutChecks;
@ -826,4 +812,59 @@ self: super: builtins.intersectAttrs super {
# Tests access internet
prune-juice = dontCheck super.prune-juice;
# based on https://github.com/gibiansky/IHaskell/blob/aafeabef786154d81ab7d9d1882bbcd06fc8c6c4/release.nix
ihaskell = overrideCabal super.ihaskell (drv: {
configureFlags = (drv.configureFlags or []) ++ [
# ihaskell's cabal file forces building a shared executable,
# but without passing --enable-executable-dynamic, the RPATH
# contains /build/ and leads to a build failure with nix
"--enable-executable-dynamic"
];
preCheck = ''
export HOME=$TMPDIR/home
export PATH=$PWD/dist/build/ihaskell:$PATH
export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
'';
});
# tests need to execute the built executable
stutter = overrideCabal super.stutter (drv: {
preCheck = ''
export PATH=dist/build/stutter:$PATH
'' + (drv.preCheck or "");
});
# Install man page and generate shell completions
pinboard-notes-backup = overrideCabal
(generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup)
(drv: {
postInstall = ''
install -D man/pnbackup.1 $out/share/man/man1/pnbackup.1
'' + (drv.postInstall or "");
});
FractalArt = overrideCabal super.FractalArt (drv: {
librarySystemDepends = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
pkgs.darwin.libobjc
pkgs.darwin.apple_sdk.frameworks.AppKit
] ++ (drv.librarySystemDepends or []);
});
arbtt = overrideCabal super.arbtt (drv: {
librarySystemDepends = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
pkgs.darwin.apple_sdk.frameworks.Foundation
pkgs.darwin.apple_sdk.frameworks.Carbon
pkgs.darwin.apple_sdk.frameworks.IOKit
] ++ (drv.librarySystemDepends or []);
});
# set more accurate set of platforms instead of maintaining
# an ever growing list of platforms to exclude via unsupported-platforms
cpuid = overrideCabal super.cpuid {
platforms = pkgs.lib.platforms.x86;
};
# Pass the correct libarchive into the package.
streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
}

View File

@ -464,7 +464,12 @@ stdenv.mkDerivation ({
installPhase = ''
runHook preInstall
${if !isLibrary then "${setupCommand} install" else ''
${if !isLibrary && buildTarget == "" then "${setupCommand} install"
# ^^ if the project is not a library, and no build target is specified, we can just use "install".
else if !isLibrary then "${setupCommand} copy ${buildTarget}"
# ^^ if the project is not a library, and we have a build target, then use "copy" to install
# just the target specified; "install" will error here, since not all targets have been built.
else ''
${setupCommand} copy
local packageConfDir="$out/lib/${ghc.name}/package.conf.d"
local packageConfFile="$packageConfDir/${pname}-${version}.conf"

File diff suppressed because it is too large Load Diff

View File

@ -196,6 +196,16 @@ rec {
appendPatch = drv: x: appendPatches drv [x];
appendPatches = drv: xs: overrideCabal drv (drv: { patches = (drv.patches or []) ++ xs; });
/* Set a specific build target instead of compiling all targets in the package.
* For example, imagine we have a .cabal file with a library, and 2 executables "dev" and "server".
* We can build only "server" and not wait on the compilation of "dev" by using setBuildTarget as follows:
*
* setBuildTarget (callCabal2nix "thePackageName" thePackageSrc {}) "server"
*
*/
setBuildTargets = drv: xs: overrideCabal drv (drv: { buildTarget = lib.concatStringsSep " " xs; });
setBuildTarget = drv: x: setBuildTargets drv [x];
doHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = true; });
dontHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = false; });

View File

@ -11,6 +11,10 @@ self: super: {
ldgallery-compiler = self.callPackage ../../tools/graphics/ldgallery/compiler { };
# Used by maintainers/scripts/regenerate-hackage-packages.sh, and generated
# from the latest master instead of the current version on Hackage.
cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { };
# https://github.com/channable/vaultenv/issues/1
vaultenv = self.callPackage ../tools/haskell/vaultenv { };

View File

@ -0,0 +1,34 @@
diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/hnix.cabal hnix-patched/hnix.cabal
--- hnix-0.12.0.1/hnix.cabal 2001-09-09 03:46:40.000000000 +0200
+++ hnix-patched/hnix.cabal 2021-05-05 12:07:38.388267353 +0200
@@ -430,7 +430,7 @@
, parser-combinators >= 1.0.1 && < 1.3
, prettyprinter >= 1.7.0 && < 1.8
, process >= 1.6.3 && < 1.7
- , ref-tf >= 0.4.0 && < 0.5
+ , ref-tf >= 0.5
, regex-tdfa >= 1.2.3 && < 1.4
, scientific >= 0.3.6 && < 0.4
, semialign >= 1 && < 1.2
diff '--color=auto' '--color=never' -r --unified hnix-0.12.0.1/src/Nix/Fresh.hs hnix-patched/src/Nix/Fresh.hs
--- hnix-0.12.0.1/src/Nix/Fresh.hs 2001-09-09 03:46:40.000000000 +0200
+++ hnix-patched/src/Nix/Fresh.hs 2021-05-05 12:07:45.841267497 +0200
@@ -65,18 +65,3 @@
runFreshIdT :: Functor m => Var m i -> FreshIdT i m a -> m a
runFreshIdT i m = runReaderT (unFreshIdT m) i
-
--- Orphan instance needed by Infer.hs and Lint.hs
-
--- Since there's no forking, it's automatically atomic.
-instance MonadAtomicRef (ST s) where
- atomicModifyRef r f = do
- v <- readRef r
- let (a, b) = f v
- writeRef r a
- return b
- atomicModifyRef' r f = do
- v <- readRef r
- let (a, b) = f v
- writeRef r $! a
- return b

View File

@ -0,0 +1,65 @@
From 09f44aa3271390c14f92a3f196ab2ba475b4907f Mon Sep 17 00:00:00 2001
From: Malte Brandy <malte.brandy@maralorn.de>
Date: Fri, 14 Aug 2020 17:52:28 +0200
Subject: [PATCH 1/2] jsaddle-webkit2gtk: Bump haskell-gi-base upper bound
---
jsaddle-webkit2gtk/jsaddle-webkit2gtk.cabal | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jsaddle-webkit2gtk/jsaddle-webkit2gtk.cabal b/jsaddle-webkit2gtk/jsaddle-webkit2gtk.cabal
index 93d0b77..60c2312 100644
--- a/jsaddle-webkit2gtk.cabal
+++ b/jsaddle-webkit2gtk.cabal
@@ -35,7 +35,7 @@ library
gi-gtk >=3.0.17 && <3.1,
gi-webkit2 >=4.0.14 && <4.1,
gi-javascriptcore >=4.0.14 && <4.1,
- haskell-gi-base >=0.20 && <0.24,
+ haskell-gi-base >=0.20 && <0.26,
haskell-gi-overloading >=0.0 && < 2.0,
jsaddle >=0.9.4.0 && <0.10,
text >=1.2.1.3 && <1.3,
From f8427480ca827b2bee1d9b33dfa6118e14fe2924 Mon Sep 17 00:00:00 2001
From: Malte Brandy <malte.brandy@maralorn.de>
Date: Fri, 14 Aug 2020 18:10:26 +0200
Subject: [PATCH 2/2] Locally define noAdjustment and noCancellable
Those two convenience definitions disappeared from gi-gio and gi-gtk in
newer versions.
---
.../src/Language/Javascript/JSaddle/WebKitGTK.hs | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/jsaddle-webkit2gtk/src/Language/Javascript/JSaddle/WebKitGTK.hs b/jsaddle-webkit2gtk/src/Language/Javascript/JSaddle/WebKitGTK.hs
index 898dac2..5249477 100644
--- a/src/Language/Javascript/JSaddle/WebKitGTK.hs
+++ b/src/Language/Javascript/JSaddle/WebKitGTK.hs
@@ -55,11 +55,11 @@ import GI.GLib (timeoutAdd, idleAdd, pattern PRIORITY_HIGH, pattern PRIORITY_DEF
import qualified GI.Gtk as Gtk (main, init)
import GI.Gtk
(windowSetPosition, windowSetDefaultSize, windowNew,
- scrolledWindowNew, noAdjustment, containerAdd,
+ scrolledWindowNew, Adjustment, containerAdd,
WindowType(..), WindowPosition(..), widgetDestroy,
widgetGetToplevel, widgetShowAll, onWidgetDestroy,
mainQuit)
-import GI.Gio (noCancellable)
+import GI.Gio (Cancellable)
import GI.JavaScriptCore (valueToString)
import GI.WebKit2
(scriptDialogPromptSetText, scriptDialogPromptGetDefaultText,
@@ -82,6 +82,12 @@ import Language.Javascript.JSaddle (JSM, Results, Batch)
import Language.Javascript.JSaddle.Run (runJavaScript)
import Language.Javascript.JSaddle.Run.Files (initState, runBatch, ghcjsHelpers)
+noAdjustment :: Maybe Adjustment
+noAdjustment = Nothing
+
+noCancellable :: Maybe Cancellable
+noCancellable = Nothing
+
quitWebView :: WebView -> IO ()
quitWebView wv = postGUIAsync $ do w <- widgetGetToplevel wv --TODO: Shouldn't this be postGUISync?
widgetDestroy w

View File

@ -1,5 +1,5 @@
{ lib, stdenv, ghc, llvmPackages, packages, symlinkJoin, makeWrapper
, withLLVM ? false
, withLLVM ? !(stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isPowerPC)
, postBuild ? ""
, ghcLibdir ? null # only used by ghcjs, when resolving plugins
}:

View File

@ -1,35 +1,37 @@
{ lib, stdenv, fetchFromGitHub, jshon, electron_3
{ lib, stdenvNoCC, fetchFromGitHub, jshon, electron_10
, runtimeShell, hyper-haskell-server, extra-packages ? [] }:
let
binPath = lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
electron = electron_3;
in stdenv.mkDerivation rec {
electron = electron_10;
in stdenvNoCC.mkDerivation rec {
pname = "hyper-haskell";
version = "0.1.0.2";
version = "0.2.3.0";
src = fetchFromGitHub {
owner = "HeinrichApfelmus";
repo = "hyper-haskell";
rev = "v${version}";
sha256 = "1k38h7qx12z7463z8466pji0nwfkp4qkg7q83kns2mzmwmw5jnmb";
sha256 = "1nmkry4wh6a2dy98fcs81mq2p7zhxp1k0f4m3szr6fm3j1zwrd43";
};
propagatedBuildInputs = extra-packages;
buildCommand = ''
dontBuild = true;
installPhase = ''
mkdir -p $out/bin $out/share/hyper-haskell/worksheets $out/share/applications $out/share/icons/hicolor/scalable/apps $out/share/mime/packages
# Electron app
cp -R $src/app $out
cp -R app $out
# Desktop Launcher
cp $src/resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
cp $src/resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
cp $src/resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
cp resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
cp resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
cp resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
# install example worksheets with backend set to nix
for worksheet in "$src/worksheets/"*.hhs; do
for worksheet in "worksheets/"*.hhs; do
${jshon}/bin/jshon -e settings -s nix -i packageTool -p < $worksheet > $out/share/hyper-haskell/worksheets/`basename $worksheet`
done

View File

@ -2,9 +2,8 @@
let
ihaskellEnv = ghcWithPackages (self: [
self.ihaskell
(haskell.lib.doJailbreak self.ihaskell-blaze)
(haskell.lib.doJailbreak self.ihaskell-diagrams)
(haskell.lib.doJailbreak self.ihaskell-display)
self.ihaskell-blaze
self.ihaskell-diagrams
] ++ packages self);
ihaskellSh = writeScriptBin "ihaskell-notebook" ''
#! ${stdenv.shell}

View File

@ -1,37 +1,38 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
, base, bower-json, bytestring, Cabal, containers, cryptonite
, dhall, directory, either, extra, fetchgit, file-embed, filepath
, foldl, fsnotify, generic-lens, Glob, hpack, hspec, hspec-discover
, base, bower-json, bytestring, containers, cryptonite, dhall
, directory, either, extra, fetchgit, file-embed, filepath, foldl
, fsnotify, generic-lens, Glob, hspec, hspec-discover
, hspec-megaparsec, http-client, http-conduit, http-types
, lens-family-core, lib, megaparsec, mtl, network-uri, open-browser
, optparse-applicative, prettyprinter, process, QuickCheck, retry
, rio, rio-orphans, safe, semver-range, stm, stringsearch
, tar, template-haskell, temporary, text, time, transformers
, turtle, unliftio, unordered-containers, utf8-string, versions
, with-utf8, zlib
, rio, rio-orphans, safe, semver-range, stm, stringsearch, tar
, template-haskell, temporary, text, time, transformers, turtle
, unliftio, unordered-containers, utf8-string, versions, with-utf8
, zlib
}:
mkDerivation {
pname = "spago";
version = "0.20.1";
version = "0.20.2";
src = fetchgit {
url = "https://github.com/purescript/spago.git";
sha256 = "1j2yi6zz9m0k0298wllin39h244v8b2rx87yxxgdbjg77kn96vxg";
rev = "41ad739614f4f2c2356ac921308f9475a5a918f4";
sha256 = "11jh3bszvl8zfi4xcabpx43jply28dxdywd6fadxspaa05jdxxn2";
rev = "0f38c9153e46f30e9d87963e181f5c1a595f4b64";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson aeson-pretty ansi-terminal async-pool base bower-json
bytestring Cabal containers cryptonite dhall directory either
file-embed filepath foldl fsnotify generic-lens Glob http-client
http-conduit http-types lens-family-core megaparsec mtl network-uri
open-browser optparse-applicative prettyprinter process retry rio
rio-orphans safe semver-range stm stringsearch tar template-haskell
temporary text time transformers turtle unliftio
unordered-containers utf8-string versions with-utf8 zlib
bytestring containers cryptonite dhall directory either file-embed
filepath foldl fsnotify generic-lens Glob http-client http-conduit
http-types lens-family-core megaparsec mtl network-uri open-browser
optparse-applicative prettyprinter process retry rio rio-orphans
safe semver-range stm stringsearch tar template-haskell temporary
text time transformers turtle unliftio unordered-containers
utf8-string versions with-utf8 zlib
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [
ansi-terminal base text turtle with-utf8
];
@ -40,7 +41,6 @@ mkDerivation {
process QuickCheck temporary text turtle versions
];
testToolDepends = [ hspec-discover ];
prePatch = "hpack";
homepage = "https://github.com/purescript/spago#readme";
license = lib.licenses.bsd3;
}

View File

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq
#!nix-shell -i bash -p cabal2nix curl jq haskellPackages.cabal2nix-unstable -I nixpkgs=.
#
# This script will update the spago derivation to the latest version using
# cabal2nix.
@ -25,7 +25,10 @@ new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/relea
echo "Updating spago from old version $old_version to new version $new_version."
echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" > "$spago_derivation_file"
echo "# This has been automatically generated by the script" > "$spago_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$spago_derivation_file"
cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" >> "$spago_derivation_file"
# TODO: This should ideally also automatically update the docsSearchVersion
# from pkgs/development/haskell/configuration-nix.nix.

View File

@ -102,6 +102,6 @@ mkDerivation rec {
hedgehog or hedgehogs after a player's or CPU turn is shown only when
all movement on the battlefield has ceased).'';
maintainers = with maintainers; [ kragniz fpletz ];
inherit (ghc.meta) platforms;
inherit (fpc.meta) platforms;
};
}

View File

@ -22,8 +22,7 @@ with pkgs;
cc-wrapper-libcxx-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.libcxxStdenv; };
stdenv-inputs = callPackage ./stdenv-inputs { };
haskell-shellFor = callPackage ./haskell-shellFor { };
haskell-documentationTarball = callPackage ./haskell-documentationTarball { };
haskell = callPackage ./haskell { };
cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };

View File

@ -0,0 +1,7 @@
{ lib, callPackage }:
lib.recurseIntoAttrs {
shellFor = callPackage ./shellFor { };
documentationTarball = callPackage ./documentationTarball { };
setBuildTarget = callPackage ./setBuildTarget { };
}

View File

@ -0,0 +1,4 @@
module Main where
main :: IO ()
main = putStrLn "Hello, Bar!"

View File

@ -0,0 +1,4 @@
module Main where
main :: IO ()
main = putStrLn "Hello, Foo!"

View File

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

View File

@ -0,0 +1,38 @@
{ pkgs, haskellPackages }:
let
# This can be regenerated by running `cabal2nix .` in the current directory.
pkgDef =
{ mkDerivation, base, lib }:
mkDerivation {
pname = "haskell-setBuildTarget";
version = "0.1.0.0";
src = ./.;
isLibrary = false;
isExecutable = true;
executableHaskellDepends = [ base ];
license = lib.licenses.bsd3;
};
drv = haskellPackages.callPackage pkgDef {};
test = target: excluded:
let only = pkgs.haskell.lib.setBuildTarget drv target;
in ''
if [[ ! -f "${only}/bin/${target}" ]]; then
echo "${target} was not built"
exit 1
fi
if [[ -f "${only}/bin/${excluded}" ]]; then
echo "${excluded} was built, when it should not have been"
exit 1
fi
'';
in pkgs.runCommand "test haskell.lib.setBuildTarget" {} ''
${test "foo" "bar"}
${test "bar" "foo"}
touch "$out"
''

View File

@ -0,0 +1,16 @@
cabal-version: >=1.10
name: haskell-setBuildTarget
version: 0.1.0.0
author: Isaac Shapira
maintainer: fresheyeball@protonmail.com
build-type: Simple
executable foo
main-is: Foo.hs
build-depends: base
default-language: Haskell2010
executable bar
main-is: Bar.hs
build-depends: base
default-language: Haskell2010

View File

@ -1,22 +1,22 @@
{ lib, haskellPackages, cabal-install }:
{ lib, writeText, haskellPackages, cabal-install }:
(haskellPackages.shellFor {
packages = p: [ p.database-id-class p.constraints ];
packages = p: [ p.constraints p.linear ];
nativeBuildInputs = [ cabal-install ];
phases = [ "unpackPhase" "buildPhase" "installPhase" ];
unpackPhase = ''
sourceRoot=$(pwd)/scratch
mkdir -p "$sourceRoot"
cd "$sourceRoot"
tar -xf ${haskellPackages.database-id-class.src}
tar -xf ${haskellPackages.constraints.src}
cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints*"} cabal.project
tar -xf ${haskellPackages.linear.src}
cp ${writeText "cabal.project" "packages: constraints* linear*"} cabal.project
'';
buildPhase = ''
export HOME=$(mktemp -d)
mkdir -p $HOME/.cabal
touch $HOME/.cabal/config
cabal v2-build --offline --verbose database-id-class constraints --ghc-options="-O0 -j$NIX_BUILD_CORES"
cabal v2-build --offline --verbose constraints linear --ghc-options="-O0 -j$NIX_BUILD_CORES"
'';
installPhase = ''
touch $out

View File

@ -8673,9 +8673,7 @@ in
stunnel = callPackage ../tools/networking/stunnel { };
stutter = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.stutter) (drv: {
preCheck = "export PATH=dist/build/stutter:$PATH";
});
stutter = haskell.lib.justStaticExecutables haskellPackages.stutter;
strongswan = callPackage ../tools/networking/strongswan { };
strongswanTNC = strongswan.override { enableTNC = true; };
@ -23828,14 +23826,7 @@ in
pinboard = with python3Packages; toPythonApplication pinboard;
pinboard-notes-backup = haskell.lib.overrideCabal
(haskell.lib.generateOptparseApplicativeCompletion "pnbackup"
haskellPackages.pinboard-notes-backup)
(drv: {
postInstall = ''
install -D man/pnbackup.1 $out/share/man/man1/pnbackup.1
'' + (drv.postInstall or "");
});
pinboard-notes-backup = haskell.lib.justStaticExecutables haskellPackages.pinboard-notes-backup;
pixelnuke = callPackage ../applications/graphics/pixelnuke { };
@ -26287,9 +26278,7 @@ in
# customConfig = builtins.readFile ./tabbed.config.h;
};
taffybar = callPackage ../applications/window-managers/taffybar {
inherit (haskellPackages) ghcWithPackages;
};
taffybar = callPackage ../applications/window-managers/taffybar {};
tagainijisho = callPackage ../applications/office/tagainijisho {};

View File

@ -0,0 +1,265 @@
/*
To debug this expression you can use `hydra-eval-jobs` from
`pkgs.hydra-unstable` which prints the jobset description
to `stdout`:
$ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix
*/
{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ] }:
let
releaseLib = import ./release-lib.nix {
inherit supportedSystems;
};
inherit (releaseLib)
pkgs
packagePlatforms
mapTestOn
aggregate
;
inherit (pkgs) lib;
# 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.
accumulateDerivations = jobList:
lib.concatMap (
attrs:
if lib.isDerivation attrs
then [ attrs ]
else if lib.isAttrs attrs
then accumulateDerivations (lib.attrValues attrs)
else []
) jobList;
# names of all subsets of `pkgs.haskell.packages`
compilerNames = lib.mapAttrs (name: _: name) pkgs.haskell.packages;
# list of all compilers to test specific packages on
all = with compilerNames; [
ghc884
ghc8104
ghc901
];
# packagePlatforms applied to `haskell.packages.*`
compilerPlatforms = lib.mapAttrs
(_: v: packagePlatforms v)
pkgs.haskell.packages;
# This function lets you specify specific packages
# which are to be tested on a list of specific GHC
# versions and returns a job set for all specified
# combinations. See `jobs` below for an example.
versionedCompilerJobs = config: mapTestOn {
haskell.packages =
(lib.mapAttrs (
ghc: jobs:
lib.filterAttrs (
jobName: platforms:
lib.elem ghc (config."${jobName}" or [])
) jobs
) compilerPlatforms);
};
# hydra jobs for `pkgs` of which we import a subset of
pkgsPlatforms = packagePlatforms pkgs;
# names of packages in an attribute set that are maintained
maintainedPkgNames = set: builtins.attrNames
(lib.filterAttrs (
_: v: builtins.length (v.meta.maintainers or []) > 0
) set);
jobs = mapTestOn {
haskellPackages = packagePlatforms pkgs.haskellPackages;
haskell.compiler = packagePlatforms pkgs.haskell.compiler;
tests = let
testPlatforms = packagePlatforms pkgs.tests;
in {
haskell = testPlatforms.haskell;
writers = testPlatforms.writers;
};
# top-level packages that depend on haskellPackages
inherit (pkgsPlatforms)
agda
arion
bench
bustle
blucontrol
cabal-install
cabal2nix
cachix
carp
cedille
client-ip-echo
darcs
dconf2nix
dhall
dhall-bash
dhall-docs
dhall-lsp-server
dhall-json
dhall-nix
dhall-text
diagrams-builder
elm2nix
fffuu
futhark
ghcid
git-annex
git-brunch
gitit
glirc
hadolint
haskell-ci
haskell-language-server
hasura-graphql-engine
hci
hercules-ci-agent
hinit
hedgewars
hledger
hledger-iadd
hledger-interest
hledger-ui
hledger-web
hlint
hpack
hyper-haskell
hyper-haskell-server-with-packages
icepeak
idris
ihaskell
jl
koka
krank
lambdabot
ldgallery
madlang
matterhorn
mueval
neuron-notes
niv
nix-delegate
nix-deploy
nix-diff
nix-linter
nix-output-monitor
nix-script
nix-tree
nixfmt
nota
ormolu
pandoc
pakcs
petrinizer
place-cursor-at
pinboard-notes-backup
pretty-simple
shake
shellcheck
sourceAndTags
spacecookie
spago
splot
stack
stack2nix
stutter
stylish-haskell
taffybar
tamarin-prover
taskell
termonad-with-packages
tldr-hs
tweet-hs
update-nix-fetchgit
uqm
uuagc
vaultenv
wstunnel
xmobar
xmonad-with-packages
yi
zsh-git-prompt
;
elmPackages.elm = pkgsPlatforms.elmPackages.elm;
} // versionedCompilerJobs {
# Packages which should be checked on more than the
# default GHC version. This list can be used to test
# the state of the package set with newer compilers
# and to confirm that critical packages for the
# package sets (like Cabal, jailbreak-cabal) are
# working as expected.
cabal-install = all;
Cabal_3_4_0_0 = with compilerNames; [ ghc884 ghc8104 ];
funcmp = all;
haskell-language-server = all;
hoogle = all;
hsdns = all;
jailbreak-cabal = all;
language-nix = all;
nix-paths = all;
titlecase = all;
} // {
mergeable = pkgs.releaseTools.aggregate {
name = "haskell-updates-mergeable";
meta = {
description = ''
Critical haskell packages that should work at all times,
serves as minimum requirement for an update merge
'';
maintainers = lib.teams.haskell.members;
};
constituents = accumulateDerivations [
# haskell specific tests
jobs.tests.haskell
jobs.tests.writers # writeHaskell{,Bin}
# important top-level packages
jobs.cabal-install
jobs.cabal2nix
jobs.cachix
jobs.darcs
jobs.haskell-language-server
jobs.hledger
jobs.hledger-ui
jobs.hpack
jobs.niv
jobs.pandoc
jobs.stack
jobs.stylish-haskell
# important haskell (library) packages
jobs.haskellPackages.cabal-plan
jobs.haskellPackages.distribution-nixpkgs
jobs.haskellPackages.hackage-db
jobs.haskellPackages.policeman
jobs.haskellPackages.xmonad
jobs.haskellPackages.xmonad-contrib
# haskell packages maintained by @peti
# imported from the old hydra jobset
jobs.haskellPackages.hopenssl
jobs.haskellPackages.hsemail
jobs.haskellPackages.hsyslog
];
};
maintained = pkgs.releaseTools.aggregate {
name = "maintained-haskell-packages";
meta = {
description = "Aggregate jobset of all haskell packages with a maintainer";
maintainers = lib.teams.haskell.members;
};
constituents = accumulateDerivations
(builtins.map
(name: jobs.haskellPackages."${name}")
(maintainedPkgNames pkgs.haskellPackages));
};
};
in jobs