1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-29 09:02:46 +00:00

Merge pull request #144707 from NixOS/haskell-updates

haskellPackages: update stackage and hackage
This commit is contained in:
Dennis Gosnell 2021-11-12 12:58:50 +09:00 committed by GitHub
commit 40662d31b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 3575 additions and 3634 deletions

View file

@ -14,13 +14,13 @@ let
plugins =
if pluginSupport
then plain
else haskell.lib.disableCabalFlag plain "plugins";
static = haskell.lib.justStaticExecutables plugins;
else haskell.lib.compose.disableCabalFlag "plugins" plain;
static = haskell.lib.compose.justStaticExecutables plugins;
in
(haskell.lib.overrideCabal static (drv: {
(haskell.lib.compose.overrideCabal (drv: {
buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
})).overrideAttrs (drv: {
}) static).overrideAttrs (drv: {
# These libraries are still referenced, because they generate
# a `Paths_*` module for figuring out their version.

View file

@ -18,11 +18,11 @@ let
arion =
justStaticExecutables (
overrideCabal
arion-compose
cabalOverrides
arion-compose
);
inherit (haskell.lib) justStaticExecutables overrideCabal;
inherit (haskell.lib.compose) justStaticExecutables overrideCabal;
inherit (haskellPackages) arion-compose;

View file

@ -1,6 +1,6 @@
{
"commit": "f2537d46db49014726f8ad00dcc60f5e41213397",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/f2537d46db49014726f8ad00dcc60f5e41213397.tar.gz",
"sha256": "021j2xn1xk8fqs7648si42n7z6rjzp4jnags4jkfnk1f81swns6h",
"msg": "Update from Hackage at 2021-10-23T04:57:02Z"
"commit": "da98cdcb5ec11aea3b1979174b3b1cab24014908",
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/da98cdcb5ec11aea3b1979174b3b1cab24014908.tar.gz",
"sha256": "14qdmvlqkaixv331g1lfr8hghrvzdx45xhn69fz1g7zhv4w88jix",
"msg": "Update from Hackage at 2021-11-05T06:34:09Z"
}

View file

@ -8,9 +8,9 @@ let
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
hsPkgs = haskellPackages.override {
overrides = self: super: with haskell.lib; with lib;
overrides = self: super: with haskell.lib.compose; with lib;
let elmPkgs = rec {
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
elm = overrideCabal (drv: {
# sadly with parallelism most of the time breaks compilation
enableParallelBuilding = false;
preConfigure = self.fetchElmDeps {
@ -29,22 +29,22 @@ let
homepage = "https://elm-lang.org/";
license = licenses.bsd3;
maintainers = with maintainers; [ domenkozar turbomack ];
});
}) (self.callPackage ./packages/elm.nix { });
/*
The elm-format expression is updated via a script in the https://github.com/avh4/elm-format repo:
`package/nix/build.sh`
*/
elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
elm-format = justStaticExecutables (overrideCabal (drv: {
jailbreak = true;
description = "Formats Elm source code according to a standard set of rules based on the official Elm Style Guide";
homepage = "https://github.com/avh4/elm-format";
license = licenses.bsd3;
maintainers = with maintainers; [ avh4 turbomack ];
}));
}) (self.callPackage ./packages/elm-format.nix {}));
elmi-to-json = justStaticExecutables (overrideCabal (self.callPackage ./packages/elmi-to-json.nix {}) (drv: {
elmi-to-json = justStaticExecutables (overrideCabal (drv: {
prePatch = ''
substituteInPlace package.yaml --replace "- -Werror" ""
hpack
@ -55,9 +55,9 @@ let
homepage = "https://github.com/stoeffel/elmi-to-json";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
}));
}) (self.callPackage ./packages/elmi-to-json.nix {}));
elm-instrument = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-instrument.nix {}) (drv: {
elm-instrument = justStaticExecutables (overrideCabal (drv: {
prePatch = ''
sed "s/desc <-.*/let desc = \"${drv.version}\"/g" Setup.hs --in-place
'';
@ -69,7 +69,7 @@ let
homepage = "https://github.com/zwilias/elm-instrument";
license = licenses.bsd3;
maintainers = [ maintainers.turbomack ];
}));
}) (self.callPackage ./packages/elm-instrument.nix {}));
inherit fetchElmDeps;
elmVersion = elmPkgs.elm.version;

View file

@ -16,14 +16,14 @@ let
curry-frontend = (haskellPackages.override {
overrides = self: super: {
curry-base = haskell.lib.overrideCabal (super.callPackage ./curry-base.nix {}) (drv: {
curry-base = haskell.lib.compose.overrideCabal (drv: {
inherit src;
postUnpack = "sourceRoot+=/frontend/curry-base";
});
curry-frontend = haskell.lib.overrideCabal (super.callPackage ./curry-frontend.nix {}) (drv: {
}) (super.callPackage ./curry-base.nix {});
curry-frontend = haskell.lib.compose.overrideCabal (drv: {
inherit src;
postUnpack = "sourceRoot+=/frontend/curry-frontend";
});
}) (super.callPackage ./curry-frontend.nix {});
};
}).curry-frontend;
in stdenv.mkDerivation {

File diff suppressed because it is too large Load diff

View file

@ -18,21 +18,21 @@ self: super: ({
__darwinAllowLocalNetworking = true;
});
halive = addBuildDepend super.halive darwin.apple_sdk.frameworks.AppKit;
halive = addBuildDepend darwin.apple_sdk.frameworks.AppKit super.halive;
# Hakyll's tests are broken on Darwin (3 failures); and they require util-linux
hakyll = overrideCabal super.hakyll {
hakyll = overrideCabal {
testToolDepends = [];
doCheck = false;
};
} super.hakyll;
barbly = addBuildDepend super.barbly darwin.apple_sdk.frameworks.AppKit;
barbly = addBuildDepend darwin.apple_sdk.frameworks.AppKit super.barbly;
double-conversion = addExtraLibrary super.double-conversion pkgs.libcxx;
double-conversion = addExtraLibrary pkgs.libcxx super.double-conversion;
apecs-physics = addPkgconfigDepends super.apecs-physics [
apecs-physics = addPkgconfigDepends [
darwin.apple_sdk.frameworks.ApplicationServices
];
] super.apecs-physics;
# "erf table" test fails on Darwin
# https://github.com/bos/math-functions/issues/63
@ -40,11 +40,11 @@ self: super: ({
# darwin doesn't have sub-second resolution
# https://github.com/hspec/mockery/issues/11
mockery = overrideCabal super.mockery (drv: {
mockery = overrideCabal (drv: {
preCheck = ''
export TRAVIS=true
'' + (drv.preCheck or "");
});
}) super.mockery;
# https://github.com/ndmitchell/shake/issues/206
shake = dontCheck super.shake;
@ -53,18 +53,18 @@ 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 = appendConfigureFlag super.gtk3 "-f have-quartz-gtk";
gtk = appendConfigureFlag super.gtk "-f have-quartz-gtk";
gtk3 = appendConfigureFlag "-f have-quartz-gtk" super.gtk3;
gtk = appendConfigureFlag "-f have-quartz-gtk" super.gtk;
OpenAL = addExtraLibrary super.OpenAL darwin.apple_sdk.frameworks.OpenAL;
OpenAL = addExtraLibrary darwin.apple_sdk.frameworks.OpenAL super.OpenAL;
al = overrideCabal super.al (drv: {
al = overrideCabal (drv: {
libraryFrameworkDepends = [
darwin.apple_sdk.frameworks.OpenAL
] ++ (drv.libraryFrameworkDepends or []);
});
}) super.al;
proteaaudio = addExtraLibrary super.proteaaudio darwin.apple_sdk.frameworks.AudioToolbox;
proteaaudio = addExtraLibrary darwin.apple_sdk.frameworks.AudioToolbox super.proteaaudio;
# the system-fileio tests use canonicalizePath, which fails in the sandbox
system-fileio = dontCheck super.system-fileio;
@ -80,17 +80,17 @@ self: super: ({
# 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:
x509-system = overrideCabal (drv:
lib.optionalAttrs (!pkgs.stdenv.cc.nativeLibc) {
postPatch = ''
substituteInPlace System/X509/MacOS.hs --replace security /usr/bin/security
'' + (drv.postPatch or "");
});
}) super.x509-system;
# https://github.com/haskell-foundation/foundation/pull/412
foundation = dontCheck super.foundation;
llvm-hs = overrideCabal super.llvm-hs (oldAttrs: {
llvm-hs = overrideCabal (oldAttrs: {
# One test fails on darwin.
doCheck = false;
# llvm-hs's Setup.hs file tries to add the lib/ directory from LLVM8 to
@ -100,20 +100,20 @@ self: super: ({
preCompileBuildDriver = ''
substituteInPlace Setup.hs --replace "addToLdLibraryPath libDir" "pure ()"
'' + (oldAttrs.preCompileBuildDriver or "");
});
}) super.llvm-hs;
yesod-bin = addBuildDepend super.yesod-bin darwin.apple_sdk.frameworks.Cocoa;
yesod-bin = addBuildDepend darwin.apple_sdk.frameworks.Cocoa super.yesod-bin;
hmatrix = addBuildDepend super.hmatrix darwin.apple_sdk.frameworks.Accelerate;
hmatrix = addBuildDepend darwin.apple_sdk.frameworks.Accelerate super.hmatrix;
blas-hs = overrideCabal super.blas-hs (drv: {
blas-hs = overrideCabal (drv: {
libraryFrameworkDepends = [
darwin.apple_sdk.frameworks.Accelerate
] ++ (drv.libraryFrameworkDepends or []);
});
}) super.blas-hs;
# Ensure the necessary frameworks are propagatedBuildInputs on darwin
OpenGLRaw = overrideCabal super.OpenGLRaw (drv: {
OpenGLRaw = overrideCabal (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenGL
@ -123,14 +123,14 @@ self: super: ({
frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}")
configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi)
'' + (drv.preConfigure or "");
});
GLURaw = overrideCabal super.GLURaw (drv: {
}) super.OpenGLRaw;
GLURaw = overrideCabal (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenGL
];
});
bindings-GLFW = overrideCabal super.bindings-GLFW (drv: {
}) super.GLURaw;
bindings-GLFW = overrideCabal (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.AGL
@ -141,13 +141,13 @@ self: super: ({
darwin.apple_sdk.frameworks.CoreVideo
darwin.CF
];
});
OpenCL = overrideCabal super.OpenCL (drv: {
}) super.bindings-GLFW;
OpenCL = overrideCabal (drv: {
librarySystemDepends = [];
libraryHaskellDepends = drv.libraryHaskellDepends ++ [
darwin.apple_sdk.frameworks.OpenCL
];
});
}) super.OpenCL;
# cabal2nix likes to generate dependencies on hinotify when hfsevents is
# really required on darwin: https://github.com/NixOS/cabal2nix/issues/146.
@ -155,37 +155,37 @@ self: super: ({
# 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;
fsnotify = addBuildDepend darwin.apple_sdk.frameworks.Cocoa
(dontCheck super.fsnotify);
FractalArt = overrideCabal super.FractalArt (drv: {
FractalArt = overrideCabal (drv: {
librarySystemDepends = [
darwin.libobjc
darwin.apple_sdk.frameworks.AppKit
] ++ (drv.librarySystemDepends or []);
});
}) super.FractalArt;
arbtt = overrideCabal super.arbtt (drv: {
arbtt = overrideCabal (drv: {
librarySystemDepends = [
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.Carbon
darwin.apple_sdk.frameworks.IOKit
] ++ (drv.librarySystemDepends or []);
});
}) super.arbtt;
HTF = overrideCabal super.HTF (drv: {
HTF = overrideCabal (drv: {
# GNU find is not prefixed in stdenv
postPatch = ''
substituteInPlace scripts/local-htfpp --replace "find=gfind" "find=find"
'' + (drv.postPatch or "");
});
}) super.HTF;
# conditional dependency via a cabal flag
cas-store = overrideCabal super.cas-store (drv: {
cas-store = overrideCabal (drv: {
libraryHaskellDepends = [
self.kqueue
] ++ (drv.libraryHaskellDepends or []);
});
}) super.cas-store;
# 2021-05-25: Tests fail and I have no way to debug them.
hls-class-plugin = dontCheck super.hls-class-plugin;
@ -204,13 +204,13 @@ self: super: ({
# On darwin librt doesn't exist and will fail to link against,
# however linking against it is also not necessary there
GLHUI = overrideCabal super.GLHUI (drv: {
GLHUI = overrideCabal (drv: {
postPatch = ''
substituteInPlace GLHUI.cabal --replace " rt" ""
'' + (drv.postPatch or "");
});
}) super.GLHUI;
SDL-image = overrideCabal super.SDL-image (drv: {
SDL-image = overrideCabal (drv: {
# Prevent darwin-specific configuration code path being taken
# which doesn't work with nixpkgs' SDL libraries
postPatch = ''
@ -220,18 +220,18 @@ self: super: ({
# Work around SDL_main.h redefining main to SDL_main
./patches/SDL-image-darwin-hsc.patch
];
});
}) super.SDL-image;
# Prevent darwin-specific configuration code path being taken which
# doesn't work with nixpkgs' SDL libraries
SDL-mixer = overrideCabal super.SDL-mixer (drv: {
SDL-mixer = overrideCabal (drv: {
postPatch = ''
substituteInPlace configure --replace xDarwin noDarwinSpecialCasing
'' + (drv.postPatch or "");
});
}) super.SDL-mixer;
# Work around SDL_main.h redefining main to SDL_main
SDL-ttf = appendPatch super.SDL-ttf ./patches/SDL-ttf-darwin-hsc.patch;
SDL-ttf = appendPatch ./patches/SDL-ttf-darwin-hsc.patch super.SDL-ttf;
# Disable a bunch of test suites that fail because of darwin's case insensitive
# file system: When a test suite has a test suite file that has the same name
@ -242,17 +242,19 @@ self: super: ({
# should create issues for them.
# https://github.com/typeclasses/aws-cloudfront-signed-cookies/issues/2
aws-cloudfront-signed-cookies = dontCheck super.aws-cloudfront-signed-cookies;
# https://github.com/typeclasses/assoc-list/issues/2
assoc-list = dontCheck super.assoc-list;
assoc-listlike = dontCheck super.assoc-listlike;
# https://github.com/typeclasses/dsv/issues/1
dsv = dontCheck super.dsv;
# https://github.com/acid-state/acid-state/issues/133
acid-state = dontCheck super.acid-state;
# Otherwise impure gcc is used, which is Apple's weird wrapper
c2hsc = addTestToolDepends super.c2hsc [ pkgs.gcc ];
c2hsc = addTestToolDepends [ pkgs.gcc ] super.c2hsc;
# streamly depends on Cocoa starting with 0.8.0
streamly_0_8_0 = overrideCabal (drv: {
libraryFrameworkDepends = [
darwin.apple_sdk.frameworks.Cocoa
] ++ (drv.libraryFrameworkDepends or []);
}) super.streamly_0_8_0;
} // lib.optionalAttrs pkgs.stdenv.isAarch64 { # aarch64-darwin

View file

@ -72,20 +72,20 @@ self: super: {
shower = doJailbreak super.shower;
# The shipped Setup.hs file is broken.
csv = overrideCabal super.csv (drv: { preCompileBuildDriver = "rm Setup.hs"; });
csv = overrideCabal (drv: { preCompileBuildDriver = "rm Setup.hs"; }) super.csv;
# Apply patch from https://github.com/finnsson/template-helper/issues/12#issuecomment-611795375 to fix the build.
language-haskell-extract = appendPatch (doJailbreak super.language-haskell-extract) (pkgs.fetchpatch {
language-haskell-extract = appendPatch (pkgs.fetchpatch {
name = "language-haskell-extract-0.2.4.patch";
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/e48738ee1be774507887a90a0d67ad1319456afc/patches/language-haskell-extract-0.2.4.patch?inline=false";
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
});
}) (doJailbreak super.language-haskell-extract);
# hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
hnix = generateOptparseApplicativeCompletion "hnix"
(overrideCabal super.hnix (drv: {
(overrideCabal (drv: {
# executable is allowed for ghc >= 8.10 and needs repline
executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
}));
}) super.hnix);
}

View file

@ -90,13 +90,13 @@ self: super: {
haddock-library_1_7_0 = dontCheck super.haddock-library_1_7_0;
# ghc versions prior to 8.8.x needs additional dependency to compile successfully.
ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
# This became a core library in ghc 8.10., so we dont have an "exception" attribute anymore.
exceptions = super.exceptions_0_10_4;
# Older compilers need the latest ghc-lib to build this package.
hls-hlint-plugin = addBuildDepend super.hls-hlint-plugin self.ghc-lib;
hls-hlint-plugin = addBuildDepend self.ghc-lib super.hls-hlint-plugin;
# vector 0.12.2 indroduced doctest checks that dont work on older compilers
vector = dontCheck super.vector;

View file

@ -85,10 +85,10 @@ self: super: {
vault = dontHaddock super.vault;
# https://github.com/snapframework/snap-core/issues/288
snap-core = overrideCabal super.snap-core (drv: { prePatch = "substituteInPlace src/Snap/Internal/Core.hs --replace 'fail = Fail.fail' ''"; });
snap-core = overrideCabal (drv: { prePatch = "substituteInPlace src/Snap/Internal/Core.hs --replace 'fail = Fail.fail' ''"; }) super.snap-core;
# Upstream ships a broken Setup.hs file.
csv = overrideCabal super.csv (drv: { prePatch = "rm Setup.hs"; });
csv = overrideCabal (drv: { prePatch = "rm Setup.hs"; }) super.csv;
# https://github.com/kowainik/relude/issues/241
relude = dontCheck super.relude;
@ -120,10 +120,10 @@ self: super: {
# ghc versions which dont match the ghc-lib-parser-ex version need the
# additional dependency to compile successfully.
ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
# Older compilers need the latest ghc-lib to build this package.
hls-hlint-plugin = addBuildDepend super.hls-hlint-plugin self.ghc-lib;
hls-hlint-plugin = addBuildDepend self.ghc-lib super.hls-hlint-plugin;
# vector 0.12.2 indroduced doctest checks that dont work on older compilers
vector = dontCheck super.vector;

View file

@ -55,10 +55,10 @@ self: super: {
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
hackage-security = doJailbreak super.hackage-security;
hashable = overrideCabal (doJailbreak (dontCheck super.hashable)) (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; });
hashable = overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; }) (doJailbreak (dontCheck super.hashable));
hashable-time = doJailbreak super.hashable-time;
HTTP = overrideCabal (doJailbreak super.HTTP) (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; });
integer-logarithms = overrideCabal (doJailbreak super.integer-logarithms) (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; });
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
lukko = doJailbreak super.lukko;
parallel = doJailbreak super.parallel;
primitive = doJailbreak (dontCheck super.primitive);
@ -75,8 +75,9 @@ self: super: {
weeder = self.weeder_2_3_0;
generic-lens-core = self.generic-lens-core_2_2_0_0;
generic-lens = self.generic-lens_2_2_0_0;
th-desugar = self.th-desugar_1_12;
autoapply = self.autoapply_0_4_1_1;
th-desugar = self.th-desugar_1_13;
# 2021-11-08: Fixed in autoapply-0.4.2
autoapply = doJailbreak self.autoapply_0_4_1_1;
# Doesn't allow Dhall 1.39.*
weeder_2_3_0 = super.weeder_2_3_0.override {
@ -87,15 +88,15 @@ self: super: {
generic-lens_2_2_0_0 = dontCheck super.generic-lens_2_2_0_0;
# Apply patches from head.hackage.
alex = appendPatch (dontCheck super.alex) (pkgs.fetchpatch {
alex = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/fe192e12b88b09499d4aff0e562713e820544bd6/patches/alex-3.2.6.patch";
sha256 = "1rzs764a0nhx002v4fadbys98s6qblw4kx4g46galzjf5f7n2dn4";
});
}) (dontCheck super.alex);
doctest = dontCheck (doJailbreak super.doctest_0_18_1);
language-haskell-extract = appendPatch (doJailbreak super.language-haskell-extract) (pkgs.fetchpatch {
language-haskell-extract = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/language-haskell-extract-0.2.4.patch";
sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
});
}) (doJailbreak super.language-haskell-extract);
# The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
unordered-containers = dontCheck super.unordered-containers;
@ -127,19 +128,19 @@ self: super: {
ghc-lib = self.ghc-lib_9_0_1_20210324;
# 2021-09-18: Need semialign >= 1.2 for correct bounds
semialign = super.semialign_1_2;
semialign = super.semialign_1_2_0_1;
# Will probably be needed for brittany support
# https://github.com/lspitzner/czipwith/pull/2
#czipwith = appendPatch super.czipwith
#czipwith = appendPatch
# (pkgs.fetchpatch {
# url = "https://github.com/lspitzner/czipwith/commit/b6245884ae83e00dd2b5261762549b37390179f8.patch";
# sha256 = "08rpppdldsdwzb09fmn0j55l23pwyls2dyzziw3yjc1cm0j5vic5";
# });
# }) super.czipwith;
# 2021-09-18: https://github.com/mokus0/th-extras/pull/8
# Release is missing, but asked for in the above PR.
th-extras = overrideCabal super.th-extras (old: {
th-extras = overrideCabal (old: {
version = assert old.version == "0.0.0.4"; "unstable-2021-09-18";
src = pkgs.fetchFromGitHub {
owner = "mokus0";
@ -148,22 +149,22 @@ self: super: {
sha256 = "045f36yagrigrggvyb96zqmw8y42qjsllhhx2h20q25sk5h44xsd";
};
libraryHaskellDepends = old.libraryHaskellDepends ++ [self.th-abstraction];
});
}) super.th-extras;
# 2021-09-18: GHC 9 compat release is missing
# Issue: https://github.com/obsidiansystems/dependent-sum/issues/65
dependent-sum-template = dontCheck (appendPatch super.dependent-sum-template
dependent-sum-template = dontCheck (appendPatch
(pkgs.fetchpatch {
url = "https://github.com/obsidiansystems/dependent-sum/commit/8cf4c7fbc3bfa2be475a17bb7c94a1e1e9a830b5.patch";
sha256 = "02wyy0ciicq2x8lw4xxz3x5i4a550mxfidhm2ihh60ni6am498ff";
stripLen = 2;
extraPrefix = "";
}));
}) super.dependent-sum-template);
# 2021-09-18: cabal2nix does not detect the need for ghc-api-compat.
hiedb = overrideCabal super.hiedb (old: {
hiedb = overrideCabal (old: {
libraryHaskellDepends = old.libraryHaskellDepends ++ [self.ghc-api-compat];
});
}) super.hiedb;
# 2021-09-18: Need path >= 0.9.0 for ghc 9 compat
path = self.path_0_9_0;
@ -174,16 +175,7 @@ self: super: {
hls-ormolu-plugin = doJailbreak super.hls-ormolu-plugin;
# 2021-09-18: The following plugins dont work yet on ghc9.
haskell-language-server = appendConfigureFlags (super.haskell-language-server.override {
hls-tactics-plugin = null; # No upstream support, generic-lens-core fail
hls-splice-plugin = null; # No upstream support in hls 1.4.0, should be fixed in 1.5
hls-refine-imports-plugin = null; # same issue es splice-plugin
hls-class-plugin = null; # No upstream support
hls-fourmolu-plugin = null; # No upstream support, needs new fourmolu release
hls-stylish-haskell-plugin = null; # No upstream support
hls-brittany-plugin = null; # No upstream support, needs new brittany release
}) [
haskell-language-server = appendConfigureFlags [
"-f-tactic"
"-f-splice"
"-f-refineimports"
@ -192,5 +184,14 @@ self: super: {
"-f-fourmolu"
"-f-brittany"
"-f-stylishhaskell"
];
] (super.haskell-language-server.override {
hls-tactics-plugin = null; # No upstream support, generic-lens-core fail
hls-splice-plugin = null; # No upstream support in hls 1.4.0, should be fixed in 1.5
hls-refine-imports-plugin = null; # same issue es splice-plugin
hls-class-plugin = null; # No upstream support
hls-fourmolu-plugin = null; # No upstream support, needs new fourmolu release
hls-stylish-haskell-plugin = null; # No upstream support
hls-brittany-plugin = null; # No upstream support, needs new brittany release
});
}

View file

@ -44,77 +44,50 @@ self: super: {
xhtml = null;
# Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/20594
tf-random = overrideCabal super.tf-random {
tf-random = overrideCabal {
doHaddock = !pkgs.stdenv.isAarch64;
};
} super.tf-random;
aeson = appendPatch (doJailbreak super.aeson) (pkgs.fetchpatch {
aeson = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/aeson-1.5.6.0.patch";
sha256 = "07rk7f0lhgilxvbg2grpl1p5x25wjf9m7a0wqmi2jr0q61p9a0nl";
# The revision information is newer than that included in the patch
excludes = ["*.cabal"];
});
}) (doJailbreak super.aeson);
attoparsec = appendPatch (doJailbreak super.attoparsec_0_14_1) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/attoparsec-0.14.1.patch";
sha256 = "0nprywmi3i9ih8mcc8afyimrfjr8pbcjxr2ywz9gwdlwdplk21da";
});
# Tests use Data.Semigroup.Option
aeson_2_0_1_0 = dontCheck (doJailbreak super.aeson_2_0_1_0);
# 0.12.0 introduces support for 9.2
base-compat = self.base-compat_0_12_0;
base-compat-batteries = self.base-compat-batteries_0_12_0;
basement = overrideCabal (appendPatch super.basement (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/basement-0.0.12.patch";
sha256 = "0c8n2krz827cv87p3vb1vpl3v0k255aysjx9lq44gz3z1dhxd64z";
})) (drv: {
basement = overrideCabal (drv: {
# This is inside a conditional block so `doJailbreak` doesn't work
postPatch = "sed -i -e 's,<4.16,<4.17,' basement.cabal";
});
}) (appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/basement-0.0.12.patch";
sha256 = "0c8n2krz827cv87p3vb1vpl3v0k255aysjx9lq44gz3z1dhxd64z";
}) super.basement);
base16-bytestring = appendPatch super.base16-bytestring (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/base16-bytestring-1.0.1.0.patch";
sha256 = "19ajai9y04981zfpcdj1nlz44b12gjj4m1ncciijv43mnz82plji";
});
# Duplicate Show instances in tests and library cause compiling tests to fail
blaze-builder = appendPatch (dontCheck super.blaze-builder) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/blaze-builder-0.4.2.1.patch";
sha256 = "1h5ny3mlng69vwaabl3af8hlv4qi24wfw8s14lw2ksw1yjbgi0j8";
});
cereal = appendPatch (doJailbreak super.cereal) (pkgs.fetchpatch {
cereal = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/cereal-0.5.8.1.patch";
sha256 = "03v4nxwz9y6viaa8anxcmp4zdf2clczv4pf9fqq6lnpplpz5i128";
});
}) (doJailbreak super.cereal);
# Tests fail because of typechecking changes
conduit = dontCheck super.conduit;
constraints = appendPatch (doJailbreak super.constraints) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/constraints-0.13.patch";
sha256 = "0cr4qzw0fbwy97f3wx0v3mv8yc642ahpfa80kaqrq191232fzzf3";
});
cryptonite = appendPatch super.cryptonite (pkgs.fetchpatch {
cryptonite = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/cryptonite-0.29.patch";
sha256 = "1g48lrmqgd88hqvfq3klz7lsrpwrir2v1931myrhh6dy0d9pqj09";
});
}) super.cryptonite;
# cabal-install needs more recent versions of Cabal
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
Cabal = self.Cabal_3_6_2_0;
});
doctest = appendPatch (dontCheck (doJailbreak super.doctest_0_18_1)) (pkgs.fetchpatch {
doctest = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/doctest-0.18.1.patch";
sha256 = "030kdsk0fg08cgdcjpyv6z8ym1vkkrbd34aacs91y5hqzc9g79y1";
});
entropy = appendPatch super.entropy (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/entropy-0.4.1.6.patch";
sha256 = "0pbbl6m8b3snf9cz6rs0ljmacpsavayfn0s3p67hdcmndy3ndawi";
});
}) (dontCheck (doJailbreak super.doctest_0_18_1));
# Tests fail in GHC 9.2
extra = dontCheck super.extra;
@ -122,99 +95,95 @@ self: super: {
# Jailbreaks & Version Updates
assoc = doJailbreak super.assoc;
async = doJailbreak super.async;
attoparsec = super.attoparsec_0_14_2;
base64-bytestring = doJailbreak super.base64-bytestring;
base-compat = self.base-compat_0_12_1;
base-compat-batteries = self.base-compat-batteries_0_12_1;
binary-instances = doJailbreak super.binary-instances;
binary-orphans = super.binary-orphans_1_0_2;
ChasingBottoms = doJailbreak super.ChasingBottoms;
cpphs = overrideCabal super.cpphs (drv: { postPatch = "sed -i -e 's,time >=1.5 && <1.11,time >=1.5 \\&\\& <1.12,' cpphs.cabal";});
constraints = doJailbreak super.constraints;
cpphs = overrideCabal (drv: { postPatch = "sed -i -e 's,time >=1.5 && <1.11,time >=1.5 \\&\\& <1.12,' cpphs.cabal";}) super.cpphs;
cryptohash-md5 = doJailbreak super.cryptohash-md5;
cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
data-fix = doJailbreak super.data-fix;
dec = doJailbreak super.dec;
ed25519 = doJailbreak super.ed25519;
ghc-byteorder = doJailbreak super.ghc-byteorder;
ghc-lib = self.ghc-lib_9_2_1_20211101;
ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
hackage-security = doJailbreak super.hackage-security;
hashable = super.hashable_1_4_0_0;
hashable-time = doJailbreak super.hashable-time;
HTTP = overrideCabal (doJailbreak super.HTTP) (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; });
integer-logarithms = overrideCabal (doJailbreak super.integer-logarithms) (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; });
hedgehog = doJailbreak super.hedgehog;
HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
integer-logarithms = overrideCabal (drv: { postPatch = "sed -i -e 's, <1.1, <1.3,' integer-logarithms.cabal"; }) (doJailbreak super.integer-logarithms);
indexed-traversable = doJailbreak super.indexed-traversable;
indexed-traversable-instances = doJailbreak super.indexed-traversable-instances;
lifted-async = doJailbreak super.lifted-async;
lukko = doJailbreak super.lukko;
network = super.network_3_1_2_5;
OneTuple = super.OneTuple_0_3_1;
parallel = doJailbreak super.parallel;
polyparse = overrideCabal (doJailbreak super.polyparse) (drv: { postPatch = "sed -i -e 's, <0.11, <0.12,' polyparse.cabal"; });
polyparse = overrideCabal (drv: { postPatch = "sed -i -e 's, <0.11, <0.12,' polyparse.cabal"; }) (doJailbreak super.polyparse);
primitive = doJailbreak super.primitive;
quickcheck-instances = super.quickcheck-instances_0_3_26_1;
regex-posix = doJailbreak super.regex-posix;
resolv = doJailbreak super.resolv;
semialign = super.semialign_1_2_0_1;
singleton-bool = doJailbreak super.singleton-bool;
scientific = doJailbreak super.scientific;
shelly = doJailbreak super.shelly;
split = doJailbreak super.split;
splitmix = doJailbreak super.splitmix;
tar = doJailbreak super.tar;
tasty-hedgehog = doJailbreak super.tasty-hedgehog;
tasty-hspec = doJailbreak super.tasty-hspec;
th-desugar = self.th-desugar_1_13;
these = doJailbreak super.these;
time-compat = doJailbreak super.time-compat;
type-equality = doJailbreak super.type-equality;
unordered-containers = doJailbreak super.unordered-containers;
vector = doJailbreak (dontCheck super.vector);
vector-binary-instances = doJailbreak super.vector-binary-instances;
# Upper bound on `hashable` is too restrictive
witherable = doJailbreak super.witherable;
zlib = doJailbreak super.zlib;
indexed-traversable-instances = doJailbreak super.indexed-traversable-instances;
hpack = overrideCabal (doJailbreak super.hpack) (drv: {
hpack = overrideCabal (drv: {
# Cabal 3.6 seems to preserve comments when reading, which makes this test fail
# 2021-10-10: 9.2.1 is not yet supported (also no issue)
testFlags = [
"--skip=/Hpack/renderCabalFile/is inverse to readCabalFile/"
] ++ drv.testFlags or [];
});
}) (doJailbreak super.hpack);
# Patch for TH code from head.hackage
vector-th-unbox = appendPatch (doJailbreak super.vector-th-unbox) (pkgs.fetchpatch {
vector-th-unbox = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/vector-th-unbox-0.2.1.9.patch";
sha256 = "02bvvy3hx3cf4y4dr64zl5pjvq8giwk4286j5g1n6k8ikyn2403p";
});
# Patch for TH code from head.hackage
invariant = appendPatch (doJailbreak super.invariant) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/invariant-0.5.4.patch";
sha256 = "17gg8ck4r6qmlbcbpbnqzksgf5q7i891zs6axfzhas6ajncylxvc";
});
}) (doJailbreak super.vector-th-unbox);
# base 4.15 support from head.hackage
lens = appendPatch (doJailbreak super.lens_5_0_1) (pkgs.fetchpatch {
lens = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/lens-5.0.1.patch";
sha256 = "1s8qqg7ymvv94dnfnr1ragx91chh9y7ydc4jx25zn361wbn00pv7";
});
semigroupoids = overrideCabal super.semigroupoids (drv: {
# Patch from head.hackage for base 4.15 compat
patches = drv.patches or [] ++ [
(pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/semigroupoids-5.3.5.patch";
sha256 = "0xrn1gv6b2n76522pk2nfp4z69kvp14l2zpif2f8zzz6cwcrx9w8";
})
];
# acrobatics to make the patch apply
prePatch = ''
find . -type f | xargs -L 1 ${pkgs.buildPackages.dos2unix}/bin/dos2unix
'';
editedCabalFile = null;
revision = null;
});
}) (doJailbreak super.lens_5_0_1);
# Syntax error in tests fixed in https://github.com/simonmar/alex/commit/84b29475e057ef744f32a94bc0d3954b84160760
alex = dontCheck super.alex;
# Apply patches from head.hackage.
language-haskell-extract = appendPatch (doJailbreak super.language-haskell-extract) (pkgs.fetchpatch {
language-haskell-extract = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/language-haskell-extract-0.2.4.patch";
sha256 = "0w4y3v69nd3yafpml4gr23l94bdhbmx8xky48a59lckmz5x9fgxv";
});
}) (doJailbreak super.language-haskell-extract);
hashable = super.hashable_1_3_4_1;
haskell-src-meta = appendPatch (doJailbreak super.haskell-src-meta) (pkgs.fetchpatch {
haskell-src-meta = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/haskell-src-meta-0.8.7.patch";
sha256 = "013k8hpxac226j47cdzgdf9a1j91kmm0cvv7n8zwlajbj3y9bzjp";
});
}) (doJailbreak super.haskell-src-meta);
# Tests depend on `parseTime` which is no longer available
hourglass = dontCheck super.hourglass;
@ -224,36 +193,33 @@ self: super: {
random = dontCheck super.random_1_2_1;
# 0.16.0 introduced support for GHC 9.0.x, stackage has 0.15.0
memory = appendPatch super.memory_0_16_0 (pkgs.fetchpatch {
memory = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/memory-0.16.0.patch";
sha256 = "1kjganx729a6xfgfnrb3z7q6mvnidl042zrsd9n5n5a3i76nl5nl";
});
}) super.memory_0_16_0;
# GHC 9.0.x doesn't like `import Spec (main)` in Main.hs
# https://github.com/snoyberg/mono-traversable/issues/192
mono-traversable = dontCheck super.mono-traversable;
quickcheck-instances = appendPatch (doJailbreak super.quickcheck-instances) (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/quickcheck-instances-0.3.25.2.patch";
sha256 = "0ndnb6wbnhxxwy69jjdpmd7gmmv6asmx1jczwz1hsn921mn1ilnp";
# `.cabal` revision information has been included in the patch
excludes = ["*.cabal"];
});
# Disable tests pending resolution of
# https://github.com/Soostone/retry/issues/71
retry = dontCheck super.retry;
streaming-commons = appendPatch super.streaming-commons (pkgs.fetchpatch {
# Upper bound on `hashable` is too restrictive
semigroupoids = overrideCabal (drv: { postPatch = "sed -i -e 's,hashable >= 1.2.7.0 && < 1.4,hashable >= 1.2.7.0 \\&\\& < 1.5,' semigroupoids.cabal";}) super.semigroupoids;
streaming-commons = appendPatch (pkgs.fetchpatch {
url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/streaming-commons-0.2.2.1.patch";
sha256 = "04wi1jskr3j8ayh88kkx4irvhhgz0i7aj6fblzijy0fygikvidpy";
});
}) super.streaming-commons;
# Tests have a circular dependency on quickcheck-instances
text-short = dontCheck super.text-short_0_1_4;
# hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
hlint = super.hlint_3_3_4.overrideScope (self: super: {
ghc-lib-parser = overrideCabal self.ghc-lib-parser_9_0_1_20210324 {
doHaddock = false;
};
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_0_0_4;
ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
});
}

