Merge pull request #116096 from NixOS/haskell-updates
Update Haskell package set to Stackage Nightly 2021-03-17 (plus other fixes)
This commit is contained in:
commit
a839c811a5
|
@ -1,6 +1,6 @@
|
||||||
{ fetchurl }:
|
{ fetchurl }:
|
||||||
|
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/c0fe8e827d5ec71141700f5d5a90a6f6616ecbc5.tar.gz";
|
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/fd3fefef13b49cbcd9a08b46c2aa4ceb204de5e0.tar.gz";
|
||||||
sha256 = "16is1cipkfiabbh01i247vqfviwzjpfhgf6pkli61wwlhnk0q95s";
|
sha256 = "1dr4bqsisizw3qn9qxjpbk0rjri6s0gv9g9717cwfcixy940af2s";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, pkgs
|
{ lib, stdenv, pkgs
|
||||||
, haskell, nodejs
|
, haskell, haskellPackages, nodejs
|
||||||
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
||||||
# Rust dependecies
|
# Rust dependecies
|
||||||
, rustPlatform, openssl, pkg-config, Security
|
, rustPlatform, openssl, pkg-config, Security
|
||||||
|
@ -7,7 +7,7 @@
|
||||||
let
|
let
|
||||||
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
||||||
|
|
||||||
hsPkgs = haskell.packages.ghc8103.override {
|
hsPkgs = haskellPackages.override {
|
||||||
overrides = self: super: with haskell.lib; with lib;
|
overrides = self: super: with haskell.lib; with lib;
|
||||||
let elmPkgs = rec {
|
let elmPkgs = rec {
|
||||||
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
|
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
|
||||||
|
|
|
@ -1,268 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
# aarch64 outputs otherwise exceed 2GB limit
|
|
||||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = dontStrip: ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
''
|
|
||||||
# We only need to build stage1 on most cross-compilation because
|
|
||||||
# we will be running the compiler on the native system. In some
|
|
||||||
# situations, like native Musl compilation, we need the compiler
|
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
|
||||||
# exception because we can’t actually run simulators binaries
|
|
||||||
# ourselves.
|
|
||||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString dontStrip ''
|
|
||||||
STRIP_CMD = :
|
|
||||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
|
||||||
GhcLibWays = "v dyn"
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.10.1";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "1xgdl6ig5jzli3bg054vfryfkg0y6wggf68g66c32sr67bw0ffsf";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) [
|
|
||||||
"--with-system-libffi"
|
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -1,267 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
# aarch64 outputs otherwise exceed 2GB limit
|
|
||||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
|
||||||
GhcLibWays = "v dyn"
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.10.2";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "02w8n085bw38vyp694j0lfk5wcnwkdaj7hhp0saj71x74533lmww";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
|
|
||||||
./issue-18549.patch
|
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
|
||||||
sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) [
|
|
||||||
"--with-system-libffi"
|
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
|
||||||
dontStrip = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -1,264 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
# aarch64 outputs otherwise exceed 2GB limit
|
|
||||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
|
||||||
GhcLibWays = "v dyn"
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.10.3";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "0cdrdvs5qnqr93cr9zvrlfjv2xr671kjjghnsw4afa4hahcq7p6c";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
|
||||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
|
||||||
sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) [
|
|
||||||
"--with-system-libffi"
|
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
|
||||||
dontStrip = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -1,191 +0,0 @@
|
||||||
{ lib, stdenv, substituteAll
|
|
||||||
, fetchurl, perl, gcc, llvm
|
|
||||||
, ncurses5, gmp, glibc, libiconv
|
|
||||||
, llvmPackages
|
|
||||||
}:
|
|
||||||
|
|
||||||
# Prebuilt only does native
|
|
||||||
assert stdenv.targetPlatform == stdenv.hostPlatform;
|
|
||||||
|
|
||||||
let
|
|
||||||
useLLVM = !stdenv.targetPlatform.isx86;
|
|
||||||
|
|
||||||
libPath = lib.makeLibraryPath ([
|
|
||||||
ncurses5 gmp
|
|
||||||
] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
|
||||||
|
|
||||||
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
|
||||||
+ "LD_LIBRARY_PATH";
|
|
||||||
|
|
||||||
glibcDynLinker = assert stdenv.isLinux;
|
|
||||||
if stdenv.hostPlatform.libc == "glibc" then
|
|
||||||
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
|
||||||
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
|
||||||
else
|
|
||||||
"${lib.getLib glibc}/lib/ld-linux*";
|
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
version = "8.2.2";
|
|
||||||
|
|
||||||
name = "ghc-${version}-binary";
|
|
||||||
|
|
||||||
src = fetchurl ({
|
|
||||||
i686-linux = {
|
|
||||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb8-linux.tar.xz";
|
|
||||||
sha256 = "08w2ik55dp3n95qikmrflc91lsiq01xp53ki3jlhnbj8fqnxfrwy";
|
|
||||||
};
|
|
||||||
x86_64-linux = {
|
|
||||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb8-linux.tar.xz";
|
|
||||||
sha256 = "0ahv26304pqi3dm7i78si4pxwvg5f5dc2jwsfgvcrhcx5g30bqj8";
|
|
||||||
};
|
|
||||||
armv7l-linux = {
|
|
||||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb8-linux.tar.xz";
|
|
||||||
sha256 = "1jmv8qmnh5bn324fivbwdcaj55kvw7cb2zq9pafmlmv3qwwx7s46";
|
|
||||||
};
|
|
||||||
aarch64-linux = {
|
|
||||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-deb8-linux.tar.xz";
|
|
||||||
sha256 = "1k2amylcp1ad67c75h1pqf7czf9m0zj1i7hdc45ghjklnfq9hrk7";
|
|
||||||
};
|
|
||||||
x86_64-darwin = {
|
|
||||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
|
|
||||||
sha256 = "09swx71gh5habzbx55shz2xykgr96xkcy09nzinnm4z0yxicy3zr";
|
|
||||||
};
|
|
||||||
}.${stdenv.hostPlatform.system}
|
|
||||||
or (throw "cannot bootstrap GHC on this platform"));
|
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
|
||||||
propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
|
|
||||||
|
|
||||||
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
|
||||||
# the final install location/
|
|
||||||
${libEnvVar} = libPath;
|
|
||||||
|
|
||||||
postUnpack =
|
|
||||||
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
|
||||||
# during linking
|
|
||||||
lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
|
||||||
for exe in $(find . -type f -executable); do
|
|
||||||
isScript $exe && continue
|
|
||||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
|
||||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
|
||||||
done
|
|
||||||
'' +
|
|
||||||
|
|
||||||
# Some scripts used during the build need to have their shebangs patched
|
|
||||||
''
|
|
||||||
patchShebangs ghc-${version}/utils/
|
|
||||||
patchShebangs ghc-${version}/configure
|
|
||||||
'' +
|
|
||||||
|
|
||||||
# Strip is harmful, see also below. It's important that this happens
|
|
||||||
# first. The GHC Cabal build system makes use of strip by default and
|
|
||||||
# has hardcoded paths to /usr/bin/strip in many places. We replace
|
|
||||||
# those below, making them point to our dummy script.
|
|
||||||
''
|
|
||||||
mkdir "$TMP/bin"
|
|
||||||
for i in strip; do
|
|
||||||
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
|
|
||||||
chmod +x "$TMP/bin/$i"
|
|
||||||
done
|
|
||||||
PATH="$TMP/bin:$PATH"
|
|
||||||
'' +
|
|
||||||
# We have to patch the GMP paths for the integer-gmp package.
|
|
||||||
''
|
|
||||||
find . -name integer-gmp.buildinfo \
|
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
find . -name base.buildinfo \
|
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
|
||||||
'' +
|
|
||||||
# Rename needed libraries and binaries, fix interpreter
|
|
||||||
lib.optionalString stdenv.isLinux ''
|
|
||||||
find . -type f -perm -0100 -exec patchelf \
|
|
||||||
--replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
|
||||||
--replace-needed libtinfo.so libtinfo.so.5 \
|
|
||||||
--interpreter ${glibcDynLinker} {} \;
|
|
||||||
|
|
||||||
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
|
||||||
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
|
||||||
'' +
|
|
||||||
# We're kludging a glibc bindist into working with non-glibc...
|
|
||||||
# Here we patch up the use of `__strdup` (part of glibc binary ABI)
|
|
||||||
# to instead use `strdup` since musl doesn't provide __strdup
|
|
||||||
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
|
||||||
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
|
||||||
# Use objcopy magic to make the change:
|
|
||||||
lib.optionalString stdenv.hostPlatform.isMusl ''
|
|
||||||
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
|
||||||
'';
|
|
||||||
|
|
||||||
configurePlatforms = [ ];
|
|
||||||
configureFlags =
|
|
||||||
let
|
|
||||||
gcc-clang-wrapper = substituteAll {
|
|
||||||
inherit (stdenv) shell;
|
|
||||||
isExecutable = true;
|
|
||||||
src = ./gcc-clang-wrapper.sh;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
[ "--with-gmp-libraries=${lib.getLib gmp}/lib"
|
|
||||||
"--with-gmp-includes=${lib.getDev gmp}/include"
|
|
||||||
] ++ lib.optional stdenv.isDarwin "--with-gcc=${gcc-clang-wrapper}"
|
|
||||||
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
|
||||||
|
|
||||||
# Stripping combined with patchelf breaks the executables (they die
|
|
||||||
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
# No building is necessary, but calling make without flags ironically
|
|
||||||
# calls install-strip ...
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
# On Linux, use patchelf to modify the executables so that they can
|
|
||||||
# find editline/gmp.
|
|
||||||
preFixup = lib.optionalString stdenv.isLinux ''
|
|
||||||
for p in $(find "$out" -type f -executable); do
|
|
||||||
if isELF "$p"; then
|
|
||||||
echo "Patchelfing $p"
|
|
||||||
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
|
||||||
for exe in $(find "$out" -type f -executable); do
|
|
||||||
isScript $exe && continue
|
|
||||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
|
||||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
|
||||||
done
|
|
||||||
|
|
||||||
for file in $(find "$out" -name setup-config); do
|
|
||||||
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
doInstallCheck = true;
|
|
||||||
installCheckPhase = ''
|
|
||||||
unset ${libEnvVar}
|
|
||||||
# Sanity check, can ghc create executables?
|
|
||||||
cd $TMP
|
|
||||||
mkdir test-ghc; cd test-ghc
|
|
||||||
cat > main.hs << EOF
|
|
||||||
{-# LANGUAGE TemplateHaskell #-}
|
|
||||||
module Main where
|
|
||||||
main = putStrLn \$([|"yes"|])
|
|
||||||
EOF
|
|
||||||
$out/bin/ghc --make main.hs || exit 1
|
|
||||||
echo compilation ok
|
|
||||||
[ $(./main) == "yes" ]
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
targetPrefix = "";
|
|
||||||
enableShared = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
meta.license = lib.licenses.bsd3;
|
|
||||||
meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
|
|
||||||
}
|
|
|
@ -1,275 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
''
|
|
||||||
# We only need to build stage1 on most cross-compilation because
|
|
||||||
# we will be running the compiler on the native system. In some
|
|
||||||
# situations, like native Musl compilation, we need the compiler
|
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
|
||||||
# exception because we can’t actually run simulators binaries
|
|
||||||
# ourselves.
|
|
||||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.6.5";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "0qg3zsmbk4rkwkc3jpas3zs74qaxmw4sp4v1mhsbj0a0dzls2jjd";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
|
|
||||||
(fetchpatch { # https://phabricator.haskell.org/D5123
|
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
|
|
||||||
name = "D5123.diff";
|
|
||||||
sha256 = "140lmnqxra7xkwy370c5pyf8dgdwgmbpcrs1dapnwr2dh8bavn8c";
|
|
||||||
})
|
|
||||||
(fetchpatch { # https://github.com/haskell/haddock/issues/900
|
|
||||||
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/983.diff";
|
|
||||||
name = "loadpluginsinmodules.diff";
|
|
||||||
sha256 = "0bvvv0zsfq2581zsir97zfkggc1kkircbbajc2fz3b169ycpbha1";
|
|
||||||
extraPrefix = "utils/haddock/";
|
|
||||||
stripLen = 1;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
# See #63511 - the only unstripped file is the debug rts which isn't meant to
|
|
||||||
# be stripped.
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
''
|
|
||||||
# Temporary work-around for https://github.com/NixOS/nixpkgs/issues/66277
|
|
||||||
+ lib.optionalString hostPlatform.isAarch64 ''
|
|
||||||
rm -rf "$doc/share/doc/ghc/html/libraries"
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
|
||||||
dontStrip = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -1,263 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = dontStrip: ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
''
|
|
||||||
# We only need to build stage1 on most cross-compilation because
|
|
||||||
# we will be running the compiler on the native system. In some
|
|
||||||
# situations, like native Musl compilation, we need the compiler
|
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
|
||||||
# exception because we can’t actually run simulators binaries
|
|
||||||
# ourselves.
|
|
||||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString dontStrip ''
|
|
||||||
STRIP_CMD = :
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.8.2";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) [
|
|
||||||
"--with-system-libffi"
|
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -1,268 +0,0 @@
|
||||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
|
||||||
|
|
||||||
# build-tools
|
|
||||||
, bootPkgs
|
|
||||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
|
||||||
, bash
|
|
||||||
|
|
||||||
, libiconv ? null, ncurses
|
|
||||||
|
|
||||||
, # GHC can be built with system libffi or a bundled one.
|
|
||||||
libffi ? null
|
|
||||||
|
|
||||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
|
||||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
|
||||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
|
||||||
# build-time dependency too.
|
|
||||||
buildLlvmPackages, llvmPackages
|
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
|
||||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
|
||||||
|
|
||||||
# aarch64 outputs otherwise exceed 2GB limit
|
|
||||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
|
||||||
|
|
||||||
, # Whether to build dynamic libs for the standard library (on the target
|
|
||||||
# platform). Static libs are always built.
|
|
||||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
|
||||||
|
|
||||||
, # Whether to build terminfo.
|
|
||||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
|
||||||
# specific flavour and falls back to ghc default values.
|
|
||||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
|
||||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
|
||||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert !enableIntegerSimple -> gmp != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
|
||||||
|
|
||||||
inherit (bootPkgs) ghc;
|
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
|
||||||
targetPrefix = lib.optionalString
|
|
||||||
(targetPlatform != hostPlatform)
|
|
||||||
"${targetPlatform.config}-";
|
|
||||||
|
|
||||||
buildMK = dontStrip: ''
|
|
||||||
BuildFlavour = ${ghcFlavour}
|
|
||||||
ifneq \"\$(BuildFlavour)\" \"\"
|
|
||||||
include mk/flavours/\$(BuildFlavour).mk
|
|
||||||
endif
|
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
|
||||||
''
|
|
||||||
# We only need to build stage1 on most cross-compilation because
|
|
||||||
# we will be running the compiler on the native system. In some
|
|
||||||
# situations, like native Musl compilation, we need the compiler
|
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
|
||||||
# exception because we can’t actually run simulators binaries
|
|
||||||
# ourselves.
|
|
||||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
|
||||||
HADDOCK_DOCS = NO
|
|
||||||
BUILD_SPHINX_HTML = NO
|
|
||||||
BUILD_SPHINX_PDF = NO
|
|
||||||
'' + lib.optionalString dontStrip ''
|
|
||||||
STRIP_CMD = :
|
|
||||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
|
||||||
GhcLibWays = "v dyn"
|
|
||||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
|
||||||
GhcLibHcOpts += -fPIC
|
|
||||||
GhcRtsHcOpts += -fPIC
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
|
||||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
|
||||||
++ [libffi]
|
|
||||||
++ lib.optional (!enableIntegerSimple) gmp
|
|
||||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
|
||||||
|
|
||||||
toolsForTarget = [
|
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
|
||||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
|
||||||
|
|
||||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
|
||||||
# see #84670 and #49071 for more background.
|
|
||||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
|
||||||
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (rec {
|
|
||||||
version = "8.8.3";
|
|
||||||
name = "${targetPrefix}ghc-${version}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
|
||||||
sha256 = "128g932i3wix6ic03v04nh5755vyjiidzri9iybwad72yfmc1p70";
|
|
||||||
};
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# See upstream patch at
|
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
|
||||||
# from source distributions, the auto-generated configure script needs to be
|
|
||||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
|
||||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
|
||||||
# when adding new GHC releases in nixpkgs.
|
|
||||||
./respect-ar-path.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = "patchShebangs .";
|
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
|
||||||
preConfigure = ''
|
|
||||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
|
||||||
export "''${env#TARGET_}=''${!env}"
|
|
||||||
done
|
|
||||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
|
||||||
# the *host* tools.
|
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
|
||||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
|
||||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
|
||||||
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
|
||||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
|
||||||
'' + lib.optionalString stdenv.isDarwin ''
|
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
|
||||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
|
||||||
'' + lib.optionalString targetPlatform.isMusl ''
|
|
||||||
echo "patching llvm-targets for musl targets..."
|
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
|
||||||
echo "(go go gadget sed)"
|
|
||||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
|
||||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
|
||||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
|
||||||
|
|
||||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
|
||||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
|
||||||
for x in configure aclocal.m4; do
|
|
||||||
substituteInPlace $x \
|
|
||||||
--replace '*-android*|*-gnueabi*)' \
|
|
||||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
|
||||||
configurePlatforms = [ "build" "host" ]
|
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
|
||||||
configureFlags = [
|
|
||||||
"--datadir=$doc/share/doc/ghc"
|
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
|
||||||
] ++ lib.optionals (libffi != null) [
|
|
||||||
"--with-system-libffi"
|
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
|
||||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
|
||||||
] ++ lib.optionals useLdGold [
|
|
||||||
"CFLAGS=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
|
||||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
|
||||||
"--disable-large-address-space"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
|
||||||
strictDeps = true;
|
|
||||||
|
|
||||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
|
||||||
dontAddExtraLibs = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
perl autoconf automake m4 python3 sphinx
|
|
||||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
|
||||||
];
|
|
||||||
|
|
||||||
# For building runtime libs
|
|
||||||
depsBuildTarget = toolsForTarget;
|
|
||||||
|
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
|
||||||
++ lib.optional useLLVM llvmPackages.llvm;
|
|
||||||
|
|
||||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
|
||||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
|
||||||
# that in turn causes GHCi to abort
|
|
||||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
|
||||||
|
|
||||||
checkTarget = "test";
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
# Install the bash completion file.
|
|
||||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
|
||||||
|
|
||||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
|
||||||
for i in "$out/bin/"*; do
|
|
||||||
test ! -h $i || continue
|
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
|
||||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
inherit bootPkgs targetPrefix;
|
|
||||||
|
|
||||||
inherit llvmPackages;
|
|
||||||
inherit enableShared;
|
|
||||||
|
|
||||||
# Our Cabal compiler name
|
|
||||||
haskellCompilerName = "ghc-${version}";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
homepage = "http://haskell.org/ghc";
|
|
||||||
description = "The Glasgow Haskell Compiler";
|
|
||||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
|
||||||
timeout = 24 * 3600;
|
|
||||||
inherit (ghc.meta) license platforms;
|
|
||||||
};
|
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
|
||||||
|
|
||||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
|
||||||
dontPatchELF = true;
|
|
||||||
noAuditTmpdir = true;
|
|
||||||
})
|
|
|
@ -72,15 +72,6 @@ self: super: {
|
||||||
hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
|
hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Backport fix for bash: compgen: command not found
|
|
||||||
# which happens in nix-shell when a non-interactive bash is on PATH
|
|
||||||
# PR to master: https://github.com/pcapriotti/optparse-applicative/pull/408
|
|
||||||
optparse-applicative = appendPatch super.optparse-applicative (pkgs.fetchpatch {
|
|
||||||
name = "optparse-applicative-0.15.1-hercules-ci-compgen.diff";
|
|
||||||
url = "https://github.com/hercules-ci/optparse-applicative/compare/0.15.1...hercules-ci:0.15.1-nixpkgs-compgen.diff";
|
|
||||||
sha256 = "1bcp6b7gvc8pqbn1n1ybhizkkl5if7hk9ipgl746vk08v0d3xxql";
|
|
||||||
});
|
|
||||||
|
|
||||||
# Fix test trying to access /home directory
|
# Fix test trying to access /home directory
|
||||||
shell-conduit = overrideCabal super.shell-conduit (drv: {
|
shell-conduit = overrideCabal super.shell-conduit (drv: {
|
||||||
postPatch = "sed -i s/home/tmp/ test/Spec.hs";
|
postPatch = "sed -i s/home/tmp/ test/Spec.hs";
|
||||||
|
@ -93,33 +84,26 @@ self: super: {
|
||||||
# https://github.com/froozen/kademlia/issues/2
|
# https://github.com/froozen/kademlia/issues/2
|
||||||
kademlia = dontCheck super.kademlia;
|
kademlia = dontCheck super.kademlia;
|
||||||
|
|
||||||
# Tests require older tasty
|
# Tests require older versions of tasty.
|
||||||
|
cborg = (doJailbreak super.cborg).override { base16-bytestring = self.base16-bytestring_0_1_1_7; };
|
||||||
hzk = dontCheck super.hzk;
|
hzk = dontCheck super.hzk;
|
||||||
|
resolv = doJailbreak super.resolv;
|
||||||
|
tdigest = doJailbreak super.tdigest;
|
||||||
|
text-short = doJailbreak super.text-short;
|
||||||
|
tree-diff = doJailbreak super.tree-diff;
|
||||||
|
|
||||||
# Tests require a Kafka broker running locally
|
# Tests require a Kafka broker running locally
|
||||||
haskakafka = dontCheck super.haskakafka;
|
haskakafka = dontCheck super.haskakafka;
|
||||||
|
|
||||||
# Depends on broken "lss" package.
|
|
||||||
snaplet-lss = dontDistribute super.snaplet-lss;
|
|
||||||
|
|
||||||
# Depends on broken "NewBinary" package.
|
|
||||||
ASN1 = dontDistribute super.ASN1;
|
|
||||||
|
|
||||||
# Depends on broken "frame" package.
|
|
||||||
frame-markdown = dontDistribute super.frame-markdown;
|
|
||||||
|
|
||||||
# Depends on broken "Elm" package.
|
|
||||||
hakyll-elm = dontDistribute super.hakyll-elm;
|
|
||||||
haskelm = dontDistribute super.haskelm;
|
|
||||||
snap-elm = dontDistribute super.snap-elm;
|
|
||||||
|
|
||||||
# Depends on broken "hails" package.
|
|
||||||
hails-bin = dontDistribute super.hails-bin;
|
|
||||||
|
|
||||||
bindings-levmar = overrideCabal super.bindings-levmar (drv: {
|
bindings-levmar = overrideCabal super.bindings-levmar (drv: {
|
||||||
extraLibraries = [ pkgs.blas ];
|
extraLibraries = [ pkgs.blas ];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# Requires wrapQtAppsHook
|
||||||
|
qtah-cpp-qt5 = overrideCabal super.qtah-cpp-qt5 (drv: {
|
||||||
|
buildDepends = [ pkgs.qt5.wrapQtAppsHook ];
|
||||||
|
});
|
||||||
|
|
||||||
# The Haddock phase fails for one reason or another.
|
# The Haddock phase fails for one reason or another.
|
||||||
deepseq-magic = dontHaddock super.deepseq-magic;
|
deepseq-magic = dontHaddock super.deepseq-magic;
|
||||||
feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
|
feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
|
||||||
|
@ -215,9 +199,6 @@ self: super: {
|
||||||
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
|
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
|
||||||
hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
|
hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
|
||||||
|
|
||||||
# https://github.com/haskell-nix/hnix-store/issues/127
|
|
||||||
hnix-store-core = addTestToolDepend super.hnix-store-core self.tasty-discover;
|
|
||||||
|
|
||||||
# Fails for non-obvious reasons while attempting to use doctest.
|
# Fails for non-obvious reasons while attempting to use doctest.
|
||||||
search = dontCheck super.search;
|
search = dontCheck super.search;
|
||||||
|
|
||||||
|
@ -235,13 +216,7 @@ self: super: {
|
||||||
angel = dontCheck super.angel;
|
angel = dontCheck super.angel;
|
||||||
apache-md5 = dontCheck super.apache-md5; # http://hydra.cryp.to/build/498709/nixlog/1/raw
|
apache-md5 = dontCheck super.apache-md5; # http://hydra.cryp.to/build/498709/nixlog/1/raw
|
||||||
app-settings = dontCheck super.app-settings; # http://hydra.cryp.to/build/497327/log/raw
|
app-settings = dontCheck super.app-settings; # http://hydra.cryp.to/build/497327/log/raw
|
||||||
aws = appendPatch (dontCheck super.aws) # needs aws credentials
|
aws = doJailbreak (dontCheck super.aws); # needs aws credentials, jailbreak for base16-bytestring
|
||||||
(pkgs.fetchpatch {
|
|
||||||
# https://github.com/aristidb/aws/pull/271
|
|
||||||
# bump a version bound
|
|
||||||
url = https://github.com/aristidb/aws/commit/3639262ccd6761dea76f052692ac3aefbd254723.patch;
|
|
||||||
sha256 = "0nxaspldgayqjnidda8w7wps5gdpr2wz6vynl7vkaw8kzxks9bci";
|
|
||||||
});
|
|
||||||
aws-kinesis = dontCheck super.aws-kinesis; # needs aws credentials for testing
|
aws-kinesis = dontCheck super.aws-kinesis; # needs aws credentials for testing
|
||||||
binary-protocol = dontCheck super.binary-protocol; # http://hydra.cryp.to/build/499749/log/raw
|
binary-protocol = dontCheck super.binary-protocol; # http://hydra.cryp.to/build/499749/log/raw
|
||||||
binary-search = dontCheck super.binary-search;
|
binary-search = dontCheck super.binary-search;
|
||||||
|
@ -339,6 +314,7 @@ self: super: {
|
||||||
nats-queue = dontCheck super.nats-queue;
|
nats-queue = dontCheck super.nats-queue;
|
||||||
netpbm = dontCheck super.netpbm;
|
netpbm = dontCheck super.netpbm;
|
||||||
network = dontCheck super.network;
|
network = dontCheck super.network;
|
||||||
|
network_2_6_3_1 = dontCheck super.network_2_6_3_1; # package is missing files for test
|
||||||
network-dbus = dontCheck super.network-dbus;
|
network-dbus = dontCheck super.network-dbus;
|
||||||
notcpp = dontCheck super.notcpp;
|
notcpp = dontCheck super.notcpp;
|
||||||
ntp-control = dontCheck super.ntp-control;
|
ntp-control = dontCheck super.ntp-control;
|
||||||
|
@ -462,9 +438,6 @@ self: super: {
|
||||||
# https://github.com/afcowie/locators/issues/1
|
# https://github.com/afcowie/locators/issues/1
|
||||||
locators = dontCheck super.locators;
|
locators = dontCheck super.locators;
|
||||||
|
|
||||||
# Test suite won't compile against tasty-hunit 0.9.x.
|
|
||||||
zlib = dontCheck super.zlib;
|
|
||||||
|
|
||||||
# Test suite won't compile against tasty-hunit 0.10.x.
|
# Test suite won't compile against tasty-hunit 0.10.x.
|
||||||
binary-parser = dontCheck super.binary-parser;
|
binary-parser = dontCheck super.binary-parser;
|
||||||
binary-parsers = dontCheck super.binary-parsers;
|
binary-parsers = dontCheck super.binary-parsers;
|
||||||
|
@ -554,9 +527,6 @@ self: super: {
|
||||||
# https://github.com/liyang/thyme/issues/36
|
# https://github.com/liyang/thyme/issues/36
|
||||||
thyme = dontCheck super.thyme;
|
thyme = dontCheck super.thyme;
|
||||||
|
|
||||||
# https://github.com/k0ral/hbro-contrib/issues/1
|
|
||||||
hbro-contrib = dontDistribute super.hbro-contrib;
|
|
||||||
|
|
||||||
# Elm is no longer actively maintained on Hackage: https://github.com/NixOS/nixpkgs/pull/9233.
|
# Elm is no longer actively maintained on Hackage: https://github.com/NixOS/nixpkgs/pull/9233.
|
||||||
Elm = markBroken super.Elm;
|
Elm = markBroken super.Elm;
|
||||||
elm-build-lib = markBroken super.elm-build-lib;
|
elm-build-lib = markBroken super.elm-build-lib;
|
||||||
|
@ -828,9 +798,12 @@ self: super: {
|
||||||
# Jailbreak is necessary to break out of tasty < 1.x dependency.
|
# Jailbreak is necessary to break out of tasty < 1.x dependency.
|
||||||
cryptohash-sha256 = markUnbroken (doJailbreak super.cryptohash-sha256);
|
cryptohash-sha256 = markUnbroken (doJailbreak super.cryptohash-sha256);
|
||||||
|
|
||||||
|
# The test suite has all kinds of out-dated dependencies, so it feels easier
|
||||||
|
# to just disable it.
|
||||||
|
cryptohash-sha1 = dontCheck super.cryptohash-sha1;
|
||||||
|
cryptohash-md5 = dontCheck super.cryptohash-md5;
|
||||||
|
|
||||||
# Needs tasty-quickcheck ==0.8.*, which we don't have.
|
# Needs tasty-quickcheck ==0.8.*, which we don't have.
|
||||||
cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
|
|
||||||
cryptohash-md5 = doJailbreak super.cryptohash-md5;
|
|
||||||
gitHUD = dontCheck super.gitHUD;
|
gitHUD = dontCheck super.gitHUD;
|
||||||
githud = dontCheck super.githud;
|
githud = dontCheck super.githud;
|
||||||
|
|
||||||
|
@ -1336,7 +1309,7 @@ self: super: {
|
||||||
commonmark-extensions = dontCheck super.commonmark-extensions;
|
commonmark-extensions = dontCheck super.commonmark-extensions;
|
||||||
|
|
||||||
# Testsuite trying to run `which haskeline-examples-Test`
|
# Testsuite trying to run `which haskeline-examples-Test`
|
||||||
haskeline_0_8_1_1 = dontCheck super.haskeline_0_8_1_1;
|
haskeline_0_8_1_2 = dontCheck super.haskeline_0_8_1_2;
|
||||||
|
|
||||||
# Tests for list-t, superbuffer, and stm-containers
|
# Tests for list-t, superbuffer, and stm-containers
|
||||||
# depend on HTF and it is broken, 2020-08-23
|
# depend on HTF and it is broken, 2020-08-23
|
||||||
|
@ -1403,10 +1376,7 @@ self: super: {
|
||||||
# PATH.
|
# PATH.
|
||||||
update-nix-fetchgit = let deps = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
|
update-nix-fetchgit = let deps = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
|
||||||
in generateOptparseApplicativeCompletion "update-nix-fetchgit" (overrideCabal
|
in generateOptparseApplicativeCompletion "update-nix-fetchgit" (overrideCabal
|
||||||
(addTestToolDepends (super.update-nix-fetchgit.overrideScope (self: super: {
|
(addTestToolDepends super.update-nix-fetchgit deps) (drv: {
|
||||||
optparse-generic = self.optparse-generic_1_4_4;
|
|
||||||
optparse-applicative = self.optparse-applicative_0_16_1_0;
|
|
||||||
})) deps) (drv: {
|
|
||||||
buildTools = drv.buildTools or [ ] ++ [ pkgs.makeWrapper ];
|
buildTools = drv.buildTools or [ ] ++ [ pkgs.makeWrapper ];
|
||||||
postInstall = drv.postInstall or "" + ''
|
postInstall = drv.postInstall or "" + ''
|
||||||
wrapProgram "$out/bin/update-nix-fetchgit" --prefix 'PATH' ':' "${
|
wrapProgram "$out/bin/update-nix-fetchgit" --prefix 'PATH' ':' "${
|
||||||
|
@ -1424,6 +1394,16 @@ self: super: {
|
||||||
# https://github.com/haskell/haskell-language-server/issues/611
|
# https://github.com/haskell/haskell-language-server/issues/611
|
||||||
haskell-language-server = dontCheck super.haskell-language-server;
|
haskell-language-server = dontCheck super.haskell-language-server;
|
||||||
|
|
||||||
|
# 2021-03-19: Too restrictive upper bound on optparse-applicative
|
||||||
|
stylish-haskell = doJailbreak super.stylish-haskell;
|
||||||
|
|
||||||
|
# 2021-03-19: https://github.com/facebookincubator/retrie/issues/24
|
||||||
|
retrie = doJailbreak super.retrie;
|
||||||
|
|
||||||
|
# Jailbreak because of restrictive upper bound on base16-bytestring
|
||||||
|
# 2021-03-19: https://github.com/Avi-D-coder/implicit-hie-cradle/pull/8
|
||||||
|
implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
|
||||||
|
|
||||||
# 2021-03-09: Overrides because nightly is to old for hls 1.0.0
|
# 2021-03-09: Overrides because nightly is to old for hls 1.0.0
|
||||||
lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);
|
lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);
|
||||||
|
|
||||||
|
@ -1433,7 +1413,8 @@ self: super: {
|
||||||
|
|
||||||
# 2021-03-21 Test hangs
|
# 2021-03-21 Test hangs
|
||||||
# https://github.com/haskell/haskell-language-server/issues/1562
|
# https://github.com/haskell/haskell-language-server/issues/1562
|
||||||
ghcide = dontCheck super.ghcide;
|
# Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595
|
||||||
|
ghcide = doJailbreak (dontCheck super.ghcide);
|
||||||
|
|
||||||
# 2020-03-09: Tests broken in hackage release
|
# 2020-03-09: Tests broken in hackage release
|
||||||
# fixed on upstream, but not released in hiedb 0.3.0.1
|
# fixed on upstream, but not released in hiedb 0.3.0.1
|
||||||
|
@ -1510,7 +1491,7 @@ self: super: {
|
||||||
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
|
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
|
||||||
heist = doJailbreak super.heist;
|
heist = doJailbreak super.heist;
|
||||||
|
|
||||||
hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_1_1; });
|
hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_1_2; });
|
||||||
|
|
||||||
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219
|
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219
|
||||||
snap = doJailbreak super.snap;
|
snap = doJailbreak super.snap;
|
||||||
|
@ -1661,4 +1642,34 @@ self: super: {
|
||||||
# Test suite does not compile.
|
# Test suite does not compile.
|
||||||
feed = dontCheck super.feed;
|
feed = dontCheck super.feed;
|
||||||
|
|
||||||
|
spacecookie = overrideCabal super.spacecookie (old: {
|
||||||
|
buildTools = (old.buildTools or []) ++ [ pkgs.installShellFiles ];
|
||||||
|
# let testsuite discover the resulting binary
|
||||||
|
preCheck = ''
|
||||||
|
export SPACECOOKIE_TEST_BIN=./dist/build/spacecookie/spacecookie
|
||||||
|
'' + (old.preCheck or "");
|
||||||
|
# install man pages shipped in the sdist
|
||||||
|
postInstall = ''
|
||||||
|
installManPage docs/man/*
|
||||||
|
'' + (old.postInstall or "");
|
||||||
|
});
|
||||||
|
|
||||||
|
# Patch and jailbreak can be removed at next release, chatter > 0.9.1.0
|
||||||
|
# * Remove dependency on regex-tdfa-text
|
||||||
|
# * Jailbreak as bounds on cereal are too strict
|
||||||
|
# * Disable test suite which doesn't compile
|
||||||
|
# https://github.com/creswick/chatter/issues/38
|
||||||
|
chatter = appendPatch
|
||||||
|
(dontCheck (doJailbreak (super.chatter.override { regex-tdfa-text = null; })))
|
||||||
|
(pkgs.fetchpatch {
|
||||||
|
url = "https://github.com/creswick/chatter/commit/e8c15a848130d7d27b8eb5e73e8a0db1366b2e62.patch";
|
||||||
|
sha256 = "1dzak8d12h54vss5fxnrclygz0fz9ygbqvxd5aifz5n3vrwwpj3g";
|
||||||
|
});
|
||||||
|
|
||||||
|
# test suite doesn't compile anymore due to changed hunit/tasty APIs
|
||||||
|
fullstop = dontCheck super.fullstop;
|
||||||
|
|
||||||
|
# https://github.com/jgm/pandoc/issues/7163
|
||||||
|
pandoc = dontCheck super.pandoc;
|
||||||
|
|
||||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||||
|
|
|
@ -42,19 +42,17 @@ self: super: {
|
||||||
unix = null;
|
unix = null;
|
||||||
xhtml = null;
|
xhtml = null;
|
||||||
|
|
||||||
cabal-install = super.cabal-install.override {
|
# cabal-install needs more recent versions of Cabal and random, but an older
|
||||||
Cabal = super.Cabal_3_4_0_0;
|
# version of base16-bytestring.
|
||||||
hackage-security = super.hackage-security.override { Cabal = super.Cabal_3_4_0_0; };
|
cabal-install = super.cabal-install.overrideScope (self: super: {
|
||||||
# Usung dontCheck to break test dependency cycles
|
Cabal = self.Cabal_3_4_0_0;
|
||||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||||
random = super.random_1_2_0;
|
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||||
};
|
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||||
|
});
|
||||||
|
|
||||||
# cabal-install-parsers is written for Cabal 3.4
|
# cabal-install-parsers is written for Cabal 3.4
|
||||||
cabal-install-parsers = super.cabal-install-parsers.override {
|
cabal-install-parsers = super.cabal-install-parsers.override { Cabal = super.Cabal_3_4_0_0; };
|
||||||
Cabal = super.Cabal_3_4_0_0;
|
|
||||||
base16-bytestring = super.base16-bytestring_1_0_1_0;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Jailbreak to fix the build.
|
# Jailbreak to fix the build.
|
||||||
base-noprelude = doJailbreak super.base-noprelude;
|
base-noprelude = doJailbreak super.base-noprelude;
|
||||||
|
@ -91,4 +89,5 @@ self: super: {
|
||||||
|
|
||||||
# Break out of "Cabal < 3.2" constraint.
|
# Break out of "Cabal < 3.2" constraint.
|
||||||
stylish-haskell = doJailbreak super.stylish-haskell;
|
stylish-haskell = doJailbreak super.stylish-haskell;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
{ pkgs, haskellLib }:
|
|
||||||
|
|
||||||
with haskellLib;
|
|
||||||
|
|
||||||
self: super: {
|
|
||||||
|
|
||||||
# Suitable LLVM version.
|
|
||||||
llvmPackages = pkgs.llvmPackages;
|
|
||||||
|
|
||||||
# Disable GHC 8.2.x core libraries.
|
|
||||||
array = null;
|
|
||||||
base = null;
|
|
||||||
binary = null;
|
|
||||||
bytestring = null;
|
|
||||||
Cabal = null;
|
|
||||||
containers = null;
|
|
||||||
deepseq = null;
|
|
||||||
directory = null;
|
|
||||||
filepath = null;
|
|
||||||
ghc-boot = null;
|
|
||||||
ghc-boot-th = null;
|
|
||||||
ghc-compact = null;
|
|
||||||
ghc-heap = null;
|
|
||||||
ghc-prim = null;
|
|
||||||
ghci = null;
|
|
||||||
haskeline = null;
|
|
||||||
hoopl = null;
|
|
||||||
hpc = null;
|
|
||||||
integer-gmp = null;
|
|
||||||
pretty = null;
|
|
||||||
process = null;
|
|
||||||
rts = null;
|
|
||||||
template-haskell = null;
|
|
||||||
terminfo = null;
|
|
||||||
time = null;
|
|
||||||
transformers = null;
|
|
||||||
unix = null;
|
|
||||||
xhtml = null;
|
|
||||||
|
|
||||||
# These are now core libraries in GHC 8.4.x.
|
|
||||||
mtl = self.mtl_2_2_2;
|
|
||||||
parsec = self.parsec_3_1_14_0;
|
|
||||||
stm = self.stm_2_5_0_0;
|
|
||||||
text = self.text_1_2_4_0;
|
|
||||||
|
|
||||||
# Needs Cabal 3.0.x.
|
|
||||||
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
|
|
||||||
|
|
||||||
# https://github.com/bmillwood/applicative-quoters/issues/6
|
|
||||||
applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch {
|
|
||||||
url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch";
|
|
||||||
sha256 = "026vv2k3ks73jngwifszv8l59clg88pcdr4mz0wr0gamivkfa1zy";
|
|
||||||
});
|
|
||||||
|
|
||||||
# https://github.com/nominolo/ghc-syb/issues/20
|
|
||||||
ghc-syb-utils = dontCheck super.ghc-syb-utils;
|
|
||||||
|
|
||||||
# Upstream failed to distribute the testsuite for 8.2
|
|
||||||
# https://github.com/alanz/ghc-exactprint/pull/60
|
|
||||||
ghc-exactprint = dontCheck super.ghc-exactprint;
|
|
||||||
|
|
||||||
# Reduction stack overflow; size = 38
|
|
||||||
# https://github.com/jystic/hadoop-tools/issues/31
|
|
||||||
hadoop-rpc =
|
|
||||||
let patch = pkgs.fetchpatch
|
|
||||||
{ url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
|
|
||||||
sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
|
|
||||||
stripLen = 1;
|
|
||||||
};
|
|
||||||
in appendPatch super.hadoop-rpc patch;
|
|
||||||
|
|
||||||
# Custom Setup.hs breaks with Cabal 2
|
|
||||||
# https://github.com/NICTA/coordinate/pull/4
|
|
||||||
coordinate =
|
|
||||||
let patch = pkgs.fetchpatch
|
|
||||||
{ url = "https://github.com/NICTA/coordinate/pull/4.patch";
|
|
||||||
sha256 = "06sfxk5cyd8nqgjyb95jkihxxk8m6dw9m3mlv94sm2qwylj86gqy";
|
|
||||||
};
|
|
||||||
in appendPatch super.coordinate patch;
|
|
||||||
|
|
||||||
# https://github.com/purescript/purescript/issues/3189
|
|
||||||
purescript = doJailbreak (super.purescript);
|
|
||||||
|
|
||||||
# These packages need Cabal 2.2.x, which is not the default.
|
|
||||||
cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
|
||||||
cabal2spec = super.cabal2spec.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
|
||||||
distribution-nixpkgs = super.distribution-nixpkgs.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
|
||||||
stack = super.stack.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
|
||||||
|
|
||||||
# Older GHC versions need these additional dependencies.
|
|
||||||
ListLike = addBuildDepend super.ListLike self.semigroups;
|
|
||||||
base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,93 +0,0 @@
|
||||||
{ pkgs, haskellLib }:
|
|
||||||
|
|
||||||
with haskellLib;
|
|
||||||
|
|
||||||
self: super: {
|
|
||||||
|
|
||||||
# This compiler version needs llvm 5.x.
|
|
||||||
llvmPackages = pkgs.llvmPackages_5;
|
|
||||||
|
|
||||||
# Disable GHC 8.4.x core libraries.
|
|
||||||
array = null;
|
|
||||||
base = null;
|
|
||||||
binary = null;
|
|
||||||
bytestring = null;
|
|
||||||
Cabal = null;
|
|
||||||
containers = null;
|
|
||||||
deepseq = null;
|
|
||||||
directory = null;
|
|
||||||
filepath = null;
|
|
||||||
ghc-boot = null;
|
|
||||||
ghc-boot-th = null;
|
|
||||||
ghc-compact = null;
|
|
||||||
ghc-heap = null;
|
|
||||||
ghc-prim = null;
|
|
||||||
ghci = null;
|
|
||||||
haskeline = null;
|
|
||||||
hpc = null;
|
|
||||||
integer-gmp = null;
|
|
||||||
mtl = null;
|
|
||||||
parsec = null;
|
|
||||||
pretty = null;
|
|
||||||
process = null;
|
|
||||||
rts = null;
|
|
||||||
stm = null;
|
|
||||||
template-haskell = null;
|
|
||||||
terminfo = null;
|
|
||||||
text = null;
|
|
||||||
time = null;
|
|
||||||
transformers = null;
|
|
||||||
unix = null;
|
|
||||||
xhtml = null;
|
|
||||||
|
|
||||||
# Needs Cabal 3.2.x.
|
|
||||||
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
|
|
||||||
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
|
|
||||||
|
|
||||||
# Restricts aeson to <1.4
|
|
||||||
# https://github.com/purescript/purescript/pull/3537
|
|
||||||
purescript = doJailbreak super.purescript;
|
|
||||||
|
|
||||||
# https://github.com/jcristovao/enclosed-exceptions/issues/12
|
|
||||||
enclosed-exceptions = dontCheck super.enclosed-exceptions;
|
|
||||||
|
|
||||||
# https://github.com/jaor/xmobar/issues/356
|
|
||||||
xmobar = super.xmobar.overrideScope (self: super: { hinotify = self.hinotify_0_3_9; });
|
|
||||||
hinotify_0_3_9 = dontCheck (doJailbreak super.hinotify_0_3_9); # allow async 2.2.x
|
|
||||||
|
|
||||||
# Reduction stack overflow; size = 38
|
|
||||||
# https://github.com/jystic/hadoop-tools/issues/31
|
|
||||||
hadoop-rpc =
|
|
||||||
let patch = pkgs.fetchpatch
|
|
||||||
{ url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
|
|
||||||
sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
|
|
||||||
stripLen = 1;
|
|
||||||
};
|
|
||||||
in appendPatch super.hadoop-rpc patch;
|
|
||||||
|
|
||||||
# stack-1.9.1 needs Cabal 2.4.x, a recent version of hpack, and a non-recent
|
|
||||||
# version of yaml. Go figure. We avoid overrideScope here because using it to
|
|
||||||
# change Cabal would re-compile every single package instead of just those
|
|
||||||
# that have it as an actual library dependency. The explicit overrides are
|
|
||||||
# more verbose but friendlier for Hydra.
|
|
||||||
stack = (doJailbreak super.stack).override {
|
|
||||||
Cabal = self.Cabal_2_4_1_0;
|
|
||||||
hpack = self.hpack.override { Cabal = self.Cabal_2_4_1_0; };
|
|
||||||
hackage-security = self.hackage-security.override { Cabal = self.Cabal_2_4_1_0; };
|
|
||||||
};
|
|
||||||
|
|
||||||
# Older GHC versions need these additional dependencies.
|
|
||||||
aeson = addBuildDepend super.aeson self.contravariant;
|
|
||||||
base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
|
|
||||||
|
|
||||||
# Newer versions don't compile.
|
|
||||||
resolv = self.resolv_0_1_1_2;
|
|
||||||
|
|
||||||
# The old Haddock cannot process the newer documentation syntax.
|
|
||||||
fast-logger = dontHaddock super.fast-logger;
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
hls-hlint-plugin = addBuildDepend super.hls-hlint-plugin self.ghc-lib;
|
|
||||||
|
|
||||||
}
|
|
|
@ -52,15 +52,17 @@ self: super: {
|
||||||
haddock = self.haddock_2_23_1;
|
haddock = self.haddock_2_23_1;
|
||||||
haddock-api = self.haddock-api_2_23_1;
|
haddock-api = self.haddock-api_2_23_1;
|
||||||
|
|
||||||
# These builds need newer versions of Cabal.
|
# This build needs a newer version of Cabal.
|
||||||
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
|
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
|
||||||
cabal-install = super.cabal-install.override {
|
|
||||||
Cabal = super.Cabal_3_4_0_0;
|
# cabal-install needs more recent versions of Cabal and random, but an older
|
||||||
hackage-security = super.hackage-security.override { Cabal = super.Cabal_3_4_0_0; };
|
# version of base16-bytestring.
|
||||||
# Using dontCheck to break test dependency cycles
|
cabal-install = super.cabal-install.overrideScope (self: super: {
|
||||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
Cabal = self.Cabal_3_4_0_0;
|
||||||
random = super.random_1_2_0;
|
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||||
};
|
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||||
|
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||||
|
});
|
||||||
|
|
||||||
# Ignore overly restrictive upper version bounds.
|
# Ignore overly restrictive upper version bounds.
|
||||||
aeson-diff = doJailbreak super.aeson-diff;
|
aeson-diff = doJailbreak super.aeson-diff;
|
||||||
|
|
|
@ -43,12 +43,14 @@ self: super: {
|
||||||
unix = null;
|
unix = null;
|
||||||
xhtml = null;
|
xhtml = null;
|
||||||
|
|
||||||
# Build cabal-install with the compiler's native Cabal.
|
# cabal-install needs more recent versions of random, but an older
|
||||||
cabal-install = (doJailbreak super.cabal-install).override {
|
# version of base16-bytestring.
|
||||||
# Use dontCheck to break test dependency cycles
|
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
|
||||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
Cabal = null;
|
||||||
random = super.random_1_2_0;
|
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||||
};
|
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||||
|
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||||
|
});
|
||||||
|
|
||||||
# Jailbreaks & Version Updates
|
# Jailbreaks & Version Updates
|
||||||
async = doJailbreak super.async;
|
async = doJailbreak super.async;
|
||||||
|
|
|
@ -1,209 +0,0 @@
|
||||||
# GHCJS package fixes
|
|
||||||
#
|
|
||||||
# Please insert new packages *alphabetically*
|
|
||||||
# in the OTHER PACKAGES section.
|
|
||||||
{ pkgs, haskellLib }:
|
|
||||||
|
|
||||||
let
|
|
||||||
removeLibraryHaskellDepends = pnames: depends:
|
|
||||||
builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
|
|
||||||
in
|
|
||||||
|
|
||||||
with haskellLib;
|
|
||||||
|
|
||||||
self: super:
|
|
||||||
|
|
||||||
## GENERAL SETUP BASE PACKAGES
|
|
||||||
|
|
||||||
let # The stage 1 packages
|
|
||||||
stage1 = pkgs.lib.genAttrs super.ghc.stage1Packages (pkg: null);
|
|
||||||
# The stage 2 packages. Regenerate with ../compilers/ghcjs/gen-stage2.rb
|
|
||||||
stage2 = super.ghc.mkStage2 {
|
|
||||||
inherit (self) callPackage;
|
|
||||||
};
|
|
||||||
in stage1 // stage2 // {
|
|
||||||
|
|
||||||
# GHCJS does not ship with the same core packages as GHC.
|
|
||||||
# https://github.com/ghcjs/ghcjs/issues/676
|
|
||||||
stm = self.stm_2_5_0_0;
|
|
||||||
ghc-compact = self.ghc-compact_0_1_0_0;
|
|
||||||
|
|
||||||
network = addBuildTools super.network (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
|
||||||
zlib = addBuildTools super.zlib (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
|
||||||
unix-compat = addBuildTools super.unix-compat (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
|
||||||
|
|
||||||
# LLVM is not supported on this GHC; use the latest one.
|
|
||||||
inherit (pkgs) llvmPackages;
|
|
||||||
|
|
||||||
inherit (self.ghc.bootPkgs)
|
|
||||||
jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
|
|
||||||
|
|
||||||
# Don't set integer-simple to null!
|
|
||||||
# GHCJS uses integer-gmp, so any package expression that depends on
|
|
||||||
# integer-simple is wrong.
|
|
||||||
#integer-simple = null;
|
|
||||||
|
|
||||||
# These packages are core libraries in GHC 8.6..x, but not here.
|
|
||||||
bin-package-db = null;
|
|
||||||
haskeline = self.haskeline_0_7_5_0;
|
|
||||||
hpc = self.hpc_0_6_0_3;
|
|
||||||
terminfo = self.terminfo_0_4_1_4;
|
|
||||||
xhtml = self.xhtml_3000_2_2_1;
|
|
||||||
|
|
||||||
## OTHER PACKAGES
|
|
||||||
|
|
||||||
# haddock throws the error: No input file(s).
|
|
||||||
fail = dontHaddock super.fail;
|
|
||||||
|
|
||||||
cereal = addBuildDepend super.cereal [ self.fail ];
|
|
||||||
|
|
||||||
entropy = overrideCabal super.entropy (old: {
|
|
||||||
postPatch = old.postPatch or "" + ''
|
|
||||||
# cabal doesn’t find ghc in this script, since it’s in the bootPkgs
|
|
||||||
sed -e '/Simple.Program/a import Distribution.Simple.Program.Types' \
|
|
||||||
-e 's|mConf.*=.*$|mConf = Just $ simpleConfiguredProgram "ghc" (FoundOnSystem "${self.ghc.bootPkgs.ghc}/bin/ghc")|g' -i Setup.hs
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
# https://github.com/kazu-yamamoto/logger/issues/97
|
|
||||||
fast-logger = overrideCabal super.fast-logger (old: {
|
|
||||||
postPatch = old.postPatch or "" + ''
|
|
||||||
# remove the Safe extensions, since ghcjs-boot directory
|
|
||||||
# doesn’t provide Trustworthy
|
|
||||||
sed -ie '/LANGUAGE Safe/d' System/Log/FastLogger/*.hs
|
|
||||||
cat System/Log/FastLogger/Date.hs
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
# experimental
|
|
||||||
ghcjs-ffiqq = self.callPackage
|
|
||||||
({ mkDerivation, base, template-haskell, ghcjs-base, split, containers, text, ghc-prim
|
|
||||||
}:
|
|
||||||
mkDerivation {
|
|
||||||
pname = "ghcjs-ffiqq";
|
|
||||||
version = "0.1.0.0";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ghcjs";
|
|
||||||
repo = "ghcjs-ffiqq";
|
|
||||||
rev = "b52338c2dcd3b0707bc8aff2e171411614d4aedb";
|
|
||||||
sha256 = "08zxfm1i6zb7n8vbz3dywdy67vkixfyw48580rwfp48rl1s2z1c7";
|
|
||||||
};
|
|
||||||
libraryHaskellDepends = [
|
|
||||||
base template-haskell ghcjs-base split containers text ghc-prim
|
|
||||||
];
|
|
||||||
description = "FFI QuasiQuoter for GHCJS";
|
|
||||||
license = pkgs.lib.licenses.mit;
|
|
||||||
}) {};
|
|
||||||
# experimental
|
|
||||||
ghcjs-vdom = self.callPackage
|
|
||||||
({ mkDerivation, base, ghc-prim, ghcjs-ffiqq, ghcjs-base, ghcjs-prim
|
|
||||||
, containers, split, template-haskell
|
|
||||||
}:
|
|
||||||
mkDerivation rec {
|
|
||||||
pname = "ghcjs-vdom";
|
|
||||||
version = "0.2.0.0";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ghcjs";
|
|
||||||
repo = pname;
|
|
||||||
rev = "1c1175ba22eca6d7efa96f42a72290ade193c148";
|
|
||||||
sha256 = "0c6l1dk2anvz94yy5qblrfh2iv495rjq4qmhlycc24dvd02f7n9m";
|
|
||||||
};
|
|
||||||
libraryHaskellDepends = [
|
|
||||||
base ghc-prim ghcjs-ffiqq ghcjs-base ghcjs-prim containers split
|
|
||||||
template-haskell
|
|
||||||
];
|
|
||||||
license = pkgs.lib.licenses.mit;
|
|
||||||
description = "bindings for https://github.com/Matt-Esch/virtual-dom";
|
|
||||||
}) {};
|
|
||||||
|
|
||||||
ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
|
|
||||||
libraryHaskellDepends = with self; [
|
|
||||||
ghcjs-base ghcjs-dom-jsffi text transformers
|
|
||||||
];
|
|
||||||
configureFlags = [ "-fjsffi" "-f-webkit" ];
|
|
||||||
});
|
|
||||||
|
|
||||||
ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
|
|
||||||
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
|
|
||||||
isLibrary = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
ghc-paths = overrideCabal super.ghc-paths (drv: {
|
|
||||||
patches = [ ./patches/ghc-paths-nix-ghcjs.patch ];
|
|
||||||
});
|
|
||||||
|
|
||||||
http2 = addBuildDepends super.http2 [ self.aeson self.aeson-pretty self.hex self.unordered-containers self.vector self.word8 ];
|
|
||||||
# ghcjsBoot uses async 2.0.1.6, protolude wants 2.1.*
|
|
||||||
|
|
||||||
# These are the correct dependencies specified when calling `cabal2nix --compiler ghcjs`
|
|
||||||
# By default, the `miso` derivation present in hackage-packages.nix
|
|
||||||
# does not contain dependencies suitable for ghcjs
|
|
||||||
miso = overrideCabal super.miso (drv: {
|
|
||||||
libraryHaskellDepends = with self; [
|
|
||||||
BoundedChan bytestring containers ghcjs-base aeson base
|
|
||||||
http-api-data http-types network-uri scientific servant text
|
|
||||||
transformers unordered-containers vector
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
pqueue = overrideCabal super.pqueue (drv: {
|
|
||||||
postPatch = ''
|
|
||||||
sed -i -e '12s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
|
|
||||||
sed -i -e '64s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
|
|
||||||
sed -i -e '32s|null|Data.PQueue.Internals.null|' Data/PQueue/Min.hs
|
|
||||||
sed -i -e '32s|null|Data.PQueue.Max.null|' Data/PQueue/Max.hs
|
|
||||||
sed -i -e '42s|null|Data.PQueue.Prio.Internals.null|' Data/PQueue/Prio/Min.hs
|
|
||||||
sed -i -e '42s|null|Data.PQueue.Prio.Max.null|' Data/PQueue/Prio/Max.hs
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
profunctors = overrideCabal super.profunctors (drv: {
|
|
||||||
preConfigure = ''
|
|
||||||
sed -i 's/^{-# ANN .* #-}//' src/Data/Profunctor/Unsafe.hs
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
protolude = doJailbreak super.protolude;
|
|
||||||
|
|
||||||
# reflex 0.3, made compatible with the newest GHCJS.
|
|
||||||
reflex = overrideCabal super.reflex (drv: {
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ryantrinkle";
|
|
||||||
repo = "reflex";
|
|
||||||
rev = "cc62c11a6cde31412582758c236919d4bb766ada";
|
|
||||||
sha256 = "1j4vw0636bkl46lj8ry16i04vgpivjc6bs3ls54ppp1wfp63q7w4";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
# reflex-dom 0.2, made compatible with the newest GHCJS.
|
|
||||||
reflex-dom = overrideCabal super.reflex-dom (drv: {
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ryantrinkle";
|
|
||||||
repo = "reflex-dom";
|
|
||||||
rev = "639d9ca13c2def075e83344c9afca6eafaf24219";
|
|
||||||
sha256 = "0166ihbh3dbfjiym9w561svpgvj0x4i8i8ws70xaafi0cmpsxrar";
|
|
||||||
};
|
|
||||||
libraryHaskellDepends =
|
|
||||||
removeLibraryHaskellDepends [
|
|
||||||
"glib" "gtk3" "webkitgtk3" "webkitgtk3-javascriptcore" "raw-strings-qq" "unix"
|
|
||||||
] drv.libraryHaskellDepends;
|
|
||||||
});
|
|
||||||
|
|
||||||
transformers-compat = overrideCabal super.transformers-compat (drv: {
|
|
||||||
configureFlags = [];
|
|
||||||
});
|
|
||||||
|
|
||||||
# triggers an internal pattern match failure in haddock
|
|
||||||
# https://github.com/haskell/haddock/issues/553
|
|
||||||
wai = dontHaddock super.wai;
|
|
||||||
|
|
||||||
base-orphans = dontCheck super.base-orphans;
|
|
||||||
distributive = dontCheck super.distributive;
|
|
||||||
|
|
||||||
# https://github.com/glguy/th-abstraction/issues/53
|
|
||||||
th-abstraction = dontCheck super.th-abstraction;
|
|
||||||
# https://github.com/dreixel/syb/issues/21
|
|
||||||
syb = dontCheck super.syb;
|
|
||||||
# https://github.com/ghcjs/ghcjs/issues/677
|
|
||||||
hspec-core = dontCheck super.hspec-core;
|
|
||||||
}
|
|
|
@ -73,8 +73,11 @@ default-package-overrides:
|
||||||
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
|
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
|
||||||
# not yet available in Nixpkgs
|
# not yet available in Nixpkgs
|
||||||
- gi-gdkx11 < 4
|
- gi-gdkx11 < 4
|
||||||
|
- hlint < 3.3 # We don‘t have ghc-lib-parser 9.0.X yet.
|
||||||
|
- ghcide < 1.1 # To stay hls 1.0 compatible
|
||||||
|
- hls-retrie-plugin < 1.0.0.1 # To stay hls 1.0 compatible
|
||||||
|
|
||||||
# Stackage Nightly 2021-03-12
|
# Stackage Nightly 2021-03-17
|
||||||
- abstract-deque ==0.3
|
- abstract-deque ==0.3
|
||||||
- abstract-par ==0.3.3
|
- abstract-par ==0.3.3
|
||||||
- AC-Angle ==1.0
|
- AC-Angle ==1.0
|
||||||
|
@ -88,7 +91,7 @@ default-package-overrides:
|
||||||
- aeson-attoparsec ==0.0.0
|
- aeson-attoparsec ==0.0.0
|
||||||
- aeson-better-errors ==0.9.1.0
|
- aeson-better-errors ==0.9.1.0
|
||||||
- aeson-casing ==0.2.0.0
|
- aeson-casing ==0.2.0.0
|
||||||
- aeson-combinators ==0.0.4.1
|
- aeson-combinators ==0.0.5.0
|
||||||
- aeson-commit ==1.3
|
- aeson-commit ==1.3
|
||||||
- aeson-compat ==0.3.9
|
- aeson-compat ==0.3.9
|
||||||
- aeson-default ==0.9.1.0
|
- aeson-default ==0.9.1.0
|
||||||
|
@ -208,10 +211,10 @@ default-package-overrides:
|
||||||
- amazonka-waf ==1.6.1
|
- amazonka-waf ==1.6.1
|
||||||
- amazonka-workspaces ==1.6.1
|
- amazonka-workspaces ==1.6.1
|
||||||
- amazonka-xray ==1.6.1
|
- amazonka-xray ==1.6.1
|
||||||
- amqp ==0.21.0
|
- amqp ==0.22.0
|
||||||
- amqp-utils ==0.6.1.0
|
- amqp-utils ==0.6.1.0
|
||||||
- annotated-wl-pprint ==0.7.0
|
- annotated-wl-pprint ==0.7.0
|
||||||
- ansi-terminal ==0.10.3
|
- ansi-terminal ==0.11
|
||||||
- ansi-wl-pprint ==0.6.9
|
- ansi-wl-pprint ==0.6.9
|
||||||
- ANum ==0.2.0.2
|
- ANum ==0.2.0.2
|
||||||
- apecs ==0.9.2
|
- apecs ==0.9.2
|
||||||
|
@ -228,7 +231,6 @@ default-package-overrides:
|
||||||
- approximate-equality ==1.1.0.2
|
- approximate-equality ==1.1.0.2
|
||||||
- app-settings ==0.2.0.12
|
- app-settings ==0.2.0.12
|
||||||
- arbor-lru-cache ==0.1.1.1
|
- arbor-lru-cache ==0.1.1.1
|
||||||
- arbor-postgres ==0.0.5
|
|
||||||
- arithmoi ==0.11.0.1
|
- arithmoi ==0.11.0.1
|
||||||
- array-memoize ==0.6.0
|
- array-memoize ==0.6.0
|
||||||
- arrow-extras ==0.1.0.1
|
- arrow-extras ==0.1.0.1
|
||||||
|
@ -278,7 +280,7 @@ default-package-overrides:
|
||||||
- bank-holidays-england ==0.2.0.6
|
- bank-holidays-england ==0.2.0.6
|
||||||
- barbies ==2.0.2.0
|
- barbies ==2.0.2.0
|
||||||
- base16 ==0.3.0.1
|
- base16 ==0.3.0.1
|
||||||
- base16-bytestring ==0.1.1.7
|
- base16-bytestring ==1.0.1.0
|
||||||
- base16-lens ==0.1.3.2
|
- base16-lens ==0.1.3.2
|
||||||
- base32 ==0.2.0.0
|
- base32 ==0.2.0.0
|
||||||
- base32-lens ==0.1.1.1
|
- base32-lens ==0.1.1.1
|
||||||
|
@ -375,6 +377,7 @@ default-package-overrides:
|
||||||
- bugzilla-redhat ==0.3.1
|
- bugzilla-redhat ==0.3.1
|
||||||
- burrito ==1.2.0.1
|
- burrito ==1.2.0.1
|
||||||
- butcher ==1.3.3.2
|
- butcher ==1.3.3.2
|
||||||
|
- buttplug-hs-core ==0.1.0.0
|
||||||
- bv ==0.5
|
- bv ==0.5
|
||||||
- bv-little ==1.1.1
|
- bv-little ==1.1.1
|
||||||
- byteable ==0.1.1
|
- byteable ==0.1.1
|
||||||
|
@ -412,7 +415,7 @@ default-package-overrides:
|
||||||
- cardano-coin-selection ==1.0.1
|
- cardano-coin-selection ==1.0.1
|
||||||
- carray ==0.1.6.8
|
- carray ==0.1.6.8
|
||||||
- casa-client ==0.0.1
|
- casa-client ==0.0.1
|
||||||
- casa-types ==0.0.1
|
- casa-types ==0.0.2
|
||||||
- cased ==0.1.0.0
|
- cased ==0.1.0.0
|
||||||
- case-insensitive ==1.2.1.0
|
- case-insensitive ==1.2.1.0
|
||||||
- cases ==0.1.4
|
- cases ==0.1.4
|
||||||
|
@ -457,7 +460,7 @@ default-package-overrides:
|
||||||
- cipher-rc4 ==0.1.4
|
- cipher-rc4 ==0.1.4
|
||||||
- circle-packing ==0.1.0.6
|
- circle-packing ==0.1.0.6
|
||||||
- circular ==0.3.1.1
|
- circular ==0.3.1.1
|
||||||
- citeproc ==0.3.0.8
|
- citeproc ==0.3.0.9
|
||||||
- clash-ghc ==1.2.5
|
- clash-ghc ==1.2.5
|
||||||
- clash-lib ==1.2.5
|
- clash-lib ==1.2.5
|
||||||
- clash-prelude ==1.2.5
|
- clash-prelude ==1.2.5
|
||||||
|
@ -477,18 +480,15 @@ default-package-overrides:
|
||||||
- cmark-lucid ==0.1.0.0
|
- cmark-lucid ==0.1.0.0
|
||||||
- cmdargs ==0.10.21
|
- cmdargs ==0.10.21
|
||||||
- codec-beam ==0.2.0
|
- codec-beam ==0.2.0
|
||||||
- codec-rpm ==0.2.2
|
|
||||||
- code-page ==0.2.1
|
- code-page ==0.2.1
|
||||||
- co-log ==0.4.0.1
|
|
||||||
- co-log-concurrent ==0.5.0.0
|
- co-log-concurrent ==0.5.0.0
|
||||||
- co-log-core ==0.2.1.1
|
- co-log-core ==0.2.1.1
|
||||||
- Color ==0.3.0
|
- Color ==0.3.1
|
||||||
- colorful-monoids ==0.2.1.3
|
- colorful-monoids ==0.2.1.3
|
||||||
- colorize-haskell ==1.0.1
|
- colorize-haskell ==1.0.1
|
||||||
- colour ==2.3.5
|
- colour ==2.3.5
|
||||||
- colourista ==0.1.0.0
|
|
||||||
- combinatorial ==0.1.0.1
|
- combinatorial ==0.1.0.1
|
||||||
- comfort-array ==0.4
|
- comfort-array ==0.4.1
|
||||||
- comfort-graph ==0.0.3.1
|
- comfort-graph ==0.0.3.1
|
||||||
- commonmark ==0.1.1.4
|
- commonmark ==0.1.1.4
|
||||||
- commonmark-extensions ==0.2.0.4
|
- commonmark-extensions ==0.2.0.4
|
||||||
|
@ -501,7 +501,7 @@ default-package-overrides:
|
||||||
- compensated ==0.8.3
|
- compensated ==0.8.3
|
||||||
- compiler-warnings ==0.1.0
|
- compiler-warnings ==0.1.0
|
||||||
- composable-associations ==0.1.0.0
|
- composable-associations ==0.1.0.0
|
||||||
- composable-associations-aeson ==0.1.0.0
|
- composable-associations-aeson ==0.1.0.1
|
||||||
- composite-aeson ==0.7.4.0
|
- composite-aeson ==0.7.4.0
|
||||||
- composite-aeson-path ==0.7.4.0
|
- composite-aeson-path ==0.7.4.0
|
||||||
- composite-aeson-refined ==0.7.4.0
|
- composite-aeson-refined ==0.7.4.0
|
||||||
|
@ -514,7 +514,7 @@ default-package-overrides:
|
||||||
- composition ==1.0.2.1
|
- composition ==1.0.2.1
|
||||||
- composition-extra ==2.0.0
|
- composition-extra ==2.0.0
|
||||||
- concise ==0.1.0.1
|
- concise ==0.1.0.1
|
||||||
- concurrency ==1.11.0.0
|
- concurrency ==1.11.0.1
|
||||||
- concurrent-extra ==0.7.0.12
|
- concurrent-extra ==0.7.0.12
|
||||||
- concurrent-output ==1.10.12
|
- concurrent-output ==1.10.12
|
||||||
- concurrent-split ==0.0.1.1
|
- concurrent-split ==0.0.1.1
|
||||||
|
@ -528,7 +528,7 @@ default-package-overrides:
|
||||||
- conduit-parse ==0.2.1.0
|
- conduit-parse ==0.2.1.0
|
||||||
- conduit-zstd ==0.0.2.0
|
- conduit-zstd ==0.0.2.0
|
||||||
- conferer ==1.1.0.0
|
- conferer ==1.1.0.0
|
||||||
- conferer-aeson ==1.1.0.0
|
- conferer-aeson ==1.1.0.1
|
||||||
- conferer-hspec ==1.1.0.0
|
- conferer-hspec ==1.1.0.0
|
||||||
- conferer-warp ==1.1.0.0
|
- conferer-warp ==1.1.0.0
|
||||||
- ConfigFile ==1.1.4
|
- ConfigFile ==1.1.4
|
||||||
|
@ -556,7 +556,6 @@ default-package-overrides:
|
||||||
- core-text ==0.3.0.0
|
- core-text ==0.3.0.0
|
||||||
- countable ==1.0
|
- countable ==1.0
|
||||||
- country ==0.2.1
|
- country ==0.2.1
|
||||||
- cpio-conduit ==0.7.0
|
|
||||||
- cpphs ==1.20.9.1
|
- cpphs ==1.20.9.1
|
||||||
- cprng-aes ==0.6.1
|
- cprng-aes ==0.6.1
|
||||||
- cpu ==0.1.2
|
- cpu ==0.1.2
|
||||||
|
@ -577,7 +576,7 @@ default-package-overrides:
|
||||||
- cryptohash-sha1 ==0.11.100.1
|
- cryptohash-sha1 ==0.11.100.1
|
||||||
- cryptohash-sha256 ==0.11.102.0
|
- cryptohash-sha256 ==0.11.102.0
|
||||||
- cryptohash-sha512 ==0.11.100.1
|
- cryptohash-sha512 ==0.11.100.1
|
||||||
- cryptonite ==0.27
|
- cryptonite ==0.28
|
||||||
- cryptonite-conduit ==0.2.2
|
- cryptonite-conduit ==0.2.2
|
||||||
- cryptonite-openssl ==0.7
|
- cryptonite-openssl ==0.7
|
||||||
- crypto-numbers ==0.2.7
|
- crypto-numbers ==0.2.7
|
||||||
|
@ -628,7 +627,7 @@ default-package-overrides:
|
||||||
- data-forest ==0.1.0.8
|
- data-forest ==0.1.0.8
|
||||||
- data-has ==0.4.0.0
|
- data-has ==0.4.0.0
|
||||||
- data-hash ==0.2.0.1
|
- data-hash ==0.2.0.1
|
||||||
- data-interval ==2.0.1
|
- data-interval ==2.1.0
|
||||||
- data-inttrie ==0.1.4
|
- data-inttrie ==0.1.4
|
||||||
- data-lens-light ==0.1.2.2
|
- data-lens-light ==0.1.2.2
|
||||||
- data-memocombinators ==0.5.1
|
- data-memocombinators ==0.5.1
|
||||||
|
@ -649,12 +648,12 @@ default-package-overrides:
|
||||||
- debian-build ==0.10.2.0
|
- debian-build ==0.10.2.0
|
||||||
- debug-trace-var ==0.2.0
|
- debug-trace-var ==0.2.0
|
||||||
- dec ==0.0.4
|
- dec ==0.0.4
|
||||||
- Decimal ==0.5.1
|
- Decimal ==0.5.2
|
||||||
- declarative ==0.5.4
|
- declarative ==0.5.4
|
||||||
- deepseq-generics ==0.2.0.0
|
- deepseq-generics ==0.2.0.0
|
||||||
- deepseq-instances ==0.1.0.1
|
- deepseq-instances ==0.1.0.1
|
||||||
- deferred-folds ==0.9.17
|
- deferred-folds ==0.9.17
|
||||||
- dejafu ==2.4.0.1
|
- dejafu ==2.4.0.2
|
||||||
- dense-linear-algebra ==0.1.0.0
|
- dense-linear-algebra ==0.1.0.0
|
||||||
- depq ==0.4.1.0
|
- depq ==0.4.1.0
|
||||||
- deque ==0.4.3
|
- deque ==0.4.3
|
||||||
|
@ -691,12 +690,13 @@ default-package-overrides:
|
||||||
- dlist-nonempty ==0.1.1
|
- dlist-nonempty ==0.1.1
|
||||||
- dns ==4.0.1
|
- dns ==4.0.1
|
||||||
- dockerfile ==0.2.0
|
- dockerfile ==0.2.0
|
||||||
- doclayout ==0.3
|
- doclayout ==0.3.0.2
|
||||||
- doctemplates ==0.9
|
- doctemplates ==0.9
|
||||||
- doctest ==0.16.3
|
- doctest ==0.16.3
|
||||||
- doctest-discover ==0.2.0.0
|
- doctest-discover ==0.2.0.0
|
||||||
- doctest-driver-gen ==0.3.0.3
|
- doctest-driver-gen ==0.3.0.3
|
||||||
- doctest-exitcode-stdio ==0.0
|
- doctest-exitcode-stdio ==0.0
|
||||||
|
- doctest-extract ==0.1
|
||||||
- doctest-lib ==0.1
|
- doctest-lib ==0.1
|
||||||
- doldol ==0.4.1.2
|
- doldol ==0.4.1.2
|
||||||
- do-list ==1.0.1
|
- do-list ==1.0.1
|
||||||
|
@ -712,7 +712,7 @@ default-package-overrides:
|
||||||
- dual ==0.1.1.1
|
- dual ==0.1.1.1
|
||||||
- dublincore-xml-conduit ==0.1.0.2
|
- dublincore-xml-conduit ==0.1.0.2
|
||||||
- dunai ==0.7.0
|
- dunai ==0.7.0
|
||||||
- duration ==0.1.0.0
|
- duration ==0.2.0.0
|
||||||
- dvorak ==0.1.0.0
|
- dvorak ==0.1.0.0
|
||||||
- dynamic-state ==0.3.1
|
- dynamic-state ==0.3.1
|
||||||
- dyre ==0.8.12
|
- dyre ==0.8.12
|
||||||
|
@ -794,7 +794,7 @@ default-package-overrides:
|
||||||
- executable-path ==0.0.3.1
|
- executable-path ==0.0.3.1
|
||||||
- exit-codes ==1.0.0
|
- exit-codes ==1.0.0
|
||||||
- exomizer ==1.0.0
|
- exomizer ==1.0.0
|
||||||
- experimenter ==0.1.0.4
|
- experimenter ==0.1.0.10
|
||||||
- expiring-cache-map ==0.0.6.1
|
- expiring-cache-map ==0.0.6.1
|
||||||
- explicit-exception ==0.1.10
|
- explicit-exception ==0.1.10
|
||||||
- exp-pairs ==0.2.1.0
|
- exp-pairs ==0.2.1.0
|
||||||
|
@ -844,6 +844,7 @@ default-package-overrides:
|
||||||
- fixed-length ==0.2.2
|
- fixed-length ==0.2.2
|
||||||
- fixed-vector ==1.2.0.0
|
- fixed-vector ==1.2.0.0
|
||||||
- fixed-vector-hetero ==0.6.0.0
|
- fixed-vector-hetero ==0.6.0.0
|
||||||
|
- fix-whitespace ==0.0.5
|
||||||
- flac ==0.2.0
|
- flac ==0.2.0
|
||||||
- flac-picture ==0.1.2
|
- flac-picture ==0.1.2
|
||||||
- flags-applicative ==0.1.0.2
|
- flags-applicative ==0.1.0.2
|
||||||
|
@ -951,7 +952,7 @@ default-package-overrides:
|
||||||
- ghc-byteorder ==4.11.0.0.10
|
- ghc-byteorder ==4.11.0.0.10
|
||||||
- ghc-check ==0.5.0.3
|
- ghc-check ==0.5.0.3
|
||||||
- ghc-core ==0.5.6
|
- ghc-core ==0.5.6
|
||||||
- ghc-events ==0.15.1
|
- ghc-events ==0.16.0
|
||||||
- ghc-exactprint ==0.6.4
|
- ghc-exactprint ==0.6.4
|
||||||
- ghcid ==0.8.7
|
- ghcid ==0.8.7
|
||||||
- ghci-hexcalc ==0.1.1.0
|
- ghci-hexcalc ==0.1.1.0
|
||||||
|
@ -969,7 +970,7 @@ default-package-overrides:
|
||||||
- ghc-typelits-extra ==0.4.2
|
- ghc-typelits-extra ==0.4.2
|
||||||
- ghc-typelits-knownnat ==0.7.5
|
- ghc-typelits-knownnat ==0.7.5
|
||||||
- ghc-typelits-natnormalise ==0.7.4
|
- ghc-typelits-natnormalise ==0.7.4
|
||||||
- ghc-typelits-presburger ==0.5.2.0
|
- ghc-typelits-presburger ==0.6.0.0
|
||||||
- ghost-buster ==0.1.1.0
|
- ghost-buster ==0.1.1.0
|
||||||
- gi-atk ==2.0.22
|
- gi-atk ==2.0.22
|
||||||
- gi-cairo ==1.0.24
|
- gi-cairo ==1.0.24
|
||||||
|
@ -991,8 +992,7 @@ default-package-overrides:
|
||||||
- gingersnap ==0.3.1.0
|
- gingersnap ==0.3.1.0
|
||||||
- gi-pango ==1.0.23
|
- gi-pango ==1.0.23
|
||||||
- githash ==0.1.5.0
|
- githash ==0.1.5.0
|
||||||
- github ==0.26
|
- github-release ==1.3.7
|
||||||
- github-release ==1.3.6
|
|
||||||
- github-rest ==1.0.3
|
- github-rest ==1.0.3
|
||||||
- github-types ==0.2.1
|
- github-types ==0.2.1
|
||||||
- github-webhooks ==0.15.0
|
- github-webhooks ==0.15.0
|
||||||
|
@ -1016,6 +1016,7 @@ default-package-overrides:
|
||||||
- graphite ==0.10.0.1
|
- graphite ==0.10.0.1
|
||||||
- graphql-client ==1.1.0
|
- graphql-client ==1.1.0
|
||||||
- graphs ==0.7.1
|
- graphs ==0.7.1
|
||||||
|
- graphula ==2.0.0.3
|
||||||
- graphviz ==2999.20.1.0
|
- graphviz ==2999.20.1.0
|
||||||
- graph-wrapper ==0.2.6.0
|
- graph-wrapper ==0.2.6.0
|
||||||
- gravatar ==0.8.0
|
- gravatar ==0.8.0
|
||||||
|
@ -1032,7 +1033,6 @@ default-package-overrides:
|
||||||
- hackage-db ==2.1.0
|
- hackage-db ==2.1.0
|
||||||
- hackage-security ==0.6.0.1
|
- hackage-security ==0.6.0.1
|
||||||
- haddock-library ==1.9.0
|
- haddock-library ==1.9.0
|
||||||
- hadolint ==1.23.0
|
|
||||||
- hadoop-streaming ==0.2.0.3
|
- hadoop-streaming ==0.2.0.3
|
||||||
- hakyll-convert ==0.3.0.4
|
- hakyll-convert ==0.3.0.4
|
||||||
- half ==0.3.1
|
- half ==0.3.1
|
||||||
|
@ -1078,11 +1078,11 @@ default-package-overrides:
|
||||||
- hdaemonize ==0.5.6
|
- hdaemonize ==0.5.6
|
||||||
- HDBC ==2.4.0.3
|
- HDBC ==2.4.0.3
|
||||||
- HDBC-session ==0.1.2.0
|
- HDBC-session ==0.1.2.0
|
||||||
- headroom ==0.4.0.0
|
- headroom ==0.4.1.0
|
||||||
- heap ==1.0.4
|
- heap ==1.0.4
|
||||||
- heaps ==0.3.6.1
|
- heaps ==0.3.6.1
|
||||||
- hebrew-time ==0.1.2
|
- hebrew-time ==0.1.2
|
||||||
- hedgehog ==1.0.4
|
- hedgehog ==1.0.5
|
||||||
- hedgehog-corpus ==0.2.0
|
- hedgehog-corpus ==0.2.0
|
||||||
- hedgehog-fakedata ==0.0.1.4
|
- hedgehog-fakedata ==0.0.1.4
|
||||||
- hedgehog-fn ==1.0
|
- hedgehog-fn ==1.0
|
||||||
|
@ -1095,18 +1095,17 @@ default-package-overrides:
|
||||||
- hexml ==0.3.4
|
- hexml ==0.3.4
|
||||||
- hexml-lens ==0.2.1
|
- hexml-lens ==0.2.1
|
||||||
- hexpat ==0.20.13
|
- hexpat ==0.20.13
|
||||||
- hexstring ==0.11.1
|
|
||||||
- hformat ==0.3.3.1
|
- hformat ==0.3.3.1
|
||||||
- hfsevents ==0.1.6
|
- hfsevents ==0.1.6
|
||||||
- hgrev ==0.2.6
|
- hgrev ==0.2.6
|
||||||
- hidapi ==0.1.5
|
- hidapi ==0.1.5
|
||||||
- hie-bios ==0.7.4
|
- hie-bios ==0.7.5
|
||||||
- hi-file-parser ==0.1.0.0
|
- hi-file-parser ==0.1.0.0
|
||||||
- higher-leveldb ==0.6.0.0
|
- higher-leveldb ==0.6.0.0
|
||||||
- highlighting-kate ==0.6.4
|
- highlighting-kate ==0.6.4
|
||||||
- hinfo ==0.0.3.0
|
- hinfo ==0.0.3.0
|
||||||
- hinotify ==0.4.1
|
- hinotify ==0.4.1
|
||||||
- hint ==0.9.0.3
|
- hint ==0.9.0.4
|
||||||
- hjsmin ==0.2.0.4
|
- hjsmin ==0.2.0.4
|
||||||
- hkd-default ==1.1.0.0
|
- hkd-default ==1.1.0.0
|
||||||
- hkgr ==0.2.7
|
- hkgr ==0.2.7
|
||||||
|
@ -1152,9 +1151,10 @@ default-package-overrides:
|
||||||
- hsinstall ==2.6
|
- hsinstall ==2.6
|
||||||
- HSlippyMap ==3.0.1
|
- HSlippyMap ==3.0.1
|
||||||
- hslogger ==1.3.1.0
|
- hslogger ==1.3.1.0
|
||||||
- hslua ==1.2.0
|
- hslua ==1.3.0.1
|
||||||
- hslua-aeson ==1.0.3.1
|
- hslua-aeson ==1.0.3.1
|
||||||
- hslua-module-doclayout ==0.2.0.1
|
- hslua-module-doclayout ==0.2.0.1
|
||||||
|
- hslua-module-path ==0.1.0.1
|
||||||
- hslua-module-system ==0.2.2.1
|
- hslua-module-system ==0.2.2.1
|
||||||
- hslua-module-text ==0.3.0.1
|
- hslua-module-text ==0.3.0.1
|
||||||
- HsOpenSSL ==0.11.5.1
|
- HsOpenSSL ==0.11.5.1
|
||||||
|
@ -1180,10 +1180,11 @@ default-package-overrides:
|
||||||
- hspec-parsec ==0
|
- hspec-parsec ==0
|
||||||
- hspec-smallcheck ==0.5.2
|
- hspec-smallcheck ==0.5.2
|
||||||
- hspec-tables ==0.0.1
|
- hspec-tables ==0.0.1
|
||||||
- hspec-wai ==0.10.1
|
- hspec-wai ==0.11.0
|
||||||
- hspec-wai-json ==0.10.1
|
- hspec-wai-json ==0.11.0
|
||||||
- hs-php-session ==0.0.9.3
|
- hs-php-session ==0.0.9.3
|
||||||
- hsshellscript ==3.4.5
|
- hsshellscript ==3.5.0
|
||||||
|
- hs-tags ==0.1.5
|
||||||
- HStringTemplate ==0.8.7
|
- HStringTemplate ==0.8.7
|
||||||
- HSvm ==0.1.1.3.22
|
- HSvm ==0.1.1.3.22
|
||||||
- HsYAML ==0.2.1.0
|
- HsYAML ==0.2.1.0
|
||||||
|
@ -1196,9 +1197,9 @@ default-package-overrides:
|
||||||
- html-entities ==1.1.4.3
|
- html-entities ==1.1.4.3
|
||||||
- html-entity-map ==0.1.0.0
|
- html-entity-map ==0.1.0.0
|
||||||
- htoml ==1.0.0.3
|
- htoml ==1.0.0.3
|
||||||
- http2 ==2.0.5
|
- http2 ==2.0.6
|
||||||
- HTTP ==4000.3.15
|
- HTTP ==4000.3.15
|
||||||
- http-api-data ==0.4.1.1
|
- http-api-data ==0.4.2
|
||||||
- http-client ==0.6.4.1
|
- http-client ==0.6.4.1
|
||||||
- http-client-openssl ==0.3.2.0
|
- http-client-openssl ==0.3.2.0
|
||||||
- http-client-overrides ==0.1.1.0
|
- http-client-overrides ==0.1.1.0
|
||||||
|
@ -1209,7 +1210,7 @@ default-package-overrides:
|
||||||
- http-directory ==0.1.8
|
- http-directory ==0.1.8
|
||||||
- http-download ==0.2.0.0
|
- http-download ==0.2.0.0
|
||||||
- httpd-shed ==0.4.1.1
|
- httpd-shed ==0.4.1.1
|
||||||
- http-link-header ==1.0.3.1
|
- http-link-header ==1.2.0
|
||||||
- http-media ==0.8.0.0
|
- http-media ==0.8.0.0
|
||||||
- http-query ==0.1.0.1
|
- http-query ==0.1.0.1
|
||||||
- http-reverse-proxy ==0.6.0
|
- http-reverse-proxy ==0.6.0
|
||||||
|
@ -1286,9 +1287,10 @@ default-package-overrides:
|
||||||
- indexed-list-literals ==0.2.1.3
|
- indexed-list-literals ==0.2.1.3
|
||||||
- indexed-profunctors ==0.1
|
- indexed-profunctors ==0.1
|
||||||
- indexed-traversable ==0.1.1
|
- indexed-traversable ==0.1.1
|
||||||
|
- indexed-traversable-instances ==0.1
|
||||||
- infer-license ==0.2.0
|
- infer-license ==0.2.0
|
||||||
- inflections ==0.4.0.6
|
- inflections ==0.4.0.6
|
||||||
- influxdb ==1.9.1
|
- influxdb ==1.9.1.1
|
||||||
- ini ==0.4.1
|
- ini ==0.4.1
|
||||||
- inj ==1.0
|
- inj ==1.0
|
||||||
- inline-c ==0.9.1.4
|
- inline-c ==0.9.1.4
|
||||||
|
@ -1344,9 +1346,9 @@ default-package-overrides:
|
||||||
- ix-shapable ==0.1.0
|
- ix-shapable ==0.1.0
|
||||||
- jack ==0.7.1.4
|
- jack ==0.7.1.4
|
||||||
- jalaali ==1.0.0.0
|
- jalaali ==1.0.0.0
|
||||||
- jira-wiki-markup ==1.3.3
|
- jira-wiki-markup ==1.3.4
|
||||||
- jose ==0.8.4
|
- jose ==0.8.4
|
||||||
- jose-jwt ==0.9.0
|
- jose-jwt ==0.9.1
|
||||||
- js-chart ==2.9.4.1
|
- js-chart ==2.9.4.1
|
||||||
- js-dgtable ==0.5.2
|
- js-dgtable ==0.5.2
|
||||||
- js-flot ==0.8.3
|
- js-flot ==0.8.3
|
||||||
|
@ -1369,6 +1371,7 @@ default-package-overrides:
|
||||||
- kawhi ==0.3.0
|
- kawhi ==0.3.0
|
||||||
- kazura-queue ==0.1.0.4
|
- kazura-queue ==0.1.0.4
|
||||||
- kdt ==0.2.4
|
- kdt ==0.2.4
|
||||||
|
- keep-alive ==0.2.0.0
|
||||||
- keycode ==0.2.2
|
- keycode ==0.2.2
|
||||||
- keys ==3.12.3
|
- keys ==3.12.3
|
||||||
- ki ==0.2.0.1
|
- ki ==0.2.0.1
|
||||||
|
@ -1381,6 +1384,7 @@ default-package-overrides:
|
||||||
- kubernetes-webhook-haskell ==0.2.0.3
|
- kubernetes-webhook-haskell ==0.2.0.3
|
||||||
- l10n ==0.1.0.1
|
- l10n ==0.1.0.1
|
||||||
- labels ==0.3.3
|
- labels ==0.3.3
|
||||||
|
- lackey ==1.0.14
|
||||||
- LambdaHack ==0.9.5.0
|
- LambdaHack ==0.9.5.0
|
||||||
- lame ==0.2.0
|
- lame ==0.2.0
|
||||||
- language-avro ==0.1.3.1
|
- language-avro ==0.1.3.1
|
||||||
|
@ -1396,7 +1400,7 @@ default-package-overrides:
|
||||||
- lapack ==0.3.2
|
- lapack ==0.3.2
|
||||||
- lapack-carray ==0.0.3
|
- lapack-carray ==0.0.3
|
||||||
- lapack-comfort-array ==0.0.0.1
|
- lapack-comfort-array ==0.0.0.1
|
||||||
- lapack-ffi ==0.0.2
|
- lapack-ffi ==0.0.3
|
||||||
- lapack-ffi-tools ==0.1.2.1
|
- lapack-ffi-tools ==0.1.2.1
|
||||||
- largeword ==1.2.5
|
- largeword ==1.2.5
|
||||||
- latex ==0.1.0.4
|
- latex ==0.1.0.4
|
||||||
|
@ -1432,7 +1436,6 @@ default-package-overrides:
|
||||||
- liboath-hs ==0.0.1.2
|
- liboath-hs ==0.0.1.2
|
||||||
- libyaml ==0.1.2
|
- libyaml ==0.1.2
|
||||||
- LibZip ==1.0.1
|
- LibZip ==1.0.1
|
||||||
- life-sync ==1.1.1.0
|
|
||||||
- lifted-async ==0.10.1.3
|
- lifted-async ==0.10.1.3
|
||||||
- lifted-base ==0.2.3.12
|
- lifted-base ==0.2.3.12
|
||||||
- lift-generics ==0.2
|
- lift-generics ==0.2
|
||||||
|
@ -1450,7 +1453,6 @@ default-package-overrides:
|
||||||
- list-singleton ==1.0.0.5
|
- list-singleton ==1.0.0.5
|
||||||
- list-t ==1.0.4
|
- list-t ==1.0.4
|
||||||
- ListTree ==0.2.3
|
- ListTree ==0.2.3
|
||||||
- little-logger ==0.3.1
|
|
||||||
- little-rio ==0.2.2
|
- little-rio ==0.2.2
|
||||||
- llvm-hs ==9.0.1
|
- llvm-hs ==9.0.1
|
||||||
- llvm-hs-pure ==9.0.0
|
- llvm-hs-pure ==9.0.0
|
||||||
|
@ -1523,12 +1525,12 @@ default-package-overrides:
|
||||||
- messagepack ==0.5.4
|
- messagepack ==0.5.4
|
||||||
- metrics ==0.4.1.1
|
- metrics ==0.4.1.1
|
||||||
- mfsolve ==0.3.2.0
|
- mfsolve ==0.3.2.0
|
||||||
- microlens ==0.4.11.2
|
- microlens ==0.4.12.0
|
||||||
- microlens-aeson ==2.3.1
|
- microlens-aeson ==2.3.1
|
||||||
- microlens-contra ==0.1.0.2
|
- microlens-contra ==0.1.0.2
|
||||||
- microlens-ghc ==0.4.12
|
- microlens-ghc ==0.4.13
|
||||||
- microlens-mtl ==0.2.0.1
|
- microlens-mtl ==0.2.0.1
|
||||||
- microlens-platform ==0.4.1
|
- microlens-platform ==0.4.2
|
||||||
- microlens-process ==0.2.0.2
|
- microlens-process ==0.2.0.2
|
||||||
- microlens-th ==0.4.3.9
|
- microlens-th ==0.4.3.9
|
||||||
- microspec ==0.2.1.3
|
- microspec ==0.2.1.3
|
||||||
|
@ -1551,7 +1553,7 @@ default-package-overrides:
|
||||||
- mixed-types-num ==0.4.1
|
- mixed-types-num ==0.4.1
|
||||||
- mltool ==0.2.0.1
|
- mltool ==0.2.0.1
|
||||||
- mmap ==0.5.9
|
- mmap ==0.5.9
|
||||||
- mmark ==0.0.7.3
|
- mmark ==0.0.7.2
|
||||||
- mmark-cli ==0.0.5.0
|
- mmark-cli ==0.0.5.0
|
||||||
- mmark-ext ==0.2.1.3
|
- mmark-ext ==0.2.1.3
|
||||||
- mmorph ==1.1.5
|
- mmorph ==1.1.5
|
||||||
|
@ -1625,7 +1627,7 @@ default-package-overrides:
|
||||||
- mwc-random ==0.14.0.0
|
- mwc-random ==0.14.0.0
|
||||||
- mwc-random-monad ==0.7.3.1
|
- mwc-random-monad ==0.7.3.1
|
||||||
- mx-state-codes ==1.0.0.0
|
- mx-state-codes ==1.0.0.0
|
||||||
- mysql ==0.1.7.3
|
- mysql ==0.2
|
||||||
- mysql-simple ==0.4.5
|
- mysql-simple ==0.4.5
|
||||||
- n2o ==0.11.1
|
- n2o ==0.11.1
|
||||||
- nagios-check ==0.3.2
|
- nagios-check ==0.3.2
|
||||||
|
@ -1668,11 +1670,12 @@ default-package-overrides:
|
||||||
- nix-paths ==1.0.1
|
- nix-paths ==1.0.1
|
||||||
- nonce ==1.0.7
|
- nonce ==1.0.7
|
||||||
- nondeterminism ==1.4
|
- nondeterminism ==1.4
|
||||||
- non-empty ==0.3.2
|
- non-empty ==0.3.3
|
||||||
- nonempty-containers ==0.3.4.1
|
- nonempty-containers ==0.3.4.1
|
||||||
- nonemptymap ==0.0.6.0
|
- nonemptymap ==0.0.6.0
|
||||||
- non-empty-sequence ==0.2.0.4
|
- non-empty-sequence ==0.2.0.4
|
||||||
- nonempty-vector ==0.2.1.0
|
- nonempty-vector ==0.2.1.0
|
||||||
|
- nonempty-zipper ==1.0.0.1
|
||||||
- non-negative ==0.1.2
|
- non-negative ==0.1.2
|
||||||
- not-gloss ==0.7.7.0
|
- not-gloss ==0.7.7.0
|
||||||
- no-value ==1.0.0.0
|
- no-value ==1.0.0.0
|
||||||
|
@ -1684,7 +1687,7 @@ default-package-overrides:
|
||||||
- nsis ==0.3.3
|
- nsis ==0.3.3
|
||||||
- numbers ==3000.2.0.2
|
- numbers ==3000.2.0.2
|
||||||
- numeric-extras ==0.1
|
- numeric-extras ==0.1
|
||||||
- numeric-prelude ==0.4.3.2
|
- numeric-prelude ==0.4.3.3
|
||||||
- numhask ==0.6.0.2
|
- numhask ==0.6.0.2
|
||||||
- NumInstances ==1.4
|
- NumInstances ==1.4
|
||||||
- numtype-dk ==0.5.0.2
|
- numtype-dk ==0.5.0.2
|
||||||
|
@ -1729,8 +1732,8 @@ default-package-overrides:
|
||||||
- optics-vl ==0.2.1
|
- optics-vl ==0.2.1
|
||||||
- optional-args ==1.0.2
|
- optional-args ==1.0.2
|
||||||
- options ==1.2.1.1
|
- options ==1.2.1.1
|
||||||
- optparse-applicative ==0.15.1.0
|
- optparse-applicative ==0.16.1.0
|
||||||
- optparse-generic ==1.3.1
|
- optparse-generic ==1.4.4
|
||||||
- optparse-simple ==0.1.1.3
|
- optparse-simple ==0.1.1.3
|
||||||
- optparse-text ==0.1.1.0
|
- optparse-text ==0.1.1.0
|
||||||
- ordered-containers ==0.2.2
|
- ordered-containers ==0.2.2
|
||||||
|
@ -1741,8 +1744,8 @@ default-package-overrides:
|
||||||
- pager ==0.1.1.0
|
- pager ==0.1.1.0
|
||||||
- pagination ==0.2.2
|
- pagination ==0.2.2
|
||||||
- pagure-cli ==0.2
|
- pagure-cli ==0.2
|
||||||
- pandoc ==2.11.4
|
- pandoc ==2.12
|
||||||
- pandoc-plot ==1.1.0
|
- pandoc-plot ==1.1.1
|
||||||
- pandoc-types ==1.22
|
- pandoc-types ==1.22
|
||||||
- pantry ==0.5.1.4
|
- pantry ==0.5.1.4
|
||||||
- parallel ==3.2.2.0
|
- parallel ==3.2.2.0
|
||||||
|
@ -1760,8 +1763,9 @@ default-package-overrides:
|
||||||
- partial-handler ==1.0.3
|
- partial-handler ==1.0.3
|
||||||
- partial-isomorphisms ==0.2.2.1
|
- partial-isomorphisms ==0.2.2.1
|
||||||
- partial-semigroup ==0.5.1.8
|
- partial-semigroup ==0.5.1.8
|
||||||
- password ==2.1.1.0
|
- password ==3.0.0.0
|
||||||
- password-instances ==2.0.0.2
|
- password-instances ==3.0.0.0
|
||||||
|
- password-types ==1.0.0.0
|
||||||
- path ==0.7.0
|
- path ==0.7.0
|
||||||
- path-binary-instance ==0.1.0.1
|
- path-binary-instance ==0.1.0.1
|
||||||
- path-extensions ==0.1.1.0
|
- path-extensions ==0.1.1.0
|
||||||
|
@ -1892,7 +1896,7 @@ default-package-overrides:
|
||||||
- promises ==0.3
|
- promises ==0.3
|
||||||
- prompt ==0.1.1.2
|
- prompt ==0.1.1.2
|
||||||
- prospect ==0.1.0.0
|
- prospect ==0.1.0.0
|
||||||
- proto3-wire ==1.1.0
|
- proto3-wire ==1.2.0
|
||||||
- protobuf ==0.2.1.3
|
- protobuf ==0.2.1.3
|
||||||
- protobuf-simple ==0.1.1.0
|
- protobuf-simple ==0.1.1.0
|
||||||
- protocol-buffers ==2.4.17
|
- protocol-buffers ==2.4.17
|
||||||
|
@ -1900,7 +1904,6 @@ default-package-overrides:
|
||||||
- protocol-radius ==0.0.1.1
|
- protocol-radius ==0.0.1.1
|
||||||
- protocol-radius-test ==0.1.0.1
|
- protocol-radius-test ==0.1.0.1
|
||||||
- proto-lens ==0.7.0.0
|
- proto-lens ==0.7.0.0
|
||||||
- proto-lens-optparse ==0.1.1.7
|
|
||||||
- proto-lens-protobuf-types ==0.7.0.0
|
- proto-lens-protobuf-types ==0.7.0.0
|
||||||
- proto-lens-protoc ==0.7.0.0
|
- proto-lens-protoc ==0.7.0.0
|
||||||
- proto-lens-runtime ==0.7.0.0
|
- proto-lens-runtime ==0.7.0.0
|
||||||
|
@ -1958,10 +1961,11 @@ default-package-overrides:
|
||||||
- rank2classes ==1.4.1
|
- rank2classes ==1.4.1
|
||||||
- Rasterific ==0.7.5.3
|
- Rasterific ==0.7.5.3
|
||||||
- rasterific-svg ==0.3.3.2
|
- rasterific-svg ==0.3.3.2
|
||||||
- ratel ==1.0.13
|
- ratel ==1.0.14
|
||||||
- rate-limit ==1.4.2
|
- rate-limit ==1.4.2
|
||||||
- ratel-wai ==1.1.4
|
- ratel-wai ==1.1.5
|
||||||
- rattle ==0.2
|
- rattle ==0.2
|
||||||
|
- rattletrap ==11.0.0
|
||||||
- Rattus ==0.5
|
- Rattus ==0.5
|
||||||
- rawfilepath ==0.2.4
|
- rawfilepath ==0.2.4
|
||||||
- rawstring-qm ==0.2.3.0
|
- rawstring-qm ==0.2.3.0
|
||||||
|
@ -1997,7 +2001,7 @@ default-package-overrides:
|
||||||
- regex-compat ==0.95.2.1
|
- regex-compat ==0.95.2.1
|
||||||
- regex-compat-tdfa ==0.95.1.4
|
- regex-compat-tdfa ==0.95.1.4
|
||||||
- regex-pcre ==0.95.0.0
|
- regex-pcre ==0.95.0.0
|
||||||
- regex-pcre-builtin ==0.95.1.3.8.43
|
- regex-pcre-builtin ==0.95.2.3.8.43
|
||||||
- regex-posix ==0.96.0.0
|
- regex-posix ==0.96.0.0
|
||||||
- regex-tdfa ==1.3.1.0
|
- regex-tdfa ==1.3.1.0
|
||||||
- regex-with-pcre ==1.1.0.0
|
- regex-with-pcre ==1.1.0.0
|
||||||
|
@ -2017,6 +2021,7 @@ default-package-overrides:
|
||||||
- req ==3.9.0
|
- req ==3.9.0
|
||||||
- req-conduit ==1.0.0
|
- req-conduit ==1.0.0
|
||||||
- rerebase ==1.6.1
|
- rerebase ==1.6.1
|
||||||
|
- rescue ==0.4.2.1
|
||||||
- resistor-cube ==0.0.1.2
|
- resistor-cube ==0.0.1.2
|
||||||
- resolv ==0.1.2.0
|
- resolv ==0.1.2.0
|
||||||
- resource-pool ==0.2.3.2
|
- resource-pool ==0.2.3.2
|
||||||
|
@ -2088,7 +2093,7 @@ default-package-overrides:
|
||||||
- selda-postgresql ==0.1.8.1
|
- selda-postgresql ==0.1.8.1
|
||||||
- selda-sqlite ==0.1.7.1
|
- selda-sqlite ==0.1.7.1
|
||||||
- selections ==0.3.0.0
|
- selections ==0.3.0.0
|
||||||
- selective ==0.4.1.1
|
- selective ==0.4.2
|
||||||
- semialign ==1.1.0.1
|
- semialign ==1.1.0.1
|
||||||
- semialign-indexed ==1.1
|
- semialign-indexed ==1.1
|
||||||
- semialign-optics ==1.1
|
- semialign-optics ==1.1
|
||||||
|
@ -2116,7 +2121,6 @@ default-package-overrides:
|
||||||
- servant-exceptions ==0.2.1
|
- servant-exceptions ==0.2.1
|
||||||
- servant-exceptions-server ==0.2.1
|
- servant-exceptions-server ==0.2.1
|
||||||
- servant-foreign ==0.15.3
|
- servant-foreign ==0.15.3
|
||||||
- servant-github-webhook ==0.4.2.0
|
|
||||||
- servant-http-streams ==0.18.2
|
- servant-http-streams ==0.18.2
|
||||||
- servant-machines ==0.15.1
|
- servant-machines ==0.15.1
|
||||||
- servant-multipart ==0.12
|
- servant-multipart ==0.12
|
||||||
|
@ -2168,15 +2172,15 @@ default-package-overrides:
|
||||||
- singleton-bool ==0.1.5
|
- singleton-bool ==0.1.5
|
||||||
- singleton-nats ==0.4.5
|
- singleton-nats ==0.4.5
|
||||||
- singletons ==2.7
|
- singletons ==2.7
|
||||||
- singletons-presburger ==0.5.0.0
|
- singletons-presburger ==0.6.0.0
|
||||||
- siphash ==1.0.3
|
- siphash ==1.0.3
|
||||||
- sitemap-gen ==0.1.0.0
|
- sitemap-gen ==0.1.0.0
|
||||||
- sized ==1.0.0.0
|
- sized ==1.0.0.0
|
||||||
- skein ==1.0.9.4
|
- skein ==1.0.9.4
|
||||||
- skews ==0.1.0.3
|
- skews ==0.1.0.3
|
||||||
- skip-var ==0.1.1.0
|
- skip-var ==0.1.1.0
|
||||||
- skylighting ==0.10.4
|
- skylighting ==0.10.4.1
|
||||||
- skylighting-core ==0.10.4
|
- skylighting-core ==0.10.4.1
|
||||||
- slack-api ==0.12
|
- slack-api ==0.12
|
||||||
- slack-progressbar ==0.1.0.1
|
- slack-progressbar ==0.1.0.1
|
||||||
- slist ==0.1.1.0
|
- slist ==0.1.1.0
|
||||||
|
@ -2248,7 +2252,7 @@ default-package-overrides:
|
||||||
- storable-record ==0.0.5
|
- storable-record ==0.0.5
|
||||||
- storable-tuple ==0.0.3.3
|
- storable-tuple ==0.0.3.3
|
||||||
- storablevector ==0.2.13.1
|
- storablevector ==0.2.13.1
|
||||||
- store ==0.7.9
|
- store ==0.7.10
|
||||||
- store-core ==0.4.4.4
|
- store-core ==0.4.4.4
|
||||||
- store-streaming ==0.2.0.3
|
- store-streaming ==0.2.0.3
|
||||||
- stratosphere ==0.59.1
|
- stratosphere ==0.59.1
|
||||||
|
@ -2256,6 +2260,7 @@ default-package-overrides:
|
||||||
- streaming-attoparsec ==1.0.0.1
|
- streaming-attoparsec ==1.0.0.1
|
||||||
- streaming-bytestring ==0.2.0
|
- streaming-bytestring ==0.2.0
|
||||||
- streaming-commons ==0.2.2.1
|
- streaming-commons ==0.2.2.1
|
||||||
|
- streamly ==0.7.3
|
||||||
- streams ==3.3
|
- streams ==3.3
|
||||||
- strict ==0.4.0.1
|
- strict ==0.4.0.1
|
||||||
- strict-concurrency ==0.2.4.3
|
- strict-concurrency ==0.2.4.3
|
||||||
|
@ -2277,11 +2282,11 @@ default-package-overrides:
|
||||||
- stripe-haskell ==2.6.2
|
- stripe-haskell ==2.6.2
|
||||||
- stripe-http-client ==2.6.2
|
- stripe-http-client ==2.6.2
|
||||||
- stripe-tests ==2.6.2
|
- stripe-tests ==2.6.2
|
||||||
- strive ==5.0.13
|
- strive ==5.0.14
|
||||||
- structs ==0.1.5
|
- structs ==0.1.5
|
||||||
- structured ==0.1.0.1
|
- structured ==0.1.0.1
|
||||||
- structured-cli ==2.6.0.0
|
- structured-cli ==2.7.0.1
|
||||||
- subcategories ==0.1.0.0
|
- subcategories ==0.1.1.0
|
||||||
- sum-type-boilerplate ==0.1.1
|
- sum-type-boilerplate ==0.1.1
|
||||||
- sundown ==0.6
|
- sundown ==0.6
|
||||||
- superbuffer ==0.3.1.1
|
- superbuffer ==0.3.1.1
|
||||||
|
@ -2320,14 +2325,14 @@ default-package-overrides:
|
||||||
- tar ==0.5.1.1
|
- tar ==0.5.1.1
|
||||||
- tar-conduit ==0.3.2
|
- tar-conduit ==0.3.2
|
||||||
- tardis ==0.4.3.0
|
- tardis ==0.4.3.0
|
||||||
- tasty ==1.2.3
|
- tasty ==1.4.1
|
||||||
- tasty-ant-xml ==1.1.7
|
- tasty-ant-xml ==1.1.8
|
||||||
- tasty-bench ==0.2.2
|
- tasty-bench ==0.2.2
|
||||||
- tasty-dejafu ==2.0.0.7
|
- tasty-dejafu ==2.0.0.7
|
||||||
- tasty-discover ==4.2.2
|
- tasty-discover ==4.2.2
|
||||||
- tasty-expected-failure ==0.12.3
|
- tasty-expected-failure ==0.12.3
|
||||||
- tasty-focus ==1.0.1
|
- tasty-focus ==1.0.1
|
||||||
- tasty-golden ==2.3.3.2
|
- tasty-golden ==2.3.4
|
||||||
- tasty-hedgehog ==1.0.1.0
|
- tasty-hedgehog ==1.0.1.0
|
||||||
- tasty-hspec ==1.1.6
|
- tasty-hspec ==1.1.6
|
||||||
- tasty-hunit ==0.10.0.3
|
- tasty-hunit ==0.10.0.3
|
||||||
|
@ -2338,7 +2343,7 @@ default-package-overrides:
|
||||||
- tasty-program ==1.0.5
|
- tasty-program ==1.0.5
|
||||||
- tasty-quickcheck ==0.10.1.2
|
- tasty-quickcheck ==0.10.1.2
|
||||||
- tasty-rerun ==1.1.18
|
- tasty-rerun ==1.1.18
|
||||||
- tasty-silver ==3.1.15
|
- tasty-silver ==3.2.1
|
||||||
- tasty-smallcheck ==0.8.2
|
- tasty-smallcheck ==0.8.2
|
||||||
- tasty-test-reporter ==0.1.1.4
|
- tasty-test-reporter ==0.1.1.4
|
||||||
- tasty-th ==0.1.7
|
- tasty-th ==0.1.7
|
||||||
|
@ -2363,7 +2368,7 @@ default-package-overrides:
|
||||||
- test-framework-smallcheck ==0.2
|
- test-framework-smallcheck ==0.2
|
||||||
- test-fun ==0.1.0.0
|
- test-fun ==0.1.0.0
|
||||||
- testing-type-modifiers ==0.1.0.1
|
- testing-type-modifiers ==0.1.0.1
|
||||||
- texmath ==0.12.1.1
|
- texmath ==0.12.2
|
||||||
- text-ansi ==0.1.1
|
- text-ansi ==0.1.1
|
||||||
- text-binary ==0.2.1.1
|
- text-binary ==0.2.1.1
|
||||||
- text-builder ==0.6.6.1
|
- text-builder ==0.6.6.1
|
||||||
|
@ -2373,7 +2378,7 @@ default-package-overrides:
|
||||||
- text-latin1 ==0.3.1
|
- text-latin1 ==0.3.1
|
||||||
- text-ldap ==0.1.1.13
|
- text-ldap ==0.1.1.13
|
||||||
- textlocal ==0.1.0.5
|
- textlocal ==0.1.0.5
|
||||||
- text-manipulate ==0.2.0.1
|
- text-manipulate ==0.3.0.0
|
||||||
- text-metrics ==0.3.0
|
- text-metrics ==0.3.0
|
||||||
- text-postgresql ==0.0.3.1
|
- text-postgresql ==0.0.3.1
|
||||||
- text-printer ==0.5.0.1
|
- text-printer ==0.5.0.1
|
||||||
|
@ -2383,11 +2388,11 @@ default-package-overrides:
|
||||||
- text-show ==3.9
|
- text-show ==3.9
|
||||||
- text-show-instances ==3.8.4
|
- text-show-instances ==3.8.4
|
||||||
- text-zipper ==0.11
|
- text-zipper ==0.11
|
||||||
- tfp ==1.0.1.1
|
- tfp ==1.0.2
|
||||||
- tf-random ==0.5
|
- tf-random ==0.5
|
||||||
- th-abstraction ==0.4.2.0
|
- th-abstraction ==0.4.2.0
|
||||||
- th-bang-compat ==0.0.1.0
|
- th-bang-compat ==0.0.1.0
|
||||||
- th-compat ==0.1.1
|
- th-compat ==0.1.2
|
||||||
- th-constraint-compat ==0.0.1.0
|
- th-constraint-compat ==0.0.1.0
|
||||||
- th-data-compat ==0.1.0.0
|
- th-data-compat ==0.1.0.0
|
||||||
- th-desugar ==1.11
|
- th-desugar ==1.11
|
||||||
|
@ -2396,7 +2401,7 @@ default-package-overrides:
|
||||||
- these-lens ==1.0.1.2
|
- these-lens ==1.0.1.2
|
||||||
- these-optics ==1.0.1.2
|
- these-optics ==1.0.1.2
|
||||||
- these-skinny ==0.7.4
|
- these-skinny ==0.7.4
|
||||||
- th-expand-syns ==0.4.6.0
|
- th-expand-syns ==0.4.8.0
|
||||||
- th-extras ==0.0.0.4
|
- th-extras ==0.0.0.4
|
||||||
- th-lift ==0.8.2
|
- th-lift ==0.8.2
|
||||||
- th-lift-instances ==0.1.18
|
- th-lift-instances ==0.1.18
|
||||||
|
@ -2447,15 +2452,13 @@ default-package-overrides:
|
||||||
- topograph ==1.0.0.1
|
- topograph ==1.0.0.1
|
||||||
- torsor ==0.1
|
- torsor ==0.1
|
||||||
- tostring ==0.2.1.1
|
- tostring ==0.2.1.1
|
||||||
- tracing ==0.0.5.2
|
|
||||||
- tracing-control ==0.0.6
|
|
||||||
- transaction ==0.1.1.3
|
- transaction ==0.1.1.3
|
||||||
- transformers-base ==0.4.5.2
|
- transformers-base ==0.4.5.2
|
||||||
- transformers-bifunctors ==0.1
|
- transformers-bifunctors ==0.1
|
||||||
- transformers-compat ==0.6.6
|
- transformers-compat ==0.6.6
|
||||||
- transformers-fix ==1.0
|
- transformers-fix ==1.0
|
||||||
- traverse-with-class ==1.0.1.0
|
- traverse-with-class ==1.0.1.0
|
||||||
- tree-diff ==0.1
|
- tree-diff ==0.2
|
||||||
- tree-fun ==0.8.1.0
|
- tree-fun ==0.8.1.0
|
||||||
- tree-view ==0.5.1
|
- tree-view ==0.5.1
|
||||||
- trifecta ==2.1.1
|
- trifecta ==2.1.1
|
||||||
|
@ -2468,7 +2471,7 @@ default-package-overrides:
|
||||||
- tuples-homogenous-h98 ==0.1.1.0
|
- tuples-homogenous-h98 ==0.1.1.0
|
||||||
- tuple-sop ==0.3.1.0
|
- tuple-sop ==0.3.1.0
|
||||||
- tuple-th ==0.2.5
|
- tuple-th ==0.2.5
|
||||||
- turtle ==1.5.20
|
- turtle ==1.5.21
|
||||||
- typecheck-plugin-nat-simple ==0.1.0.2
|
- typecheck-plugin-nat-simple ==0.1.0.2
|
||||||
- TypeCompose ==0.9.14
|
- TypeCompose ==0.9.14
|
||||||
- typed-process ==0.2.6.0
|
- typed-process ==0.2.6.0
|
||||||
|
@ -2504,6 +2507,7 @@ default-package-overrides:
|
||||||
- unicode ==0.0.1.1
|
- unicode ==0.0.1.1
|
||||||
- unicode-show ==0.1.0.4
|
- unicode-show ==0.1.0.4
|
||||||
- unicode-transforms ==0.3.7.1
|
- unicode-transforms ==0.3.7.1
|
||||||
|
- unification-fd ==0.11.1
|
||||||
- union-find ==0.2
|
- union-find ==0.2
|
||||||
- unipatterns ==0.0.0.0
|
- unipatterns ==0.0.0.0
|
||||||
- uniplate ==1.6.13
|
- uniplate ==1.6.13
|
||||||
|
@ -2541,11 +2545,11 @@ default-package-overrides:
|
||||||
- utf8-light ==0.4.2
|
- utf8-light ==0.4.2
|
||||||
- utf8-string ==1.0.2
|
- utf8-string ==1.0.2
|
||||||
- util ==0.1.17.1
|
- util ==0.1.17.1
|
||||||
- utility-ht ==0.0.15
|
- utility-ht ==0.0.16
|
||||||
- uuid ==1.3.14
|
- uuid ==1.3.14
|
||||||
- uuid-types ==1.0.4
|
- uuid-types ==1.0.4
|
||||||
- validation ==1.1.1
|
- validation ==1.1.1
|
||||||
- validation-selective ==0.1.0.0
|
- validation-selective ==0.1.0.1
|
||||||
- validity ==0.11.0.0
|
- validity ==0.11.0.0
|
||||||
- validity-aeson ==0.2.0.4
|
- validity-aeson ==0.2.0.4
|
||||||
- validity-bytestring ==0.4.1.1
|
- validity-bytestring ==0.4.1.1
|
||||||
|
@ -2595,7 +2599,6 @@ default-package-overrides:
|
||||||
- wai-feature-flags ==0.1.0.1
|
- wai-feature-flags ==0.1.0.1
|
||||||
- wai-handler-launch ==3.0.3.1
|
- wai-handler-launch ==3.0.3.1
|
||||||
- wai-logger ==2.3.6
|
- wai-logger ==2.3.6
|
||||||
- wai-middleware-auth ==0.2.3.1
|
|
||||||
- wai-middleware-caching ==0.1.0.2
|
- wai-middleware-caching ==0.1.0.2
|
||||||
- wai-middleware-clacks ==0.1.0.1
|
- wai-middleware-clacks ==0.1.0.1
|
||||||
- wai-middleware-static ==0.9.0
|
- wai-middleware-static ==0.9.0
|
||||||
|
@ -2629,7 +2632,7 @@ default-package-overrides:
|
||||||
- Win32-notify ==0.3.0.3
|
- Win32-notify ==0.3.0.3
|
||||||
- windns ==0.1.0.1
|
- windns ==0.1.0.1
|
||||||
- witch ==0.0.0.5
|
- witch ==0.0.0.5
|
||||||
- witherable-class ==0
|
- witherable ==0.4.1
|
||||||
- within ==0.2.0.1
|
- within ==0.2.0.1
|
||||||
- with-location ==0.1.0
|
- with-location ==0.1.0
|
||||||
- with-utf8 ==1.0.2.2
|
- with-utf8 ==1.0.2.2
|
||||||
|
@ -2695,7 +2698,6 @@ default-package-overrides:
|
||||||
- yesod-gitrev ==0.2.1
|
- yesod-gitrev ==0.2.1
|
||||||
- yesod-markdown ==0.12.6.6
|
- yesod-markdown ==0.12.6.6
|
||||||
- yesod-newsfeed ==1.7.0.0
|
- yesod-newsfeed ==1.7.0.0
|
||||||
- yesod-page-cursor ==2.0.0.4
|
|
||||||
- yesod-paginator ==1.1.1.0
|
- yesod-paginator ==1.1.1.0
|
||||||
- yesod-persistent ==1.6.0.5
|
- yesod-persistent ==1.6.0.5
|
||||||
- yesod-sitemap ==1.6.0
|
- yesod-sitemap ==1.6.0
|
||||||
|
@ -2732,6 +2734,7 @@ extra-packages:
|
||||||
- Cabal == 2.2.* # required for jailbreak-cabal etc.
|
- Cabal == 2.2.* # required for jailbreak-cabal etc.
|
||||||
- Cabal == 2.4.* # required for cabal-install etc.
|
- Cabal == 2.4.* # required for cabal-install etc.
|
||||||
- Cabal == 3.2.* # required for cabal-install etc.
|
- Cabal == 3.2.* # required for cabal-install etc.
|
||||||
|
- base16-bytestring < 1 # required for cabal-install etc.
|
||||||
- dhall == 1.29.0 # required for ats-pkg
|
- dhall == 1.29.0 # required for ats-pkg
|
||||||
- dhall == 1.37.1 # required for spago 0.19.0.
|
- dhall == 1.37.1 # required for spago 0.19.0.
|
||||||
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
|
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
|
||||||
|
@ -2871,27 +2874,27 @@ unsupported-platforms:
|
||||||
alsa-mixer: [ x86_64-darwin ]
|
alsa-mixer: [ x86_64-darwin ]
|
||||||
alsa-pcm: [ x86_64-darwin ]
|
alsa-pcm: [ x86_64-darwin ]
|
||||||
alsa-seq: [ x86_64-darwin ]
|
alsa-seq: [ x86_64-darwin ]
|
||||||
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
barbly: [ i686-linux, x86_64-linux ]
|
barbly: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
|
||||||
bindings-directfb: [ x86_64-darwin ]
|
bindings-directfb: [ x86_64-darwin ]
|
||||||
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
dx9base: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
dx9base: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
freenect: [ x86_64-darwin ]
|
freenect: [ x86_64-darwin ]
|
||||||
FTGL: [ x86_64-darwin ]
|
FTGL: [ x86_64-darwin ]
|
||||||
gi-ostree: [ x86_64-darwin ]
|
gi-ostree: [ x86_64-darwin ]
|
||||||
gtk-mac-integration: [ i686-linux, x86_64-linux ]
|
gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
|
||||||
hcwiid: [ x86_64-darwin ]
|
hcwiid: [ x86_64-darwin ]
|
||||||
HFuse: [ x86_64-darwin ]
|
HFuse: [ x86_64-darwin ]
|
||||||
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
lio-fs: [ x86_64-darwin ]
|
lio-fs: [ x86_64-darwin ]
|
||||||
midi-alsa: [ x86_64-darwin ]
|
midi-alsa: [ x86_64-darwin ]
|
||||||
pam: [ x86_64-darwin ]
|
pam: [ x86_64-darwin ]
|
||||||
PortMidi: [ x86_64-darwin ]
|
PortMidi: [ x86_64-darwin ]
|
||||||
Raincat: [ x86_64-darwin ]
|
Raincat: [ x86_64-darwin ]
|
||||||
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
rtlsdr: [ x86_64-darwin ]
|
rtlsdr: [ x86_64-darwin ]
|
||||||
rubberband: [ x86_64-darwin ]
|
rubberband: [ x86_64-darwin ]
|
||||||
sdl2-mixer: [ x86_64-darwin ]
|
sdl2-mixer: [ x86_64-darwin ]
|
||||||
|
@ -2899,18 +2902,18 @@ unsupported-platforms:
|
||||||
tokyotyrant-haskell: [ x86_64-darwin ]
|
tokyotyrant-haskell: [ x86_64-darwin ]
|
||||||
vulkan: [ i686-linux, armv7l-linux ]
|
vulkan: [ i686-linux, armv7l-linux ]
|
||||||
VulkanMemoryAllocator: [ i686-linux, armv7l-linux ]
|
VulkanMemoryAllocator: [ i686-linux, armv7l-linux ]
|
||||||
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
Win32: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
xattr: [ x86_64-darwin ]
|
xattr: [ x86_64-darwin ]
|
||||||
XInput: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
XInput: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||||
xmobar: [ x86_64-darwin ]
|
xmobar: [ x86_64-darwin ]
|
||||||
|
|
||||||
dont-distribute-packages:
|
dont-distribute-packages:
|
||||||
|
@ -3343,6 +3346,7 @@ broken-packages:
|
||||||
- asic
|
- asic
|
||||||
- asil
|
- asil
|
||||||
- asn
|
- asn
|
||||||
|
- ASN1
|
||||||
- asn1-codec
|
- asn1-codec
|
||||||
- asn1-data
|
- asn1-data
|
||||||
- assert
|
- assert
|
||||||
|
@ -4013,7 +4017,6 @@ broken-packages:
|
||||||
- Chart-tests
|
- Chart-tests
|
||||||
- chart-unit
|
- chart-unit
|
||||||
- charter
|
- charter
|
||||||
- chatter
|
|
||||||
- chatty-text
|
- chatty-text
|
||||||
- chatwork
|
- chatwork
|
||||||
- cheapskate-terminal
|
- cheapskate-terminal
|
||||||
|
@ -5388,6 +5391,7 @@ broken-packages:
|
||||||
- fractals
|
- fractals
|
||||||
- fraction
|
- fraction
|
||||||
- frag
|
- frag
|
||||||
|
- frame-markdown
|
||||||
- Frames-beam
|
- Frames-beam
|
||||||
- Frames-dsv
|
- Frames-dsv
|
||||||
- Frames-map-reduce
|
- Frames-map-reduce
|
||||||
|
@ -5450,7 +5454,6 @@ broken-packages:
|
||||||
- ftree
|
- ftree
|
||||||
- ftshell
|
- ftshell
|
||||||
- full-sessions
|
- full-sessions
|
||||||
- fullstop
|
|
||||||
- funbot
|
- funbot
|
||||||
- funbot-client
|
- funbot-client
|
||||||
- funbot-git-hook
|
- funbot-git-hook
|
||||||
|
@ -5945,6 +5948,7 @@ broken-packages:
|
||||||
- hahp
|
- hahp
|
||||||
- haiji
|
- haiji
|
||||||
- hailgun-send
|
- hailgun-send
|
||||||
|
- hails-bin
|
||||||
- hairy
|
- hairy
|
||||||
- hakaru
|
- hakaru
|
||||||
- hakismet
|
- hakismet
|
||||||
|
@ -5961,6 +5965,7 @@ broken-packages:
|
||||||
- hakyll-contrib-links
|
- hakyll-contrib-links
|
||||||
- hakyll-dhall
|
- hakyll-dhall
|
||||||
- hakyll-dir-list
|
- hakyll-dir-list
|
||||||
|
- hakyll-elm
|
||||||
- hakyll-favicon
|
- hakyll-favicon
|
||||||
- hakyll-filestore
|
- hakyll-filestore
|
||||||
- hakyll-images
|
- hakyll-images
|
||||||
|
@ -6127,7 +6132,6 @@ broken-packages:
|
||||||
- haskell-reflect
|
- haskell-reflect
|
||||||
- haskell-rules
|
- haskell-rules
|
||||||
- haskell-spacegoo
|
- haskell-spacegoo
|
||||||
- haskell-src
|
|
||||||
- haskell-src-exts-observe
|
- haskell-src-exts-observe
|
||||||
- haskell-src-exts-prisms
|
- haskell-src-exts-prisms
|
||||||
- haskell-src-exts-qq
|
- haskell-src-exts-qq
|
||||||
|
@ -6189,6 +6193,7 @@ broken-packages:
|
||||||
- haskellscript
|
- haskellscript
|
||||||
- HaskellTorrent
|
- HaskellTorrent
|
||||||
- HaskellTutorials
|
- HaskellTutorials
|
||||||
|
- haskelm
|
||||||
- haskelzinc
|
- haskelzinc
|
||||||
- haskeme
|
- haskeme
|
||||||
- haskey
|
- haskey
|
||||||
|
@ -6623,10 +6628,6 @@ broken-packages:
|
||||||
- hopencl
|
- hopencl
|
||||||
- HOpenCV
|
- HOpenCV
|
||||||
- hopfield
|
- hopfield
|
||||||
- hoppy-docs
|
|
||||||
- hoppy-generator
|
|
||||||
- hoppy-runtime
|
|
||||||
- hoppy-std
|
|
||||||
- hops
|
- hops
|
||||||
- hoq
|
- hoq
|
||||||
- horizon
|
- horizon
|
||||||
|
@ -6913,6 +6914,7 @@ broken-packages:
|
||||||
- http-wget
|
- http-wget
|
||||||
- http2-client-grpc
|
- http2-client-grpc
|
||||||
- http2-grpc-proto-lens
|
- http2-grpc-proto-lens
|
||||||
|
- http2-grpc-proto3-wire
|
||||||
- https-everywhere-rules
|
- https-everywhere-rules
|
||||||
- https-everywhere-rules-raw
|
- https-everywhere-rules-raw
|
||||||
- httpspec
|
- httpspec
|
||||||
|
@ -6960,6 +6962,7 @@ broken-packages:
|
||||||
- hw-kafka-avro
|
- hw-kafka-avro
|
||||||
- hw-prim-bits
|
- hw-prim-bits
|
||||||
- hw-simd
|
- hw-simd
|
||||||
|
- hw-simd-cli
|
||||||
- hw-uri
|
- hw-uri
|
||||||
- hwall-auth-iitk
|
- hwall-auth-iitk
|
||||||
- hweblib
|
- hweblib
|
||||||
|
@ -9180,6 +9183,7 @@ broken-packages:
|
||||||
- proto-lens-combinators
|
- proto-lens-combinators
|
||||||
- proto-lens-descriptors
|
- proto-lens-descriptors
|
||||||
- proto3-suite
|
- proto3-suite
|
||||||
|
- proto3-wire
|
||||||
- protobuf-native
|
- protobuf-native
|
||||||
- protocol
|
- protocol
|
||||||
- protocol-buffers-descriptor-fork
|
- protocol-buffers-descriptor-fork
|
||||||
|
@ -9254,10 +9258,6 @@ broken-packages:
|
||||||
- qr-imager
|
- qr-imager
|
||||||
- qr-repa
|
- qr-repa
|
||||||
- qsem
|
- qsem
|
||||||
- qtah-cpp-qt5
|
|
||||||
- qtah-examples
|
|
||||||
- qtah-generator
|
|
||||||
- qtah-qt5
|
|
||||||
- QuadEdge
|
- QuadEdge
|
||||||
- QuadTree
|
- QuadTree
|
||||||
- quantfin
|
- quantfin
|
||||||
|
@ -10005,7 +10005,6 @@ broken-packages:
|
||||||
- sha1
|
- sha1
|
||||||
- shade
|
- shade
|
||||||
- shadower
|
- shadower
|
||||||
- shake-bench
|
|
||||||
- shake-bindist
|
- shake-bindist
|
||||||
- shake-cabal-build
|
- shake-cabal-build
|
||||||
- shake-dhall
|
- shake-dhall
|
||||||
|
@ -10052,6 +10051,7 @@ broken-packages:
|
||||||
- Shpadoinkle-examples
|
- Shpadoinkle-examples
|
||||||
- Shpadoinkle-html
|
- Shpadoinkle-html
|
||||||
- Shpadoinkle-router
|
- Shpadoinkle-router
|
||||||
|
- Shpadoinkle-template
|
||||||
- Shpadoinkle-widgets
|
- Shpadoinkle-widgets
|
||||||
- shpider
|
- shpider
|
||||||
- shuffle
|
- shuffle
|
||||||
|
@ -10190,6 +10190,7 @@ broken-packages:
|
||||||
- snap-auth-cli
|
- snap-auth-cli
|
||||||
- snap-blaze-clay
|
- snap-blaze-clay
|
||||||
- snap-configuration-utilities
|
- snap-configuration-utilities
|
||||||
|
- snap-elm
|
||||||
- snap-error-collector
|
- snap-error-collector
|
||||||
- snap-extras
|
- snap-extras
|
||||||
- snap-routes
|
- snap-routes
|
||||||
|
@ -10211,6 +10212,7 @@ broken-packages:
|
||||||
- snaplet-hdbc
|
- snaplet-hdbc
|
||||||
- snaplet-hslogger
|
- snaplet-hslogger
|
||||||
- snaplet-influxdb
|
- snaplet-influxdb
|
||||||
|
- snaplet-lss
|
||||||
- snaplet-mandrill
|
- snaplet-mandrill
|
||||||
- snaplet-mongoDB
|
- snaplet-mongoDB
|
||||||
- snaplet-mongodb-minimalistic
|
- snaplet-mongodb-minimalistic
|
||||||
|
@ -11366,6 +11368,7 @@ broken-packages:
|
||||||
- wai-middleware-route
|
- wai-middleware-route
|
||||||
- wai-middleware-static-caching
|
- wai-middleware-static-caching
|
||||||
- wai-middleware-travisci
|
- wai-middleware-travisci
|
||||||
|
- wai-middleware-validation
|
||||||
- wai-rate-limit-redis
|
- wai-rate-limit-redis
|
||||||
- wai-request-spec
|
- wai-request-spec
|
||||||
- wai-responsible
|
- wai-responsible
|
||||||
|
|
4869
pkgs/development/haskell-modules/hackage-packages.nix
generated
4869
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
||||||
{ lib, supportedGhcVersions ? [ "865" "884" "8104" ], stdenv, haskellPackages
|
{ lib, supportedGhcVersions ? [ "884" "8104" ], stdenv, haskellPackages
|
||||||
, haskell }:
|
, haskell }:
|
||||||
#
|
#
|
||||||
# The recommended way to override this package is
|
# The recommended way to override this package is
|
||||||
|
|
|
@ -10320,8 +10320,7 @@ in
|
||||||
|
|
||||||
krank = haskell.lib.justStaticExecutables haskellPackages.krank;
|
krank = haskell.lib.justStaticExecutables haskellPackages.krank;
|
||||||
|
|
||||||
# We use a version built with an older compiler because of https://github.com/pikajude/stylish-cabal/issues/12.
|
stylish-cabal = haskell.lib.justStaticExecutables haskellPackages.stylish-cabal;
|
||||||
stylish-cabal = haskell.lib.justStaticExecutables haskell.packages.ghc865.stylish-cabal;
|
|
||||||
|
|
||||||
all-cabal-hashes = callPackage ../data/misc/hackage { };
|
all-cabal-hashes = callPackage ../data/misc/hackage { };
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,9 @@
|
||||||
let
|
let
|
||||||
# These are attributes in compiler and packages that don't support integer-simple.
|
# These are attributes in compiler and packages that don't support integer-simple.
|
||||||
integerSimpleExcludes = [
|
integerSimpleExcludes = [
|
||||||
"ghc822Binary"
|
|
||||||
"ghc865Binary"
|
"ghc865Binary"
|
||||||
"ghc8102Binary"
|
"ghc8102Binary"
|
||||||
"ghc8102BinaryMinimal"
|
"ghc8102BinaryMinimal"
|
||||||
"ghcjs"
|
|
||||||
"ghcjs86"
|
|
||||||
"integer-simple"
|
"integer-simple"
|
||||||
"native-bignum"
|
"native-bignum"
|
||||||
"ghcHEAD"
|
"ghcHEAD"
|
||||||
|
@ -47,8 +44,6 @@ in {
|
||||||
|
|
||||||
compiler = {
|
compiler = {
|
||||||
|
|
||||||
ghc822Binary = callPackage ../development/compilers/ghc/8.2.2-binary.nix { };
|
|
||||||
|
|
||||||
ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
|
ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
|
||||||
|
|
||||||
ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
|
ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
|
||||||
|
@ -60,24 +55,6 @@ in {
|
||||||
minimal = true;
|
minimal = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
|
|
||||||
bootPkgs = packages.ghc822Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_6;
|
|
||||||
llvmPackages = pkgs.llvmPackages_6;
|
|
||||||
};
|
|
||||||
ghc882 = callPackage ../development/compilers/ghc/8.8.2.nix {
|
|
||||||
bootPkgs = packages.ghc865Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
|
||||||
llvmPackages = pkgs.llvmPackages_7;
|
|
||||||
};
|
|
||||||
ghc883 = callPackage ../development/compilers/ghc/8.8.3.nix {
|
|
||||||
bootPkgs = packages.ghc865Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
|
||||||
llvmPackages = pkgs.llvmPackages_7;
|
|
||||||
};
|
|
||||||
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
|
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
|
||||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||||
bootPkgs = if stdenv.isAarch64 then
|
bootPkgs = if stdenv.isAarch64 then
|
||||||
|
@ -88,32 +65,6 @@ in {
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||||
llvmPackages = pkgs.llvmPackages_7;
|
llvmPackages = pkgs.llvmPackages_7;
|
||||||
};
|
};
|
||||||
ghc8101 = callPackage ../development/compilers/ghc/8.10.1.nix {
|
|
||||||
bootPkgs = packages.ghc865Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
|
||||||
llvmPackages = pkgs.llvmPackages_9;
|
|
||||||
};
|
|
||||||
ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix {
|
|
||||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
|
||||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
|
||||||
packages.ghc8102BinaryMinimal
|
|
||||||
else
|
|
||||||
packages.ghc865Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
|
||||||
llvmPackages = pkgs.llvmPackages_9;
|
|
||||||
};
|
|
||||||
ghc8103 = callPackage ../development/compilers/ghc/8.10.3.nix {
|
|
||||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
|
||||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
|
||||||
packages.ghc8102BinaryMinimal
|
|
||||||
else
|
|
||||||
packages.ghc865Binary;
|
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
|
||||||
llvmPackages = pkgs.llvmPackages_9;
|
|
||||||
};
|
|
||||||
ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix {
|
ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix {
|
||||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||||
|
@ -131,19 +82,12 @@ in {
|
||||||
llvmPackages = pkgs.llvmPackages_10;
|
llvmPackages = pkgs.llvmPackages_10;
|
||||||
};
|
};
|
||||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||||
bootPkgs = packages.ghc883; # no binary yet
|
bootPkgs = packages.ghc884; # no binary yet
|
||||||
inherit (buildPackages.python3Packages) sphinx;
|
inherit (buildPackages.python3Packages) sphinx;
|
||||||
buildLlvmPackages = buildPackages.llvmPackages_10;
|
buildLlvmPackages = buildPackages.llvmPackages_10;
|
||||||
llvmPackages = pkgs.llvmPackages_10;
|
llvmPackages = pkgs.llvmPackages_10;
|
||||||
libffi = pkgs.libffi;
|
libffi = pkgs.libffi;
|
||||||
};
|
};
|
||||||
ghcjs = compiler.ghcjs86;
|
|
||||||
ghcjs86 = callPackage ../development/compilers/ghcjs-ng {
|
|
||||||
bootPkgs = packages.ghc865;
|
|
||||||
ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.6/git.json;
|
|
||||||
stage0 = ../development/compilers/ghcjs-ng/8.6/stage0.nix;
|
|
||||||
ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.6/dep-overrides.nix {};
|
|
||||||
};
|
|
||||||
|
|
||||||
# The integer-simple attribute set contains all the GHC compilers
|
# The integer-simple attribute set contains all the GHC compilers
|
||||||
# build with integer-simple instead of integer-gmp.
|
# build with integer-simple instead of integer-gmp.
|
||||||
|
@ -172,12 +116,6 @@ in {
|
||||||
# Always get compilers from `buildPackages`
|
# Always get compilers from `buildPackages`
|
||||||
packages = let bh = buildPackages.haskell; in {
|
packages = let bh = buildPackages.haskell; in {
|
||||||
|
|
||||||
ghc822Binary = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc822Binary;
|
|
||||||
ghc = bh.compiler.ghc822Binary;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
|
|
||||||
packageSetConfig = bootstrapPackageSet;
|
|
||||||
};
|
|
||||||
ghc865Binary = callPackage ../development/haskell-modules {
|
ghc865Binary = callPackage ../development/haskell-modules {
|
||||||
buildHaskellPackages = bh.packages.ghc865Binary;
|
buildHaskellPackages = bh.packages.ghc865Binary;
|
||||||
ghc = bh.compiler.ghc865Binary;
|
ghc = bh.compiler.ghc865Binary;
|
||||||
|
@ -196,41 +134,11 @@ in {
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||||
packageSetConfig = bootstrapPackageSet;
|
packageSetConfig = bootstrapPackageSet;
|
||||||
};
|
};
|
||||||
ghc865 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc865;
|
|
||||||
ghc = bh.compiler.ghc865;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
|
|
||||||
};
|
|
||||||
ghc882 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc882;
|
|
||||||
ghc = bh.compiler.ghc882;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
|
||||||
};
|
|
||||||
ghc883 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc883;
|
|
||||||
ghc = bh.compiler.ghc883;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
|
||||||
};
|
|
||||||
ghc884 = callPackage ../development/haskell-modules {
|
ghc884 = callPackage ../development/haskell-modules {
|
||||||
buildHaskellPackages = bh.packages.ghc884;
|
buildHaskellPackages = bh.packages.ghc884;
|
||||||
ghc = bh.compiler.ghc884;
|
ghc = bh.compiler.ghc884;
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
||||||
};
|
};
|
||||||
ghc8101 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc8101;
|
|
||||||
ghc = bh.compiler.ghc8101;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
|
||||||
};
|
|
||||||
ghc8102 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc8102;
|
|
||||||
ghc = bh.compiler.ghc8102;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
|
||||||
};
|
|
||||||
ghc8103 = callPackage ../development/haskell-modules {
|
|
||||||
buildHaskellPackages = bh.packages.ghc8103;
|
|
||||||
ghc = bh.compiler.ghc8103;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
|
||||||
};
|
|
||||||
ghc8104 = callPackage ../development/haskell-modules {
|
ghc8104 = callPackage ../development/haskell-modules {
|
||||||
buildHaskellPackages = bh.packages.ghc8104;
|
buildHaskellPackages = bh.packages.ghc8104;
|
||||||
ghc = bh.compiler.ghc8104;
|
ghc = bh.compiler.ghc8104;
|
||||||
|
@ -246,13 +154,6 @@ in {
|
||||||
ghc = bh.compiler.ghcHEAD;
|
ghc = bh.compiler.ghcHEAD;
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
|
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
|
||||||
};
|
};
|
||||||
ghcjs = packages.ghcjs86;
|
|
||||||
ghcjs86 = callPackage ../development/haskell-modules rec {
|
|
||||||
buildHaskellPackages = ghc.bootPkgs;
|
|
||||||
ghc = bh.compiler.ghcjs86;
|
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
|
|
||||||
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
|
|
||||||
};
|
|
||||||
|
|
||||||
# The integer-simple attribute set contains package sets for all the GHC compilers
|
# The integer-simple attribute set contains package sets for all the GHC compilers
|
||||||
# using integer-simple instead of integer-gmp.
|
# using integer-simple instead of integer-gmp.
|
||||||
|
|
Loading…
Reference in a new issue