Merge pull request #122117 from NixOS/haskell-updates

This commit is contained in:
maralorn 2021-05-09 03:17:04 +02:00 committed by GitHub
commit 4ed0cff8eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 1280 additions and 1002 deletions

View File

@ -1,12 +1,12 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils haskellPackages.cabal2nix-unstable git nix -I nixpkgs=. #! 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 # This script is used to regenerate nixpkgs' Haskell package set, using the
# called hackage2nix. hackage2nix looks at the config files in # tool hackage2nix from the nixos/cabal2nix repo. hackage2nix looks at the
# pkgs/development/haskell-modules/configuration-hackage2nix and generates # config files in pkgs/development/haskell-modules/configuration-hackage2nix
# a Nix expression for package version specified there, using the Cabal files # and generates a Nix expression for package version specified there, using the
# from the Hackage database (available under all-cabal-hashes) and its # Cabal files from the Hackage database (available under all-cabal-hashes) and
# companion tool cabal2nix. # its companion tool cabal2nix.
# #
# Related scripts are update-hackage.sh, for updating the snapshot of the # Related scripts are update-hackage.sh, for updating the snapshot of the
# Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh, # Hackage database used by hackage2nix, and update-cabal2nix-unstable.sh,
@ -14,10 +14,15 @@
set -euo pipefail set -euo pipefail
# To prevent hackage2nix fails because of encoding.
# See: https://github.com/NixOS/nixpkgs/pull/122023
export LC_ALL=C.UTF-8
extraction_derivation='with import ./. {}; runCommand "unpacked-cabal-hashes" { } "tar xf ${all-cabal-hashes} --strip-components=1 --one-top-level=$out"' 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)" unpacked_hackage="$(nix-build -E "$extraction_derivation" --no-out-link)"
config_dir=pkgs/development/haskell-modules/configuration-hackage2nix config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
echo "Starting hackage2nix to regenerate pkgs/development/haskell-modules/hackage-packages.nix ..."
hackage2nix \ hackage2nix \
--hackage "$unpacked_hackage" \ --hackage "$unpacked_hackage" \
--preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \ --preferred-versions <(for n in "$unpacked_hackage"/*/preferred-versions; do cat "$n"; echo; done) \
@ -35,3 +40,5 @@ hackage-packages.nix: Regenerate based on current config
This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh This commit has been generated by maintainers/scripts/haskell/regenerate-hackage-packages.sh
EOF EOF
fi fi
echo "Regeneration of hackage-packages.nix finished."

View File

@ -59,7 +59,7 @@ sed -r \
< "${tmpfile}.new" >> $stackage_config < "${tmpfile}.new" >> $stackage_config
if [[ "${1:-}" == "--do-commit" ]]; then if [[ "${1:-}" == "--do-commit" ]]; then
git add $config_file git add $stackage_config
git commit -F - << EOF git commit -F - << EOF
Stackage Nightly: $old_version -> $version Stackage Nightly: $old_version -> $version

View File

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

View File

@ -0,0 +1,71 @@
# ARM-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
#
# This extension is applied to all haskell package sets in nixpkgs
# if `stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64`
# to apply arm specific workarounds or fixes.
#
# The file is split into three parts:
#
# * Overrides that are applied for all arm platforms
# * Overrides for aarch32 platforms
# * Overrides for aarch64 platforms
#
# This may be extended in the future to also include compiler-
# specific sections as compiler and linker related bugs may
# get fixed subsequently.
#
# When adding new overrides, try to research which section they
# belong into. Most likely we'll be favouring aarch64 overrides
# in practice since that is the only platform we can test on
# Hydra. Also take care to group overrides by the issue they
# solve, so refactors and updates to this file are less tedious.
{ pkgs, haskellLib }:
let
inherit (pkgs) lib;
in
with haskellLib;
self: super: {
# COMMON ARM OVERRIDES
# moved here from configuration-common.nix, no reason given.
servant-docs = dontCheck super.servant-docs;
swagger2 = dontHaddock (dontCheck super.swagger2);
# Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
happy = dontCheck super.happy;
} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
# AARCH64-SPECIFIC OVERRIDES
# Doctests fail on aarch64 due to a GHCi linking bug
# https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295437
# TODO: figure out if needed on aarch32 as well
language-nix = dontCheck super.language-nix;
trifecta = dontCheck super.trifecta;
ad = dontCheck super.ad;
vinyl = dontCheck super.vinyl;
BNFC = dontCheck super.BNFC;
C-structs = dontCheck super.C-structs;
accelerate = dontCheck super.accelerate;
focuslist = dontCheck super.focuslist;
flight-kml = dontCheck super.flight-kml;
exact-real = dontCheck super.exact-real;
autoapply = dontCheck super.autoapply;
hint = dontCheck super.hint;
hgeometry = dontCheck super.hgeometry;
headroom = dontCheck super.headroom;
haskell-time-range = dontCheck super.haskell-time-range;
hsakamai = dontCheck super.hsakamai;
hsemail-ns = dontCheck super.hsemail-ns;
openapi3 = dontCheck super.openapi3;
# https://github.com/ekmett/half/issues/35
half = dontCheck super.half;
} // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
# AARCH32-SPECIFIC OVERRIDES
}

View File

@ -75,10 +75,6 @@ self: super: {
# Fix test trying to access /home directory # Fix test trying to access /home directory
shell-conduit = overrideCabal super.shell-conduit (drv: { shell-conduit = overrideCabal super.shell-conduit (drv: {
postPatch = "sed -i s/home/tmp/ test/Spec.hs"; postPatch = "sed -i s/home/tmp/ test/Spec.hs";
# the tests for shell-conduit on Darwin illegitimatey assume non-GNU echo
# see: https://github.com/psibi/shell-conduit/issues/12
doCheck = !pkgs.stdenv.isDarwin;
}); });
# https://github.com/froozen/kademlia/issues/2 # https://github.com/froozen/kademlia/issues/2
@ -117,15 +113,6 @@ self: super: {
# Jailbreak is necessary for QuickCheck dependency. # Jailbreak is necessary for QuickCheck dependency.
vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector); vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
conduit-extra = if pkgs.stdenv.isDarwin
then super.conduit-extra.overrideAttrs (drv: { __darwinAllowLocalNetworking = true; })
else super.conduit-extra;
# Fix Darwin build.
halive = if pkgs.stdenv.isDarwin
then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
else super.halive;
# Test suite fails due golden tests checking text representation # Test suite fails due golden tests checking text representation
# of normalized dhall expressions, and newer dhall versions format # of normalized dhall expressions, and newer dhall versions format
# differently. # differently.
@ -134,19 +121,6 @@ self: super: {
then throw "Drop dontCheck override for hpack-dhall > 0.5.2" then throw "Drop dontCheck override for hpack-dhall > 0.5.2"
else dontCheck super.hpack-dhall; else dontCheck super.hpack-dhall;
barbly = addBuildDepend super.barbly pkgs.darwin.apple_sdk.frameworks.AppKit;
# Hakyll's tests are broken on Darwin (3 failures); and they require util-linux
hakyll = if pkgs.stdenv.isDarwin
then dontCheck (overrideCabal super.hakyll (drv: {
testToolDepends = [];
}))
else super.hakyll;
double-conversion = if !pkgs.stdenv.isDarwin
then super.double-conversion
else addExtraLibrary super.double-conversion pkgs.libcxx;
inline-c-cpp = overrideCabal super.inline-c-cpp (drv: { inline-c-cpp = overrideCabal super.inline-c-cpp (drv: {
postPatch = (drv.postPatch or "") + '' postPatch = (drv.postPatch or "") + ''
substituteInPlace inline-c-cpp.cabal --replace "-optc-std=c++11" "" substituteInPlace inline-c-cpp.cabal --replace "-optc-std=c++11" ""
@ -307,23 +281,16 @@ self: super: {
integer-roots = dontCheck super.integer-roots; # requires an old version of smallcheck, will be fixed in > 1.0 integer-roots = dontCheck super.integer-roots; # requires an old version of smallcheck, will be fixed in > 1.0
itanium-abi = dontCheck super.itanium-abi; itanium-abi = dontCheck super.itanium-abi;
katt = dontCheck super.katt; katt = dontCheck super.katt;
language-nix = if (pkgs.stdenv.hostPlatform.isAarch64 || pkgs.stdenv.hostPlatform.isi686) then dontCheck super.language-nix else super.language-nix; # aarch64: https://ghc.haskell.org/trac/ghc/ticket/15275
language-slice = dontCheck super.language-slice; language-slice = dontCheck super.language-slice;
ldap-client = dontCheck super.ldap-client; ldap-client = dontCheck super.ldap-client;
lensref = dontCheck super.lensref; lensref = dontCheck super.lensref;
lvmrun = disableHardening (dontCheck super.lvmrun) ["format"]; lvmrun = disableHardening (dontCheck super.lvmrun) ["format"];
math-functions = if pkgs.stdenv.isDarwin
then dontCheck super.math-functions # "erf table" test fails on Darwin https://github.com/bos/math-functions/issues/63
else super.math-functions;
matplotlib = dontCheck super.matplotlib; matplotlib = dontCheck super.matplotlib;
# https://github.com/matterhorn-chat/matterhorn/issues/679 they do not want to be on stackage # https://github.com/matterhorn-chat/matterhorn/issues/679 they do not want to be on stackage
matterhorn = doJailbreak super.matterhorn; # this is needed until the end of time :') matterhorn = doJailbreak super.matterhorn; # this is needed until the end of time :')
memcache = dontCheck super.memcache; memcache = dontCheck super.memcache;
metrics = dontCheck super.metrics; metrics = dontCheck super.metrics;
milena = dontCheck super.milena; milena = dontCheck super.milena;
mockery = if pkgs.stdenv.isDarwin
then overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; }) # darwin doesn't have sub-second resolution https://github.com/hspec/mockery/issues/11
else super.mockery;
modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*) modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*)
nats-queue = dontCheck super.nats-queue; nats-queue = dontCheck super.nats-queue;
netpbm = dontCheck super.netpbm; netpbm = dontCheck super.netpbm;
@ -464,9 +431,8 @@ self: super: {
# https://github.com/andrewthad/haskell-ip/issues/67 # https://github.com/andrewthad/haskell-ip/issues/67
ip = dontCheck super.ip; ip = dontCheck super.ip;
# https://github.com/ndmitchell/shake/issues/206 # https://github.com/ndmitchell/shake/issues/804
# https://github.com/ndmitchell/shake/issues/267 shake = dontCheck super.shake;
shake = overrideCabal super.shake (drv: { doCheck = !pkgs.stdenv.isDarwin && false; });
# https://github.com/nushio3/doctest-prop/issues/1 # https://github.com/nushio3/doctest-prop/issues/1
doctest-prop = dontCheck super.doctest-prop; doctest-prop = dontCheck super.doctest-prop;
@ -841,7 +807,6 @@ self: super: {
# With ghc-8.2.x haddock would time out for unknown reason # With ghc-8.2.x haddock would time out for unknown reason
# See https://github.com/haskell/haddock/issues/679 # See https://github.com/haskell/haddock/issues/679
language-puppet = dontHaddock super.language-puppet; language-puppet = dontHaddock super.language-puppet;
filecache = overrideCabal super.filecache (drv: { doCheck = !pkgs.stdenv.isDarwin; });
# https://github.com/alphaHeavy/protobuf/issues/34 # https://github.com/alphaHeavy/protobuf/issues/34
protobuf = dontCheck super.protobuf; protobuf = dontCheck super.protobuf;
@ -852,17 +817,9 @@ self: super: {
configureFlags = ["--ghc-option=-DU_DEFINE_FALSE_AND_TRUE=1"]; # https://github.com/haskell/text-icu/issues/49 configureFlags = ["--ghc-option=-DU_DEFINE_FALSE_AND_TRUE=1"]; # https://github.com/haskell/text-icu/issues/49
}); });
# aarch64 and armv7l fixes. # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
happy = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontCheck super.happy else super.happy; # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062 servant-docs = doJailbreak super.servant-docs;
hashable = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontCheck super.hashable else super.hashable; # https://github.com/tibbe/hashable/issues/95
servant-docs =
let
f = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64)
then dontCheck
else pkgs.lib.id;
in doJailbreak (f super.servant-docs); # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
snap-templates = doJailbreak super.snap-templates; # https://github.com/snapframework/snap-templates/issues/22 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 requires the latest version of pretty-simple
hledger-lib = appendPatch super.hledger-lib hledger-lib = appendPatch super.hledger-lib
@ -1164,11 +1121,6 @@ self: super: {
''; '';
}); });
# gtk/gtk3 needs to be told on Darwin to use the Quartz
# rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
gtk3 = appendConfigureFlags super.gtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
gtk = appendConfigureFlags super.gtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
# Chart-tests needs and compiles some modules from Chart itself # Chart-tests needs and compiles some modules from Chart itself
Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: { Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
preCheck = old.postPatch or "" + '' preCheck = old.postPatch or "" + ''
@ -1438,6 +1390,12 @@ self: super: {
# https://github.com/haskell/haskell-language-server/issues/611 # https://github.com/haskell/haskell-language-server/issues/611
haskell-language-server = dontCheck super.haskell-language-server; haskell-language-server = dontCheck super.haskell-language-server;
# 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1808
hls-splice-plugin = dontCheck super.hls-splice-plugin;
# 2021-05-08: Tests fail: https://github.com/haskell/haskell-language-server/issues/1809
hls-eval-plugin = dontCheck super.hls-eval-plugin;
# 2021-03-19: Too restrictive upper bound on optparse-applicative # 2021-03-19: Too restrictive upper bound on optparse-applicative
stylish-haskell = doJailbreak super.stylish-haskell; stylish-haskell = doJailbreak super.stylish-haskell;
@ -1466,7 +1424,7 @@ self: super: {
}); });
# 2021-03-09: Overrides because nightly is to old for hls 1.0.0 # 2021-03-09: Overrides because nightly is to old for hls 1.0.0
lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0); lsp-test = doDistribute (dontCheck self.lsp-test_0_14_0_0);
# 2021-03-21 Test hangs # 2021-03-21 Test hangs
# https://github.com/haskell/haskell-language-server/issues/1562 # https://github.com/haskell/haskell-language-server/issues/1562
@ -1521,11 +1479,6 @@ self: super: {
# Due to tests restricting base in 0.8.0.0 release # Due to tests restricting base in 0.8.0.0 release
http-media = doJailbreak super.http-media; http-media = doJailbreak super.http-media;
# https://github.com/ekmett/half/issues/35
half = if pkgs.stdenv.isAarch64
then dontCheck super.half
else super.half;
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124 # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
heist = doJailbreak super.heist; heist = doJailbreak super.heist;
@ -1580,10 +1533,6 @@ self: super: {
# https://github.com/yesodweb/yesod/issues/1714 # https://github.com/yesodweb/yesod/issues/1714
yesod-core = dontCheck super.yesod-core; yesod-core = dontCheck super.yesod-core;
# Add ApplicationServices on darwin
apecs-physics = addPkgconfigDepends super.apecs-physics
(pkgs.lib.optional pkgs.stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.ApplicationServices);
# Break out of overspecified constraint on QuickCheck. # Break out of overspecified constraint on QuickCheck.
algebraic-graphs = dontCheck super.algebraic-graphs; algebraic-graphs = dontCheck super.algebraic-graphs;
attoparsec = doJailbreak super.attoparsec; # https://github.com/haskell/attoparsec/pull/168 attoparsec = doJailbreak super.attoparsec; # https://github.com/haskell/attoparsec/pull/168
@ -1871,16 +1820,6 @@ self: super: {
'' + (drv.postPatch or ""); '' + (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 # Tests need to lookup target triple x86_64-unknown-linux
# https://github.com/llvm-hs/llvm-hs/issues/334 # https://github.com/llvm-hs/llvm-hs/issues/334
llvm-hs = overrideCabal super.llvm-hs { llvm-hs = overrideCabal super.llvm-hs {
@ -1895,10 +1834,34 @@ self: super: {
sha256 = "10npa8nh2413n6p6qld795qfkbld08icm02bspmk93y0kabpgmgm"; sha256 = "10npa8nh2413n6p6qld795qfkbld08icm02bspmk93y0kabpgmgm";
}); });
# Too strict bounds on ref-tf # Too strict bounds on dimensional
# https://github.com/travitch/haggle/issues/4 # https://github.com/enomsg/science-constants-dimensional/pull/1
haggle = doJailbreak super.haggle; science-constants-dimensional = doJailbreak super.science-constants-dimensional;
# Tests are flaky on busy machines
# https://github.com/merijn/paramtree/issues/4
paramtree = dontCheck super.paramtree;
# Too strict version bounds on haskell-gi
# https://github.com/owickstrom/gi-gtk-declarative/issues/100
gi-gtk-declarative = doJailbreak super.gi-gtk-declarative;
gi-gtk-declarative-app-simple = doJailbreak super.gi-gtk-declarative-app-simple;
# Test assets missing from sdist
# https://github.com/hadolint/language-docker/issues/63
language-docker = overrideSrc super.language-docker {
src = pkgs.fetchFromGitHub {
owner = "hadolint";
repo = "language-docker";
rev = "refs/tags/${super.language-docker.version}";
sha256 = "06263jy538ni31vms5pzggmh64fyk62cv3lxnvkc6gylb94kljb8";
name = "language-docker-${super.language-docker.version}-source";
};
};
phonetic-languages-phonetics-basics = appendPatch super.phonetic-languages-phonetics-basics ./patches/phonetic-languages-phonetics-basics-haddock.patch; phonetic-languages-phonetics-basics = appendPatch super.phonetic-languages-phonetics-basics ./patches/phonetic-languages-phonetics-basics-haddock.patch;
# 2021-05-09: Restrictive bound on hspec-golden. Dep removed in newer versions.
tomland = assert super.tomland.version == "1.3.2.0"; doJailbreak super.tomland;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View File

@ -0,0 +1,164 @@
# DARWIN-SPECIFIC OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
{ pkgs, haskellLib }:
let
inherit (pkgs) lib darwin;
in
with haskellLib;
self: super: {
# the tests for shell-conduit on Darwin illegitimatey assume non-GNU echo
# see: https://github.com/psibi/shell-conduit/issues/12
shell-conduit = dontCheck super.shell-conduit;
conduit-extra = super.conduit-extra.overrideAttrs (drv: {
__darwinAllowLocalNetworking = true;
});
halive = addBuildDepend super.halive darwin.apple_sdk.frameworks.AppKit;
# Hakyll's tests are broken on Darwin (3 failures); and they require util-linux
hakyll = overrideCabal super.hakyll {
testToolDepends = [];
doCheck = false;
};
barbly = addBuildDepend super.barbly darwin.apple_sdk.frameworks.AppKit;
double-conversion = addExtraLibrary super.double-conversion pkgs.libcxx;
apecs-physics = addPkgconfigDepends super.apecs-physics [
darwin.apple_sdk.frameworks.ApplicationServices
];
# "erf table" test fails on Darwin
# https://github.com/bos/math-functions/issues/63
math-functions = dontCheck super.math-functions;
# darwin doesn't have sub-second resolution
# https://github.com/hspec/mockery/issues/11
mockery = overrideCabal super.mockery (drv: {
preCheck = ''
export TRAVIS=true
'' + (drv.preCheck or "");
});
# https://github.com/ndmitchell/shake/issues/206
shake = dontCheck super.shake;
filecache = dontCheck super.filecache;
# gtk/gtk3 needs to be told on Darwin to use the Quartz
# rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
gtk3 = appendConfigureFlag super.gtk3 "-f have-quartz-gtk";
gtk = appendConfigureFlag super.gtk "-f have-quartz-gtk";
OpenAL = addExtraLibrary super.OpenAL darwin.apple_sdk.frameworks.OpenAL;
proteaaudio = addExtraLibrary super.proteaaudio darwin.apple_sdk.frameworks.AudioToolbox;
# the system-fileio tests use canonicalizePath, which fails in the sandbox
system-fileio = dontCheck super.system-fileio;
# Prevents needing to add `security_tool` as a run-time dependency for
# everything using x509-system to give access to the `security` executable.
#
# darwin.security_tool is broken in Mojave (#45042)
#
# We will use the system provided security for now.
# Beware this WILL break in sandboxes!
#
# TODO(matthewbauer): If someone really needs this to work in sandboxes,
# I think we can add a propagatedImpureHost dep here, but Im hoping to
# get a proper fix available soonish.
x509-system = overrideCabal super.x509-system (drv:
lib.optionalAttrs (!pkgs.stdenv.cc.nativeLibc) {
postPatch = ''
substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
'' + (drv.postPatch or "");
});
# https://github.com/haskell-foundation/foundation/pull/412
foundation = dontCheck super.foundation;
llvm-hs = overrideCabal super.llvm-hs (oldAttrs: {
# One test fails on darwin.
doCheck = false;
# llvm-hs's Setup.hs file tries to add the lib/ directory from LLVM8 to
# the DYLD_LIBRARY_PATH environment variable. This messes up clang
# when called from GHC, probably because clang is version 7, but we are
# using LLVM8.
preCompileBuildDriver = ''
substituteInPlace Setup.hs --replace "addToLdLibraryPath libDir" "pure ()"
'' + (oldAttrs.preCompileBuildDriver or "");
});
yesod-bin = addBuildDepend super.yesod-bin darwin.apple_sdk.frameworks.Cocoa;
hmatrix = addBuildDepend super.hmatrix darwin.apple_sdk.frameworks.Accelerate;
# Ensure the necessary frameworks are propagatedBuildInputs on darwin
OpenGLRaw = overrideCabal super.OpenGLRaw (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenGL
];
preConfigure = ''
frameworkPaths=($(for i in $nativeBuildInputs; do if [ -d "$i"/Library/Frameworks ]; then echo "-F$i/Library/Frameworks"; fi done))
frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}")
configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi)
'' + (drv.preConfigure or "");
});
GLURaw = overrideCabal super.GLURaw (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenGL
];
});
bindings-GLFW = overrideCabal super.bindings-GLFW (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.AGL
darwin.apple_sdk.frameworks.Cocoa
darwin.apple_sdk.frameworks.OpenGL
darwin.apple_sdk.frameworks.IOKit
darwin.apple_sdk.frameworks.Kernel
darwin.apple_sdk.frameworks.CoreVideo
darwin.CF
];
});
OpenCL = overrideCabal super.OpenCL (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenCL
];
});
# cabal2nix likes to generate dependencies on hinotify when hfsevents is
# really required on darwin: https://github.com/NixOS/cabal2nix/issues/146.
hinotify = self.hfsevents;
# FSEvents API is very buggy and tests are unreliable. See
# http://openradar.appspot.com/10207999 and similar issues.
fsnotify = addBuildDepend (dontCheck super.fsnotify)
darwin.apple_sdk.frameworks.Cocoa;
FractalArt = overrideCabal super.FractalArt (drv: {
librarySystemDepends = [
darwin.libobjc
darwin.apple_sdk.frameworks.AppKit
] ++ (drv.librarySystemDepends or []);
});
arbtt = overrideCabal super.arbtt (drv: {
librarySystemDepends = [
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.Carbon
darwin.apple_sdk.frameworks.IOKit
] ++ (drv.librarySystemDepends or []);
});
}

View File

@ -77,13 +77,6 @@ default-package-overrides:
- gi-javascriptcore < 4.0.23 # - gi-javascriptcore < 4.0.23 #
- gi-soup < 2.4.24 # - gi-soup < 2.4.24 #
- gi-webkit2 < 4.0.27 # - 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: extra-packages:
- base16-bytestring < 1 # required for cabal-install etc. - base16-bytestring < 1 # required for cabal-install etc.
@ -102,7 +95,6 @@ extra-packages:
- hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29 - 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. - 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 - 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 - 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 - 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 - optparse-applicative < 0.16 # needed for niv-0.2.19
@ -259,7 +251,6 @@ unsupported-platforms:
gnome-keyring: [ x86_64-darwin ] gnome-keyring: [ x86_64-darwin ]
gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ] gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
gtk-sni-tray: [ x86_64-darwin ] gtk-sni-tray: [ x86_64-darwin ]
gtk-sni-tray: [ x86_64-darwin ]
haskell-snake: [ x86_64-darwin ] haskell-snake: [ x86_64-darwin ]
hcwiid: [ x86_64-darwin ] hcwiid: [ x86_64-darwin ]
HFuse: [ x86_64-darwin ] HFuse: [ x86_64-darwin ]
@ -269,7 +260,6 @@ unsupported-platforms:
iwlib: [ x86_64-darwin ] iwlib: [ x86_64-darwin ]
libmodbus: [ x86_64-darwin ] libmodbus: [ x86_64-darwin ]
libsystemd-journal: [ x86_64-darwin ] libsystemd-journal: [ x86_64-darwin ]
libsystemd-journal: [ x86_64-darwin ]
libtelnet: [ x86_64-darwin ] libtelnet: [ x86_64-darwin ]
libzfs: [ x86_64-darwin ] libzfs: [ x86_64-darwin ]
linearEqSolver: [ aarch64-linux ] linearEqSolver: [ aarch64-linux ]
@ -302,8 +292,7 @@ unsupported-platforms:
udev: [ x86_64-darwin ] udev: [ x86_64-darwin ]
vrpn: [ x86_64-darwin ] vrpn: [ x86_64-darwin ]
vulkan: [ i686-linux, armv7l-linux, x86_64-darwin ] vulkan: [ i686-linux, armv7l-linux, x86_64-darwin ]
VulkanMemoryAllocator: [ i686-linux, armv7l-linux ] VulkanMemoryAllocator: [ i686-linux, armv7l-linux, x86_64-darwin ]
VulkanMemoryAllocator: [ x86_64-darwin ]
vulkan-utils: [ x86_64-darwin ] vulkan-utils: [ x86_64-darwin ]
webkit2gtk3-javascriptcore: [ x86_64-darwin ] webkit2gtk3-javascriptcore: [ x86_64-darwin ]
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ] Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]

View File

@ -1,5 +1,7 @@
# Stackage Nightly 2021-05-07
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides: default-package-overrides:
# Stackage Nightly 2021-05-03
- abstract-deque ==0.3 - abstract-deque ==0.3
- abstract-par ==0.3.3 - abstract-par ==0.3.3
- AC-Angle ==1.0 - AC-Angle ==1.0
@ -479,7 +481,7 @@ default-package-overrides:
- convertible ==1.1.1.0 - convertible ==1.1.1.0
- cookie ==0.4.5 - cookie ==0.4.5
- core-data ==0.2.1.9 - core-data ==0.2.1.9
- core-program ==0.2.6.0 - core-program ==0.2.7.1
- core-text ==0.3.0.0 - core-text ==0.3.0.0
- countable ==1.0 - countable ==1.0
- country ==0.2.1 - country ==0.2.1
@ -882,7 +884,7 @@ default-package-overrides:
- ghc-byteorder ==4.11.0.0.10 - ghc-byteorder ==4.11.0.0.10
- ghc-check ==0.5.0.4 - ghc-check ==0.5.0.4
- ghc-core ==0.5.6 - ghc-core ==0.5.6
- ghc-events ==0.16.0 - ghc-events ==0.17.0
- ghc-exactprint ==0.6.4 - ghc-exactprint ==0.6.4
- ghcid ==0.8.7 - ghcid ==0.8.7
- ghci-hexcalc ==0.1.1.0 - ghci-hexcalc ==0.1.1.0
@ -1104,7 +1106,7 @@ default-package-overrides:
- hspec-expectations-json ==1.0.0.3 - hspec-expectations-json ==1.0.0.3
- hspec-expectations-lifted ==0.10.0 - hspec-expectations-lifted ==0.10.0
- hspec-expectations-pretty-diff ==0.7.2.5 - hspec-expectations-pretty-diff ==0.7.2.5
- hspec-golden ==0.1.0.3 - hspec-golden ==0.2.0.0
- hspec-golden-aeson ==0.7.0.0 - hspec-golden-aeson ==0.7.0.0
- hspec-hedgehog ==0.0.1.2 - hspec-hedgehog ==0.0.1.2
- hspec-junit-formatter ==1.0.0.2 - hspec-junit-formatter ==1.0.0.2
@ -1260,13 +1262,13 @@ default-package-overrides:
- io-streams ==1.5.2.0 - io-streams ==1.5.2.0
- io-streams-haproxy ==1.0.1.0 - io-streams-haproxy ==1.0.1.0
- ip6addr ==1.0.2 - ip6addr ==1.0.2
- ipa ==0.3 - ipa ==0.3.1
- iproute ==1.7.11 - iproute ==1.7.11
- IPv6Addr ==2.0.2 - IPv6Addr ==2.0.2
- ipynb ==0.1.0.1 - ipynb ==0.1.0.1
- ipython-kernel ==0.10.2.1 - ipython-kernel ==0.10.2.1
- irc ==0.6.1.0 - irc ==0.6.1.0
- irc-client ==1.1.2.0 - irc-client ==1.1.2.1
- irc-conduit ==0.3.0.4 - irc-conduit ==0.3.0.4
- irc-ctcp ==0.1.3.0 - irc-ctcp ==0.1.3.0
- isbn ==1.1.0.2 - isbn ==1.1.0.2
@ -1328,7 +1330,7 @@ default-package-overrides:
- language-bash ==0.9.2 - language-bash ==0.9.2
- language-c ==0.8.3 - language-c ==0.8.3
- language-c-quote ==0.13 - language-c-quote ==0.13
- language-docker ==9.3.0 - language-docker ==10.0.0
- language-java ==0.2.9 - language-java ==0.2.9
- language-javascript ==0.7.1.0 - language-javascript ==0.7.1.0
- language-protobuf ==1.0.1 - language-protobuf ==1.0.1
@ -1687,7 +1689,7 @@ default-package-overrides:
- pagure-cli ==0.2 - pagure-cli ==0.2
- pandoc ==2.13 - pandoc ==2.13
- pandoc-dhall-decoder ==0.1.0.1 - pandoc-dhall-decoder ==0.1.0.1
- pandoc-plot ==1.1.1 - pandoc-plot ==1.2.0
- pandoc-throw ==0.1.0.0 - pandoc-throw ==0.1.0.0
- pandoc-types ==1.22 - pandoc-types ==1.22
- pantry ==0.5.1.5 - pantry ==0.5.1.5
@ -2177,6 +2179,7 @@ default-package-overrides:
- splint ==1.0.1.4 - splint ==1.0.1.4
- split ==0.2.3.4 - split ==0.2.3.4
- splitmix ==0.1.0.3 - splitmix ==0.1.0.3
- splitmix-distributions ==0.7.0.0
- spoon ==0.3.1 - spoon ==0.3.1
- spreadsheet ==0.1.3.8 - spreadsheet ==0.1.3.8
- sqlcli ==0.2.2.0 - sqlcli ==0.2.2.0
@ -2506,8 +2509,8 @@ default-package-overrides:
- utf8-string ==1.0.2 - utf8-string ==1.0.2
- util ==0.1.17.1 - util ==0.1.17.1
- utility-ht ==0.0.16 - utility-ht ==0.0.16
- uuid ==1.3.14 - uuid ==1.3.15
- uuid-types ==1.0.4 - uuid-types ==1.0.5
- validation ==1.1.1 - validation ==1.1.1
- validation-selective ==0.1.0.1 - validation-selective ==0.1.0.1
- validity ==0.11.0.0 - validity ==0.11.0.0

View File

@ -22,6 +22,7 @@ dont-distribute-packages:
- approx-rand-test - approx-rand-test
- barley - barley
- bson-mapping - bson-mapping
- bv-sized-lens
- clash-prelude-quickcheck - clash-prelude-quickcheck
- click-clack - click-clack
- cloudyfs - cloudyfs
@ -79,9 +80,9 @@ dont-distribute-packages:
- openpgp-crypto-api - openpgp-crypto-api
- patch-image - patch-image
- perdure - perdure
- persistent-mysql_2_12_1_0 - persistent-mysql_2_13_0_0
- persistent-postgresql_2_12_1_1 - persistent-postgresql_2_13_0_0
- persistent-sqlite_2_12_0_0 - persistent-sqlite_2_13_0_0
- pontarius-mediaserver - pontarius-mediaserver
- pontarius-xmpp-extras - pontarius-xmpp-extras
- pontarius-xpmn - pontarius-xpmn

View File

@ -101,17 +101,6 @@ self: super: builtins.intersectAttrs super {
ormolu = enableSeparateBinOutput super.ormolu; ormolu = enableSeparateBinOutput super.ormolu;
ghcid = enableSeparateBinOutput super.ghcid; ghcid = enableSeparateBinOutput super.ghcid;
# Ensure the necessary frameworks for Darwin.
OpenAL = if pkgs.stdenv.isDarwin
then addExtraLibrary super.OpenAL pkgs.darwin.apple_sdk.frameworks.OpenAL
else super.OpenAL;
# Ensure the necessary frameworks for Darwin.
proteaaudio = if pkgs.stdenv.isDarwin
then addExtraLibrary super.proteaaudio pkgs.darwin.apple_sdk.frameworks.AudioToolbox
else super.proteaaudio;
hzk = overrideCabal super.hzk (drv: { hzk = overrideCabal super.hzk (drv: {
preConfigure = "sed -i -e /include-dirs/d hzk.cabal"; preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ]; configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
@ -131,39 +120,11 @@ self: super: builtins.intersectAttrs super {
# Foreign dependency name clashes with another Haskell package. # Foreign dependency name clashes with another Haskell package.
libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; }; libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; };
# Fix Darwin build.
halive = if pkgs.stdenv.isDarwin
then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
else super.halive;
# Heist's test suite requires system pandoc # Heist's test suite requires system pandoc
heist = overrideCabal super.heist (drv: { heist = overrideCabal super.heist (drv: {
testToolDepends = [pkgs.pandoc]; testToolDepends = [pkgs.pandoc];
}); });
# the system-fileio tests use canonicalizePath, which fails in the sandbox
system-fileio = if pkgs.stdenv.isDarwin then dontCheck super.system-fileio else super.system-fileio;
# Prevents needing to add `security_tool` as a run-time dependency for
# everything using x509-system to give access to the `security` executable.
x509-system =
if pkgs.stdenv.hostPlatform.isDarwin && !pkgs.stdenv.cc.nativeLibc
then
# darwin.security_tool is broken in Mojave (#45042)
# We will use the system provided security for now.
# Beware this WILL break in sandboxes!
# TODO(matthewbauer): If someone really needs this to work in sandboxes,
# I think we can add a propagatedImpureHost dep here, but Im hoping to
# get a proper fix available soonish.
overrideCabal super.x509-system (drv: {
postPatch = (drv.postPatch or "") + ''
substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
'';
})
else super.x509-system;
# https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216 # https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216
gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"]; gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"]; glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
@ -266,12 +227,6 @@ self: super: builtins.intersectAttrs super {
# /homeless-shelter. Disabled. # /homeless-shelter. Disabled.
purescript = dontCheck super.purescript; purescript = dontCheck super.purescript;
# https://github.com/haskell-foundation/foundation/pull/412
foundation =
if pkgs.stdenv.isDarwin
then dontCheck super.foundation
else super.foundation;
# Hardcoded include path # Hardcoded include path
poppler = overrideCabal super.poppler (drv: { poppler = overrideCabal super.poppler (drv: {
postPatch = '' postPatch = ''
@ -283,23 +238,8 @@ self: super: builtins.intersectAttrs super {
# Uses OpenGL in testing # Uses OpenGL in testing
caramia = dontCheck super.caramia; caramia = dontCheck super.caramia;
llvm-hs = # requires llvm 9 specifically https://github.com/llvm-hs/llvm-hs/#building-from-source
let llvmHsWithLlvm9 = super.llvm-hs.override { llvm-config = pkgs.llvm_9; }; llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_9; };
in
if pkgs.stdenv.isDarwin
then
overrideCabal llvmHsWithLlvm9 (oldAttrs: {
# One test fails on darwin.
doCheck = false;
# llvm-hs's Setup.hs file tries to add the lib/ directory from LLVM8 to
# the DYLD_LIBRARY_PATH environment variable. This messes up clang
# when called from GHC, probably because clang is version 7, but we are
# using LLVM8.
preCompileBuildDriver = oldAttrs.preCompileBuildDriver or "" + ''
substituteInPlace Setup.hs --replace "addToLdLibraryPath libDir" "pure ()"
'';
})
else llvmHsWithLlvm9;
# Needs help finding LLVM. # Needs help finding LLVM.
spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm; spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm;
@ -322,14 +262,6 @@ self: super: builtins.intersectAttrs super {
# Patch to consider NIX_GHC just like xmonad does # Patch to consider NIX_GHC just like xmonad does
dyre = appendPatch super.dyre ./patches/dyre-nix.patch; dyre = appendPatch super.dyre ./patches/dyre-nix.patch;
yesod-bin = if pkgs.stdenv.isDarwin
then addBuildDepend super.yesod-bin pkgs.darwin.apple_sdk.frameworks.Cocoa
else super.yesod-bin;
hmatrix = if pkgs.stdenv.isDarwin
then addBuildDepend super.hmatrix pkgs.darwin.apple_sdk.frameworks.Accelerate
else super.hmatrix;
# https://github.com/edwinb/EpiVM/issues/13 # https://github.com/edwinb/EpiVM/issues/13
# https://github.com/edwinb/EpiVM/issues/14 # https://github.com/edwinb/EpiVM/issues/14
epic = addExtraLibraries (addBuildTool super.epic self.buildHaskellPackages.happy) [pkgs.boehmgc pkgs.gmp]; epic = addExtraLibraries (addBuildTool super.epic self.buildHaskellPackages.happy) [pkgs.boehmgc pkgs.gmp];
@ -405,43 +337,8 @@ self: super: builtins.intersectAttrs super {
# Looks like Avahi provides the missing library # Looks like Avahi provides the missing library
dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; }; dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; };
# Ensure the necessary frameworks are propagatedBuildInputs on darwin # requires an X11 display
OpenGLRaw = overrideCabal super.OpenGLRaw (drv: { bindings-GLFW = dontCheck super.bindings-GLFW;
librarySystemDepends =
pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
libraryHaskellDepends = drv.libraryHaskellDepends
++ pkgs.lib.optionals pkgs.stdenv.isDarwin
[ pkgs.darwin.apple_sdk.frameworks.OpenGL ];
preConfigure = pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
frameworkPaths=($(for i in $nativeBuildInputs; do if [ -d "$i"/Library/Frameworks ]; then echo "-F$i/Library/Frameworks"; fi done))
frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}")
configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi)
'';
});
GLURaw = overrideCabal super.GLURaw (drv: {
librarySystemDepends =
pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
libraryHaskellDepends = drv.libraryHaskellDepends
++ pkgs.lib.optionals pkgs.stdenv.isDarwin
[ pkgs.darwin.apple_sdk.frameworks.OpenGL ];
});
bindings-GLFW = overrideCabal super.bindings-GLFW (drv: {
doCheck = false; # requires an active X11 display
librarySystemDepends =
pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
libraryHaskellDepends = drv.libraryHaskellDepends
++ pkgs.lib.optionals pkgs.stdenv.isDarwin
(with pkgs.darwin.apple_sdk.frameworks;
[ AGL Cocoa OpenGL IOKit Kernel CoreVideo
pkgs.darwin.CF ]);
});
OpenCL = overrideCabal super.OpenCL (drv: {
librarySystemDepends =
pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends;
libraryHaskellDepends = drv.libraryHaskellDepends
++ pkgs.lib.optionals pkgs.stdenv.isDarwin
[ pkgs.darwin.apple_sdk.frameworks.OpenCL ];
});
# requires an X11 display in test suite # requires an X11 display in test suite
gi-gtk-declarative = dontCheck super.gi-gtk-declarative; gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
@ -474,16 +371,8 @@ self: super: builtins.intersectAttrs super {
testHaskellDepends = (drv.testHaskellDepends or []) ++ [ self.test-framework self.test-framework-hunit ]; testHaskellDepends = (drv.testHaskellDepends or []) ++ [ self.test-framework self.test-framework-hunit ];
}); });
# cabal2nix likes to generate dependencies on hinotify when hfsevents is really required
# on darwin: https://github.com/NixOS/cabal2nix/issues/146.
hinotify = if pkgs.stdenv.isDarwin then self.hfsevents else super.hinotify;
# FSEvents API is very buggy and tests are unreliable. See
# http://openradar.appspot.com/10207999 and similar issues.
# https://github.com/haskell-fswatch/hfsnotify/issues/62 # https://github.com/haskell-fswatch/hfsnotify/issues/62
fsnotify = if pkgs.stdenv.isDarwin fsnotify = dontCheck super.fsnotify;
then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa
else dontCheck super.fsnotify;
hidapi = addExtraLibrary super.hidapi pkgs.udev; hidapi = addExtraLibrary super.hidapi pkgs.udev;
@ -844,21 +733,6 @@ self: super: builtins.intersectAttrs super {
'' + (drv.postInstall or ""); '' + (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 # set more accurate set of platforms instead of maintaining
# an ever growing list of platforms to exclude via unsupported-platforms # an ever growing list of platforms to exclude via unsupported-platforms
cpuid = overrideCabal super.cpuid { cpuid = overrideCabal super.cpuid {
@ -867,4 +741,35 @@ self: super: builtins.intersectAttrs super {
# Pass the correct libarchive into the package. # Pass the correct libarchive into the package.
streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; }; streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
# passes the -msse2 flag which only works on x86 platforms
hsignal = overrideCabal super.hsignal {
platforms = pkgs.lib.platforms.x86;
};
hls-brittany-plugin = overrideCabal super.hls-brittany-plugin (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-class-plugin = overrideCabal super.hls-class-plugin (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
# Tests have file permissions expections that dont work with the nix store.
hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin;
hls-haddock-comments-plugin = overrideCabal super.hls-haddock-comments-plugin (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-eval-plugin = overrideCabal super.hls-eval-plugin (drv: {
preCheck = ''
export HOME=$TMPDIR/home
'';
});
} }

View File

@ -7,6 +7,8 @@
, nonHackagePackages ? import ./non-hackage-packages.nix , nonHackagePackages ? import ./non-hackage-packages.nix
, configurationCommon ? import ./configuration-common.nix , configurationCommon ? import ./configuration-common.nix
, configurationNix ? import ./configuration-nix.nix , configurationNix ? import ./configuration-nix.nix
, configurationArm ? import ./configuration-arm.nix
, configurationDarwin ? import ./configuration-darwin.nix
}: }:
let let
@ -19,17 +21,24 @@ let
inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes; inherit stdenv haskellLib ghc buildHaskellPackages extensible-self all-cabal-hashes;
}; };
commonConfiguration = configurationCommon { inherit pkgs haskellLib; }; isArm = with stdenv.hostPlatform; isAarch64 || isAarch32;
nixConfiguration = configurationNix { inherit pkgs haskellLib; }; platformConfigurations = lib.optionals isArm [
(configurationArm { inherit pkgs haskellLib; })
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
(configurationDarwin { inherit pkgs haskellLib; })
];
extensible-self = makeExtensible extensions = lib.composeManyExtensions ([
(extends overrides nonHackagePackages
(extends packageSetConfig (configurationNix { inherit pkgs haskellLib; })
(extends compilerConfig (configurationCommon { inherit pkgs haskellLib; })
(extends commonConfiguration ] ++ platformConfigurations ++ [
(extends nixConfiguration compilerConfig
(extends nonHackagePackages packageSetConfig
haskellPackages)))))); overrides
]);
extensible-self = makeExtensible (extends extensions haskellPackages);
in in

File diff suppressed because it is too large Load Diff

View File

@ -249,7 +249,7 @@ in package-set { inherit pkgs lib callPackage; } self // {
# a cabal flag with '--flag=myflag'. # a cabal flag with '--flag=myflag'.
developPackage = developPackage =
{ root { root
, name ? builtins.baseNameOf root , name ? if builtins.typeOf root == "path" then builtins.baseNameOf root else ""
, source-overrides ? {} , source-overrides ? {}
, overrides ? self: super: {} , overrides ? self: super: {}
, modifier ? drv: drv , modifier ? drv: drv

View File

@ -75,7 +75,10 @@ let
_: v: builtins.length (v.meta.maintainers or []) > 0 _: v: builtins.length (v.meta.maintainers or []) > 0
) set); ) set);
jobs = mapTestOn { recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
jobs = recursiveUpdateMany [
(mapTestOn {
haskellPackages = packagePlatforms pkgs.haskellPackages; haskellPackages = packagePlatforms pkgs.haskellPackages;
haskell.compiler = packagePlatforms pkgs.haskell.compiler; haskell.compiler = packagePlatforms pkgs.haskell.compiler;
@ -191,7 +194,8 @@ let
; ;
elmPackages.elm = pkgsPlatforms.elmPackages.elm; elmPackages.elm = pkgsPlatforms.elmPackages.elm;
} // versionedCompilerJobs { })
(versionedCompilerJobs {
# Packages which should be checked on more than the # Packages which should be checked on more than the
# default GHC version. This list can be used to test # default GHC version. This list can be used to test
# the state of the package set with newer compilers # the state of the package set with newer compilers
@ -208,7 +212,8 @@ let
language-nix = all; language-nix = all;
nix-paths = all; nix-paths = all;
titlecase = all; titlecase = all;
} // { })
{
mergeable = pkgs.releaseTools.aggregate { mergeable = pkgs.releaseTools.aggregate {
name = "haskell-updates-mergeable"; name = "haskell-updates-mergeable";
meta = { meta = {
@ -260,6 +265,7 @@ let
(name: jobs.haskellPackages."${name}") (name: jobs.haskellPackages."${name}")
(maintainedPkgNames pkgs.haskellPackages)); (maintainedPkgNames pkgs.haskellPackages));
}; };
}; }
];
in jobs in jobs