View file

@ -75,6 +75,6 @@ self: super: {
stack = doJailbreak super.stack;
# Fix build with ghc 8.6.x.
git-annex = appendPatch super.git-annex ./patches/git-annex-fix-ghc-8.6.x-build.patch;
git-annex = appendPatch ./patches/git-annex-fix-ghc-8.6.x-build.patch super.git-annex;
}

View file

@ -38,17 +38,17 @@ self: super:
# doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency
doctest = pkgs.lib.warn "ignoring dependency on doctest" null;
ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
ghcjs-dom = overrideCabal (drv: {
libraryHaskellDepends = with self; [
ghcjs-base ghcjs-dom-jsffi text transformers
];
configureFlags = [ "-fjsffi" "-f-webkit" ];
});
}) super.ghcjs-dom;
ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
ghcjs-dom-jsffi = overrideCabal (drv: {
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
broken = false;
});
}) super.ghcjs-dom-jsffi;
# https://github.com/Deewiant/glob/issues/39
Glob = dontCheck super.Glob;
@ -59,9 +59,9 @@ self: super:
# uses doctest
http-types = dontCheck super.http-types;
jsaddle = overrideCabal super.jsaddle (drv: {
jsaddle = overrideCabal (drv: {
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
});
}) super.jsaddle;
# Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests
logict = dontCheck super.logict;
@ -74,13 +74,13 @@ self: super:
# Terminal test not supported on ghcjs
QuickCheck = dontCheck super.QuickCheck;
reflex = overrideCabal super.reflex (drv: {
reflex = overrideCabal (drv: {
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
});
}) super.reflex;
reflex-dom = overrideCabal super.reflex-dom (drv: {
reflex-dom = overrideCabal (drv: {
libraryHaskellDepends = removeLibraryHaskellDepends ["jsaddle-webkit2gtk"] (drv.libraryHaskellDepends or []);
});
}) super.reflex-dom;
# https://github.com/dreixel/syb/issues/21
syb = dontCheck super.syb;
@ -101,6 +101,9 @@ self: super:
# still present here https://github.com/glguy/th-abstraction/issues/53
th-abstraction = dontCheck super.th-abstraction;
# https://github.com/haskell/vector/issues/410
vector = appendPatch super.vector (../compilers/ghcjs/patches/vector-ghcjs-storable-set.patch);
# Need hedgehog for tests, which fails to compile due to dep on concurrent-output
zenc = dontCheck super.zenc;
}

View file

@ -100,6 +100,7 @@ broken-packages:
- AhoCorasick
- aig
- airbrake
- airship
- airtable-api
- air-th
- ajhc
@ -618,6 +619,7 @@ broken-packages:
- cg
- cgen
- cgi-utils
- cgroup-rts-threads
- chalkboard
- chalmers-lava2000
- character-cases
@ -745,6 +747,7 @@ broken-packages:
- compact-list
- compact-map
- compact-mutable-vector
- compact-sequences
- compact-socket
- compact-string
- compact-string-fix
@ -1298,6 +1301,7 @@ broken-packages:
- event-driven
- eventful-dynamodb
- eventful-sql-common
- eventlog2html
- eventloop
- eventstore
- ewe
@ -1716,6 +1720,7 @@ broken-packages:
- goal-core
- gochan
- godot-haskell
- godot-megaparsec
- gofer-prelude
- gogol-admin-emailmigration
- gogol-affiliates
@ -1836,6 +1841,7 @@ broken-packages:
- haddock-cheatsheet
- haddock-leksah
- haddock-test
- hadolint
- hadoop-formats
- hadoop-rpc
- hafar
@ -2503,6 +2509,7 @@ broken-packages:
- IcoGrid
- iconv-typed
- ideas
- ide-backend-common
- idempotent
- identifiers
- idiii
@ -2643,6 +2650,7 @@ broken-packages:
- join-api
- joinlist
- jonathanscard
- jordan
- jort
- jpeg
- jsaddle-hello
@ -2652,6 +2660,7 @@ broken-packages:
- json-alt
- json-assertions
- json-ast-quickcheck
- JSONb
- json-builder
- json-encoder
- jsonextfilter
@ -2740,7 +2749,10 @@ broken-packages:
- lambda-bridge
- lambda-canvas
- lambdacms-core
- lambdacube-core
- lambdacube-engine
- lambdacube-ir
- LambdaDesigner
- Lambdajudge
- LambdaNet
- lambdatex
@ -2778,6 +2790,7 @@ broken-packages:
- language-typescript
- language-vhdl
- language-webidl
- lapack
- LargeCardinalHierarchy
- Lastik
- latest-npm-version
@ -3195,6 +3208,7 @@ broken-packages:
- morphisms-functors
- morphisms-objects
- morte
- mortred
- moto-postgresql
- motor-reflection
- mount
@ -3797,6 +3811,7 @@ broken-packages:
- postgres-embedded
- PostgreSQL
- postgresql-lo-stream
- postgresql-migration
- postgresql-named
- postgresql-resilient
- postgresql-simple-bind
@ -3903,6 +3918,7 @@ broken-packages:
- proxy-kindness
- proxy-mapping
- prune-juice
- psc-ide
- pseudo-trie
- PTQ
- publicsuffixlistcreate
@ -3916,7 +3932,7 @@ broken-packages:
- Pup-Events-Server
- pure-io
- pure-priority-queue
- purescript-cst
- purescript-tsd-gen
- pure-zlib
- pusher-haskell
- pusher-ws
@ -4884,6 +4900,7 @@ broken-packages:
- text-and-plots
- text-ascii
- text-containers
- text-display
- text-format-heavy
- text-generic-pretty
- text-icu-normalized
@ -4897,6 +4914,7 @@ broken-packages:
- text-register-machine
- text-replace
- text-time
- text-trie
- textual
- text-utf8
- text-xml-qq
@ -5323,6 +5341,7 @@ broken-packages:
- wavefront-obj
- weak-bag
- weather-api
- webapi
- webapp
- WebBits
- webby
@ -5461,6 +5480,7 @@ broken-packages:
- yall
- yam-app
- yam-config
- yaml-config
- yamlkeysdiff
- yaml-pretty-extras
- YamlReference
@ -5556,6 +5576,7 @@ broken-packages:
- zendesk-api
- zenhack-prelude
- zeno
- zephyr
- zeromq4-clone-pattern
- zeromq4-conduit
- zeromq4-patterns

View file

@ -94,6 +94,10 @@ default-package-overrides:
- autoapply < 0.4.1.1
# 2021-10-22: 1.8 breaks shake-bench
- SVGFonts < 1.8
# 2021-11-09: 0.20.6 can't be built with aeson < 2.0 which is a pain to override at the moment
- futhark < 0.20.6
# 2021-11-09: ghc-bignum is bundled starting with 9.0.1; only 1.0 builds with GHCs prior to 9.2.1
- ghc-bignum == 1.0
extra-packages:
- base16-bytestring < 1 # required for cabal-install etc.
@ -110,10 +114,10 @@ extra-packages:
- 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
- happy == 1.19.12 # for ghcjs
- hinotify == 0.3.9 # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
- immortal == 0.2.2.1 # required by Hasura 1.3.1, 2020-08-20
- language-javascript == 0.7.0.0 # required by purescript
- 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
@ -123,6 +127,9 @@ extra-packages:
- ShellCheck == 0.7.1 # 2021-05-09: haskell-ci 0.12.1 pins this version
- cabal-install-parsers == 0.4.2 # 2021-09-04: needed haskell-ci by until it upgrades to Cabal >= 3.6
- ghc-api-compat == 8.6 # 2021-09-07: preserve for GHC 8.8.4
- ghc-lib == 9.0.1.* # 2021-11-05: Need one GHC 9.0.1 compatible version
- ghc-lib-parser == 9.0.1.* # 2021-11-05: Need one GHC 9.0.1 compatible version
- ghc-lib-parser-ex == 9.0.* # 2021-11-05: Need one GHC 9.0.1 compatible version
package-maintainers:
abbradar:
@ -141,6 +148,7 @@ package-maintainers:
- password
- password-instances
- pretty-simple
- purenix
- spago
- termonad
dalpd:
@ -402,13 +410,18 @@ unsupported-platforms:
gi-dbusmenu: [ x86_64-darwin, aarch64-darwin ]
gi-ggit: [ x86_64-darwin, aarch64-darwin ]
gi-ibus: [ x86_64-darwin, aarch64-darwin ]
gi-javascriptcore: [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
gi-ostree: [ x86_64-darwin, aarch64-darwin ]
gi-vte: [ x86_64-darwin, aarch64-darwin ]
gi-webkit2: [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
gi-webkit2webextension: [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
gi-wnck: [ x86_64-darwin, aarch64-darwin ]
gnome-keyring: [ x86_64-darwin, aarch64-darwin ]
gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
gtk-sni-tray: [ x86_64-darwin, aarch64-darwin ]
haskell-snake: [ x86_64-darwin, aarch64-darwin ]
hbro: [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
hbro-contrib: [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
hcwiid: [ x86_64-darwin, aarch64-darwin ]
hevm: [ aarch64-linux ] # depends on sbv, which is not supported on aarch64-linux
HFuse: [ x86_64-darwin, aarch64-darwin ]

View file

@ -1,4 +1,4 @@
# Stackage LTS 18.13
# Stackage LTS 18.15
# This file is auto-generated by
# maintainers/scripts/haskell/update-stackage.sh
default-package-overrides:
@ -19,16 +19,16 @@ default-package-overrides:
- aeson-casing ==0.2.0.0
- aeson-combinators ==0.0.5.0
- aeson-commit ==1.3
- aeson-compat ==0.3.9
- aeson-compat ==0.3.10
- aeson-default ==0.9.1.0
- aeson-diff ==1.1.0.9
- aeson-generic-compat ==0.0.1.3
- aeson-lens ==0.5.0.0
- aeson-optics ==1.1.0.1
- aeson-optics ==1.1.1
- aeson-picker ==0.1.0.5
- aeson-pretty ==0.8.8
- aeson-qq ==0.8.3
- aeson-schemas ==1.3.4
- aeson-pretty ==0.8.9
- aeson-qq ==0.8.4
- aeson-schemas ==1.3.5
- aeson-typescript ==0.3.0.1
- aeson-with ==0.1.2.0
- aeson-yak ==0.1.1.3
@ -42,7 +42,7 @@ default-package-overrides:
- alex-meta ==0.3.0.13
- alg ==0.2.13.1
- algebraic-graphs ==0.5
- Allure ==0.10.2.0
- Allure ==0.10.3.0
- almost-fix ==0.0.2
- alsa-core ==0.5.0.1
- alsa-mixer ==0.3.0
@ -140,7 +140,7 @@ default-package-overrides:
- amazonka-workspaces ==1.6.1
- amazonka-xray ==1.6.1
- amqp ==0.22.0
- amqp-utils ==0.6.2.2
- amqp-utils ==0.6.3.2
- annotated-wl-pprint ==0.7.0
- ansi-terminal ==0.11
- ansi-wl-pprint ==0.6.9
@ -193,8 +193,8 @@ default-package-overrides:
- attoparsec-iso8601 ==1.0.2.0
- attoparsec-path ==0.0.0.1
- audacity ==0.0.2
- aur ==7.0.6
- aura ==3.2.6
- aur ==7.0.7
- aura ==3.2.5
- authenticate ==1.3.5
- authenticate-oauth ==1.6.0.1
- autoexporter ==1.1.20
@ -207,8 +207,8 @@ default-package-overrides:
- backtracking ==0.1.0
- bank-holidays-england ==0.2.0.6
- barbies ==2.0.3.0
- base16 ==0.3.0.1
- base16-bytestring ==1.0.1.0
- base16 ==0.3.0.2
- base16-bytestring ==1.0.2.0
- base16-lens ==0.1.3.2
- base32 ==0.2.1.0
- base32-lens ==0.1.1.1
@ -223,7 +223,7 @@ default-package-overrides:
- base-compat ==0.11.2
- base-compat-batteries ==0.11.2
- basement ==0.0.12
- base-orphans ==0.8.5
- base-orphans ==0.8.6
- base-prelude ==1.4
- base-unicode-symbols ==0.2.4.2
- basic-prelude ==0.7.0
@ -235,7 +235,7 @@ default-package-overrides:
- bech32 ==1.1.1
- bech32-th ==1.0.2
- bench ==1.0.12
- benchpress ==0.2.2.17
- benchpress ==0.2.2.18
- between ==0.11.0.0
- bibtex ==0.1.0.6
- bifunctors ==5.5.11
@ -246,14 +246,14 @@ default-package-overrides:
- binary-conduit ==1.3.1
- binary-ext ==2.0.4
- binary-ieee754 ==0.1.0.0
- binary-instances ==1.0.1
- binary-instances ==1.0.2
- binary-list ==1.1.1.2
- binary-orphans ==1.0.1
- binary-parser ==0.5.7
- binary-parsers ==0.2.4.0
- binary-search ==2.0.0
- binary-shared ==0.8.3
- binary-tagged ==0.3
- binary-tagged ==0.3.1
- bindings-DSL ==1.0.25
- bindings-GLFW ==3.3.2.0
- bindings-libzip ==1.0.1
@ -271,7 +271,7 @@ default-package-overrides:
- blas-comfort-array ==0.0.0.3
- blas-ffi ==0.1
- blaze-bootstrap ==0.1.0.1
- blaze-builder ==0.4.2.1
- blaze-builder ==0.4.2.2
- blaze-html ==0.9.1.2
- blaze-markup ==0.8.2.8
- blaze-svg ==0.3.6.1
@ -302,11 +302,11 @@ default-package-overrides:
- buffer-builder ==0.2.4.7
- buffer-pipe ==0.0
- bugsnag-haskell ==0.0.4.1
- bugsnag-hs ==0.2.0.4
- bugzilla-redhat ==0.3.2
- bugsnag-hs ==0.2.0.7
- bugzilla-redhat ==0.3.3
- burrito ==1.2.0.2
- butcher ==1.3.3.2
- buttplug-hs-core ==0.1.0.0
- buttplug-hs-core ==0.1.0.1
- bv ==0.5
- bv-little ==1.1.1
- byteable ==0.1.1
@ -318,7 +318,7 @@ default-package-overrides:
- byteset ==0.1.1.0
- bytestring-builder ==0.10.8.2.0
- bytestring-conversion ==0.3.1
- bytestring-lexing ==0.5.0.2
- bytestring-lexing ==0.5.0.8
- bytestring-mmap ==0.2.2
- bytestring-strict-builder ==0.4.5.4
- bytestring-to-vector ==0.3.0.1
@ -329,7 +329,7 @@ default-package-overrides:
- c14n ==0.1.0.1
- c2hs ==0.28.8
- cabal2spec ==2.6.2
- cabal-appimage ==0.3.0.2
- cabal-appimage ==0.3.0.3
- cabal-clean ==0.1.20210924
- cabal-debian ==5.1
- cabal-doctest ==1.0.8
@ -355,12 +355,12 @@ default-package-overrides:
- casing ==0.1.4.1
- cassava ==0.5.2.0
- cassava-conduit ==0.6.0
- cassava-megaparsec ==2.0.2
- cassava-megaparsec ==2.0.4
- cast ==0.1.0.2
- category ==0.2.5.0
- cayley-client ==0.4.15
- cborg ==0.2.5.0
- cborg-json ==0.2.2.0
- cayley-client ==0.4.16
- cborg ==0.2.6.0
- cborg-json ==0.2.3.0
- cdar-mBound ==0.1.0.4
- c-enum ==0.1.0.1
- cereal ==0.5.8.1
@ -372,11 +372,11 @@ default-package-overrides:
- chan ==0.0.4.1
- ChannelT ==0.0.0.7
- character-cases ==0.1.0.6
- charset ==0.3.8
- charset ==0.3.9
- charsetdetect-ae ==1.1.0.4
- Chart ==1.9.3
- chaselev-deque ==0.5.0.5
- ChasingBottoms ==1.3.1.10
- ChasingBottoms ==1.3.1.11
- cheapskate ==0.1.1.2
- cheapskate-highlight ==0.1.0.0
- cheapskate-lucid ==0.1.0.0
@ -396,9 +396,9 @@ default-package-overrides:
- circle-packing ==0.1.0.6
- circular ==0.4.0.1
- citeproc ==0.4.0.1
- clash-ghc ==1.4.3
- clash-lib ==1.4.3
- clash-prelude ==1.4.3
- clash-ghc ==1.4.6
- clash-lib ==1.4.6
- clash-prelude ==1.4.6
- classy-prelude ==1.5.0
- classy-prelude-conduit ==1.5.0
- clay ==0.13.3
@ -418,15 +418,15 @@ default-package-overrides:
- collect-errors ==0.1.5.0
- co-log-concurrent ==0.5.1.0
- co-log-core ==0.2.1.1
- Color ==0.3.2
- Color ==0.3.3
- colorful-monoids ==0.2.1.3
- colorize-haskell ==1.0.1
- colour ==2.3.6
- combinatorial ==0.1.0.1
- comfort-array ==0.4.1
- comfort-graph ==0.0.3.1
- commonmark ==0.2.1
- commonmark-extensions ==0.2.1.2
- commonmark ==0.2.1.1
- commonmark-extensions ==0.2.2.1
- commonmark-pandoc ==0.2.1.1
- commutative ==0.0.2
- comonad ==5.0.8
@ -466,21 +466,21 @@ default-package-overrides:
- connection-pool ==0.2.2
- console-style ==0.0.2.1
- constraint ==0.1.4.0
- constraints ==0.13
- constraints-extras ==0.3.1.0
- constraints ==0.13.1
- constraints-extras ==0.3.2.0
- constraint-tuples ==0.1.2
- construct ==0.3.0.2
- contravariant ==1.5.5
- contravariant-extras ==0.3.5.2
- contravariant-extras ==0.3.5.3
- control-bool ==0.2.1
- control-dsl ==0.2.1.3
- control-monad-free ==0.6.2
- control-monad-omega ==0.3.2
- convertible ==1.1.1.0
- cookie ==0.4.5
- core-data ==0.2.1.9
- core-program ==0.2.9.1
- core-text ==0.3.2.0
- core-data ==0.2.1.11
- core-program ==0.2.12.0
- core-text ==0.3.5.0
- countable ==1.0
- country ==0.2.1
- cpphs ==1.20.9.1
@ -490,7 +490,7 @@ default-package-overrides:
- crackNum ==3.1
- crc32c ==0.0.0
- credential-store ==0.1.2
- criterion ==1.5.10.0
- criterion ==1.5.11.0
- criterion-measurement ==0.1.3.0
- cron ==0.7.0
- crypto-api ==0.13.3
@ -498,9 +498,9 @@ default-package-overrides:
- crypto-enigma ==0.1.1.6
- cryptohash ==0.11.9
- cryptohash-cryptoapi ==0.1.4
- cryptohash-md5 ==0.11.100.1
- cryptohash-md5 ==0.11.101.0
- cryptohash-sha1 ==0.11.100.1
- cryptohash-sha256 ==0.11.102.0
- cryptohash-sha256 ==0.11.102.1
- cryptohash-sha512 ==0.11.100.1
- cryptonite ==0.29
- cryptonite-conduit ==0.2.2
@ -554,13 +554,13 @@ default-package-overrides:
- data-forest ==0.1.0.8
- data-has ==0.4.0.0
- data-hash ==0.2.0.1
- data-interval ==2.1.0
- data-interval ==2.1.1
- data-inttrie ==0.1.4
- data-lens-light ==0.1.2.3
- data-memocombinators ==0.5.1
- data-msgpack ==0.0.13
- data-msgpack-types ==0.0.3
- data-or ==1.0.0.5
- data-or ==1.0.0.7
- data-ordlist ==0.4.7.0
- data-ref ==0.0.2
- data-reify ==0.6.3
@ -620,7 +620,7 @@ default-package-overrides:
- dlist-nonempty ==0.1.1
- dns ==4.0.1
- dockerfile ==0.2.0
- doclayout ==0.3.0.2
- doclayout ==0.3.1.1
- doctemplates ==0.9
- doctest ==0.17
- doctest-discover ==0.2.0.0
@ -683,10 +683,10 @@ default-package-overrides:
- elynx-tree ==0.5.1.1
- email-validate ==2.3.2.15
- emd ==0.2.0.0
- emojis ==0.1.1
- emojis ==0.1.2
- enclosed-exceptions ==1.0.3
- ENIG ==0.0.1.0
- entropy ==0.4.1.6
- entropy ==0.4.1.7
- enummapset ==0.6.0.3
- enumset ==0.0.5
- enum-subset-generate ==0.1.0.0
@ -696,7 +696,7 @@ default-package-overrides:
- epub-metadata ==4.5
- eq ==4.2.1
- equal-files ==0.0.5.3
- equational-reasoning ==0.7.0.0
- equational-reasoning ==0.7.0.1
- equivalence ==0.3.5
- erf ==2.0.0.0
- error-or ==0.1.2.0
@ -716,7 +716,7 @@ default-package-overrides:
- event-list ==0.1.2
- eventstore ==1.4.1
- every ==0.0.1
- exact-combinatorics ==0.2.0.9
- exact-combinatorics ==0.2.0.10
- exact-pi ==0.5.0.1
- exception-hierarchy ==0.1.0.4
- exception-mtl ==0.4.0.1
@ -925,7 +925,7 @@ default-package-overrides:
- gingersnap ==0.3.1.0
- gi-pango ==1.0.24
- githash ==0.1.6.2
- github-release ==1.3.7
- github-release ==1.3.8
- github-rest ==1.0.3
- github-types ==0.2.1
- github-webhooks ==0.15.0
@ -933,7 +933,7 @@ default-package-overrides:
- gitrev ==1.3.1
- gi-xlib ==2.0.10
- gl ==0.9
- glabrous ==2.0.4
- glabrous ==2.0.5
- GLFW-b ==3.3.0.0
- Glob ==0.10.1
- gloss ==1.13.2.1
@ -945,13 +945,13 @@ default-package-overrides:
- goldplate ==0.2.0
- google-isbn ==1.0.3
- gopher-proxy ==0.1.1.2
- gothic ==0.1.6
- gothic ==0.1.7
- gpolyline ==0.1.0.1
- graph-core ==0.3.0.0
- graphite ==0.10.0.1
- graphql-client ==1.1.1
- graphs ==0.7.1
- graphula ==2.0.0.5
- graphula ==2.0.1.0
- graphviz ==2999.20.1.0
- graph-wrapper ==0.2.6.0
- gravatar ==0.8.0
@ -974,7 +974,7 @@ default-package-overrides:
- hall-symbols ==0.1.0.6
- hamtsolo ==1.0.3
- HandsomeSoup ==0.4.2
- hapistrano ==0.4.2.0
- hapistrano ==0.4.3.0
- happstack-server ==7.7.1.1
- happy ==1.20.0
- happy-meta ==0.2.0.11
@ -985,7 +985,7 @@ default-package-overrides:
- hashids ==1.0.2.4
- hashing ==0.1.0.1
- hashmap ==1.3.3
- hashtables ==1.2.4.1
- hashtables ==1.2.4.2
- haskeline ==0.8.2
- haskell-awk ==1.2.0.1
- haskell-gi ==0.25.0
@ -1003,7 +1003,7 @@ default-package-overrides:
- haskell-src-meta ==0.8.7
- haskey-btree ==0.3.0.1
- hasktags ==0.72.0
- hasql ==1.4.5.2
- hasql ==1.4.5.3
- hasql-notifications ==0.2.0.0
- hasql-optparse-applicative ==0.3.0.6
- hasql-pool ==0.5.2
@ -1011,7 +1011,7 @@ default-package-overrides:
- hasql-transaction ==1.0.1
- hasty-hamiltonian ==1.3.4
- HaTeX ==3.22.3.0
- HaXml ==1.25.6
- HaXml ==1.25.7
- haxr ==3000.11.4.1
- HCodecs ==0.5.2
- hdaemonize ==0.5.6
@ -1082,7 +1082,7 @@ default-package-overrides:
- hourglass ==0.2.12
- hourglass-orphans ==0.1.0.0
- hp2pretty ==0.10
- hpack ==0.34.4
- hpack ==0.34.5
- hpack-dhall ==0.5.3
- hpc-codecov ==0.3.0.0
- hpc-lcov ==1.0.1
@ -1101,7 +1101,7 @@ default-package-overrides:
- hsinstall ==2.6
- HSlippyMap ==3.0.1
- hslogger ==1.3.1.0
- hslua ==1.3.0.1
- hslua ==1.3.0.2
- hslua-aeson ==1.0.3.1
- hslua-module-doclayout ==0.2.0.1
- hslua-module-path ==0.1.0.1
@ -1161,7 +1161,7 @@ default-package-overrides:
- http-directory ==0.1.8
- http-download ==0.2.0.0
- httpd-shed ==0.4.1.1
- http-link-header ==1.2.0
- http-link-header ==1.2.1
- http-media ==0.8.0.0
- http-query ==0.1.0.1
- http-reverse-proxy ==0.6.0
@ -1229,18 +1229,18 @@ default-package-overrides:
- indexed-containers ==0.1.0.2
- indexed-list-literals ==0.2.1.3
- indexed-profunctors ==0.1.1
- indexed-traversable ==0.1.1
- indexed-traversable ==0.1.2
- indexed-traversable-instances ==0.1
- infer-license ==0.2.0
- inflections ==0.4.0.6
- influxdb ==1.9.2
- influxdb ==1.9.2.1
- ini ==0.4.1
- inj ==1.0
- inline-c ==0.9.1.5
- inline-c-cpp ==0.4.0.3
- inline-r ==0.10.4
- inliterate ==0.1.0
- input-parsers ==0.2.3
- input-parsers ==0.2.3.1
- insert-ordered-containers ==0.2.5
- inspection-testing ==0.4.6.0
- instance-control ==0.1.2.0
@ -1257,9 +1257,9 @@ default-package-overrides:
- intervals ==0.9.2
- intro ==0.9.0.0
- intset-imperative ==0.1.0.0
- invariant ==0.5.4
- invariant ==0.5.5
- invertible ==0.2.0.7
- invertible-grammar ==0.1.3.1
- invertible-grammar ==0.1.3.2
- io-machine ==0.2.0.0
- io-manager ==0.1.0.3
- io-memoize ==1.1.1.0
@ -1270,8 +1270,8 @@ default-package-overrides:
- ip6addr ==1.0.2
- ipa ==0.3.1.1
- iproute ==1.7.11
- IPv6Addr ==2.0.2
- ipynb ==0.1.0.1
- IPv6Addr ==2.0.3
- ipynb ==0.1.0.2
- ipython-kernel ==0.10.2.1
- irc ==0.6.1.0
- irc-client ==1.1.2.2
@ -1299,12 +1299,12 @@ default-package-overrides:
- js-flot ==0.8.3
- js-jquery ==3.3.1
- json ==0.10
- json-feed ==1.0.13
- json-feed ==1.0.14
- jsonifier ==0.1.1
- jsonpath ==0.2.0.0
- json-rpc ==1.0.3
- json-rpc-generic ==0.2.1.6
- JuicyPixels ==3.3.5
- JuicyPixels ==3.3.6
- JuicyPixels-blurhash ==0.1.0.3
- JuicyPixels-extra ==0.5.2
- JuicyPixels-scale-dct ==0.1.2
@ -1313,7 +1313,7 @@ default-package-overrides:
- jwt ==0.10.0
- kan-extensions ==5.2.3
- kanji ==3.4.1
- katip ==0.8.5.0
- katip ==0.8.6.0
- katip-logstash ==0.1.0.0
- kawhi ==0.3.0
- kazura-queue ==0.1.0.4
@ -1323,7 +1323,7 @@ default-package-overrides:
- keys ==3.12.3
- ki ==0.2.0.1
- kind-apply ==0.3.2.0
- kind-generics ==0.4.1.0
- kind-generics ==0.4.1.2
- kind-generics-th ==0.2.2.2
- kmeans ==0.1.3
- koji ==0.0.2
@ -1334,7 +1334,7 @@ default-package-overrides:
- labels ==0.3.3
- lackey ==1.0.15
- lambdabot-core ==5.3.0.2
- LambdaHack ==0.10.2.0
- LambdaHack ==0.10.3.0
- lame ==0.2.0
- language-avro ==0.1.3.1
- language-bash ==0.9.2
@ -1365,7 +1365,7 @@ default-package-overrides:
- learn-physics ==0.6.5
- lens ==4.19.2
- lens-action ==0.2.5
- lens-aeson ==1.1.1
- lens-aeson ==1.1.2
- lens-csv ==0.1.1.0
- lens-datetime ==0.3
- lens-family ==2.0.0
@ -1387,7 +1387,7 @@ default-package-overrides:
- liboath-hs ==0.0.1.2
- libyaml ==0.1.2
- LibZip ==1.0.1
- lifted-async ==0.10.2.1
- lifted-async ==0.10.2.2
- lifted-base ==0.2.3.12
- lift-generics ==0.2.1
- lift-type ==0.1.0.1
@ -1418,7 +1418,7 @@ default-package-overrides:
- loch-th ==0.2.2
- lockfree-queue ==0.2.3.1
- log-domain ==0.13.1
- logfloat ==0.13.3.3
- logfloat ==0.13.4
- logging ==3.0.5
- logging-facade ==0.3.0
- logging-facade-syslog ==1
@ -1488,13 +1488,13 @@ default-package-overrides:
- microlens ==0.4.12.0
- microlens-aeson ==2.3.1
- microlens-contra ==0.1.0.2
- microlens-ghc ==0.4.13
- microlens-ghc ==0.4.13.1
- microlens-mtl ==0.2.0.1
- microlens-platform ==0.4.2
- microlens-process ==0.2.0.2
- microlens-th ==0.4.3.10
- microspec ==0.2.1.3
- microstache ==1.0.1.2
- microstache ==1.0.2
- midair ==0.2.0.1
- midi ==0.2.2.2
- mighty-metropolis ==2.0.0
@ -1555,7 +1555,7 @@ default-package-overrides:
- monad-unlift ==0.2.0
- monad-unlift-ref ==0.2.1
- mongoDB ==2.7.1.1
- monoid-subclasses ==1.1.1
- monoid-subclasses ==1.1.2
- monoid-transformer ==0.0.4
- mono-traversable ==1.0.15.3
- mono-traversable-instances ==0.1.1.0
@ -1580,7 +1580,7 @@ default-package-overrides:
- multiset ==0.3.4.3
- multistate ==0.8.0.3
- murmur3 ==1.0.5
- murmur-hash ==0.1.0.9
- murmur-hash ==0.1.0.10
- MusicBrainz ==0.4.1
- mustache ==2.3.1
- mutable-containers ==0.3.4
@ -1588,8 +1588,8 @@ default-package-overrides:
- mwc-random ==0.15.0.2
- mwc-random-monad ==0.7.3.1
- mx-state-codes ==1.0.0.0
- mysql ==0.2.0.1
- mysql-simple ==0.4.6
- mysql ==0.2.1
- mysql-simple ==0.4.7
- n2o ==0.11.1
- nagios-check ==0.3.2
- names-th ==0.3.0.1
@ -1601,7 +1601,7 @@ default-package-overrides:
- natural-transformation ==0.4
- ndjson-conduit ==0.1.0.5
- neat-interpolation ==0.5.1.2
- netcode-io ==0.0.2
- netcode-io ==0.0.3
- netlib-carray ==0.1
- netlib-comfort-array ==0.0.0.2
- netlib-ffi ==0.1.1
@ -1627,7 +1627,7 @@ default-package-overrides:
- network-transport-composed ==0.2.1
- network-uri ==2.6.4.1
- newtype ==0.2.2.0
- newtype-generics ==0.6
- newtype-generics ==0.6.1
- nicify-lib ==1.0.1
- NineP ==0.0.2.1
- nix-derivation ==1.1.2
@ -1646,8 +1646,8 @@ default-package-overrides:
- nowdoc ==0.1.1.0
- nqe ==0.6.3
- nri-env-parser ==0.1.0.7
- nri-observability ==0.1.1.1
- nri-prelude ==0.6.0.3
- nri-observability ==0.1.1.3
- nri-prelude ==0.6.0.5
- nsis ==0.3.3
- numbers ==3000.2.0.2
- numeric-extras ==0.1
@ -1673,7 +1673,7 @@ default-package-overrides:
- OneTuple ==0.2.2.1
- Only ==0.1
- oo-prototypes ==0.1.0.0
- opaleye ==0.7.4.0
- opaleye ==0.7.6.1
- OpenAL ==1.7.0.5
- openapi3 ==3.1.0
- open-browser ==0.2.1.0
@ -1697,7 +1697,7 @@ default-package-overrides:
- optional-args ==1.0.2
- options ==1.2.1.1
- optparse-applicative ==0.16.1.0
- optparse-generic ==1.4.5
- optparse-generic ==1.4.6
- optparse-simple ==0.1.1.4
- optparse-text ==0.1.1.0
- ordered-containers ==0.2.2
@ -1712,7 +1712,7 @@ default-package-overrides:
- pandoc-dhall-decoder ==0.1.0.1
- pandoc-plot ==1.2.3
- pandoc-throw ==0.1.0.0
- pandoc-types ==1.22
- pandoc-types ==1.22.1
- pantry ==0.5.2.3
- parallel ==3.2.2.0
- parameterized ==0.5.0.0
@ -1758,26 +1758,26 @@ default-package-overrides:
- persist ==0.1.1.5
- persistable-record ==0.6.0.5
- persistable-types-HDBC-pg ==0.0.3.5
- persistent ==2.13.1.2
- persistent ==2.13.2.1
- persistent-mtl ==0.2.2.0
- persistent-mysql ==2.13.0.2
- persistent-pagination ==0.1.1.2
- persistent-postgresql ==2.13.1.0
- persistent-postgresql ==2.13.2.1
- persistent-qq ==2.12.0.1
- persistent-sqlite ==2.13.0.3
- persistent-template ==2.12.0.0
- persistent-test ==2.13.0.3
- persistent-typed-db ==0.1.0.4
- persistent-typed-db ==0.1.0.5
- pg-harness-client ==0.6.0
- pgp-wordlist ==0.1.0.3
- pg-transact ==0.3.2.0
- phantom-state ==0.2.1.2
- pid1 ==0.1.2.0
- pid1 ==0.1.3.0
- pinboard ==0.10.2.0
- pipes ==4.3.16
- pipes-aeson ==0.4.1.8
- pipes-attoparsec ==0.5.1.5
- pipes-binary ==0.4.2
- pipes-binary ==0.4.3
- pipes-bytestring ==2.1.7
- pipes-concurrency ==2.0.12
- pipes-csv ==1.4.3
@ -1798,9 +1798,9 @@ default-package-overrides:
- placeholders ==0.1
- plaid ==0.1.0.4
- plotlyhs ==0.2.1
- pointed ==5.0.2
- pointed ==5.0.3
- pointedlist ==0.6.1
- pointless-fun ==1.1.0.6
- pointless-fun ==1.1.0.8
- poll ==0.0.0.2
- polling-cache ==0.1.1.0
- poly ==0.5.0.0
@ -1827,7 +1827,7 @@ default-package-overrides:
- prairie ==0.0.1.0
- prefix-units ==0.2.0
- prelude-compat ==0.0.0.2
- prelude-safeenum ==0.1.1.2
- prelude-safeenum ==0.1.1.3
- prettyclass ==1.0.0.0
- pretty-class ==1.0.1.1
- pretty-diff ==0.4.0.3
@ -1844,7 +1844,7 @@ default-package-overrides:
- pretty-sop ==0.2.0.3
- pretty-terminal ==0.1.0.0
- primes ==0.2.1.0
- primitive ==0.7.2.0
- primitive ==0.7.3.0
- primitive-addr ==0.1.0.2
- primitive-extras ==0.10.1
- primitive-unaligned ==0.1.1.1
@ -1879,10 +1879,10 @@ default-package-overrides:
- ptr-poker ==0.1.1.4
- publicsuffix ==0.20200526
- pulse-simple ==0.1.14
- pureMD5 ==2.1.3
- pureMD5 ==2.1.4
- purescript-bridge ==0.14.0.0
- pushbullet-types ==0.4.1.0
- pusher-http-haskell ==2.1.0.3
- pusher-http-haskell ==2.1.0.5
- pvar ==1.0.0.0
- PyF ==0.9.0.3
- qchas ==1.1.0.1
@ -1927,7 +1927,7 @@ default-package-overrides:
- rank2classes ==1.4.3
- Rasterific ==0.7.5.4
- rasterific-svg ==0.3.3.2
- ratel ==1.0.15
- ratel ==1.0.16
- rate-limit ==1.4.2
- ratel-wai ==1.1.5
- rattle ==0.2
@ -1950,8 +1950,8 @@ default-package-overrides:
- record-hasfield ==1.0
- records-sop ==0.1.1.0
- record-wrangler ==0.1.1.0
- recursion-schemes ==5.2.2.1
- reducers ==3.12.3
- recursion-schemes ==5.2.2.2
- reducers ==3.12.4
- refact ==0.3.0.2
- ref-fd ==0.5
- refined ==0.6.2
@ -2017,7 +2017,7 @@ default-package-overrides:
- rosezipper ==0.2
- rot13 ==0.2.0.1
- rpmbuild-order ==0.4.5
- rpm-nvr ==0.1.0
- rpm-nvr ==0.1.1
- rp-tree ==0.6
- RSA ==2.4.1
- runmemo ==1.0.0.1
@ -2072,7 +2072,7 @@ default-package-overrides:
- semialign-indexed ==1.1
- semialign-optics ==1.1
- semigroupoid-extras ==5
- semigroupoids ==5.3.5
- semigroupoids ==5.3.6
- semigroups ==0.19.2
- semirings ==0.6
- semiring-simple ==1.0.0.1
@ -2085,7 +2085,7 @@ default-package-overrides:
- sequence-formats ==1.6.1
- sequenceTools ==1.5.0
- serf ==0.1.1.0
- serialise ==0.2.3.0
- serialise ==0.2.4.0
- servant ==0.18.3
- servant-auth ==0.4.0.0
- servant-auth-client ==0.4.1.0
@ -2112,7 +2112,7 @@ default-package-overrides:
- servant-rawm ==1.0.0.0
- servant-server ==0.18.3
- servant-swagger ==1.1.10
- servant-swagger-ui ==0.3.5.3.47.1
- servant-swagger-ui ==0.3.5.3.52.5
- servant-swagger-ui-core ==0.3.5
- serverless-haskell ==0.12.6
- serversession ==1.0.2
@ -2121,7 +2121,7 @@ default-package-overrides:
- set-cover ==0.1.1
- setenv ==0.1.1.3
- setlocale ==1.0.0.10
- sexp-grammar ==2.3.3
- sexp-grammar ==2.3.3.1
- SHA ==1.6.4.4
- shake ==0.19.6
- shake-language-c ==0.12.0
@ -2206,7 +2206,7 @@ default-package-overrides:
- splice ==0.6.1.1
- splint ==1.0.1.4
- split ==0.2.3.4
- splitmix ==0.1.0.3
- splitmix ==0.1.0.4
- splitmix-distributions ==0.9.0.0
- spoon ==0.3.1
- spreadsheet ==0.1.3.8
@ -2228,7 +2228,7 @@ default-package-overrides:
- status-notifier-item ==0.3.1.0
- stb-image-redux ==0.2.1.3
- step-function ==0.2
- stm-chans ==3.0.0.4
- stm-chans ==3.0.0.6
- stm-conduit ==4.0.1
- stm-delay ==0.1.1.1
- stm-extras ==0.1.0.3
@ -2272,9 +2272,9 @@ default-package-overrides:
- stripe-core ==2.6.2
- stripe-haskell ==2.6.2
- stripe-http-client ==2.6.2
- strive ==5.0.14
- strive ==5.0.16
- structs ==0.1.6
- structured ==0.1.0.1
- structured ==0.1.1
- structured-cli ==2.7.0.1
- subcategories ==0.1.1.0
- sum-type-boilerplate ==0.1.1
@ -2284,7 +2284,7 @@ default-package-overrides:
- swagger ==0.3.0
- swagger2 ==2.6
- sweet-egison ==0.1.1.3
- swish ==0.10.0.5
- swish ==0.10.0.7
- syb ==0.7.2.1
- sydtest ==0.2.0.0
- sydtest-discover ==0.0.0.0
@ -2342,7 +2342,7 @@ default-package-overrides:
- TCache ==0.12.1
- tce-conf ==1.3
- tdigest ==0.2.1.1
- template-haskell-compat-v0208 ==0.1.6
- template-haskell-compat-v0208 ==0.1.7
- temporary ==1.3
- temporary-rc ==1.2.0.3
- temporary-resourcet ==0.1.0.1
@ -2358,7 +2358,7 @@ default-package-overrides:
- test-framework-smallcheck ==0.2
- test-fun ==0.1.0.0
- testing-type-modifiers ==0.1.0.1
- texmath ==0.12.3.1
- texmath ==0.12.3.2
- text-ansi ==0.1.1
- text-binary ==0.2.1.1
- text-builder ==0.6.6.3
@ -2429,7 +2429,7 @@ default-package-overrides:
- timezone-series ==0.1.9
- tinylog ==0.15.0
- titlecase ==1.0.1
- tldr ==0.9.1
- tldr ==0.9.2
- tls ==1.5.5
- tls-debug ==0.4.8
- tls-session-manager ==0.0.4
@ -2448,7 +2448,7 @@ default-package-overrides:
- transformers-compat ==0.6.6
- transformers-fix ==1.0
- traverse-with-class ==1.0.1.1
- tree-diff ==0.2
- tree-diff ==0.2.1
- tree-fun ==0.8.1.0
- tree-view ==0.5.1
- trifecta ==2.1.1
@ -2457,7 +2457,7 @@ default-package-overrides:
- tsv2csv ==0.1.0.2
- ttc ==1.1.0.2
- ttl-hashtables ==1.4.1.0
- ttrie ==0.1.2.1
- ttrie ==0.1.2.2
- tuple ==0.3.0.2
- tuples-homogenous-h98 ==0.1.1.0
- tuple-sop ==0.3.1.0
@ -2465,7 +2465,7 @@ default-package-overrides:
- turtle ==1.5.22
- typecheck-plugin-nat-simple ==0.1.0.2
- TypeCompose ==0.9.14
- typed-process ==0.2.6.3
- typed-process ==0.2.7.0
- typed-uuid ==0.1.0.0
- type-equality ==1
- type-errors ==0.2.0.0
@ -2520,7 +2520,7 @@ default-package-overrides:
- universe-reverse-instances ==1.1.1
- universe-some ==1.2.1
- universum ==1.7.2
- unix-bytestring ==0.3.7.3
- unix-bytestring ==0.3.7.5
- unix-compat ==0.5.3
- unix-time ==0.4.7
- unliftio ==0.2.20
@ -2591,15 +2591,15 @@ default-package-overrides:
- wai-cors ==0.2.7
- wai-enforce-https ==0.0.2.1
- wai-eventsource ==3.0.0
- wai-extra ==3.1.6
- wai-feature-flags ==0.1.0.1
- wai-extra ==3.1.7
- wai-feature-flags ==0.1.0.2
- wai-handler-launch ==3.0.3.1
- wai-logger ==2.3.6
- wai-middleware-auth ==0.2.5.1
- wai-middleware-caching ==0.1.0.2
- wai-middleware-clacks ==0.1.0.1
- wai-middleware-prometheus ==1.0.0.1
- wai-middleware-static ==0.9.0
- wai-middleware-static ==0.9.1
- wai-rate-limit ==0.1.0.0
- wai-rate-limit-redis ==0.1.0.0
- wai-saml2 ==0.2.1.2
@ -2619,7 +2619,7 @@ default-package-overrides:
- webex-teams-pipes ==0.2.0.1
- webgear-server ==0.2.1
- webrtc-vad ==0.1.0.3
- websockets ==0.12.7.2
- websockets ==0.12.7.3
- websockets-snap ==0.10.3.1
- weigh ==0.0.16
- wide-word ==0.1.1.2
@ -2630,7 +2630,7 @@ default-package-overrides:
- Win32-notify ==0.3.0.3
- windns ==0.1.0.1
- witch ==0.3.4.0
- witherable ==0.4.1
- witherable ==0.4.2
- within ==0.2.0.1
- with-location ==0.1.0
- with-utf8 ==1.0.2.2
@ -2651,7 +2651,7 @@ default-package-overrides:
- writer-cps-transformers ==0.5.6.1
- wss-client ==0.3.0.0
- wuss ==1.1.18
- X11 ==1.10.1
- X11 ==1.10.2
- X11-xft ==0.3.1
- x11-xim ==0.0.9.0
- x509 ==1.7.5
@ -2683,8 +2683,8 @@ default-package-overrides:
- xmonad-extras ==0.15.3
- xss-sanitize ==0.3.6
- xxhash-ffi ==0.2.0.0
- yaml ==0.11.6.0
- yamlparse-applicative ==0.2.0.0
- yaml ==0.11.7.0
- yamlparse-applicative ==0.2.0.1
- yesod ==1.6.1.2
- yesod-auth ==1.6.10.4
- yesod-auth-hashdb ==1.7.1.7
@ -2709,14 +2709,14 @@ default-package-overrides:
- yjtools ==0.9.18
- yoga ==0.0.0.5
- youtube ==0.2.1.1
- zenacy-html ==2.0.3
- zenacy-html ==2.0.4
- zenacy-unicode ==1.0.1
- zero ==0.1.5
- zeromq4-haskell ==0.8.0
- zeromq4-patterns ==0.3.1.0
- zim-parser ==0.2.1.0
- zio ==0.1.0.2
- zip ==1.7.1
- zip ==1.7.2
- zip-archive ==0.4.1
- zipper-extra ==0.1.3.2
- zippers ==0.3.1

View file

@ -221,6 +221,8 @@ dont-distribute-packages:
- IORefCAS
- IndexedList
- InfixApplicative
- JSON-Combinator
- JSON-Combinator-Examples
- Javasf
- JsContracts
- JsonGrammar
@ -479,6 +481,7 @@ dont-distribute-packages:
- atuin
- audiovisual
- aura
- aura_3_2_6
- authoring
- autonix-deps-kf5
- avers
@ -723,9 +726,7 @@ dont-distribute-packages:
- claferwiki
- clash
- clash-ghc
- clash-ghc_1_4_5
- clash-lib
- clash-lib_1_4_5
- clash-multisignal
- clash-prelude-quickcheck
- clash-shake
@ -1023,7 +1024,7 @@ dont-distribute-packages:
- egison-quote
- egison-tutorial
- elerea-examples
- eliminators_0_8
- eliminators_0_9
- elliptic-curve
- elsa
- emacs-keys
@ -1720,6 +1721,7 @@ dont-distribute-packages:
- iException
- ice40-prim
- ide-backend
- ide-backend-server
- ideas-math
- ideas-math-types
- ideas-statistics
@ -1813,6 +1815,7 @@ dont-distribute-packages:
- jmonkey
- jobs-ui
- join
- jordan-openapi
- jot
- jsc
- jsmw
@ -1826,6 +1829,7 @@ dont-distribute-packages:
- json-tokens
- json2-hdbc
- jsons-to-schema
- jspath
- jvm
- jvm-batching
- jvm-streaming
@ -1897,6 +1901,8 @@ dont-distribute-packages:
- lambdacube
- lambdacube-bullet
- lambdacube-compiler
- lambdacube-edsl
- lambdacube-examples
- lambdacube-gl
- lambdacube-samples
- lambdaya-bus
@ -1911,11 +1917,7 @@ dont-distribute-packages:
- language-python-colour
- language-qux
- language-spelling
- lapack
- lapack-carray
- lapack-comfort-array
- lapack-hmatrix
- lapack_0_4
- lat
- latex-formulae-hakyll
- latex-formulae-pandoc
@ -1972,6 +1974,7 @@ dont-distribute-packages:
- liquid-base
- liquid-bytestring
- liquid-containers
- liquid-fixpoint_8_10_7
- liquid-ghc-prim
- liquid-parallel
- liquid-platform
@ -2285,6 +2288,7 @@ dont-distribute-packages:
- pairing
- panda
- pandoc-japanese-filters
- pandoc_2_16_1
- papa
- papa-base
- papa-base-implement
@ -2358,6 +2362,7 @@ dont-distribute-packages:
- pisigma
- pitchtrack
- pkgtreediff
- pkgtreediff_0_5_0
- planet-mitchell
- plocketed
- ploterific
@ -2436,7 +2441,6 @@ dont-distribute-packages:
- proto3-suite
- protobuf-native
- protocol-buffers-descriptor-fork
- psc-ide
- puffytools
- pugs-compat
- pugs-hsregex
@ -2444,9 +2448,7 @@ dont-distribute-packages:
- puppetresources
- pure-cdb
- pure-priority-queue-tests
- purescript
- purescript-iso
- purescript-tsd-gen
- push-notify
- push-notify-apn
- push-notify-ccs
@ -2575,7 +2577,6 @@ dont-distribute-packages:
- replicant
- repr
- representable-tries
- req-oauth2
- resistor-cube
- resistor-cube_0_0_1_3
- resource-pool-catchio
@ -3087,10 +3088,12 @@ dont-distribute-packages:
- typson-esqueleto
- typson-selda
- u2f
- uber
- ucam-webauth
- uhc-light
- uhc-util
- unagi-bloomfilter
- unbeliever
- unbound
- unfoldable-restricted
- uni-events
@ -3301,7 +3304,6 @@ dont-distribute-packages:
- yu-launch
- yuuko
- zasni-gerna
- zephyr
- zerobin
- zeromq3-conduit
- zeromq3-haskell

View file

@ -43,10 +43,10 @@ with haskellLib;
self: super: builtins.intersectAttrs super {
# Apply NixOS-specific patches.
ghc-paths = appendPatch super.ghc-paths ./patches/ghc-paths-nix.patch;
ghc-paths = appendPatch ./patches/ghc-paths-nix.patch super.ghc-paths;
# fix errors caused by hardening flags
epanet-haskell = disableHardening super.epanet-haskell ["format"];
epanet-haskell = disableHardening ["format"] super.epanet-haskell;
# Link the proper version.
zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; };
@ -56,7 +56,7 @@ self: super: builtins.intersectAttrs super {
mysql = dontCheck super.mysql;
# CUDA needs help finding the SDK headers and libraries.
cuda = overrideCabal super.cuda (drv: {
cuda = overrideCabal (drv: {
extraLibraries = (drv.extraLibraries or []) ++ [pkgs.linuxPackages.nvidia_x11];
configureFlags = (drv.configureFlags or []) ++ [
"--extra-lib-dirs=${pkgs.cudatoolkit.lib}/lib"
@ -65,84 +65,84 @@ self: super: builtins.intersectAttrs super {
preConfigure = ''
export CUDA_PATH=${pkgs.cudatoolkit}
'';
});
}) super.cuda;
nvvm = overrideCabal super.nvvm (drv: {
nvvm = overrideCabal (drv: {
preConfigure = ''
export CUDA_PATH=${pkgs.cudatoolkit}
'';
});
}) super.nvvm;
cufft = overrideCabal super.cufft (drv: {
cufft = overrideCabal (drv: {
preConfigure = ''
export CUDA_PATH=${pkgs.cudatoolkit}
'';
});
}) super.cufft;
# jni needs help finding libjvm.so because it's in a weird location.
jni = overrideCabal super.jni (drv: {
jni = overrideCabal (drv: {
preConfigure = ''
local libdir=( "${pkgs.jdk}/lib/openjdk/jre/lib/"*"/server" )
configureFlags+=" --extra-lib-dir=''${libdir[0]}"
'';
});
}) super.jni;
# The package doesn't know about the AL include hierarchy.
# https://github.com/phaazon/al/issues/1
al = appendConfigureFlag super.al "--extra-include-dirs=${pkgs.openal}/include/AL";
al = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.al;
# Won't find it's header files without help.
sfml-audio = appendConfigureFlag super.sfml-audio "--extra-include-dirs=${pkgs.openal}/include/AL";
sfml-audio = appendConfigureFlag "--extra-include-dirs=${pkgs.openal}/include/AL" super.sfml-audio;
# avoid compiling twice by providing executable as a separate output (with small closure size)
niv = enableSeparateBinOutput super.niv;
ormolu = enableSeparateBinOutput super.ormolu;
ghcid = enableSeparateBinOutput super.ghcid;
hzk = overrideCabal super.hzk (drv: {
hzk = overrideCabal (drv: {
preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
});
}) super.hzk;
haskakafka = overrideCabal super.haskakafka (drv: {
haskakafka = overrideCabal (drv: {
preConfigure = "sed -i -e /extra-lib-dirs/d -e /include-dirs/d haskakafka.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.rdkafka}/include/librdkafka" ];
});
}) super.haskakafka;
# library has hard coded directories that need to be removed. Reported upstream here https://github.com/haskell-works/hw-kafka-client/issues/32
hw-kafka-client = dontCheck (overrideCabal super.hw-kafka-client (drv: {
hw-kafka-client = dontCheck (overrideCabal (drv: {
preConfigure = "sed -i -e /extra-lib-dirs/d -e /include-dirs/d -e /librdkafka/d hw-kafka-client.cabal";
configureFlags = [ "--extra-include-dirs=${pkgs.rdkafka}/include/librdkafka" ];
}));
}) super.hw-kafka-client);
# Foreign dependency name clashes with another Haskell package.
libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; };
# Heist's test suite requires system pandoc
heist = overrideCabal super.heist (drv: {
heist = overrideCabal (drv: {
testToolDepends = [pkgs.pandoc];
});
}) super.heist;
# 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"];
glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.buildHaskellPackages.gtk2hs-buildtools) pkgs.glib) ["fortify"];
gtk3 = disableHardening (super.gtk3.override { inherit (pkgs) gtk3; }) ["fortify"];
gtk = let gtk1 = addBuildTool super.gtk self.buildHaskellPackages.gtk2hs-buildtools;
gtk2 = addPkgconfigDepend gtk1 pkgs.gtk2;
gtk3 = disableHardening gtk1 ["fortify"];
gtk4 = if pkgs.stdenv.isDarwin then appendConfigureFlag gtk3 "-fhave-quartz-gtk" else gtk4;
gio = disableHardening ["fortify"] (addPkgconfigDepend pkgs.glib (addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.gio));
glib = disableHardening ["fortify"] (addPkgconfigDepend pkgs.glib (addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.glib));
gtk3 = disableHardening ["fortify"] (super.gtk3.override { inherit (pkgs) gtk3; });
gtk = let gtk1 = addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.gtk;
gtk2 = addPkgconfigDepend pkgs.gtk2 gtk1;
gtk3 = disableHardening ["fortify"] gtk1;
gtk4 = if pkgs.stdenv.isDarwin then appendConfigureFlag "-fhave-quartz-gtk" gtk3 else gtk4;
in gtk3;
gtksourceview2 = addPkgconfigDepend super.gtksourceview2 pkgs.gtk2;
gtk-traymanager = addPkgconfigDepend super.gtk-traymanager pkgs.gtk3;
gtksourceview2 = addPkgconfigDepend pkgs.gtk2 super.gtksourceview2;
gtk-traymanager = addPkgconfigDepend pkgs.gtk3 super.gtk-traymanager;
# Add necessary reference to gtk3 package
gi-dbusmenugtk3 = addPkgconfigDepend super.gi-dbusmenugtk3 pkgs.gtk3;
gi-dbusmenugtk3 = addPkgconfigDepend pkgs.gtk3 super.gi-dbusmenugtk3;
hs-mesos = overrideCabal super.hs-mesos (drv: {
hs-mesos = overrideCabal (drv: {
# Pass _only_ mesos; the correct protobuf is propagated.
extraLibraries = [ pkgs.mesos ];
preConfigure = "sed -i -e /extra-lib-dirs/d -e 's|, /usr/include, /usr/local/include/mesos||' hs-mesos.cabal";
});
}) super.hs-mesos;
# These packages try to access the network.
amqp = dontCheck super.amqp;
@ -156,7 +156,7 @@ self: super: builtins.intersectAttrs super {
hadoop-rpc = dontCheck super.hadoop-rpc; # http://hydra.cryp.to/build/527461/nixlog/2/raw
hasql = dontCheck super.hasql; # http://hydra.cryp.to/build/502489/nixlog/4/raw
hasql-transaction = dontCheck super.hasql-transaction; # wants to connect to postgresql
hjsonschema = overrideCabal super.hjsonschema (drv: { testTarget = "local"; });
hjsonschema = overrideCabal (drv: { testTarget = "local"; }) super.hjsonschema;
marmalade-upload = dontCheck super.marmalade-upload; # http://hydra.cryp.to/build/501904/nixlog/1/raw
mongoDB = dontCheck super.mongoDB;
network-transport-tcp = dontCheck super.network-transport-tcp;
@ -203,10 +203,10 @@ self: super: builtins.intersectAttrs super {
mattermost-api = dontCheck super.mattermost-api;
# Expect to find sendmail(1) in $PATH.
mime-mail = appendConfigureFlag super.mime-mail "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"sendmail\"";
mime-mail = appendConfigureFlag "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"sendmail\"" super.mime-mail;
# Help the test suite find system timezone data.
tz = overrideCabal super.tz (drv: {
tz = overrideCabal (drv: {
preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo";
patches = [
# Fix tests failing with libSystem, musl etc. due to a lack of
@ -218,37 +218,37 @@ self: super: builtins.intersectAttrs super {
sha256 = "1f53w8k1vpy39hzalyykpvm946ykkarj2714w988jdp4c2c4l4cf";
})
] ++ (drv.patches or []);
});
}) super.tz;
# Nix-specific workaround
xmonad = appendPatch (dontCheck super.xmonad) ./patches/xmonad-nix.patch;
xmonad = appendPatch ./patches/xmonad-nix.patch (dontCheck super.xmonad);
# wxc supports wxGTX >= 3.0, but our current default version points to 2.8.
# http://hydra.cryp.to/build/1331287/log/raw
wxc = (addBuildDepend super.wxc self.split).override { wxGTK = pkgs.wxGTK30; };
wxc = (addBuildDepend self.split super.wxc).override { wxGTK = pkgs.wxGTK30; };
wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK30; };
# Test suite wants to connect to $DISPLAY.
bindings-GLFW = dontCheck super.bindings-GLFW;
gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
gi-gtk-declarative-app-simple = dontCheck super.gi-gtk-declarative-app-simple;
hsqml = dontCheck (addExtraLibraries (super.hsqml.override { qt5 = pkgs.qt5Full; }) [pkgs.libGLU pkgs.libGL]);
hsqml = dontCheck (addExtraLibraries [pkgs.libGLU pkgs.libGL] (super.hsqml.override { qt5 = pkgs.qt5Full; }));
monomer = dontCheck super.monomer;
# Wants to check against a real DB, Needs freetds
odbc = dontCheck (addExtraLibraries super.odbc [ pkgs.freetds ]);
odbc = dontCheck (addExtraLibraries [ pkgs.freetds ] super.odbc);
# Tests attempt to use NPM to install from the network into
# /homeless-shelter. Disabled.
purescript = dontCheck super.purescript;
# Hardcoded include path
poppler = overrideCabal super.poppler (drv: {
poppler = overrideCabal (drv: {
postPatch = ''
sed -i -e 's,glib/poppler.h,poppler.h,' poppler.cabal
sed -i -e 's,glib/poppler.h,poppler.h,' Graphics/UI/Gtk/Poppler/Structs.hsc
'';
});
}) super.poppler;
# Uses OpenGL in testing
caramia = dontCheck super.caramia;
@ -257,10 +257,10 @@ self: super: builtins.intersectAttrs super {
llvm-hs = super.llvm-hs.override { llvm-config = pkgs.llvm_9; };
# Needs help finding LLVM.
spaceprobe = addBuildTool super.spaceprobe self.buildHaskellPackages.llvmPackages.llvm;
spaceprobe = addBuildTool self.buildHaskellPackages.llvmPackages.llvm super.spaceprobe;
# Tries to run GUI in tests
leksah = dontCheck (overrideCabal super.leksah (drv: {
leksah = dontCheck (overrideCabal (drv: {
executableSystemDepends = (drv.executableSystemDepends or []) ++ (with pkgs; [
gnome.adwaita-icon-theme # Fix error: Icon 'window-close' not present in theme ...
wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
@ -272,12 +272,10 @@ self: super: builtins.intersectAttrs super {
substituteInPlace "$f" --replace "\"leksah-server\"" "\"${self.leksah-server}/bin/leksah-server\""
done
'';
}));
}) super.leksah);
dyre =
appendPatch
# dyre's tests appear to be trying to directly call GHC.
(dontCheck super.dyre)
# Dyre needs special support for reading the NIX_GHC env var. This is
# available upstream in https://github.com/willdonnelly/dyre/pull/43, but
# hasn't been released to Hackage as of dyre-0.9.1. Likely included in
@ -285,46 +283,48 @@ self: super: builtins.intersectAttrs super {
(pkgs.fetchpatch {
url = "https://github.com/willdonnelly/dyre/commit/c7f29d321aae343d6b314f058812dffcba9d7133.patch";
sha256 = "10m22k35bi6cci798vjpy4c2l08lq5nmmj24iwp0aflvmjdgscdb";
});
})
# dyre's tests appear to be trying to directly call GHC.
(dontCheck super.dyre);
# https://github.com/edwinb/EpiVM/issues/13
# https://github.com/edwinb/EpiVM/issues/14
epic = addExtraLibraries (addBuildTool super.epic self.buildHaskellPackages.happy) [pkgs.boehmgc pkgs.gmp];
epic = addExtraLibraries [pkgs.boehmgc pkgs.gmp] (addBuildTool self.buildHaskellPackages.happy super.epic);
# https://github.com/ekmett/wl-pprint-terminfo/issues/7
wl-pprint-terminfo = addExtraLibrary super.wl-pprint-terminfo pkgs.ncurses;
wl-pprint-terminfo = addExtraLibrary pkgs.ncurses super.wl-pprint-terminfo;
# https://github.com/bos/pcap/issues/5
pcap = addExtraLibrary super.pcap pkgs.libpcap;
pcap = addExtraLibrary pkgs.libpcap super.pcap;
# https://github.com/NixOS/nixpkgs/issues/53336
greenclip = addExtraLibrary super.greenclip pkgs.xorg.libXdmcp;
greenclip = addExtraLibrary pkgs.xorg.libXdmcp super.greenclip;
# The cabal files for these libraries do not list the required system dependencies.
miniball = overrideCabal super.miniball (drv: {
miniball = overrideCabal (drv: {
librarySystemDepends = [ pkgs.miniball ];
});
SDL-image = overrideCabal super.SDL-image (drv: {
}) super.miniball;
SDL-image = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_image ] ++ drv.librarySystemDepends or [];
});
SDL-ttf = overrideCabal super.SDL-ttf (drv: {
}) super.SDL-image;
SDL-ttf = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_ttf ];
});
SDL-mixer = overrideCabal super.SDL-mixer (drv: {
}) super.SDL-ttf;
SDL-mixer = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_mixer ];
});
SDL-gfx = overrideCabal super.SDL-gfx (drv: {
}) super.SDL-mixer;
SDL-gfx = overrideCabal (drv: {
librarySystemDepends = [ pkgs.SDL pkgs.SDL_gfx ];
});
SDL-mpeg = overrideCabal super.SDL-mpeg (drv: {
}) super.SDL-gfx;
SDL-mpeg = overrideCabal (drv: {
configureFlags = (drv.configureFlags or []) ++ [
"--extra-lib-dirs=${pkgs.smpeg}/lib"
"--extra-include-dirs=${pkgs.smpeg}/include/smpeg"
];
});
}) super.SDL-mpeg;
# https://github.com/ivanperez-keera/hcwiid/pull/4
hcwiid = overrideCabal super.hcwiid (drv: {
hcwiid = overrideCabal (drv: {
configureFlags = (drv.configureFlags or []) ++ [
"--extra-lib-dirs=${pkgs.bluez.out}/lib"
"--extra-lib-dirs=${pkgs.cwiid}/lib"
@ -332,16 +332,16 @@ self: super: builtins.intersectAttrs super {
"--extra-include-dirs=${pkgs.bluez.dev}/include"
];
prePatch = '' sed -i -e "/Extra-Lib-Dirs/d" -e "/Include-Dirs/d" "hcwiid.cabal" '';
});
}) super.hcwiid;
# cabal2nix doesn't pick up some of the dependencies.
ginsu = let
g = addBuildDepend super.ginsu pkgs.perl;
g' = overrideCabal g (drv: {
g = addBuildDepend pkgs.perl super.ginsu;
g' = overrideCabal (drv: {
executableSystemDepends = (drv.executableSystemDepends or []) ++ [
pkgs.ncurses
];
});
}) g;
in g';
# Tests require `docker` command in PATH
@ -349,23 +349,23 @@ self: super: builtins.intersectAttrs super {
docker = dontCheck super.docker;
# https://github.com/deech/fltkhs/issues/16
fltkhs = overrideCabal super.fltkhs (drv: {
fltkhs = overrideCabal (drv: {
libraryToolDepends = (drv.libraryToolDepends or []) ++ [pkgs.buildPackages.autoconf];
librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.fltk13 pkgs.libGL pkgs.libjpeg];
});
}) super.fltkhs;
# https://github.com/skogsbaer/hscurses/pull/26
hscurses = overrideCabal super.hscurses (drv: {
hscurses = overrideCabal (drv: {
librarySystemDepends = (drv.librarySystemDepends or []) ++ [ pkgs.ncurses ];
});
}) super.hscurses;
# Looks like Avahi provides the missing library
dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; };
# tests depend on executable
ghcide = overrideCabal super.ghcide (drv: {
ghcide = overrideCabal (drv: {
preCheck = ''export PATH="$PWD/dist/build/ghcide:$PATH"'';
});
}) super.ghcide;
# GLUT uses `dlopen` to link to freeglut, so we need to set the RUNPATH correctly for
# it to find `libglut.so` from the nix store. We do this by patching GLUT.cabal to pkg-config
@ -377,22 +377,22 @@ self: super: builtins.intersectAttrs super {
#
# Additional note: nixpkgs' freeglut and macOS's OpenGL implementation do not cooperate,
# so disable this on Darwin only
${if pkgs.stdenv.isDarwin then null else "GLUT"} = addPkgconfigDepend (appendPatch super.GLUT ./patches/GLUT.patch) pkgs.freeglut;
${if pkgs.stdenv.isDarwin then null else "GLUT"} = addPkgconfigDepend pkgs.freeglut (appendPatch ./patches/GLUT.patch super.GLUT);
libsystemd-journal = overrideCabal super.libsystemd-journal (old: {
libsystemd-journal = overrideCabal (old: {
librarySystemDepends = old.librarySystemDepends or [] ++ [ pkgs.systemd ];
});
}) super.libsystemd-journal;
# does not specify tests in cabal file, instead has custom runTest cabal hook,
# so cabal2nix will not detect test dependencies.
either-unwrap = overrideCabal super.either-unwrap (drv: {
either-unwrap = overrideCabal (drv: {
testHaskellDepends = (drv.testHaskellDepends or []) ++ [ self.test-framework self.test-framework-hunit ];
});
}) super.either-unwrap;
# https://github.com/haskell-fswatch/hfsnotify/issues/62
fsnotify = dontCheck super.fsnotify;
hidapi = addExtraLibrary super.hidapi pkgs.udev;
hidapi = addExtraLibrary pkgs.udev super.hidapi;
hs-GeoIP = super.hs-GeoIP.override { GeoIP = pkgs.geoipWithDatabase; };
@ -402,45 +402,45 @@ self: super: builtins.intersectAttrs super {
stackage-curator = dontCheck super.stackage-curator;
# hardcodes /usr/bin/tr: https://github.com/snapframework/io-streams/pull/59
io-streams = enableCabalFlag super.io-streams "NoInteractiveTests";
io-streams = enableCabalFlag "NoInteractiveTests" super.io-streams;
# requires autotools to build
secp256k1 = addBuildTools super.secp256k1 [ pkgs.buildPackages.autoconf pkgs.buildPackages.automake pkgs.buildPackages.libtool ];
secp256k1 = addBuildTools [ pkgs.buildPackages.autoconf pkgs.buildPackages.automake pkgs.buildPackages.libtool ] super.secp256k1;
# requires libsecp256k1 in pkg-config-depends
secp256k1-haskell = addPkgconfigDepend super.secp256k1-haskell pkgs.secp256k1;
secp256k1-haskell = addPkgconfigDepend pkgs.secp256k1 super.secp256k1-haskell;
# tests require git and zsh
hapistrano = addBuildTools super.hapistrano [ pkgs.buildPackages.git pkgs.buildPackages.zsh ];
hapistrano = addBuildTools [ pkgs.buildPackages.git pkgs.buildPackages.zsh ] super.hapistrano;
# This propagates this to everything depending on haskell-gi-base
haskell-gi-base = addBuildDepend super.haskell-gi-base pkgs.gobject-introspection;
haskell-gi-base = addBuildDepend pkgs.gobject-introspection super.haskell-gi-base;
# requires valid, writeable $HOME
hatex-guide = overrideCabal super.hatex-guide (drv: {
hatex-guide = overrideCabal (drv: {
preConfigure = ''
${drv.preConfigure or ""}
export HOME=$PWD
'';
});
}) super.hatex-guide;
# https://github.com/plow-technologies/servant-streaming/issues/12
servant-streaming-server = dontCheck super.servant-streaming-server;
# https://github.com/haskell-servant/servant/pull/1238
servant-client-core = if (pkgs.lib.getVersion super.servant-client-core) == "0.16" then
appendPatch super.servant-client-core ./patches/servant-client-core-redact-auth-header.patch
appendPatch ./patches/servant-client-core-redact-auth-header.patch super.servant-client-core
else
super.servant-client-core;
# tests run executable, relying on PATH
# without this, tests fail with "Couldn't launch intero process"
intero = overrideCabal super.intero (drv: {
intero = overrideCabal (drv: {
preCheck = ''
export PATH="$PWD/dist/build/intero:$PATH"
'';
});
}) super.intero;
# Break infinite recursion cycle with criterion and network-uri.
js-flot = dontCheck super.js-flot;
@ -470,23 +470,23 @@ self: super: builtins.intersectAttrs super {
liquidhaskell = dontCheck (disableSharedExecutables super.liquidhaskell);
# Without this override, the builds lacks pkg-config.
opencv-extra = addPkgconfigDepend super.opencv-extra pkgs.opencv3;
opencv-extra = addPkgconfigDepend pkgs.opencv3 super.opencv-extra;
# Break cyclic reference that results in an infinite recursion.
partial-semigroup = dontCheck super.partial-semigroup;
colour = dontCheck super.colour;
spatial-rotations = dontCheck super.spatial-rotations;
LDAP = dontCheck (overrideCabal super.LDAP (drv: {
LDAP = dontCheck (overrideCabal (drv: {
librarySystemDepends = drv.librarySystemDepends or [] ++ [ pkgs.cyrus_sasl.dev ];
}));
}) super.LDAP);
# Expects z3 to be on path so we replace it with a hard
#
# The tests expect additional solvers on the path, replace the
# available ones also with hard coded paths, and remove the missing
# ones from the test.
sbv = overrideCabal super.sbv (drv: {
sbv = overrideCabal (drv: {
postPatch = ''
sed -i -e 's|"abc"|"${pkgs.abc-verifier}/bin/abc"|' Data/SBV/Provers/ABC.hs
sed -i -e 's|"boolector"|"${pkgs.boolector}/bin/boolector"|' Data/SBV/Provers/Boolector.hs
@ -496,14 +496,14 @@ self: super: builtins.intersectAttrs super {
sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, cvc4, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
'';
});
}) super.sbv;
# The test-suite requires a running PostgreSQL server.
Frames-beam = dontCheck super.Frames-beam;
# Compile manpages (which are in RST and are compiled with Sphinx).
futhark =
overrideCabal (addBuildTools super.futhark (with pkgs.buildPackages; [makeWrapper python3Packages.sphinx]))
overrideCabal
(_drv: {
postBuild = (_drv.postBuild or "") + ''
make -C docs man
@ -513,12 +513,13 @@ self: super: builtins.intersectAttrs super {
mkdir -p $out/share/man/man1
mv docs/_build/man/*.1 $out/share/man/man1/
'';
});
})
(addBuildTools (with pkgs.buildPackages; [makeWrapper python3Packages.sphinx]) super.futhark);
git-annex = with pkgs;
if (!stdenv.isLinux) then
let path = lib.makeBinPath [ coreutils ];
in overrideCabal (addBuildTool super.git-annex buildPackages.makeWrapper) (_drv: {
in overrideCabal (_drv: {
# This is an instance of https://github.com/NixOS/nix/pull/1085
# Fails with:
# gpg: can't connect to the agent: File name too long
@ -532,7 +533,7 @@ self: super: builtins.intersectAttrs super {
wrapProgram $out/bin/git-annex \
--prefix PATH : "${path}"
'';
})
}) (addBuildTool buildPackages.makeWrapper super.git-annex)
else super.git-annex;
# The test suite has undeclared dependencies on git.
@ -559,8 +560,8 @@ self: super: builtins.intersectAttrs super {
# gtk2hs-buildtools is listed in setupHaskellDepends, but we
# need it during the build itself, too.
cairo = addBuildTool super.cairo self.buildHaskellPackages.gtk2hs-buildtools;
pango = disableHardening (addBuildTool super.pango self.buildHaskellPackages.gtk2hs-buildtools) ["fortify"];
cairo = addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.cairo;
pango = disableHardening ["fortify"] (addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.pango);
spago =
let
@ -584,7 +585,7 @@ self: super: builtins.intersectAttrs super {
sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6";
};
spagoWithPatches = appendPatch super.spago (
spagoWithPatches = appendPatch (
# Spago needs a small patch to work with versions-5.0.0:
# https://github.com/purescript/spago/pull/798
# This can probably be removed with >spago-0.20.3.
@ -592,14 +593,14 @@ self: super: builtins.intersectAttrs super {
url = "https://github.com/purescript/spago/commit/dd4bf4413d9675c1c8065d24d0ed7b345c7fa5dd.patch";
sha256 = "1i1r3f4n9mlkckx15bfrdy5m7gjf0zx7ycwyqra6qn34zpcbzpmf";
}
);
) super.spago;
spagoWithOverrides = spagoWithPatches.override {
# spago has not yet been updated for the latest dhall.
dhall = self.dhall_1_38_1;
};
spagoDocs = overrideCabal spagoWithOverrides (drv: {
spagoDocs = overrideCabal (drv: {
postUnpack = (drv.postUnpack or "") + ''
# Spago includes the following two files directly into the binary
# with Template Haskell. They are fetched at build-time from the
@ -624,7 +625,7 @@ self: super: builtins.intersectAttrs super {
"$sourceRoot/templates/docs-search-app-0.0.11.js" \
"$sourceRoot/templates/purescript-docs-search-0.0.11"
'';
});
}) spagoWithOverrides;
# Tests require network access.
spagoWithoutChecks = dontCheck spagoDocs;
@ -638,11 +639,11 @@ self: super: builtins.intersectAttrs super {
# mplayer-spot uses mplayer at runtime.
mplayer-spot =
let path = pkgs.lib.makeBinPath [ pkgs.mplayer ];
in overrideCabal (addBuildTool super.mplayer-spot pkgs.buildPackages.makeWrapper) (oldAttrs: {
in overrideCabal (oldAttrs: {
postInstall = ''
wrapProgram $out/bin/mplayer-spot --prefix PATH : "${path}"
'';
});
}) (addBuildTool pkgs.buildPackages.makeWrapper super.mplayer-spot);
# break infinite recursion with base-orphans
primitive = dontCheck super.primitive;
@ -650,12 +651,12 @@ self: super: builtins.intersectAttrs super {
cut-the-crap =
let path = pkgs.lib.makeBinPath [ pkgs.ffmpeg pkgs.youtube-dl ];
in overrideCabal (addBuildTool super.cut-the-crap pkgs.buildPackages.makeWrapper) (_drv: {
in overrideCabal (_drv: {
postInstall = ''
wrapProgram $out/bin/cut-the-crap \
--prefix PATH : "${path}"
'';
});
}) (addBuildTool pkgs.buildPackages.makeWrapper super.cut-the-crap);
# Tests access homeless-shelter.
hie-bios = dontCheck super.hie-bios;
@ -663,9 +664,9 @@ self: super: builtins.intersectAttrs super {
# Compiling the readme throws errors and has no purpose in nixpkgs
aeson-gadt-th =
disableCabalFlag (doJailbreak (super.aeson-gadt-th)) "build-readme";
disableCabalFlag "build-readme" (doJailbreak super.aeson-gadt-th);
neuron = overrideCabal (super.neuron) (drv: {
neuron = overrideCabal (drv: {
# neuron expects the neuron-search script to be in PATH at built-time.
buildTools = [ pkgs.buildPackages.makeWrapper ];
preConfigure = ''
@ -678,14 +679,14 @@ self: super: builtins.intersectAttrs super {
}
PATH=$PATH:$out/bin
'';
});
}) super.neuron;
# Fix compilation of Setup.hs by removing the module declaration.
# See: https://github.com/tippenein/guid/issues/1
guid = overrideCabal (super.guid) (drv: {
guid = overrideCabal (drv: {
prePatch = "sed -i '1d' Setup.hs"; # 1st line is module declaration, remove it
doCheck = false;
});
}) super.guid;
# Tests disabled as recommended at https://github.com/luke-clifton/shh/issues/39
shh = dontCheck super.shh;
@ -696,16 +697,16 @@ self: super: builtins.intersectAttrs super {
postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify;
postgresql-pure = dontCheck super.postgresql-pure;
retrie = overrideCabal super.retrie (drv: {
retrie = overrideCabal (drv: {
testToolDepends = [ pkgs.git pkgs.mercurial ];
});
}) super.retrie;
nix-output-monitor = overrideCabal super.nix-output-monitor {
nix-output-monitor = overrideCabal {
# Can't ran the golden-tests with nix, because they call nix
testTarget = "unit-tests";
};
} super.nix-output-monitor;
haskell-language-server = overrideCabal super.haskell-language-server (drv: {
haskell-language-server = overrideCabal (drv: {
postInstall = "ln -s $out/bin/haskell-language-server $out/bin/haskell-language-server-${self.ghc.version}";
testToolDepends = [ self.cabal-install pkgs.git ];
testTarget = "func-test"; # wrapper test accesses internet
@ -713,14 +714,14 @@ self: super: builtins.intersectAttrs super {
export PATH=$PATH:$PWD/dist/build/haskell-language-server:$PWD/dist/build/haskell-language-server-wrapper
export HOME=$TMPDIR
'';
});
}) super.haskell-language-server;
# tests depend on a specific version of solc
hevm = dontCheck (doJailbreak super.hevm);
# hadolint enables static linking by default in the cabal file, so we have to explicitly disable it.
# https://github.com/hadolint/hadolint/commit/e1305042c62d52c2af4d77cdce5d62f6a0a3ce7b
hadolint = disableCabalFlag super.hadolint "static";
hadolint = disableCabalFlag "static" super.hadolint;
# Test suite tries to execute the build product "doctest-driver-gen", but it's not in $PATH.
doctest-driver-gen = dontCheck super.doctest-driver-gen;
@ -729,7 +730,7 @@ self: super: builtins.intersectAttrs super {
prune-juice = dontCheck super.prune-juice;
# based on https://github.com/gibiansky/IHaskell/blob/aafeabef786154d81ab7d9d1882bbcd06fc8c6c4/release.nix
ihaskell = overrideCabal super.ihaskell (drv: {
ihaskell = overrideCabal (drv: {
configureFlags = (drv.configureFlags or []) ++ [
# ihaskell's cabal file forces building a shared executable,
# but without passing --enable-executable-dynamic, the RPATH
@ -741,152 +742,152 @@ self: super: builtins.intersectAttrs super {
export PATH=$PWD/dist/build/ihaskell:$PATH
export GHC_PACKAGE_PATH=$PWD/dist/package.conf.inplace/:$GHC_PACKAGE_PATH
'';
});
}) super.ihaskell;
# tests need to execute the built executable
stutter = overrideCabal super.stutter (drv: {
stutter = overrideCabal (drv: {
preCheck = ''
export PATH=dist/build/stutter:$PATH
'' + (drv.preCheck or "");
});
}) super.stutter;
# 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 "");
});
})
(generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup);
# set more accurate set of platforms instead of maintaining
# an ever growing list of platforms to exclude via unsupported-platforms
cpuid = overrideCabal super.cpuid {
cpuid = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.cpuid;
# Pass the correct libarchive into the package.
streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
# passes the -msse2 flag which only works on x86 platforms
hsignal = overrideCabal super.hsignal {
hsignal = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.hsignal;
# uses x86 intrinsics
blake3 = overrideCabal super.blake3 {
blake3 = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.blake3;
# uses x86 intrinsics, see also https://github.com/NixOS/nixpkgs/issues/122014
crc32c = overrideCabal super.crc32c {
crc32c = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.crc32c;
# uses x86 intrinsics
seqalign = overrideCabal super.seqalign {
seqalign = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.seqalign;
# uses x86 intrinsics
geomancy = overrideCabal super.geomancy {
geomancy = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.geomancy;
hls-brittany-plugin = overrideCabal super.hls-brittany-plugin (drv: {
hls-brittany-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-class-plugin = overrideCabal super.hls-class-plugin (drv: {
}) super.hls-brittany-plugin;
hls-class-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-ormolu-plugin = overrideCabal super.hls-ormolu-plugin (drv: {
}) super.hls-class-plugin;
hls-ormolu-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-fourmolu-plugin = overrideCabal super.hls-fourmolu-plugin (drv: {
}) super.hls-ormolu-plugin;
hls-fourmolu-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-module-name-plugin = overrideCabal super.hls-module-name-plugin (drv: {
}) super.hls-fourmolu-plugin;
hls-module-name-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-rename-plugin = overrideCabal super.hls-rename-plugin (drv: {
}) super.hls-module-name-plugin;
hls-rename-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'' + (drv.preCheck or "");
});
hls-splice-plugin = overrideCabal super.hls-splice-plugin (drv: {
}) super.hls-rename-plugin;
hls-splice-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-floskell-plugin = overrideCabal super.hls-floskell-plugin (drv: {
}) super.hls-splice-plugin;
hls-floskell-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-pragmas-plugin = overrideCabal super.hls-pragmas-plugin (drv: {
}) super.hls-floskell-plugin;
hls-pragmas-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hiedb = overrideCabal super.hiedb (drv: {
}) super.hls-pragmas-plugin;
hiedb = overrideCabal (drv: {
preCheck = ''
export PATH=$PWD/dist/build/hiedb:$PATH
'';
});
hls-call-hierarchy-plugin = overrideCabal super.hls-call-hierarchy-plugin (drv: {
}) super.hiedb;
hls-call-hierarchy-plugin = overrideCabal (drv: {
preCheck = ''
export HOME=$TMPDIR/home
'';
});
}) super.hls-call-hierarchy-plugin;
# 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: {
hls-haddock-comments-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
hls-eval-plugin = overrideCabal super.hls-eval-plugin (drv: {
}) super.hls-haddock-comments-plugin;
hls-eval-plugin = overrideCabal (drv: {
testToolDepends = [ pkgs.git ];
preCheck = ''
export HOME=$TMPDIR/home
'';
});
}) super.hls-eval-plugin;
taglib = overrideCabal super.taglib (drv: {
taglib = overrideCabal (drv: {
librarySystemDepends = [
pkgs.zlib
] ++ (drv.librarySystemDepends or []);
});
}) super.taglib;
# uses x86 assembler
inline-asm = overrideCabal super.inline-asm {
inline-asm = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.inline-asm;
# uses x86 assembler in C bits
hw-prim-bits = overrideCabal super.hw-prim-bits {
hw-prim-bits = overrideCabal {
platforms = pkgs.lib.platforms.x86;
};
} super.hw-prim-bits;
# random 1.2.0 has tests that indirectly depend on
# itself causing an infinite recursion at evaluation
@ -897,7 +898,6 @@ self: super: builtins.intersectAttrs super {
# not used to link against by anyone, we can make its closure smaller and
# add its runtime dependencies in `haskellPackages` (as opposed to cabal2nix).
cabal2nix-unstable = overrideCabal
(justStaticExecutables super.cabal2nix-unstable)
(drv: {
buildTools = (drv.buildTools or []) ++ [
pkgs.buildPackages.makeWrapper
@ -908,21 +908,22 @@ self: super: builtins.intersectAttrs super {
pkgs.lib.makeBinPath [ pkgs.nix pkgs.nix-prefetch-scripts ]
}"
'';
});
})
(justStaticExecutables super.cabal2nix-unstable);
# test suite needs local redis daemon
nri-redis = dontCheck super.nri-redis;
# Make tophat find itself for _compiling_ its test suite
tophat = overrideCabal super.tophat (drv: {
tophat = overrideCabal (drv: {
postPatch = ''
sed -i 's|"tophat"|"./dist/build/tophat/tophat"|' app-test-bin/*.hs
'' + (drv.postPatch or "");
});
}) super.tophat;
# Runtime dependencies and CLI completion
nvfetcher = generateOptparseApplicativeCompletion "nvfetcher" (overrideCabal
super.nvfetcher (drv: {
(drv: {
# test needs network
doCheck = false;
buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
@ -931,9 +932,9 @@ self: super: builtins.intersectAttrs super {
pkgs.lib.makeBinPath [ pkgs.nvchecker pkgs.nix-prefetch-git ]
}"
'';
}));
}) super.nvfetcher);
rel8 = addTestToolDepend super.rel8 pkgs.postgresql;
rel8 = addTestToolDepend pkgs.postgresql super.rel8;
cachix = generateOptparseApplicativeCompletion "cachix" (super.cachix.override { nix = pkgs.nix_2_3; });
@ -944,7 +945,7 @@ self: super: builtins.intersectAttrs super {
# Enable extra optimisations which increase build time, but also
# later compiler performance, so we should do this for user's benefit.
# Flag added in Agda 2.6.2
Agda = appendConfigureFlag super.Agda "-foptimise-heavily";
Agda = appendConfigureFlag "-foptimise-heavily" super.Agda;
# ats-format uses cli-setup in Setup.hs which is quite happy to write
# to arbitrary files in $HOME. This doesn't either not achieve anything
@ -952,7 +953,7 @@ self: super: builtins.intersectAttrs super {
# See also: https://hackage.haskell.org/package/cli-setup-0.2.1.4/docs/src/Distribution.CommandLine.html#setManpathGeneric
ats-format = generateOptparseApplicativeCompletion "atsfmt" (
justStaticExecutables (
overrideCabal super.ats-format (drv: {
overrideCabal (drv: {
# use vanilla Setup.hs
preCompileBuildDriver = ''
cat > Setup.hs << EOF
@ -968,7 +969,7 @@ self: super: builtins.intersectAttrs super {
postInstall = ''
installManPage man/atsfmt.1
'' + (drv.postInstall or "");
})
}) super.ats-format
)
);
@ -978,10 +979,10 @@ self: super: builtins.intersectAttrs super {
# Some hash implementations are x86 only, but part of the test suite.
# So executing and building it on non-x86 platforms will always fail.
hashes = overrideCabal super.hashes {
hashes = overrideCabal {
doCheck = with pkgs.stdenv; hostPlatform == buildPlatform
&& buildPlatform.isx86;
};
} super.hashes;
# procex relies on close_range which has been introduced in Linux 5.9,
# the test suite seems to force the use of this feature (or the fallback
@ -989,7 +990,7 @@ self: super: builtins.intersectAttrs super {
# Kernel < 5.9. To check for this, we use uname -r to obtain the Kernel
# version and sort -V to compare against our minimum version. If the
# Kernel turns out to be older, we disable the test suite.
procex = overrideCabal super.procex (drv: {
procex = overrideCabal (drv: {
postConfigure = ''
minimumKernel=5.9
higherVersion=`printf "%s\n%s\n" "$minimumKernel" "$(uname -r)" | sort -rV | head -n1`
@ -998,5 +999,5 @@ self: super: builtins.intersectAttrs super {
unset doCheck
fi
'' + (drv.postConfigure or "");
});
}) super.procex;
}

View file

@ -17,7 +17,7 @@ let
};
setTensorflowSourceRoot = dir: drv:
(overrideCabal drv (drv: { src = tensorflow-haskell; }))
(overrideCabal (drv: { src = tensorflow-haskell; }) drv)
.overrideAttrs (_oldAttrs: {sourceRoot = "source/${dir}";});
in
{

View file

@ -56,6 +56,7 @@ in
, mainProgram ? null
, doCoverage ? false
, doHaddock ? !(ghc.isHaLVM or false)
, doHaddockInterfaces ? doHaddock && lib.versionAtLeast ghc.version "9.0.1"
, passthru ? {}
, pkg-configDepends ? [], libraryPkgconfigDepends ? [], executablePkgconfigDepends ? [], testPkgconfigDepends ? [], benchmarkPkgconfigDepends ? []
, testDepends ? [], testHaskellDepends ? [], testSystemDepends ? [], testFrameworkDepends ? []
@ -226,7 +227,11 @@ let
] ++ optionals isCross ([
"--configure-option=--host=${stdenv.hostPlatform.config}"
] ++ crossCabalFlags
) ++ optionals enableSeparateBinOutput ["--bindir=${binDir}"];
) ++ optionals enableSeparateBinOutput [
"--bindir=${binDir}"
] ++ optionals (doHaddockInterfaces && isLibrary) [
"--ghc-options=-haddock"
];
setupCompileFlags = [
(optionalString (!coreSetup) "-${nativePackageDbFlag}=$setupPackageConfDir")

File diff suppressed because it is too large Load diff

View file

@ -3,10 +3,18 @@
{ pkgs, lib }:
rec {
/* The same functionality as this haskell.lib, except that the derivation
being overridden is always the last parameter. This permits more natural
composition of several overrides, i.e. without having to nestle one call
between the function name and argument of another. haskell.lib.compose is
preferred for any new code.
*/
compose = import ./lib/compose.nix { inherit pkgs lib; };
/* This function takes a file like `hackage-packages.nix` and constructs
a full package set out of that.
*/
makePackageSet = import ./make-package-set.nix;
makePackageSet = compose.makePackageSet;
/* The function overrideCabal lets you alter the arguments to the
mkDerivation function.
@ -34,47 +42,37 @@ rec {
"https://github.com/bos/aeson#readme"
*/
overrideCabal = drv: f: (drv.override (args: args // {
mkDerivation = drv: (args.mkDerivation drv).override f;
})) // {
overrideScope = scope: overrideCabal (drv.overrideScope scope) f;
};
overrideCabal = drv: f: compose.overrideCabal f drv;
# : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet
# Given a set whose values are either paths or version strings, produces
# a package override set (i.e. (self: super: { etc. })) that sets
# the packages named in the input set to the corresponding versions
packageSourceOverrides =
overrides: self: super: pkgs.lib.mapAttrs (name: src:
let isPath = x: builtins.substring 0 1 (toString x) == "/";
generateExprs = if isPath src
then self.callCabal2nix
else self.callHackage;
in generateExprs name src {}) overrides;
packageSourceOverrides = compose.packageSourceOverrides;
/* doCoverage modifies a haskell package to enable the generation
and installation of a coverage report.
See https://wiki.haskell.org/Haskell_program_coverage
*/
doCoverage = drv: overrideCabal drv (drv: { doCoverage = true; });
doCoverage = compose.doCoverage;
/* dontCoverage modifies a haskell package to disable the generation
and installation of a coverage report.
*/
dontCoverage = drv: overrideCabal drv (drv: { doCoverage = false; });
dontCoverage = compose.dontCoverage;
/* doHaddock modifies a haskell package to enable the generation and
installation of API documentation from code comments using the
haddock tool.
*/
doHaddock = drv: overrideCabal drv (drv: { doHaddock = true; });
doHaddock = compose.doHaddock;
/* dontHaddock modifies a haskell package to disable the generation and
installation of API documentation from code comments using the
haddock tool.
*/
dontHaddock = drv: overrideCabal drv (drv: { doHaddock = false; });
dontHaddock = compose.dontHaddock;
/* doJailbreak enables the removal of version bounds from the cabal
file. You may want to avoid this function.
@ -92,39 +90,39 @@ rec {
https://github.com/peti/jailbreak-cabal/issues/7 has further details.
*/
doJailbreak = drv: overrideCabal drv (drv: { jailbreak = true; });
doJailbreak = compose.doJailbreak;
/* dontJailbreak restores the use of the version bounds the check
the use of dependencies in the package description.
*/
dontJailbreak = drv: overrideCabal drv (drv: { jailbreak = false; });
dontJailbreak = compose.dontJailbreak;
/* doCheck enables dependency checking, compilation and execution
of test suites listed in the package description file.
*/
doCheck = drv: overrideCabal drv (drv: { doCheck = true; });
doCheck = compose.doCheck;
/* dontCheck disables dependency checking, compilation and execution
of test suites listed in the package description file.
*/
dontCheck = drv: overrideCabal drv (drv: { doCheck = false; });
dontCheck = compose.dontCheck;
/* doBenchmark enables dependency checking, compilation and execution
for benchmarks listed in the package description file.
*/
doBenchmark = drv: overrideCabal drv (drv: { doBenchmark = true; });
doBenchmark = compose.doBenchmark;
/* dontBenchmark disables dependency checking, compilation and execution
for benchmarks listed in the package description file.
*/
dontBenchmark = drv: overrideCabal drv (drv: { doBenchmark = false; });
dontBenchmark = compose.dontBenchmark;
/* doDistribute enables the distribution of binaries for the package
via hydra.
*/
doDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = drv.platforms or ["i686-linux" "x86_64-linux" "x86_64-darwin"]; });
doDistribute = compose.doDistribute;
/* dontDistribute disables the distribution of binaries for the package
via hydra.
*/
dontDistribute = drv: overrideCabal drv (drv: { hydraPlatforms = []; });
dontDistribute = compose.dontDistribute;
/* appendConfigureFlag adds a single argument that will be passed to the
cabal configure command, after the arguments that have been defined
@ -134,67 +132,67 @@ rec {
> haskell.lib.appendConfigureFlag haskellPackages.servant "--profiling-detail=all-functions"
*/
appendConfigureFlag = drv: x: appendConfigureFlags drv [x];
appendConfigureFlags = drv: xs: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ xs; });
appendConfigureFlag = drv: x: compose.appendConfigureFlag x drv;
appendConfigureFlags = drv: xs: compose.appendConfigureFlags xs drv;
appendBuildFlag = drv: x: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ [x]; });
appendBuildFlags = drv: xs: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ xs; });
appendBuildFlag = drv: x: compose.appendBuildFlag x drv;
appendBuildFlags = drv: xs: compose.appendBuildFlags xs drv;
/* removeConfigureFlag drv x is a Haskell package like drv, but with
all cabal configure arguments that are equal to x removed.
> haskell.lib.removeConfigureFlag haskellPackages.servant "--verbose"
*/
removeConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = lib.remove x (drv.configureFlags or []); });
removeConfigureFlag = drv: x: compose.removeConfigureFlag x drv;
addBuildTool = drv: x: addBuildTools drv [x];
addBuildTools = drv: xs: overrideCabal drv (drv: { buildTools = (drv.buildTools or []) ++ xs; });
addBuildTool = drv: x: compose.addBuildTool x drv;
addBuildTools = drv: xs: compose.addBuildTools xs drv;
addExtraLibrary = drv: x: addExtraLibraries drv [x];
addExtraLibraries = drv: xs: overrideCabal drv (drv: { extraLibraries = (drv.extraLibraries or []) ++ xs; });
addExtraLibrary = drv: x: compose.addExtraLibrary x drv;
addExtraLibraries = drv: xs: compose.addExtraLibraries xs drv;
addBuildDepend = drv: x: addBuildDepends drv [x];
addBuildDepends = drv: xs: overrideCabal drv (drv: { buildDepends = (drv.buildDepends or []) ++ xs; });
addBuildDepend = drv: x: compose.addBuildDepend x drv;
addBuildDepends = drv: xs: compose.addBuildDepends xs drv;
addTestToolDepend = drv: x: addTestToolDepends drv [x];
addTestToolDepends = drv: xs: overrideCabal drv (drv: { testToolDepends = (drv.testToolDepends or []) ++ xs; });
addTestToolDepend = drv: x: compose.addTestToolDepend x drv;
addTestToolDepends = drv: xs: compose.addTestToolDepends xs drv;
addPkgconfigDepend = drv: x: addPkgconfigDepends drv [x];
addPkgconfigDepends = drv: xs: overrideCabal drv (drv: { pkg-configDepends = (drv.pkg-configDepends or []) ++ xs; });
addPkgconfigDepend = drv: x: compose.addPkgconfigDepend x drv;
addPkgconfigDepends = drv: xs: compose.addPkgconfigDepends xs drv;
addSetupDepend = drv: x: addSetupDepends drv [x];
addSetupDepends = drv: xs: overrideCabal drv (drv: { setupHaskellDepends = (drv.setupHaskellDepends or []) ++ xs; });
addSetupDepend = drv: x: compose.addSetupDepend x drv;
addSetupDepends = drv: xs: compose.addSetupDepends xs drv;
enableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f-${x}") "-f${x}";
disableCabalFlag = drv: x: appendConfigureFlag (removeConfigureFlag drv "-f${x}") "-f-${x}";
enableCabalFlag = drv: x: compose.enableCabalFlag x drv;
disableCabalFlag = drv: x: compose.disableCabalFlag x drv;
markBroken = drv: overrideCabal drv (drv: { broken = true; hydraPlatforms = []; });
unmarkBroken = drv: overrideCabal drv (drv: { broken = false; });
markBrokenVersion = version: drv: assert drv.version == version; markBroken drv;
markUnbroken = drv: overrideCabal drv (drv: { broken = false; });
markBroken = compose.markBroken;
unmarkBroken = compose.unmarkBroken;
markBrokenVersion = compose.markBrokenVersion;
markUnbroken = compose.markUnbroken;
enableLibraryProfiling = drv: overrideCabal drv (drv: { enableLibraryProfiling = true; });
disableLibraryProfiling = drv: overrideCabal drv (drv: { enableLibraryProfiling = false; });
enableLibraryProfiling = compose.enableLibraryProfiling;
disableLibraryProfiling = compose.disableLibraryProfiling;
enableExecutableProfiling = drv: overrideCabal drv (drv: { enableExecutableProfiling = true; });
disableExecutableProfiling = drv: overrideCabal drv (drv: { enableExecutableProfiling = false; });
enableExecutableProfiling = compose.enableExecutableProfiling;
disableExecutableProfiling = compose.disableExecutableProfiling;
enableSharedExecutables = drv: overrideCabal drv (drv: { enableSharedExecutables = true; });
disableSharedExecutables = drv: overrideCabal drv (drv: { enableSharedExecutables = false; });
enableSharedExecutables = compose.enableSharedExecutables;
disableSharedExecutables = compose.disableSharedExecutables;
enableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = true; });
disableSharedLibraries = drv: overrideCabal drv (drv: { enableSharedLibraries = false; });
enableSharedLibraries = compose.enableSharedLibraries;
disableSharedLibraries = compose.disableSharedLibraries;
enableDeadCodeElimination = drv: overrideCabal drv (drv: { enableDeadCodeElimination = true; });
disableDeadCodeElimination = drv: overrideCabal drv (drv: { enableDeadCodeElimination = false; });
enableDeadCodeElimination = compose.enableDeadCodeElimination;
disableDeadCodeElimination = compose.disableDeadCodeElimination;
enableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = true; });
disableStaticLibraries = drv: overrideCabal drv (drv: { enableStaticLibraries = false; });
enableStaticLibraries = compose.enableStaticLibraries;
disableStaticLibraries = compose.disableStaticLibraries;
enableSeparateBinOutput = drv: overrideCabal drv (drv: { enableSeparateBinOutput = true; });
enableSeparateBinOutput = compose.enableSeparateBinOutput;
appendPatch = drv: x: appendPatches drv [x];
appendPatches = drv: xs: overrideCabal drv (drv: { patches = (drv.patches or []) ++ xs; });
appendPatch = drv: x: compose.appendPatch x drv;
appendPatches = drv: xs: compose.appendPatches xs drv;
/* 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".
@ -203,115 +201,67 @@ rec {
* setBuildTarget (callCabal2nix "thePackageName" thePackageSrc {}) "server"
*
*/
setBuildTargets = drv: xs: overrideCabal drv (drv: { buildTarget = lib.concatStringsSep " " xs; });
setBuildTarget = drv: x: setBuildTargets drv [x];
setBuildTargets = drv: xs: compose.setBuildTargets xs drv;
setBuildTarget = drv: x: compose.setBuildTarget x drv;
doHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = true; });
dontHyperlinkSource = drv: overrideCabal drv (drv: { hyperlinkSource = false; });
doHyperlinkSource = compose.doHyperlinkSource;
dontHyperlinkSource = compose.dontHyperlinkSource;
disableHardening = drv: flags: overrideCabal drv (drv: { hardeningDisable = flags; });
disableHardening = drv: flags: compose.disableHardening flags drv;
/* Let Nix strip the binary files.
* This removes debugging symbols.
*/
doStrip = drv: overrideCabal drv (drv: { dontStrip = false; });
doStrip = compose.doStrip;
/* Stop Nix from stripping the binary files.
* This keeps debugging symbols.
*/
dontStrip = drv: overrideCabal drv (drv: { dontStrip = true; });
dontStrip = compose.dontStrip;
/* Useful for debugging segfaults with gdb.
* This includes dontStrip.
*/
enableDWARFDebugging = drv:
# -g: enables debugging symbols
# --disable-*-stripping: tell GHC not to strip resulting binaries
# dontStrip: see above
appendConfigureFlag (dontStrip drv) "--ghc-options=-g --disable-executable-stripping --disable-library-stripping";
enableDWARFDebugging = compose.enableDWARFDebugging;
/* Create a source distribution tarball like those found on hackage,
instead of building the package.
*/
sdistTarball = pkg: lib.overrideDerivation pkg (drv: {
name = "${drv.pname}-source-${drv.version}";
# Since we disable the haddock phase, we also need to override the
# outputs since the separate doc output will not be produced.
outputs = ["out"];
buildPhase = "./Setup sdist";
haddockPhase = ":";
checkPhase = ":";
installPhase = "install -D dist/${drv.pname}-*.tar.gz $out/${drv.pname}-${drv.version}.tar.gz";
fixupPhase = ":";
});
sdistTarball = compose.sdistTarball;
/* Create a documentation tarball suitable for uploading to Hackage instead
of building the package.
*/
documentationTarball = pkg:
pkgs.lib.overrideDerivation pkg (drv: {
name = "${drv.name}-docs";
# Like sdistTarball, disable the "doc" output here.
outputs = [ "out" ];
buildPhase = ''
runHook preHaddock
./Setup haddock --for-hackage
runHook postHaddock
'';
haddockPhase = ":";
checkPhase = ":";
installPhase = ''
runHook preInstall
mkdir -p "$out"
tar --format=ustar \
-czf "$out/${drv.name}-docs.tar.gz" \
-C dist/doc/html "${drv.name}-docs"
runHook postInstall
'';
});
documentationTarball = compose.documentationTarball;
/* Use the gold linker. It is a linker for ELF that is designed
"to run as fast as possible on modern systems"
*/
linkWithGold = drv : appendConfigureFlag drv
"--ghc-option=-optl-fuse-ld=gold --ld-option=-fuse-ld=gold --with-ld=ld.gold";
linkWithGold = compose.linkWithGold;
/* link executables statically against haskell libs to reduce
closure size
*/
justStaticExecutables = drv: overrideCabal drv (drv: {
enableSharedExecutables = false;
enableLibraryProfiling = false;
isLibrary = false;
doHaddock = false;
postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
});
justStaticExecutables = compose.justStaticExecutables;
/* Build a source distribution tarball instead of using the source files
directly. The effect is that the package is built as if it were published
on hackage. This can be used as a test for the source distribution,
assuming the build fails when packaging mistakes are in the cabal file.
*/
buildFromSdist = pkg: overrideCabal pkg (drv: {
src = "${sdistTarball pkg}/${pkg.pname}-${pkg.version}.tar.gz";
# Revising and jailbreaking the cabal file has been handled in sdistTarball
revision = null;
editedCabalFile = null;
jailbreak = false;
});
buildFromSdist = compose.buildFromSdist;
/* Build the package in a strict way to uncover potential problems.
This includes buildFromSdist and failOnAllWarnings.
*/
buildStrictly = pkg: buildFromSdist (failOnAllWarnings pkg);
buildStrictly = compose.buildStrictly;
/* Disable core optimizations, significantly speeds up build time */
disableOptimization = pkg: appendConfigureFlag pkg "--disable-optimization";
disableOptimization = compose.disableOptimization;
/* Turn on most of the compiler warnings and fail the build if any
of them occur. */
failOnAllWarnings = drv: appendConfigureFlag drv "--ghc-option=-Wall --ghc-option=-Werror";
failOnAllWarnings = compose.failOnAllWarnings;
/* Add a post-build check to verify that dependencies declared in
the cabal file are actually used.
@ -320,54 +270,33 @@ rec {
of this check and a list of ignored package names that would otherwise
cause false alarms.
*/
checkUnusedPackages =
{ ignoreEmptyImports ? false
, ignoreMainModule ? false
, ignorePackages ? []
} : drv :
overrideCabal (appendConfigureFlag drv "--ghc-option=-ddump-minimal-imports") (_drv: {
postBuild = with lib;
let args = concatStringsSep " " (
optional ignoreEmptyImports "--ignore-empty-imports" ++
optional ignoreMainModule "--ignore-main-module" ++
map (pkg: "--ignore-package ${pkg}") ignorePackages
);
in "${pkgs.haskellPackages.packunused}/bin/packunused" +
optionalString (args != "") " ${args}";
});
checkUnusedPackages = compose.checkUnusedPackages;
buildStackProject = pkgs.callPackage ./generic-stack-builder.nix { };
buildStackProject = compose.buildStackProject;
/* Add a dummy command to trigger a build despite an equivalent
earlier build that is present in the store or cache.
*/
triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; });
triggerRebuild = drv: i: compose.triggerRebuild i drv;
/* Override the sources for the package and optionaly the version.
This also takes of removing editedCabalFile.
*/
overrideSrc = drv: { src, version ? drv.version }:
overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
overrideSrc = drv: src: compose.overrideSrc src drv;
# Get all of the build inputs of a haskell package, divided by category.
getBuildInputs = p: p.getBuildInputs;
getBuildInputs = compose.getBuildInputs;
# Extract the haskell build inputs of a haskell package.
# This is useful to build environments for developing on that
# package.
getHaskellBuildInputs = p: (getBuildInputs p).haskellBuildInputs;
getHaskellBuildInputs = compose.getHaskellBuildInputs;
# Under normal evaluation, simply return the original package. Under
# nix-shell evaluation, return a nix-shell optimized environment.
shellAware = p: if lib.inNixShell then p.env else p;
shellAware = compose.shellAware;
ghcInfo = ghc:
rec { isCross = (ghc.cross or null) != null;
isGhcjs = ghc.isGhcjs or false;
nativeGhc = if isCross || isGhcjs
then ghc.bootPkgs.ghc
else ghc;
};
ghcInfo = compose.ghcInfo;
### mkDerivation helpers
# These allow external users of a haskell package to extract
@ -379,35 +308,15 @@ rec {
# an example of this.
# Some information about which phases should be run.
controlPhases = ghc: let inherit (ghcInfo ghc) isCross; in
{ doCheck ? !isCross && (lib.versionOlder "7.4" ghc.version)
, doBenchmark ? false
, ...
}: { inherit doCheck doBenchmark; };
controlPhases = compose.controlPhases;
# Utility to convert a directory full of `cabal2nix`-generated files into a
# package override set
#
# packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet
packagesFromDirectory =
{ directory, ... }:
packagesFromDirectory = compose.packagesFromDirectory;
self: super:
let
haskellPaths = builtins.attrNames (builtins.readDir directory);
toKeyVal = file: {
name = builtins.replaceStrings [ ".nix" ] [ "" ] file;
value = self.callPackage (directory + "/${file}") { };
};
in
builtins.listToAttrs (map toKeyVal haskellPaths);
addOptparseApplicativeCompletionScripts = exeName: pkg:
builtins.trace "addOptparseApplicativeCompletionScripts is deprecated in favor of generateOptparseApplicativeCompletion. Please change ${pkg.name} to use the latter or its plural form."
(generateOptparseApplicativeCompletion exeName pkg);
addOptparseApplicativeCompletionScripts = compose.addOptparseApplicativeCompletionScripts;
/*
Modify a Haskell package to add shell completion scripts for the
@ -422,23 +331,7 @@ rec {
command: name of an executable
pkg: Haskell package that builds the executables
*/
generateOptparseApplicativeCompletion = exeName: pkg: overrideCabal pkg (drv: {
postInstall = (drv.postInstall or "") + ''
bashCompDir="''${!outputBin}/share/bash-completion/completions"
zshCompDir="''${!outputBin}/share/zsh/vendor-completions"
fishCompDir="''${!outputBin}/share/fish/vendor_completions.d"
mkdir -p "$bashCompDir" "$zshCompDir" "$fishCompDir"
"''${!outputBin}/bin/${exeName}" --bash-completion-script "''${!outputBin}/bin/${exeName}" >"$bashCompDir/${exeName}"
"''${!outputBin}/bin/${exeName}" --zsh-completion-script "''${!outputBin}/bin/${exeName}" >"$zshCompDir/_${exeName}"
"''${!outputBin}/bin/${exeName}" --fish-completion-script "''${!outputBin}/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
# Sanity check
grep -F ${exeName} <$bashCompDir/${exeName} >/dev/null || {
echo 'Could not find ${exeName} in completion script.'
exit 1
}
'';
});
generateOptparseApplicativeCompletion = compose.generateOptparseApplicativeCompletion;
/*
Modify a Haskell package to add shell completion scripts for the
@ -453,13 +346,10 @@ rec {
commands: name of an executable
pkg: Haskell package that builds the executables
*/
generateOptparseApplicativeCompletions = commands: pkg:
pkgs.lib.foldr generateOptparseApplicativeCompletion pkg commands;
generateOptparseApplicativeCompletions = compose.generateOptparseApplicativeCompletions;
# Don't fail at configure time if there are multiple versions of the
# same package in the (recursive) dependencies of the package being
# built. Will delay failures, if any, to compile time.
allowInconsistentDependencies = drv: overrideCabal drv (drv: {
allowInconsistentDependencies = true;
});
allowInconsistentDependencies = compose.allowInconsistentDependencies;
}

View file

@ -0,0 +1,466 @@
# TODO(@Ericson2314): Remove `pkgs` param, which is only used for
# `buildStackProject`, `justStaticExecutables` and `checkUnusedPackages`
{ pkgs, lib }:
rec {
/* This function takes a file like `hackage-packages.nix` and constructs
a full package set out of that.
*/
makePackageSet = import ../make-package-set.nix;
/* The function overrideCabal lets you alter the arguments to the
mkDerivation function.
Example:
First, note how the aeson package is constructed in hackage-packages.nix:
"aeson" = callPackage ({ mkDerivation, attoparsec, <snip>
}:
mkDerivation {
pname = "aeson";
<snip>
homepage = "https://github.com/bos/aeson";
})
The mkDerivation function of haskellPackages will take care of putting
the homepage in the right place, in meta.
> haskellPackages.aeson.meta.homepage
"https://github.com/bos/aeson"
> x = haskell.lib.compose.overrideCabal (old: { homepage = old.homepage + "#readme"; }) haskellPackages.aeson
> x.meta.homepage
"https://github.com/bos/aeson#readme"
*/
overrideCabal = f: drv: (drv.override (args: args // {
mkDerivation = drv: (args.mkDerivation drv).override f;
})) // {
overrideScope = scope: overrideCabal f (drv.overrideScope scope);
};
# : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet
# Given a set whose values are either paths or version strings, produces
# a package override set (i.e. (self: super: { etc. })) that sets
# the packages named in the input set to the corresponding versions
packageSourceOverrides =
overrides: self: super: pkgs.lib.mapAttrs (name: src:
let isPath = x: builtins.substring 0 1 (toString x) == "/";
generateExprs = if isPath src
then self.callCabal2nix
else self.callHackage;
in generateExprs name src {}) overrides;
/* doCoverage modifies a haskell package to enable the generation
and installation of a coverage report.
See https://wiki.haskell.org/Haskell_program_coverage
*/
doCoverage = overrideCabal (drv: { doCoverage = true; });
/* dontCoverage modifies a haskell package to disable the generation
and installation of a coverage report.
*/
dontCoverage = overrideCabal (drv: { doCoverage = false; });
/* doHaddock modifies a haskell package to enable the generation and
installation of API documentation from code comments using the
haddock tool.
*/
doHaddock = overrideCabal (drv: { doHaddock = true; });
/* dontHaddock modifies a haskell package to disable the generation and
installation of API documentation from code comments using the
haddock tool.
*/
dontHaddock = overrideCabal (drv: { doHaddock = false; });
/* doJailbreak enables the removal of version bounds from the cabal
file. You may want to avoid this function.
This is useful when a package reports that it can not be built
due to version mismatches. In some cases, removing the version
bounds entirely is an easy way to make a package build, but at
the risk of breaking software in non-obvious ways now or in the
future.
Instead of jailbreaking, you can patch the cabal file.
Note that jailbreaking at this time, doesn't lift bounds on
conditional branches.
https://github.com/peti/jailbreak-cabal/issues/7 has further details.
*/
doJailbreak = overrideCabal (drv: { jailbreak = true; });
/* dontJailbreak restores the use of the version bounds the check
the use of dependencies in the package description.
*/
dontJailbreak = overrideCabal (drv: { jailbreak = false; });
/* doCheck enables dependency checking, compilation and execution
of test suites listed in the package description file.
*/
doCheck = overrideCabal (drv: { doCheck = true; });
/* dontCheck disables dependency checking, compilation and execution
of test suites listed in the package description file.
*/
dontCheck = overrideCabal (drv: { doCheck = false; });
/* doBenchmark enables dependency checking, compilation and execution
for benchmarks listed in the package description file.
*/
doBenchmark = overrideCabal (drv: { doBenchmark = true; });
/* dontBenchmark disables dependency checking, compilation and execution
for benchmarks listed in the package description file.
*/
dontBenchmark = overrideCabal (drv: { doBenchmark = false; });
/* doDistribute enables the distribution of binaries for the package
via hydra.
*/
doDistribute = overrideCabal (drv: { hydraPlatforms = drv.platforms or ["i686-linux" "x86_64-linux" "x86_64-darwin"]; });
/* dontDistribute disables the distribution of binaries for the package
via hydra.
*/
dontDistribute = overrideCabal (drv: { hydraPlatforms = []; });
/* appendConfigureFlag adds a single argument that will be passed to the
cabal configure command, after the arguments that have been defined
in the initial declaration or previous overrides.
Example:
> haskell.lib.compose.appendConfigureFlag "--profiling-detail=all-functions" haskellPackages.servant
*/
appendConfigureFlag = x: appendConfigureFlags [x];
appendConfigureFlags = xs: overrideCabal (drv: { configureFlags = (drv.configureFlags or []) ++ xs; });
appendBuildFlag = x: overrideCabal (drv: { buildFlags = (drv.buildFlags or []) ++ [x]; });
appendBuildFlags = xs: overrideCabal (drv: { buildFlags = (drv.buildFlags or []) ++ xs; });
/* removeConfigureFlag drv x is a Haskell package like drv, but with
all cabal configure arguments that are equal to x removed.
> haskell.lib.compose.removeConfigureFlag "--verbose" haskellPackages.servant
*/
removeConfigureFlag = x: overrideCabal (drv: { configureFlags = lib.remove x (drv.configureFlags or []); });
addBuildTool = x: addBuildTools [x];
addBuildTools = xs: overrideCabal (drv: { buildTools = (drv.buildTools or []) ++ xs; });
addExtraLibrary = x: addExtraLibraries [x];
addExtraLibraries = xs: overrideCabal (drv: { extraLibraries = (drv.extraLibraries or []) ++ xs; });
addBuildDepend = x: addBuildDepends [x];
addBuildDepends = xs: overrideCabal (drv: { buildDepends = (drv.buildDepends or []) ++ xs; });
addTestToolDepend = x: addTestToolDepends [x];
addTestToolDepends = xs: overrideCabal (drv: { testToolDepends = (drv.testToolDepends or []) ++ xs; });
addPkgconfigDepend = x: addPkgconfigDepends [x];
addPkgconfigDepends = xs: overrideCabal (drv: { pkg-configDepends = (drv.pkg-configDepends or []) ++ xs; });
addSetupDepend = x: addSetupDepends [x];
addSetupDepends = xs: overrideCabal (drv: { setupHaskellDepends = (drv.setupHaskellDepends or []) ++ xs; });
enableCabalFlag = x: drv: appendConfigureFlag "-f${x}" (removeConfigureFlag "-f-${x}" drv);
disableCabalFlag = x: drv: appendConfigureFlag "-f-${x}" (removeConfigureFlag "-f${x}" drv);
markBroken = overrideCabal (drv: { broken = true; hydraPlatforms = []; });
unmarkBroken = overrideCabal (drv: { broken = false; });
markBrokenVersion = version: drv: assert drv.version == version; markBroken drv;
markUnbroken = overrideCabal (drv: { broken = false; });
enableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = true; });
disableLibraryProfiling = overrideCabal (drv: { enableLibraryProfiling = false; });
enableExecutableProfiling = overrideCabal (drv: { enableExecutableProfiling = true; });
disableExecutableProfiling = overrideCabal (drv: { enableExecutableProfiling = false; });
enableSharedExecutables = overrideCabal (drv: { enableSharedExecutables = true; });
disableSharedExecutables = overrideCabal (drv: { enableSharedExecutables = false; });
enableSharedLibraries = overrideCabal (drv: { enableSharedLibraries = true; });
disableSharedLibraries = overrideCabal (drv: { enableSharedLibraries = false; });
enableDeadCodeElimination = overrideCabal (drv: { enableDeadCodeElimination = true; });
disableDeadCodeElimination = overrideCabal (drv: { enableDeadCodeElimination = false; });
enableStaticLibraries = overrideCabal (drv: { enableStaticLibraries = true; });
disableStaticLibraries = overrideCabal (drv: { enableStaticLibraries = false; });
enableSeparateBinOutput = overrideCabal (drv: { enableSeparateBinOutput = true; });
appendPatch = x: appendPatches [x];
appendPatches = xs: overrideCabal (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 "server" (callCabal2nix "thePackageName" thePackageSrc {})
*
*/
setBuildTargets = xs: overrideCabal (drv: { buildTarget = lib.concatStringsSep " " xs; });
setBuildTarget = x: setBuildTargets [x];
doHyperlinkSource = overrideCabal (drv: { hyperlinkSource = true; });
dontHyperlinkSource = overrideCabal (drv: { hyperlinkSource = false; });
disableHardening = flags: overrideCabal (drv: { hardeningDisable = flags; });
/* Let Nix strip the binary files.
* This removes debugging symbols.
*/
doStrip = overrideCabal (drv: { dontStrip = false; });
/* Stop Nix from stripping the binary files.
* This keeps debugging symbols.
*/
dontStrip = overrideCabal (drv: { dontStrip = true; });
/* Useful for debugging segfaults with gdb.
* This includes dontStrip.
*/
enableDWARFDebugging = drv:
# -g: enables debugging symbols
# --disable-*-stripping: tell GHC not to strip resulting binaries
# dontStrip: see above
appendConfigureFlag "--ghc-options=-g --disable-executable-stripping --disable-library-stripping" (dontStrip drv);
/* Create a source distribution tarball like those found on hackage,
instead of building the package.
*/
sdistTarball = pkg: lib.overrideDerivation pkg (drv: {
name = "${drv.pname}-source-${drv.version}";
# Since we disable the haddock phase, we also need to override the
# outputs since the separate doc output will not be produced.
outputs = ["out"];
buildPhase = "./Setup sdist";
haddockPhase = ":";
checkPhase = ":";
installPhase = "install -D dist/${drv.pname}-*.tar.gz $out/${drv.pname}-${drv.version}.tar.gz";
fixupPhase = ":";
});
/* Create a documentation tarball suitable for uploading to Hackage instead
of building the package.
*/
documentationTarball = pkg:
pkgs.lib.overrideDerivation pkg (drv: {
name = "${drv.name}-docs";
# Like sdistTarball, disable the "doc" output here.
outputs = [ "out" ];
buildPhase = ''
runHook preHaddock
./Setup haddock --for-hackage
runHook postHaddock
'';
haddockPhase = ":";
checkPhase = ":";
installPhase = ''
runHook preInstall
mkdir -p "$out"
tar --format=ustar \
-czf "$out/${drv.name}-docs.tar.gz" \
-C dist/doc/html "${drv.name}-docs"
runHook postInstall
'';
});
/* Use the gold linker. It is a linker for ELF that is designed
"to run as fast as possible on modern systems"
*/
linkWithGold = appendConfigureFlag
"--ghc-option=-optl-fuse-ld=gold --ld-option=-fuse-ld=gold --with-ld=ld.gold";
/* link executables statically against haskell libs to reduce
closure size
*/
justStaticExecutables = overrideCabal (drv: {
enableSharedExecutables = false;
enableLibraryProfiling = false;
isLibrary = false;
doHaddock = false;
postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
});
/* Build a source distribution tarball instead of using the source files
directly. The effect is that the package is built as if it were published
on hackage. This can be used as a test for the source distribution,
assuming the build fails when packaging mistakes are in the cabal file.
*/
buildFromSdist = pkg: overrideCabal (drv: {
src = "${sdistTarball pkg}/${pkg.pname}-${pkg.version}.tar.gz";
# Revising and jailbreaking the cabal file has been handled in sdistTarball
revision = null;
editedCabalFile = null;
jailbreak = false;
}) pkg;
/* Build the package in a strict way to uncover potential problems.
This includes buildFromSdist and failOnAllWarnings.
*/
buildStrictly = pkg: buildFromSdist (failOnAllWarnings pkg);
/* Disable core optimizations, significantly speeds up build time */
disableOptimization = appendConfigureFlag "--disable-optimization";
/* Turn on most of the compiler warnings and fail the build if any
of them occur. */
failOnAllWarnings = appendConfigureFlag "--ghc-option=-Wall --ghc-option=-Werror";
/* Add a post-build check to verify that dependencies declared in
the cabal file are actually used.
The first attrset argument can be used to configure the strictness
of this check and a list of ignored package names that would otherwise
cause false alarms.
*/
checkUnusedPackages =
{ ignoreEmptyImports ? false
, ignoreMainModule ? false
, ignorePackages ? []
} : drv :
overrideCabal (_drv: {
postBuild = with lib;
let args = concatStringsSep " " (
optional ignoreEmptyImports "--ignore-empty-imports" ++
optional ignoreMainModule "--ignore-main-module" ++
map (pkg: "--ignore-package ${pkg}") ignorePackages
);
in "${pkgs.haskellPackages.packunused}/bin/packunused" +
optionalString (args != "") " ${args}";
}) (appendConfigureFlag "--ghc-option=-ddump-minimal-imports" drv);
buildStackProject = pkgs.callPackage ../generic-stack-builder.nix { };
/* Add a dummy command to trigger a build despite an equivalent
earlier build that is present in the store or cache.
*/
triggerRebuild = i: overrideCabal (drv: { postUnpack = ": trigger rebuild ${toString i}"; });
/* Override the sources for the package and optionaly the version.
This also takes of removing editedCabalFile.
*/
overrideSrc = { src, version ? null }: drv:
overrideCabal (_: { inherit src; version = if version == null then drv.version else version; editedCabalFile = null; }) drv;
# Get all of the build inputs of a haskell package, divided by category.
getBuildInputs = p: p.getBuildInputs;
# Extract the haskell build inputs of a haskell package.
# This is useful to build environments for developing on that
# package.
getHaskellBuildInputs = p: (getBuildInputs p).haskellBuildInputs;
# Under normal evaluation, simply return the original package. Under
# nix-shell evaluation, return a nix-shell optimized environment.
shellAware = p: if lib.inNixShell then p.env else p;
ghcInfo = ghc:
rec { isCross = (ghc.cross or null) != null;
isGhcjs = ghc.isGhcjs or false;
nativeGhc = if isCross || isGhcjs
then ghc.bootPkgs.ghc
else ghc;
};
### mkDerivation helpers
# These allow external users of a haskell package to extract
# information about how it is built in the same way that the
# generic haskell builder does, by reusing the same functions.
# Each function here has the same interface as mkDerivation and thus
# can be called for a given package simply by overriding the
# mkDerivation argument it used. See getHaskellBuildInputs above for
# an example of this.
# Some information about which phases should be run.
controlPhases = ghc: let inherit (ghcInfo ghc) isCross; in
{ doCheck ? !isCross && (lib.versionOlder "7.4" ghc.version)
, doBenchmark ? false
, ...
}: { inherit doCheck doBenchmark; };
# Utility to convert a directory full of `cabal2nix`-generated files into a
# package override set
#
# packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet
packagesFromDirectory =
{ directory, ... }:
self: super:
let
haskellPaths = builtins.attrNames (builtins.readDir directory);
toKeyVal = file: {
name = builtins.replaceStrings [ ".nix" ] [ "" ] file;
value = self.callPackage (directory + "/${file}") { };
};
in
builtins.listToAttrs (map toKeyVal haskellPaths);
addOptparseApplicativeCompletionScripts = exeName: pkg:
builtins.trace "addOptparseApplicativeCompletionScripts is deprecated in favor of generateOptparseApplicativeCompletion. Please change ${pkg.name} to use the latter or its plural form."
(generateOptparseApplicativeCompletion exeName pkg);
/*
Modify a Haskell package to add shell completion scripts for the
given executable produced by it. These completion scripts will be
picked up automatically if the resulting derivation is installed,
e.g. by `nix-env -i`.
Invocation:
generateOptparseApplicativeCompletion command pkg
command: name of an executable
pkg: Haskell package that builds the executables
*/
generateOptparseApplicativeCompletion = exeName: overrideCabal (drv: {
postInstall = (drv.postInstall or "") + ''
bashCompDir="''${!outputBin}/share/bash-completion/completions"
zshCompDir="''${!outputBin}/share/zsh/vendor-completions"
fishCompDir="''${!outputBin}/share/fish/vendor_completions.d"
mkdir -p "$bashCompDir" "$zshCompDir" "$fishCompDir"
"''${!outputBin}/bin/${exeName}" --bash-completion-script "''${!outputBin}/bin/${exeName}" >"$bashCompDir/${exeName}"
"''${!outputBin}/bin/${exeName}" --zsh-completion-script "''${!outputBin}/bin/${exeName}" >"$zshCompDir/_${exeName}"
"''${!outputBin}/bin/${exeName}" --fish-completion-script "''${!outputBin}/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
# Sanity check
grep -F ${exeName} <$bashCompDir/${exeName} >/dev/null || {
echo 'Could not find ${exeName} in completion script.'
exit 1
}
'';
});
/*
Modify a Haskell package to add shell completion scripts for the
given executables produced by it. These completion scripts will be
picked up automatically if the resulting derivation is installed,
e.g. by `nix-env -i`.
Invocation:
generateOptparseApplicativeCompletions commands pkg
commands: name of an executable
pkg: Haskell package that builds the executables
*/
generateOptparseApplicativeCompletions = commands: pkg:
pkgs.lib.foldr generateOptparseApplicativeCompletion pkg commands;
# Don't fail at configure time if there are multiple versions of the
# same package in the (recursive) dependencies of the package being
# built. Will delay failures, if any, to compile time.
allowInconsistentDependencies = overrideCabal (drv: {
allowInconsistentDependencies = true;
});
}

View file

@ -49,23 +49,23 @@ let
nodejs = buildPackages.nodejs-slim;
inherit (self) buildHaskellPackages ghc ghcWithHoogle ghcWithPackages;
inherit (self.buildHaskellPackages) jailbreak-cabal;
hscolour = overrideCabal self.buildHaskellPackages.hscolour (drv: {
hscolour = overrideCabal (drv: {
isLibrary = false;
doHaddock = false;
hyperlinkSource = false; # Avoid depending on hscolour for this build.
postFixup = "rm -rf $out/lib $out/share $out/nix-support";
});
cpphs = overrideCabal (self.cpphs.overrideScope (self: super: {
}) self.buildHaskellPackages.hscolour;
cpphs = overrideCabal (drv: {
isLibrary = false;
postFixup = "rm -rf $out/lib $out/share $out/nix-support";
}) (self.cpphs.overrideScope (self: super: {
mkDerivation = drv: super.mkDerivation (drv // {
enableSharedExecutables = false;
enableSharedLibraries = false;
doHaddock = false;
useCpphs = false;
});
})) (drv: {
isLibrary = false;
postFixup = "rm -rf $out/lib $out/share $out/nix-support";
});
}));
};
mkDerivation = makeOverridable mkDerivationImpl;
@ -159,7 +159,7 @@ let
# (requiring it to be frequently rebuilt), which can be an
# annoyance.
callPackageKeepDeriver = src: args:
overrideCabal (self.callPackage src args) (orig: {
overrideCabal (orig: {
preConfigure = ''
# Generated from ${src}
${orig.preConfigure or ""}
@ -171,7 +171,7 @@ let
# cabal2nixDeriver field.
cabal2nixDeriver = src;
};
});
}) (self.callPackage src args);
in package-set { inherit pkgs lib callPackage; } self // {
@ -213,9 +213,9 @@ in package-set { inherit pkgs lib callPackage; } self // {
then pkgs.lib.cleanSourceWith { inherit src filter; }
else src;
};
in overrideCabal (callPackageKeepDeriver expr args) (orig: {
in overrideCabal (orig: {
inherit src;
});
}) (callPackageKeepDeriver expr args);
callCabal2nix = name: src: args: self.callCabal2nixWithOptions name src "" args;
@ -294,7 +294,7 @@ in package-set { inherit pkgs lib callPackage; } self // {
#
# # default.nix
# with import <nixpkgs> {};
# haskellPackages.extend (haskell.lib.packageSourceOverrides {
# haskellPackages.extend (haskell.lib.compose.packageSourceOverrides {
# frontend = ./frontend;
# backend = ./backend;
# common = ./common;

View file

@ -48,7 +48,7 @@
let
# HTTP support is disabled in order to force that HTTP dependencies are built
# using Nix instead of using Dhall's support for HTTP imports.
dhallNoHTTP = haskell.lib.appendConfigureFlag dhall "-f-with-http";
dhallNoHTTP = haskell.lib.compose.appendConfigureFlag "-f-with-http" dhall;
file = writeText "${name}.dhall" code;

View file

@ -1,13 +1,12 @@
{ haskell, haskellPackages, lib, makeWrapper, runc, stdenv }:
let
inherit (haskell.lib) overrideCabal addBuildDepends;
inherit (haskell.lib.compose) overrideCabal addBuildDepends justStaticExecutables;
inherit (lib) makeBinPath;
bundledBins = lib.optional stdenv.isLinux runc;
pkg =
# justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
overrideCabal
(addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-cli) [ makeWrapper ])
(o: {
postInstall = ''
${o.postInstall or ""}
@ -15,7 +14,8 @@ let
mv $out/bin/hci $out/libexec
makeWrapper $out/libexec/hci $out/bin/hci --prefix PATH : ${makeBinPath bundledBins}
'';
});
})
(addBuildDepends [ makeWrapper ] (justStaticExecutables haskellPackages.hercules-ci-cli));
in pkg // {
meta = pkg.meta // {
position = toString ./default.nix + ":1";

View file

@ -1,13 +1,12 @@
{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper, nixos, runc, stdenv }:
let
inherit (haskell.lib) overrideCabal addBuildDepends;
inherit (haskell.lib.compose) overrideCabal addBuildDepends justStaticExecutables;
inherit (lib) makeBinPath;
bundledBins = [ gnutar gzip git ] ++ lib.optional stdenv.isLinux runc;
pkg =
# justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
overrideCabal
(addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-agent) [ makeWrapper ])
(o: {
postInstall = ''
${o.postInstall or ""}
@ -15,7 +14,8 @@ let
mv $out/bin/hercules-ci-agent $out/libexec
makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath bundledBins}
'';
});
})
(addBuildDepends [ makeWrapper ] (justStaticExecutables haskellPackages.hercules-ci-agent));
in pkg.overrideAttrs (o: {
meta = o.meta // {
position = toString ./default.nix + ":1";

View file

@ -2,12 +2,12 @@
let
dconf2nix =
haskell.lib.justStaticExecutables
(haskell.lib.overrideCabal haskellPackages.dconf2nix (oldAttrs: {
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.gvolpe
];
}));
}) haskellPackages.dconf2nix);
in
dconf2nix.overrideAttrs (oldAttrs: {

View file

@ -11,8 +11,8 @@ let
inherit (lib) concatStringsSep concatMapStringsSep take splitString;
getPackages = version: haskell.packages."ghc${version}";
tunedHls = hsPkgs:
haskell.lib.justStaticExecutables
(haskell.lib.overrideCabal hsPkgs.haskell-language-server (old: {
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (old: {
postInstall = ''
remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.shake.data} $out/bin/haskell-language-server
@ -20,7 +20,7 @@ let
remove-references-to -t ${hsPkgs.js-dgtable.data} $out/bin/haskell-language-server
remove-references-to -t ${hsPkgs.js-flot.data} $out/bin/haskell-language-server
'';
}));
}) hsPkgs.haskell-language-server);
targets = version:
let packages = getPackages version;
in [

View file

@ -23,7 +23,7 @@ let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ pac
modulesStr = lib.replaceChars ["\n"] [" "] modules;
configStr = lib.replaceChars ["\n"] [" "] configuration;
in haskellLib.overrideCabal haskellPackages.lambdabot (self: {
in haskellLib.overrideCabal (self: {
patches = (self.patches or []) ++ [ ./custom-config.patch ];
postPatch = (self.postPatch or "") + ''
substituteInPlace src/Main.hs \
@ -38,4 +38,4 @@ in haskellLib.overrideCabal haskellPackages.lambdabot (self: {
wrapProgram $out/bin/lambdabot \
--prefix PATH ":" '${bins}'
'';
})
}) haskellPackages.lambdabot

View file

@ -1,10 +1,10 @@
{ haskellPackages, fetchpatch, haskell, removeReferencesTo }:
let
static = haskell.lib.justStaticExecutables haskellPackages.pandoc;
static = haskell.lib.compose.justStaticExecutables haskellPackages.pandoc;
in
(haskell.lib.overrideCabal static (drv: {
(haskell.lib.compose.overrideCabal (drv: {
configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
@ -16,7 +16,7 @@ in
sha256 = "gOtrWVylzwgu0YLD4SztqlXxtaXXGOf8nTqLwUBS7qs=";
})
];
})).overrideAttrs (drv: {
}) static).overrideAttrs (drv: {
# These libraries are still referenced, because they generate
# a `Paths_*` module for figuring out their version.

View file

@ -1,6 +1,6 @@
{ haskell, haskellPackages, lib }:
haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.pretty-simple (oldAttrs: {
haskell.lib.compose.justStaticExecutables (haskell.lib.compose.overrideCabal (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.cdepillabout
];
@ -8,5 +8,5 @@ haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.pre
configureFlags = (oldAttrs.configureFlags or []) ++ ["-fbuildexe"];
buildDepends = (oldAttrs.buildDepends or []) ++ [haskellPackages.optparse-applicative];
}))
}) haskellPackages.pretty-simple)

View file

@ -12,14 +12,14 @@
let
spago =
haskell.lib.justStaticExecutables
(haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: {
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.cdepillabout
];
changelog =
"https://github.com/purescript/spago/releases/tag/${oldAttrs.version}";
}));
}) haskellPackages.spago);
in
spago.overrideAttrs (oldAttrs: {

View file

@ -15,7 +15,7 @@ let
};
in drv' // { meta = meta' // overrideFn meta'; };
bin = haskell.lib.justStaticExecutables haskellPackages.ShellCheck;
bin = haskell.lib.compose.justStaticExecutables haskellPackages.ShellCheck;
shellcheck = stdenv.mkDerivation {
pname = "shellcheck";

View file

@ -2,9 +2,9 @@
let
drv = haskellPackages.vector;
docs = pkgs.haskell.lib.documentationTarball drv;
docs = pkgs.haskell.lib.compose.documentationTarball drv;
in pkgs.runCommand "test haskell.lib.documentationTarball" {
in pkgs.runCommand "test haskell.lib.compose.documentationTarball" {
meta = {
inherit (docs.meta) platforms;
};

View file

@ -17,7 +17,7 @@ let
drv = haskellPackages.callPackage pkgDef {};
test = target: excluded:
let only = pkgs.haskell.lib.setBuildTarget drv target;
let only = pkgs.haskell.lib.compose.setBuildTarget target drv;
in ''
if [[ ! -f "${only}/bin/${target}" ]]; then
echo "${target} was not built"
@ -31,7 +31,7 @@ let
'';
in
pkgs.runCommand "test haskell.lib.setBuildTarget" {
pkgs.runCommand "test haskell.lib.compose.setBuildTarget" {
meta = {
inherit (drv.meta) platforms;
};

View file

@ -1,7 +1,7 @@
{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick, CoreServices }:
with lib;
with haskell.lib;
with haskell.lib.compose;
let
ldgallery-viewer = pkgs.callPackage ./viewer { inherit CoreServices; };
@ -12,7 +12,7 @@ in
# making sure that the versions of the compiler and viewer parts are in sync
assert ldgallery-compiler.version == versions.majorMinor ldgallery-viewer.version;
justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
justStaticExecutables (overrideCabal (oldAttrs: {
pname = "ldgallery"; # bundled viewer + compiler
buildTools = (oldAttrs.buildTools or []) ++ [ makeWrapper pandoc ];
@ -50,4 +50,4 @@ justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
# other package metadata (maintainer, description, license, ...)
# are inherited from the compiler package
}))
}) ldgallery-compiler)

View file

@ -1639,7 +1639,7 @@ with pkgs;
ecdsautils = callPackage ../tools/security/ecdsautils { };
echidna = haskell.lib.justStaticExecutables (haskellPackages.callPackage (../tools/security/echidna) { });
echidna = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage (../tools/security/echidna) { });
sedutil = callPackage ../tools/security/sedutil { };
@ -1789,7 +1789,7 @@ with pkgs;
hime = callPackage ../tools/inputmethods/hime {};
hinit = haskell.lib.justStaticExecutables haskellPackages.hinit;
hinit = haskell.lib.compose.justStaticExecutables haskellPackages.hinit;
hostctl = callPackage ../tools/system/hostctl { };
@ -2316,7 +2316,7 @@ with pkgs;
cue2pops = callPackage ../tools/cd-dvd/cue2pops { };
cabal2nix-unwrapped = haskell.lib.justStaticExecutables (haskell.lib.generateOptparseApplicativeCompletion "cabal2nix" haskellPackages.cabal2nix);
cabal2nix-unwrapped = haskell.lib.compose.justStaticExecutables (haskell.lib.compose.generateOptparseApplicativeCompletion "cabal2nix" haskellPackages.cabal2nix);
cabal2nix = symlinkJoin {
inherit (cabal2nix-unwrapped) name meta;
@ -2934,7 +2934,7 @@ with pkgs;
fsmark = callPackage ../tools/misc/fsmark { };
futhark = haskell.lib.justStaticExecutables haskellPackages.futhark;
futhark = haskell.lib.compose.justStaticExecutables haskellPackages.futhark;
inherit (nodePackages) fx;
@ -3343,7 +3343,7 @@ with pkgs;
nix-direnv = callPackage ../tools/misc/nix-direnv { };
nix-output-monitor = haskell.lib.justStaticExecutables (haskellPackages.nix-output-monitor);
nix-output-monitor = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-output-monitor);
nix-template = callPackage ../tools/package-management/nix-template {
inherit (darwin.apple_sdk.frameworks) Security;
@ -4795,7 +4795,7 @@ with pkgs;
uudeview = callPackage ../tools/misc/uudeview { };
uusi = haskell.lib.justStaticExecutables haskellPackages.uusi;
uusi = haskell.lib.compose.justStaticExecutables haskellPackages.uusi;
uutils-coreutils = callPackage ../tools/misc/uutils-coreutils {
inherit (python3Packages) sphinx;
@ -6327,7 +6327,7 @@ with pkgs;
icemon = libsForQt5.callPackage ../applications/networking/icemon { };
icepeak = haskell.lib.justStaticExecutables haskellPackages.icepeak;
icepeak = haskell.lib.compose.justStaticExecutables haskellPackages.icepeak;
iceshelf = callPackage ../tools/backup/iceshelf { };
@ -7382,7 +7382,7 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) Foundation;
};
madlang = haskell.lib.justStaticExecutables haskellPackages.madlang;
madlang = haskell.lib.compose.justStaticExecutables haskellPackages.madlang;
maeparser = callPackage ../development/libraries/maeparser { };
@ -7833,7 +7833,7 @@ with pkgs;
ngrep = callPackage ../tools/networking/ngrep { };
neuron-notes = haskell.lib.justStaticExecutables (haskell.lib.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
neuron-notes = haskell.lib.compose.justStaticExecutables (haskell.lib.compose.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
ngrok = ngrok-2;
@ -7879,7 +7879,7 @@ with pkgs;
nvchecker = with python3Packages; toPythonApplication nvchecker;
nvfetcher = haskell.lib.justStaticExecutables haskellPackages.nvfetcher;
nvfetcher = haskell.lib.compose.justStaticExecutables haskellPackages.nvfetcher;
miller = callPackage ../tools/text/miller { };
@ -8231,7 +8231,7 @@ with pkgs;
update-dotdee = with python3Packages; toPythonApplication update-dotdee;
update-nix-fetchgit = haskell.lib.justStaticExecutables haskellPackages.update-nix-fetchgit;
update-nix-fetchgit = haskell.lib.compose.justStaticExecutables haskellPackages.update-nix-fetchgit;
update-resolv-conf = callPackage ../tools/networking/openvpn/update-resolv-conf.nix { };
@ -9597,7 +9597,7 @@ with pkgs;
speech-denoiser = callPackage ../applications/audio/speech-denoiser {};
splot = haskell.lib.justStaticExecutables haskellPackages.splot;
splot = haskell.lib.compose.justStaticExecutables haskellPackages.splot;
spotdl = callPackage ../tools/audio/spotdl { };
@ -9711,13 +9711,13 @@ with pkgs;
stuntman = callPackage ../tools/networking/stuntman { };
stutter = haskell.lib.justStaticExecutables haskellPackages.stutter;
stutter = haskell.lib.compose.justStaticExecutables haskellPackages.stutter;
strongswan = callPackage ../tools/networking/strongswan { };
strongswanTNC = strongswan.override { enableTNC = true; };
strongswanNM = strongswan.override { enableNetworkManager = true; };
stylish-haskell = haskell.lib.justStaticExecutables haskellPackages.stylish-haskell;
stylish-haskell = haskell.lib.compose.justStaticExecutables haskellPackages.stylish-haskell;
su = shadow.su;
@ -10498,7 +10498,7 @@ with pkgs;
wsmancli = callPackage ../tools/system/wsmancli {};
wstunnel = haskell.lib.justStaticExecutables haskellPackages.wstunnel;
wstunnel = haskell.lib.compose.justStaticExecutables haskellPackages.wstunnel;
wolfebin = callPackage ../tools/networking/wolfebin {
python = python2;
@ -10547,7 +10547,7 @@ with pkgs;
time = callPackage ../tools/misc/time { };
tweet-hs = haskell.lib.justStaticExecutables haskellPackages.tweet-hs;
tweet-hs = haskell.lib.compose.justStaticExecutables haskellPackages.tweet-hs;
tweeny = callPackage ../development/libraries/tweeny { };
@ -11483,7 +11483,7 @@ with pkgs;
eql = callPackage ../development/compilers/eql {};
elm2nix = haskell.lib.justStaticExecutables haskellPackages.elm2nix;
elm2nix = haskell.lib.compose.justStaticExecutables haskellPackages.elm2nix;
elmPackages = recurseIntoAttrs (callPackage ../development/compilers/elm {
inherit (darwin.apple_sdk.frameworks) Security;
@ -11984,14 +11984,14 @@ with pkgs;
inherit (haskellPackages) ghc;
cabal-install = haskell.lib.justStaticExecutables haskellPackages.cabal-install;
cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;
stack = haskell.lib.justStaticExecutables haskellPackages.stack;
hlint = haskell.lib.justStaticExecutables haskellPackages.hlint;
stack = haskell.lib.compose.justStaticExecutables haskellPackages.stack;
hlint = haskell.lib.compose.justStaticExecutables haskellPackages.hlint;
krank = haskell.lib.justStaticExecutables haskellPackages.krank;
krank = haskell.lib.compose.justStaticExecutables haskellPackages.krank;
stylish-cabal = haskell.lib.justStaticExecutables haskellPackages.stylish-cabal;
stylish-cabal = haskell.lib.compose.justStaticExecutables haskellPackages.stylish-cabal;
all-cabal-hashes = callPackage ../data/misc/hackage { };
@ -12346,7 +12346,7 @@ with pkgs;
knightos-z80e = callPackage ../development/tools/knightos/z80e { };
koka = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../development/compilers/koka { });
koka = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../development/compilers/koka { });
kotlin = callPackage ../development/compilers/kotlin { };
kotlin-native = callPackage ../development/compilers/kotlin/native.nix { };
@ -13191,19 +13191,19 @@ with pkgs;
clooj = callPackage ../development/interpreters/clojure/clooj.nix { };
dhall = haskell.lib.justStaticExecutables haskellPackages.dhall;
dhall = haskell.lib.compose.justStaticExecutables haskellPackages.dhall;
dhall-bash = haskell.lib.justStaticExecutables haskellPackages.dhall-bash;
dhall-bash = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-bash;
dhall-docs = haskell.lib.justStaticExecutables haskellPackages.dhall-docs;
dhall-docs = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-docs;
dhall-lsp-server = haskell.lib.justStaticExecutables haskellPackages.dhall-lsp-server;
dhall-lsp-server = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-lsp-server;
dhall-json = haskell.lib.justStaticExecutables haskellPackages.dhall-json;
dhall-json = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-json;
dhall-nix = haskell.lib.justStaticExecutables haskellPackages.dhall-nix;
dhall-nix = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-nix;
dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
dhall-text = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-text;
dhallPackages = recurseIntoAttrs (callPackage ./dhall-packages.nix { });
@ -14451,7 +14451,7 @@ with pkgs;
flootty = callPackage ../development/tools/flootty { };
fffuu = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../tools/misc/fffuu { });
fffuu = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../tools/misc/fffuu { });
ffuf = callPackage ../tools/security/ffuf { };
@ -14621,7 +14621,7 @@ with pkgs;
guile = guile_2_0;
};
hadolint = haskell.lib.justStaticExecutables haskellPackages.hadolint;
hadolint = haskell.lib.compose.justStaticExecutables haskellPackages.hadolint;
halfempty = callPackage ../development/tools/halfempty {};
@ -14850,8 +14850,8 @@ with pkgs;
msitools = callPackage ../development/tools/misc/msitools { };
haskell-ci = haskell.lib.justStaticExecutables haskellPackages.haskell-ci;
haskell-ci-unstable = lowPrio (haskell.lib.justStaticExecutables haskellPackages.haskell-ci-unstable);
haskell-ci = haskell.lib.compose.justStaticExecutables haskellPackages.haskell-ci;
haskell-ci-unstable = lowPrio (haskell.lib.compose.justStaticExecutables haskellPackages.haskell-ci-unstable);
neoload = callPackage ../development/tools/neoload {
licenseAccepted = (config.neoload.accept_license or false);
@ -15141,7 +15141,7 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) Security;
};
shake = haskell.lib.justStaticExecutables haskellPackages.shake;
shake = haskell.lib.compose.justStaticExecutables haskellPackages.shake;
shallot = callPackage ../tools/misc/shallot { };
@ -15719,7 +15719,7 @@ with pkgs;
c-blosc = callPackage ../development/libraries/c-blosc { };
# justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
cachix = haskell.lib.justStaticExecutables haskellPackages.cachix;
cachix = haskell.lib.compose.justStaticExecutables haskellPackages.cachix;
hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
@ -15727,7 +15727,7 @@ with pkgs;
isa-l = callPackage ../development/libraries/isa-l { };
niv = lib.getBin (haskell.lib.justStaticExecutables haskellPackages.niv);
niv = lib.getBin (haskell.lib.compose.justStaticExecutables haskellPackages.niv);
ormolu = haskellPackages.ormolu.bin;
@ -16630,7 +16630,7 @@ with pkgs;
glib-testing = callPackage ../development/libraries/glib-testing { };
glirc = haskell.lib.justStaticExecutables haskellPackages.glirc;
glirc = haskell.lib.compose.justStaticExecutables haskellPackages.glirc;
gom = callPackage ../development/libraries/gom { };
@ -17021,7 +17021,7 @@ with pkgs;
json2hcl = callPackage ../development/tools/json2hcl { };
json2yaml = haskell.lib.justStaticExecutables haskellPackages.json2yaml;
json2yaml = haskell.lib.compose.justStaticExecutables haskellPackages.json2yaml;
json-glib = callPackage ../development/libraries/json-glib { };
@ -18477,7 +18477,7 @@ with pkgs;
matio = callPackage ../development/libraries/matio { };
matterhorn = haskell.lib.justStaticExecutables haskellPackages.matterhorn;
matterhorn = haskell.lib.compose.justStaticExecutables haskellPackages.matterhorn;
maxflow = callPackage ../development/libraries/maxflow { };
@ -18964,7 +18964,7 @@ with pkgs;
pkgdiff = callPackage ../tools/misc/pkgdiff { };
place-cursor-at = haskell.lib.justStaticExecutables haskellPackages.place-cursor-at;
place-cursor-at = haskell.lib.compose.justStaticExecutables haskellPackages.place-cursor-at;
plib = callPackage ../development/libraries/plib { };
@ -19244,7 +19244,7 @@ with pkgs;
kissfft = callPackage ../development/libraries/kissfft { };
lambdabot = callPackage ../development/tools/haskell/lambdabot {
haskellLib = haskell.lib;
haskellLib = haskell.lib.compose;
};
lambda-mod-zsh-theme = callPackage ../shells/zsh/lambda-mod-zsh-theme { };
@ -20671,7 +20671,7 @@ with pkgs;
hashi-ui = callPackage ../servers/hashi-ui {};
hasura-graphql-engine = haskell.lib.justStaticExecutables haskellPackages.graphql-engine;
hasura-graphql-engine = haskell.lib.compose.justStaticExecutables haskellPackages.graphql-engine;
hasura-cli = callPackage ../servers/hasura/cli.nix { };
@ -21428,7 +21428,7 @@ with pkgs;
sogo = callPackage ../servers/web-apps/sogo { };
spacecookie =
haskell.lib.justStaticExecutables haskellPackages.spacecookie;
haskell.lib.compose.justStaticExecutables haskellPackages.spacecookie;
spawn_fcgi = callPackage ../servers/http/spawn-fcgi { };
@ -24349,9 +24349,9 @@ with pkgs;
dablin = callPackage ../applications/radio/dablin { };
darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.darcs) (drv: {
darcs = haskell.lib.compose.overrideCabal (drv: {
configureFlags = (lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
});
}) (haskell.lib.compose.justStaticExecutables haskellPackages.darcs);
darcs-to-git = callPackage ../applications/version-management/git-and-tools/darcs-to-git { };
@ -25559,12 +25559,12 @@ with pkgs;
hivelytracker = callPackage ../applications/audio/hivelytracker { };
hledger = haskell.lib.justStaticExecutables haskellPackages.hledger;
hledger = haskell.lib.compose.justStaticExecutables haskellPackages.hledger;
hledger-check-fancyassertions = callPackage ../applications/office/hledger-check-fancyassertions { };
hledger-iadd = haskell.lib.justStaticExecutables haskellPackages.hledger-iadd;
hledger-interest = haskell.lib.justStaticExecutables haskellPackages.hledger-interest;
hledger-ui = haskell.lib.justStaticExecutables haskellPackages.hledger-ui;
hledger-web = haskell.lib.justStaticExecutables haskellPackages.hledger-web;
hledger-iadd = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-iadd;
hledger-interest = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-interest;
hledger-ui = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-ui;
hledger-web = haskell.lib.compose.justStaticExecutables haskellPackages.hledger-web;
homebank = callPackage ../applications/office/homebank {
gtk = gtk3;
@ -25582,7 +25582,7 @@ with pkgs;
hdl-dump = callPackage ../tools/misc/hdl-dump { };
hpack = haskell.lib.justStaticExecutables haskellPackages.hpack;
hpack = haskell.lib.compose.justStaticExecutables haskellPackages.hpack;
hpcg = callPackage ../tools/misc/hpcg { };
@ -25653,7 +25653,7 @@ with pkgs;
pinboard = with python3Packages; toPythonApplication pinboard;
pinboard-notes-backup = haskell.lib.justStaticExecutables haskellPackages.pinboard-notes-backup;
pinboard-notes-backup = haskell.lib.compose.justStaticExecutables haskellPackages.pinboard-notes-backup;
pixelnuke = callPackage ../applications/graphics/pixelnuke { };
@ -28261,7 +28261,7 @@ with pkgs;
teamspeak_client = libsForQt5.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
teamspeak_server = callPackage ../applications/networking/instant-messengers/teamspeak/server.nix { };
taskell = haskell.lib.justStaticExecutables haskellPackages.taskell;
taskell = haskell.lib.compose.justStaticExecutables haskellPackages.taskell;
tap-plugins = callPackage ../applications/audio/tap-plugins { };
@ -28566,7 +28566,7 @@ with pkgs;
uroboros = callPackage ../tools/system/uroboros { };
uuagc = haskell.lib.justStaticExecutables haskellPackages.uuagc;
uuagc = haskell.lib.compose.justStaticExecutables haskellPackages.uuagc;
uucp = callPackage ../tools/misc/uucp { };
@ -29761,7 +29761,7 @@ with pkgs;
bean-add = callPackage ../applications/office/beancount/bean-add.nix { };
bench = haskell.lib.justStaticExecutables haskellPackages.bench;
bench = haskell.lib.compose.justStaticExecutables haskellPackages.bench;
beret = callPackage ../games/beret { };
@ -32473,9 +32473,9 @@ with pkgs;
nix-bundle = callPackage ../tools/package-management/nix-bundle { };
nix-delegate = haskell.lib.justStaticExecutables haskellPackages.nix-delegate;
nix-deploy = haskell.lib.justStaticExecutables haskellPackages.nix-deploy;
nix-diff = haskell.lib.justStaticExecutables haskellPackages.nix-diff;
nix-delegate = haskell.lib.compose.justStaticExecutables haskellPackages.nix-delegate;
nix-deploy = haskell.lib.compose.justStaticExecutables haskellPackages.nix-deploy;
nix-diff = haskell.lib.compose.justStaticExecutables haskellPackages.nix-diff;
nix-du = callPackage ../tools/package-management/nix-du {
inherit (darwin.apple_sdk.frameworks) Security;
@ -32489,7 +32489,7 @@ with pkgs;
};
nix-index = callPackage ../tools/package-management/nix-index/wrapper.nix { };
nix-linter = haskell.lib.justStaticExecutables (haskellPackages.nix-linter);
nix-linter = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-linter);
nixos-option = callPackage ../tools/nix/nixos-option { nix = nix_2_3; };
@ -32520,7 +32520,7 @@ with pkgs;
nix-top = callPackage ../tools/package-management/nix-top { };
nix-tree = haskell.lib.justStaticExecutables (haskellPackages.nix-tree);
nix-tree = haskell.lib.compose.justStaticExecutables (haskellPackages.nix-tree);
nix-universal-prefetch = callPackage ../tools/package-management/nix-universal-prefetch { };
@ -32536,7 +32536,7 @@ with pkgs;
nix-simple-deploy = callPackage ../tools/package-management/nix-simple-deploy { };
nixfmt = haskell.lib.justStaticExecutables haskellPackages.nixfmt;
nixfmt = haskell.lib.compose.justStaticExecutables haskellPackages.nixfmt;
nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };

View file

@ -19,13 +19,13 @@ let
"ghcHEAD"
];
haskellLib = import ../development/haskell-modules/lib.nix {
haskellLibUncomposable = import ../development/haskell-modules/lib.nix {
inherit (pkgs) lib;
inherit pkgs;
};
callPackage = newScope {
inherit haskellLib;
haskellLib = haskellLibUncomposable.compose;
overrides = pkgs.haskell.packageOverrides;
};
@ -44,7 +44,7 @@ let
inherit (pkgs.haskell) compiler packages;
in {
lib = haskellLib;
lib = haskellLibUncomposable;
package-list = callPackage ../development/haskell-modules/package-list.nix {};