forked from mirrors/nixpkgs
Merge pull request #79819 from NixOS/haskell-updates
Update Haskell package set to LTS 15.1 (plus other fixes)
This commit is contained in:
commit
df2176f7f3
|
@ -84,18 +84,18 @@ nix-env -qaP -A nixos.haskellPackages
|
|||
nix-env -iA nixos.haskellPackages.cabal-install
|
||||
```
|
||||
|
||||
Our current default compiler is GHC 8.6.x and the `haskellPackages` set
|
||||
Our current default compiler is GHC 8.8.x and the `haskellPackages` set
|
||||
contains packages built with that particular version. Nixpkgs contains the last
|
||||
three major releases of GHC and there is a whole family of package sets
|
||||
available that defines Hackage packages built with each of those compilers,
|
||||
too:
|
||||
```shell
|
||||
nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc844
|
||||
nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc882
|
||||
nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc865
|
||||
nix-env -f "<nixpkgs>" -qaP -A haskell.packages.ghc8101
|
||||
```
|
||||
|
||||
The name `haskellPackages` is really just a synonym for
|
||||
`haskell.packages.ghc865`, because we prefer that package set internally and
|
||||
`haskell.packages.ghc882`, because we prefer that package set internally and
|
||||
recommend it to our users as their default choice, but ultimately you are free
|
||||
to compile your Haskell packages with any GHC version you please. The following
|
||||
command displays the complete list of available compilers:
|
||||
|
@ -112,8 +112,10 @@ haskell.compiler.ghc865 ghc-8.6.5
|
|||
haskell.compiler.integer-simple.ghc865 ghc-8.6.5
|
||||
haskell.compiler.ghc881 ghc-8.8.1
|
||||
haskell.compiler.integer-simple.ghc881 ghc-8.8.1
|
||||
haskell.compiler.ghc882 ghc-8.8.1.20191211
|
||||
haskell.compiler.integer-simple.ghc882 ghc-8.8.1.20191211
|
||||
haskell.compiler.ghc882 ghc-8.8.2
|
||||
haskell.compiler.integer-simple.ghc882 ghc-8.8.2
|
||||
haskell.compiler.ghc883 ghc-8.8.3
|
||||
haskell.compiler.integer-simple.ghc883 ghc-8.8.3
|
||||
haskell.compiler.ghcjs ghcjs-8.6.0.1
|
||||
```
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ fetchurl }:
|
||||
|
||||
fetchurl {
|
||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/10e6ea0c54a4aa41de51d1d7e2314115bb2e172a.tar.gz";
|
||||
sha256 = "0kjy1dxa2kra4j02ni8lpg74jy7fl361yiha330c52spvd2v8i8h";
|
||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/3ff0be5c9ee1ead33e07158b9a4a579fa2fb7a7f.tar.gz";
|
||||
sha256 = "15jqdjxyzcmg50zvl7szv6s2zi4k82as5wi6mkiwwpbdricg50pl";
|
||||
}
|
||||
|
|
|
@ -84,6 +84,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.10.0.20200123";
|
||||
|
@ -110,7 +112,7 @@ stdenv.mkDerivation (rec {
|
|||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -158,7 +160,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
|
@ -79,6 +79,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.4.4";
|
||||
|
@ -126,7 +128,7 @@ stdenv.mkDerivation (rec {
|
|||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -173,7 +175,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
|
@ -84,6 +84,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.6.5";
|
||||
|
@ -125,7 +127,7 @@ stdenv.mkDerivation (rec {
|
|||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -173,7 +175,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
|
@ -84,6 +84,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.8.1";
|
||||
|
@ -110,7 +112,7 @@ stdenv.mkDerivation (rec {
|
|||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -158,7 +160,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
|
@ -84,6 +84,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.8.2";
|
||||
|
@ -110,7 +112,7 @@ stdenv.mkDerivation (rec {
|
|||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -147,18 +149,24 @@ stdenv.mkDerivation (rec {
|
|||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||
configurePlatforms = [ "build" "host" ]
|
||||
++ stdenv.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"
|
||||
] ++ stdenv.lib.optionals (libffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ stdenv.lib.optionals (libffi != null) [
|
||||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
"--with-iconv-includes=${libiconv}/include"
|
||||
"--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
232
pkgs/development/compilers/ghc/8.8.3.nix
Normal file
232
pkgs/development/compilers/ghc/8.8.3.nix
Normal file
|
@ -0,0 +1,232 @@
|
|||
{ 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 ? !(stdenv.lib.any (stdenv.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
|
||||
|
||||
, # Whetherto 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 ? stdenv.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 = stdenv.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"}
|
||||
'' + stdenv.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
|
||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
|
||||
++ [libffi]
|
||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
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" ];
|
||||
|
||||
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${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".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
|
||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + stdenv.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
|
||||
'' + stdenv.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" ]
|
||||
++ stdenv.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"
|
||||
] ++ stdenv.lib.optionals (libffi != null) ["--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
||||
"--disable-large-address-space"
|
||||
];
|
||||
|
||||
# Make sure we never relax`$PATH` and hooks support for compatability.
|
||||
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 ]
|
||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
||||
depsTargetTargetPropagated = map (stdenv.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" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
hardeningDisable = [ "format" ] ++ stdenv.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:${stdenv.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 stdenv.lib.maintainers; [ marcweber andres peti ];
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
|
@ -85,6 +85,8 @@ let
|
|||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false);
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
inherit version;
|
||||
|
@ -117,7 +119,7 @@ stdenv.mkDerivation (rec {
|
|||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
# and more generally have a faster linker.
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString (targetPlatform.isLinux && !(targetPlatform.useLLVM or false)) ".gold"}"
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.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"
|
||||
|
@ -167,7 +169,7 @@ stdenv.mkDerivation (rec {
|
|||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
|
|
|
@ -69,12 +69,12 @@ self: super: {
|
|||
|
||||
# The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
|
||||
# https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
|
||||
git-annex = (overrideSrc super.git-annex {
|
||||
git-annex = (overrideSrc (appendPatch super.git-annex ./patches/git-annex-fix-build-with-ghc-8.8.x.patch) {
|
||||
src = pkgs.fetchgit {
|
||||
name = "git-annex-${super.git-annex.version}-src";
|
||||
url = "git://git-annex.branchable.com/";
|
||||
rev = "refs/tags/" + super.git-annex.version;
|
||||
sha256 = "1shb1jgm78bx88rbsr1nmimjzzfqw96qdr38mcrr1c2qz5ky820v";
|
||||
sha256 = "0pl0yip7zp4i78cj9jqkmm33wqaaaxjq3ggnfmv95y79yijd6yh4";
|
||||
};
|
||||
}).override {
|
||||
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
|
||||
|
@ -394,11 +394,6 @@ self: super: {
|
|||
Random123 = dontCheck super.Random123;
|
||||
systemd = dontCheck super.systemd;
|
||||
|
||||
# use the correct version of network
|
||||
systemd_2_2_0 = dontCheck (super.systemd_2_2_0.override {
|
||||
network = self.network_3_1_1_1;
|
||||
});
|
||||
|
||||
# https://github.com/eli-frey/cmdtheline/issues/28
|
||||
cmdtheline = dontCheck super.cmdtheline;
|
||||
|
||||
|
@ -526,7 +521,9 @@ self: super: {
|
|||
|
||||
# Won't compile with recent versions of QuickCheck.
|
||||
inilist = dontCheck super.inilist;
|
||||
MissingH = dontCheck super.MissingH;
|
||||
|
||||
# Doesn't accept recent versions of 'base' or QuickCheck.
|
||||
MissingH = dontCheck (doJailbreak super.MissingH);
|
||||
|
||||
# https://github.com/yaccz/saturnin/issues/3
|
||||
Saturnin = dontCheck super.Saturnin;
|
||||
|
@ -688,15 +685,6 @@ self: super: {
|
|||
# https://github.com/goldfirere/singletons/issues/122
|
||||
singletons = dontCheck super.singletons;
|
||||
|
||||
# Fix an aarch64 issue with cryptonite-0.25:
|
||||
# https://github.com/haskell-crypto/cryptonite/issues/234
|
||||
# This has been committed upstream, but there is, as of yet, no new release.
|
||||
# Also, disable the test suite to avoid https://github.com/haskell-crypto/cryptonite/issues/260.
|
||||
cryptonite = appendPatch (dontCheck super.cryptonite) (pkgs.fetchpatch {
|
||||
url = https://github.com/haskell-crypto/cryptonite/commit/4622e5fc8ece82f4cf31358e31cd02cf020e558e.patch;
|
||||
sha256 = "1m2d47ni4jbrpvxry50imj91qahr3r7zkqm157clrzlmw6gzpgnq";
|
||||
});
|
||||
|
||||
# Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
|
||||
# https://github.com/augustss/djinn/pull/8
|
||||
djinn = appendPatch super.djinn (pkgs.fetchpatch {
|
||||
|
@ -1042,34 +1030,7 @@ self: super: {
|
|||
vector-algorithms = dontCheck super.vector-algorithms;
|
||||
|
||||
# The test suite attempts to use the network.
|
||||
dhall =
|
||||
generateOptparseApplicativeCompletion "dhall" (
|
||||
dontCheck super.dhall
|
||||
);
|
||||
# https://github.com/dhall-lang/dhall-haskell/commit/dedd5e0ea6fd12f87d887af3d2220eebc61ee8af
|
||||
# This raises the lower bound on prettyprinter to 1.5.1 since
|
||||
# `removeTrailingWhitespace` is buggy in earlier versions.
|
||||
# This will probably be able to be removed when we update to LTS-15.
|
||||
dhall_1_29_0 =
|
||||
dontCheck (super.dhall_1_29_0.override {
|
||||
prettyprinter = self.prettyprinter_1_6_0;
|
||||
prettyprinter-ansi-terminal =
|
||||
self.prettyprinter-ansi-terminal.override {
|
||||
prettyprinter = self.prettyprinter_1_6_0;
|
||||
};
|
||||
});
|
||||
dhall-bash_1_0_27 = super.dhall-bash_1_0_27.override { dhall = self.dhall_1_29_0; };
|
||||
dhall-json_1_6_1 = super.dhall-json_1_6_1.override {
|
||||
dhall = self.dhall_1_29_0;
|
||||
prettyprinter = self.prettyprinter_1_6_0;
|
||||
prettyprinter-ansi-terminal =
|
||||
self.prettyprinter-ansi-terminal.override {
|
||||
prettyprinter = self.prettyprinter_1_6_0;
|
||||
};
|
||||
};
|
||||
|
||||
# Tests for dhall access the network.
|
||||
dhall_1_27_0 = dontCheck super.dhall_1_27_0;
|
||||
dhall = generateOptparseApplicativeCompletion "dhall" (dontCheck super.dhall);
|
||||
|
||||
# Missing test files in source distribution, fixed once 1.4.0 is bumped
|
||||
# https://github.com/dhall-lang/dhall-haskell/pull/997
|
||||
|
@ -1096,7 +1057,6 @@ self: super: {
|
|||
|
||||
# The test suite is broken. Break out of "base-compat >=0.9.3 && <0.10, hspec >=2.4.4 && <2.5".
|
||||
haddock-library = doJailbreak (dontCheck super.haddock-library);
|
||||
haddock-library_1_8_0 = doJailbreak super.haddock-library_1_8_0;
|
||||
|
||||
# Generate shell completion.
|
||||
cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
|
||||
|
@ -1205,12 +1165,6 @@ self: super: {
|
|||
# Fix build with attr-2.4.48 (see #53716)
|
||||
xattr = appendPatch super.xattr ./patches/xattr-fix-build.patch;
|
||||
|
||||
# These packages needs network 3.x, which is not in LTS-13.x.
|
||||
network-bsd_2_8_1_0 = super.network-bsd_2_8_1_0.override { network = self.network_3_0_1_1; };
|
||||
lambdabot-core = super.lambdabot-core.overrideScope (self: super: { network = self.network_3_0_1_1; hslogger = self.hslogger_1_3_0_0; });
|
||||
lambdabot-reference-plugins = super.lambdabot-reference-plugins.overrideScope (self: super: { network = self.network_3_0_1_1; hslogger = self.hslogger_1_3_0_0; });
|
||||
lambdabot-haskell-plugins = super.lambdabot-haskell-plugins.overrideScope (self: super: { network = self.network_3_0_1_1; });
|
||||
|
||||
# Some tests depend on a postgresql instance
|
||||
# Haddock failure: https://github.com/haskell/haddock/issues/979
|
||||
esqueleto = dontHaddock (dontCheck super.esqueleto);
|
||||
|
@ -1235,12 +1189,6 @@ self: super: {
|
|||
# Test suite won't link for no apparent reason.
|
||||
constraints-deriving = dontCheck super.constraints-deriving;
|
||||
|
||||
# Use a matching version of ghc-lib-parser.
|
||||
ghc-lib-parser-ex = super.ghc-lib-parser-ex.override { ghc-lib-parser = self.ghc-lib-parser_8_8_2_20200205; };
|
||||
|
||||
# https://github.com/sol/hpack/issues/366
|
||||
hpack = self.hpack_0_33_0;
|
||||
|
||||
# QuickCheck >=2.3 && <2.13, hspec >=2.1 && <2.7
|
||||
graphviz = dontCheck super.graphviz;
|
||||
|
||||
|
@ -1256,10 +1204,6 @@ self: super: {
|
|||
'';
|
||||
});
|
||||
|
||||
# The LTS-14.x version of their dependencies are too old.
|
||||
cabal-plan = super.cabal-plan.overrideScope (self: super: { optparse-applicative = self.optparse-applicative_0_15_1_0; ansi-terminal = self.ansi-terminal_0_10_2; base-compat = self.base-compat_0_11_1; semialign = self.semialign_1_1; time-compat = doJailbreak super.time-compat; });
|
||||
hoogle = super.hoogle.override { haskell-src-exts = self.haskell-src-exts_1_23_0; };
|
||||
|
||||
# Version bounds for http-client are too strict:
|
||||
# https://github.com/bitnomial/prometheus/issues/34
|
||||
prometheus = doJailbreak super.prometheus;
|
||||
|
@ -1296,10 +1240,6 @@ self: super: {
|
|||
# upstream issue: https://github.com/vmchale/atspkg/issues/12
|
||||
language-ats = dontCheck super.language-ats;
|
||||
|
||||
# polysemy-plugin requires polysemy >= 1.2.0.0
|
||||
polysemy = self.polysemy_1_2_3_0;
|
||||
polysemy-zoo = self.polysemy-zoo_0_6_0_1;
|
||||
|
||||
# https://github.com/Happstack/web-routes-th/pull/3
|
||||
web-routes-th = doJailbreak super.web-routes-th;
|
||||
|
||||
|
@ -1330,32 +1270,8 @@ self: super: {
|
|||
# https://github.com/kazu-yamamoto/dns/issues/150
|
||||
dns = dontCheck super.dns;
|
||||
|
||||
# needs newer version of the systemd package
|
||||
spacecookie = super.spacecookie.override { systemd = self.systemd_2_2_0; };
|
||||
|
||||
# 2019-12-19 - glirc wants regex-tdfa >=1.3 which results in errors with regex-base which errors more
|
||||
# hoping to make a proper derivation with plugins enabled and more reliable building -- kiwi
|
||||
# 2020-01-17 - as of recently the basic doJailbreak is not enough and have to override regex-tdfa which needs an override for regex-base
|
||||
|
||||
glirc = doJailbreak (super.glirc.override {
|
||||
regex-tdfa = self.regex-tdfa_1_3_1_0;
|
||||
});
|
||||
|
||||
regex-tdfa_1_3_1_0 = doJailbreak (super.regex-tdfa_1_3_1_0.override {
|
||||
regex-base = self.regex-base_0_94_0_0;
|
||||
});
|
||||
|
||||
# 2020-01-19 - there were conflicting versions of brick, vty, and brick-skylighting;
|
||||
# multiple versions of them were being pulled in by the others which is not allowed.
|
||||
# There are more complicated ways of doing this but I was able to make it fairly simple -- kiwi
|
||||
matterhorn = doJailbreak (super.matterhorn.override {
|
||||
brick-skylighting = self.brick-skylighting.override {
|
||||
brick = self.brick_0_51;
|
||||
};
|
||||
});
|
||||
|
||||
# 2020-01-19 - because of QuickCheck bounds | was broken anyway and is needed for matterhorn -- kiwi
|
||||
Unique = doJailbreak super.Unique;
|
||||
# Support recent versions of fast-logger.
|
||||
spacecookie = doJailbreak super.spacecookie;
|
||||
|
||||
# apply patches from https://github.com/snapframework/snap-server/pull/126
|
||||
# manually until they are accepted upstream
|
||||
|
@ -1380,17 +1296,97 @@ self: super: {
|
|||
|
||||
# Needs ghc-lib-parser 8.8.1 (does not build with 8.8.0)
|
||||
ormolu = doJailbreak (super.ormolu.override {
|
||||
ghc-lib-parser = self.ghc-lib-parser_8_8_2_20200205;
|
||||
ghc-lib-parser = self.ghc-lib-parser_8_8_3_20200224;
|
||||
});
|
||||
|
||||
# krank-0.1.0 does not accept PyF-0.9.0.0.
|
||||
krank = doJailbreak super.krank;
|
||||
|
||||
# prettyprinter-1.6.0 fails its doctest suite.
|
||||
prettyprinter_1_6_0 = dontCheck super.prettyprinter_1_6_0;
|
||||
|
||||
# the test suite has an overly tight restriction on doctest
|
||||
# See https://github.com/ekmett/perhaps/pull/5
|
||||
perhaps = doJailbreak super.perhaps;
|
||||
|
||||
# it wants to build a statically linked binary by default
|
||||
hledger-flow = overrideCabal super.hledger-flow ( drv: {
|
||||
postPatch = (drv.postPatch or "") + ''
|
||||
substituteInPlace hledger-flow.cabal --replace "-static" ""
|
||||
'';
|
||||
});
|
||||
|
||||
# cabal-fmt requires Cabal3
|
||||
cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_0_0_0; };
|
||||
|
||||
# Several gtk2hs-provided packages at v0.13.8.0 fail to build on Darwin
|
||||
# until we pick up https://github.com/gtk2hs/gtk2hs/pull/293 so apply that
|
||||
# patch here. That single patch is for the gtk2hs super-repo, out of which
|
||||
# we extract the patch for each indvidiual project (glib/gio/pango/gtk/gtk3).
|
||||
glib = appendPatch super.glib (pkgs.fetchpatch {
|
||||
url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
|
||||
includes = [ "glib.cabal" ];
|
||||
stripLen = 1;
|
||||
sha256 = "1zdss1xgsbijs3kx8dp5a81qryrfc1zm1xrd20whna3dqakf8b7g";
|
||||
});
|
||||
gio = appendPatch super.gio (pkgs.fetchpatch {
|
||||
url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
|
||||
includes = [ "gio.cabal" ];
|
||||
stripLen = 1;
|
||||
sha256 = "0d72k6gqvgax9jcqi3gz1gqnar7jg8p5065z3mw2fcwvdw46s2zv";
|
||||
});
|
||||
pango = appendPatch super.pango (pkgs.fetchpatch {
|
||||
url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
|
||||
includes = [ "pango.cabal" ];
|
||||
stripLen = 1;
|
||||
sha256 = "0dc221wlmyhc24h6ybfhbkxmcx4i6bvkbr1zgqidbnj3yp6w0l5w";
|
||||
});
|
||||
# gtk/gtk3 have an additional complication: independent of the above
|
||||
# 0.13.8.0-specific fix, they need to be told on Darwin to use the Quartz
|
||||
# rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
|
||||
gtk3 =
|
||||
let
|
||||
patchedGtk3 = appendPatch super.gtk3 (pkgs.fetchpatch {
|
||||
url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
|
||||
includes = [ "gtk3.cabal" ];
|
||||
stripLen = 1;
|
||||
sha256 = "0zvj0dzfwf9bksfhi0m4v0h5aij236gd0qhyr1adpdcjrkd8zbkd";
|
||||
});
|
||||
in
|
||||
# The appendConfigureFlags should remain even after we can drop patchedGtk3.
|
||||
appendConfigureFlags patchedGtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
|
||||
gtk =
|
||||
let
|
||||
patchedGtk = appendPatch super.gtk (pkgs.fetchpatch {
|
||||
url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
|
||||
includes = [ "gtk.cabal-renamed" ];
|
||||
stripLen = 1;
|
||||
sha256 = "0wb0scvmhg8b42hxpns9m6zak3r8b25a2z7wg6vl56n17nb635l7";
|
||||
# One final complication: the gtk cabal file in the source repo (as seen
|
||||
# by the patch) is `gtk.cabal-renamed`, but this gets changed to the usual
|
||||
# `gtk.cabal` before uploading to Hackage by a script.
|
||||
postFetch = ''
|
||||
substituteInPlace $out --replace "-renamed" ""
|
||||
'';
|
||||
});
|
||||
in
|
||||
# The appendConfigureFlags should remain even after we can drop patchedGtk.
|
||||
appendConfigureFlags patchedGtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
|
||||
|
||||
# Chart-tests needs and compiles some modules from Chart itself
|
||||
Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
|
||||
preCheck = old.postPatch or "" + ''
|
||||
tar --one-top-level=../chart --strip-components=1 -xf ${self.Chart.src}
|
||||
'';
|
||||
});
|
||||
|
||||
# Unnecessary upper bound on vector <0.12.1
|
||||
bitwise-enum = doJailbreak super.bitwise-enum;
|
||||
|
||||
# This breaks because of version bounds, but compiles and runs fine.
|
||||
# Last commit is 5 years ago, so we likely won't get upstream fixed soon.
|
||||
# https://bitbucket.org/rvlm/hakyll-contrib-hyphenation/src/master/
|
||||
# Therefore we jailbreak it.
|
||||
hakyll-contrib-hyphenation = doJailbreak super.hakyll-contrib-hyphenation;
|
||||
|
||||
# https://github.com/bergmark/feed/issues/43
|
||||
feed = dontCheck super.feed;
|
||||
|
||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||
|
|
|
@ -44,27 +44,21 @@ self: super: {
|
|||
|
||||
# Jailbreak to fix the build.
|
||||
async = doJailbreak super.async;
|
||||
ChasingBottoms = doJailbreak super.ChasingBottoms;
|
||||
hashable = doJailbreak super.hashable;
|
||||
primitive_0_7_0_0 = doJailbreak (dontCheck super.primitive_0_7_0_0); # evaluating the test suite gives an infinite recursion
|
||||
regex-base_0_94_0_0 = doJailbreak super.regex-base_0_94_0_0;
|
||||
regex-compat_0_95_2_0 = doJailbreak super.regex-compat_0_95_2_0;
|
||||
regex-posix_0_96_0_0 = doJailbreak super.regex-posix_0_96_0_0;
|
||||
parallel = doJailbreak super.parallel;
|
||||
regex-base = doJailbreak super.regex-base;
|
||||
regex-compat = doJailbreak super.regex-compat;
|
||||
regex-pcre-builtin = doJailbreak super.regex-pcre-builtin;
|
||||
regex-posix = doJailbreak super.regex-posix;
|
||||
regex-tdfa = doJailbreak super.regex-tdfa;
|
||||
split = doJailbreak super.split;
|
||||
tar = doJailbreak super.tar;
|
||||
tasty-expected-failure = doJailbreak super.tasty-expected-failure;
|
||||
unliftio-core = doJailbreak super.unliftio-core;
|
||||
vector = doJailbreak super.vector;
|
||||
zlib = doJailbreak super.zlib;
|
||||
parallel = doJailbreak super.parallel;
|
||||
split = doJailbreak super.split;
|
||||
|
||||
# Use the latest version to fix the build.
|
||||
generic-deriving = self.generic-deriving_1_13_1;
|
||||
optparse-applicative = self.optparse-applicative_0_15_1_0;
|
||||
primitive = self.primitive_0_7_0_0;
|
||||
regex-base = self.regex-base_0_94_0_0;
|
||||
regex-compat = self.regex-compat_0_95_2_0;
|
||||
regex-pcre-builtin = self.regex-pcre-builtin_0_95_1_1_8_43;
|
||||
regex-posix = self.regex-posix_0_96_0_0;
|
||||
regex-tdfa = self.regex-tdfa_1_3_1_0;
|
||||
|
||||
}
|
||||
|
|
|
@ -68,86 +68,26 @@ self: super: {
|
|||
io-streams-haproxy = doJailbreak super.io-streams-haproxy; # base >=4.5 && <4.13
|
||||
snap-server = doJailbreak super.snap-server;
|
||||
xmobar = doJailbreak super.xmobar;
|
||||
|
||||
# use latest version to fix the build
|
||||
brick = self.brick_0_51;
|
||||
dbus = self.dbus_1_2_11;
|
||||
doctemplates = self.doctemplates_0_8;
|
||||
exact-pi = doJailbreak super.exact-pi;
|
||||
generics-sop = self.generics-sop_0_5_0_0;
|
||||
hackage-db = self.hackage-db_2_1_0;
|
||||
haddock-library = self.haddock-library_1_8_0;
|
||||
haskell-src-meta = self.haskell-src-meta_0_8_5;
|
||||
haskell-src-meta_0_8_5 = dontCheck super.haskell-src-meta_0_8_5;
|
||||
HaTeX = self.HaTeX_3_22_0_0;
|
||||
HsYAML = self.HsYAML_0_2_1_0;
|
||||
json-autotype = doJailbreak super.json-autotype;
|
||||
lens = self.lens_4_19;
|
||||
memory = self.memory_0_15_0;
|
||||
microlens = self.microlens_0_4_11_2;
|
||||
microlens-ghc = self.microlens-ghc_0_4_12;
|
||||
microlens-mtl = self.microlens-mtl_0_2_0_1;
|
||||
microlens-platform = self.microlens-platform_0_4_1;
|
||||
microlens-th = self.microlens-th_0_4_3_4;
|
||||
network = self.network_3_1_1_1;
|
||||
optparse-applicative = self.optparse-applicative_0_15_1_0;
|
||||
pandoc = dontCheck super.pandoc_2_9_1_1; # https://github.com/jgm/pandoc/issues/6086
|
||||
pandoc-types = self.pandoc-types_1_20;
|
||||
prettyprinter = self.prettyprinter_1_6_0;
|
||||
primitive = dontCheck super.primitive_0_7_0_0; # evaluating the test suite gives an infinite recursion
|
||||
regex-base = self.regex-base_0_94_0_0;
|
||||
regex-compat = self.regex-compat_0_95_2_0;
|
||||
regex-pcre-builtin = self.regex-pcre-builtin_0_95_1_1_8_43;
|
||||
regex-posix = self.regex-posix_0_96_0_0;
|
||||
regex-tdfa = self.regex-tdfa_1_3_1_0;
|
||||
shelly = self.shelly_1_9_0;
|
||||
singletons = self.singletons_2_6;
|
||||
skylighting = self.skylighting_0_8_3_2;
|
||||
skylighting-core = self.skylighting-core_0_8_3_2;
|
||||
sop-core = self.sop-core_0_5_0_0;
|
||||
texmath = self.texmath_0_12;
|
||||
th-desugar = self.th-desugar_1_10;
|
||||
tls = self.tls_1_5_3;
|
||||
trifecta = self.trifecta_2_1;
|
||||
vty = self.vty_5_26;
|
||||
xml-conduit = overrideCabal super.xml-conduit (drv: { version = "1.9.0.0"; sha256 = "1p57v127882rxvvmwjmvnqdmk3x2wg1z4d8y03849h0xaz1vid0w"; });
|
||||
xmonad-contrib = self.xmonad-contrib_0_16;
|
||||
time-compat = doJailbreak super.time-compat;
|
||||
http-media = doJailbreak super.http-media;
|
||||
servant-server = doJailbreak super.servant-server;
|
||||
|
||||
# These packages don't work and need patching and/or an update.
|
||||
hackage-security = appendPatch (doJailbreak super.hackage-security) (pkgs.fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/hackage-security-0.5.3.0.patch";
|
||||
sha256 = "0l8x0pbsn18fj5ak5q0g5rva4xw1s9yc4d86a1pfyaz467b9i5a4";
|
||||
});
|
||||
polyparse = appendPatch (doJailbreak super.polyparse) (pkgs.fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/hvr/head.hackage/master/patches/polyparse-1.12.1.patch";
|
||||
sha256 = "01b2gnsq0x4fd9na8zpk6pajym55mbz64hgzawlwxdw0y6681kr5";
|
||||
});
|
||||
foundation = dontCheck super.foundation;
|
||||
vault = dontHaddock super.vault;
|
||||
|
||||
# https://github.com/snapframework/snap-core/issues/288
|
||||
snap-core = overrideCabal super.snap-core (drv: { prePatch = "substituteInPlace src/Snap/Internal/Core.hs --replace 'fail = Fail.fail' ''"; });
|
||||
# needs a release
|
||||
json = overrideCabal super.json (drv: { prePatch = "substituteInPlace json.cabal --replace '4.13' '4.14'"; patches = [(
|
||||
pkgs.fetchpatch {
|
||||
url = "https://github.com/GaloisInc/json/commit/9d36ca5d865be7e4b2126b68a444b901941d2492.patch";
|
||||
sha256 = "0vyi5nbivkqg6zngq7rb3wwcj9043m4hmyk155nrcddl8j2smfzv";
|
||||
}
|
||||
)]; });
|
||||
|
||||
# Upstream ships a broken Setup.hs file.
|
||||
csv = overrideCabal super.csv (drv: { prePatch = "rm Setup.hs"; });
|
||||
|
||||
# mark broken packages
|
||||
bencode = markBrokenVersion "0.6.0.0" super.bencode;
|
||||
easytest = markBroken super.easytest;
|
||||
easytest_0_3 = markBroken super.easytest_0_3;
|
||||
haskell-src = markBrokenVersion "1.0.3.0" super.haskell-src;
|
||||
|
||||
# The LTS-14.x version of the dependencies are too old.
|
||||
policeman = super.policeman.overrideScope (self: super: { ansi-terminal = self.ansi-terminal_0_10_2; relude = self.relude_0_6_0_0; });
|
||||
|
||||
# https://github.com/kowainik/relude/issues/241
|
||||
relude_0_6_0_0 = dontCheck super.relude_0_6_0_0;
|
||||
relude = dontCheck super.relude;
|
||||
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -640,18 +640,22 @@ self: super: builtins.intersectAttrs super {
|
|||
# we can safely jailbreak spago and use the older directory package from
|
||||
# LTS-14.
|
||||
spagoWithOverrides = doJailbreak (super.spago.override {
|
||||
# spago requires dhall_1_27_0.
|
||||
dhall = self.dhall_1_27_0;
|
||||
# spago requires dhall-1.29.0.
|
||||
dhall = self.dhall_1_29_0;
|
||||
});
|
||||
|
||||
# This defines the version of the purescript-docs-search release we are using.
|
||||
# This is defined in the src/Spago/Prelude.hs file in the spago source.
|
||||
docsSearchVersion = "v0.0.8";
|
||||
|
||||
docsSearchAppJsFile = pkgs.fetchurl {
|
||||
url = "https://github.com/spacchetti/purescript-docs-search/releases/download/v0.0.5/docs-search-app.js";
|
||||
sha256 = "11721x455qzh40vzfmralaynn9v8b5wix86r107hhs08vhryjib2";
|
||||
url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/docs-search-app.js";
|
||||
sha256 = "00pzi7pgjicpa0mg0al80gh2q1q2lqiyb3kjarpydlmn8dfjny7v";
|
||||
};
|
||||
|
||||
purescriptDocsSearchFile = pkgs.fetchurl {
|
||||
url = "https://github.com/spacchetti/purescript-docs-search/releases/download/v0.0.5/purescript-docs-search";
|
||||
sha256 = "16p1fmdvpwz1yswav8qjsd26c9airb22xncqw1rjnbd8lcpqx0p5";
|
||||
url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/purescript-docs-search";
|
||||
sha256 = "1hsi1hc4p1z2xbw82w2jxmmczw6mravli1r89vrkivb72sqdjya7";
|
||||
};
|
||||
|
||||
spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
|
||||
|
@ -676,6 +680,11 @@ self: super: builtins.intersectAttrs super {
|
|||
# https://github.com/spacchetti/spago/issues/510
|
||||
cp ${docsSearchAppJsFile} "$sourceRoot/templates/docs-search-app.js"
|
||||
cp ${purescriptDocsSearchFile} "$sourceRoot/templates/purescript-docs-search"
|
||||
|
||||
# For some weird reason, on Darwin, the open(2) call to embed these files
|
||||
# requires write permissions. The easiest resolution is just to permit that
|
||||
# (doesn't cause any harm on other systems).
|
||||
chmod u+w "$sourceRoot/templates/docs-search-app.js" "$sourceRoot/templates/purescript-docs-search"
|
||||
'';
|
||||
});
|
||||
|
||||
|
@ -688,4 +697,17 @@ self: super: builtins.intersectAttrs super {
|
|||
# checks SQL statements at compile time, and so requires a running PostgreSQL
|
||||
# database to run it's test suite
|
||||
postgresql-typed = dontCheck super.postgresql-typed;
|
||||
|
||||
# mplayer-spot uses mplayer at runtime.
|
||||
mplayer-spot =
|
||||
let path = pkgs.stdenv.lib.makeBinPath [ pkgs.mplayer ];
|
||||
in overrideCabal (addBuildTool super.mplayer-spot pkgs.makeWrapper) (oldAttrs: {
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/mplayer-spot --prefix PATH : "${path}"
|
||||
'';
|
||||
});
|
||||
|
||||
# break infinite recursion with base-orphans
|
||||
primitive = dontCheck super.primitive;
|
||||
|
||||
}
|
||||
|
|
14223
pkgs/development/haskell-modules/hackage-packages.nix
generated
14223
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,125 @@
|
|||
From f8d8959e43abd88c5e977079f0948e45cf4c0b0c Mon Sep 17 00:00:00 2001
|
||||
From: Peter Simons <simons@cryp.to>
|
||||
Date: Fri, 28 Feb 2020 11:56:48 +0100
|
||||
Subject: [PATCH] Fix build with ghc-8.8.x.
|
||||
|
||||
The 'fail' method has been moved to the 'MonadFail' class. I made the changes
|
||||
so that the code still compiles with previous versions of 'base' that don't
|
||||
have the new MonadFail class exported by Prelude yet.
|
||||
---
|
||||
CmdLine/GitAnnex/Options.hs | 5 +++--
|
||||
Command/Expire.hs | 5 +++--
|
||||
Command/Init.hs | 7 ++++---
|
||||
Utility/HumanTime.hs | 5 +++--
|
||||
4 files changed, 13 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/CmdLine/GitAnnex/Options.hs b/CmdLine/GitAnnex/Options.hs
|
||||
index 030c83dd5..a9a36d76f 100644
|
||||
--- a/CmdLine/GitAnnex/Options.hs
|
||||
+++ b/CmdLine/GitAnnex/Options.hs
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
module CmdLine.GitAnnex.Options where
|
||||
|
||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
||||
import Options.Applicative
|
||||
import qualified Data.Map as M
|
||||
|
||||
@@ -215,8 +216,8 @@ parseAllOption = flag' WantAllKeys
|
||||
<> help "operate on all versions of all files"
|
||||
)
|
||||
|
||||
-parseKey :: Monad m => String -> m Key
|
||||
-parseKey = maybe (fail "invalid key") return . deserializeKey
|
||||
+parseKey :: MonadFail m => String -> m Key
|
||||
+parseKey = maybe (Fail.fail "invalid key") return . deserializeKey
|
||||
|
||||
-- Options to match properties of annexed files.
|
||||
annexedMatchingOptions :: [GlobalOption]
|
||||
diff --git a/Command/Expire.hs b/Command/Expire.hs
|
||||
index 83c38e569..37dc33883 100644
|
||||
--- a/Command/Expire.hs
|
||||
+++ b/Command/Expire.hs
|
||||
@@ -17,6 +17,7 @@ import Annex.VectorClock
|
||||
import qualified Remote
|
||||
import Utility.HumanTime
|
||||
|
||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
||||
import Data.Time.Clock.POSIX
|
||||
import qualified Data.Map as M
|
||||
|
||||
@@ -105,9 +106,9 @@ parseExpire ps = do
|
||||
Nothing -> giveup $ "bad expire time: " ++ s
|
||||
Just d -> Just (now - durationToPOSIXTime d)
|
||||
|
||||
-parseActivity :: Monad m => String -> m Activity
|
||||
+parseActivity :: MonadFail m => String -> m Activity
|
||||
parseActivity s = case readish s of
|
||||
- Nothing -> fail $ "Unknown activity. Choose from: " ++
|
||||
+ Nothing -> Fail.fail $ "Unknown activity. Choose from: " ++
|
||||
unwords (map show [minBound..maxBound :: Activity])
|
||||
Just v -> return v
|
||||
|
||||
diff --git a/Command/Init.hs b/Command/Init.hs
|
||||
index db6cb14fb..879a1110f 100644
|
||||
--- a/Command/Init.hs
|
||||
+++ b/Command/Init.hs
|
||||
@@ -13,6 +13,7 @@ import Annex.Version
|
||||
import Types.RepoVersion
|
||||
import qualified Annex.SpecialRemote
|
||||
|
||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
||||
import qualified Data.Map as M
|
||||
|
||||
cmd :: Command
|
||||
@@ -33,14 +34,14 @@ optParser desc = InitOptions
|
||||
<> help "Override default annex.version"
|
||||
))
|
||||
|
||||
-parseRepoVersion :: Monad m => String -> m RepoVersion
|
||||
+parseRepoVersion :: MonadFail m => String -> m RepoVersion
|
||||
parseRepoVersion s = case RepoVersion <$> readish s of
|
||||
- Nothing -> fail $ "version parse error"
|
||||
+ Nothing -> Fail.fail $ "version parse error"
|
||||
Just v
|
||||
| v `elem` supportedVersions -> return v
|
||||
| otherwise -> case M.lookup v autoUpgradeableVersions of
|
||||
Just v' -> return v'
|
||||
- Nothing -> fail $ s ++ " is not a currently supported repository version"
|
||||
+ Nothing -> Fail.fail $ s ++ " is not a currently supported repository version"
|
||||
|
||||
seek :: InitOptions -> CommandSeek
|
||||
seek = commandAction . start
|
||||
diff --git a/Utility/HumanTime.hs b/Utility/HumanTime.hs
|
||||
index 01fbeacfb..d2e70f332 100644
|
||||
--- a/Utility/HumanTime.hs
|
||||
+++ b/Utility/HumanTime.hs
|
||||
@@ -19,6 +19,7 @@ module Utility.HumanTime (
|
||||
import Utility.PartialPrelude
|
||||
import Utility.QuickCheck
|
||||
|
||||
+import Control.Monad.Fail as Fail ( MonadFail(..) )
|
||||
import qualified Data.Map as M
|
||||
import Data.Time.Clock
|
||||
import Data.Time.Clock.POSIX (POSIXTime)
|
||||
@@ -44,7 +45,7 @@ daysToDuration :: Integer -> Duration
|
||||
daysToDuration i = Duration $ i * dsecs
|
||||
|
||||
{- Parses a human-input time duration, of the form "5h", "1m", "5h1m", etc -}
|
||||
-parseDuration :: Monad m => String -> m Duration
|
||||
+parseDuration :: MonadFail m => String -> m Duration
|
||||
parseDuration = maybe parsefail (return . Duration) . go 0
|
||||
where
|
||||
go n [] = return n
|
||||
@@ -55,7 +56,7 @@ parseDuration = maybe parsefail (return . Duration) . go 0
|
||||
u <- M.lookup c unitmap
|
||||
go (n + num * u) rest
|
||||
_ -> return $ n + num
|
||||
- parsefail = fail "duration parse error; expected eg \"5m\" or \"1h5m\""
|
||||
+ parsefail = Fail.fail "duration parse error; expected eg \"5m\" or \"1h5m\""
|
||||
|
||||
fromDuration :: Duration -> String
|
||||
fromDuration Duration { durationSeconds = d }
|
||||
--
|
||||
2.25.1
|
||||
|
|
@ -1,14 +1,53 @@
|
|||
{ haskellPackages
|
||||
, haskell
|
||||
{ haskell
|
||||
, haskellPackages
|
||||
, lib
|
||||
, nodejs
|
||||
, purescript
|
||||
, runCommand
|
||||
}:
|
||||
|
||||
haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: {
|
||||
maintainers = (oldAttrs.maintainers or []) ++ [
|
||||
lib.maintainers.cdepillabout
|
||||
];
|
||||
let
|
||||
spago =
|
||||
haskell.lib.justStaticExecutables
|
||||
(haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: {
|
||||
maintainers = (oldAttrs.maintainers or []) ++ [
|
||||
lib.maintainers.cdepillabout
|
||||
];
|
||||
}));
|
||||
in
|
||||
|
||||
spago.overrideAttrs (oldAttrs: {
|
||||
passthru = (oldAttrs.passthru or {}) // {
|
||||
updateScript = ./update.sh;
|
||||
|
||||
# These tests can be run with the following command. The tests access the
|
||||
# network, so they cannot be run in the nix sandbox. sudo is needed in
|
||||
# order to change the sandbox option.
|
||||
#
|
||||
# $ sudo nix-build -A spago.passthru.tests --option sandbox relaxed
|
||||
#
|
||||
tests =
|
||||
runCommand
|
||||
"spago-tests"
|
||||
{
|
||||
__noChroot = true;
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
purescript
|
||||
spago
|
||||
];
|
||||
}
|
||||
''
|
||||
# spago expects HOME to be set because it creates a cache file under
|
||||
# home.
|
||||
HOME=$(pwd)
|
||||
|
||||
spago --verbose init
|
||||
spago --verbose build
|
||||
spago --verbose test
|
||||
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
}))
|
||||
})
|
||||
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
}:
|
||||
mkDerivation {
|
||||
pname = "spago";
|
||||
version = "0.13.1";
|
||||
version = "0.14.0";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/spacchetti/spago.git";
|
||||
sha256 = "0l6sy1hz5dbnrjkvb2f44afhd48nwqx5kx1h29ns93xbbd57hci8";
|
||||
rev = "b87858609c671d8f3dc78f858ce1d8c492bd1062";
|
||||
url = "https://github.com/purescript/spago.git";
|
||||
sha256 = "12i1430prqspy73nwfxc17zf51yprhrxxcnhw4rks6jhkgwxf4a4";
|
||||
rev = "7a99343e4876a465600eaa64b0697a9f0b2a49a9";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
isLibrary = true;
|
||||
|
@ -42,6 +42,7 @@ mkDerivation {
|
|||
];
|
||||
testToolDepends = [ hspec-discover ];
|
||||
prePatch = "hpack";
|
||||
homepage = "https://github.com/spacchetti/spago#readme";
|
||||
homepage = "https://github.com/purescript/spago#readme";
|
||||
license = stdenv.lib.licenses.bsd3;
|
||||
broken = true; # Build is broken in lts-15.x.
|
||||
}
|
||||
|
|
|
@ -20,11 +20,14 @@ spago_derivation_file="${script_dir}/spago.nix"
|
|||
old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")"
|
||||
|
||||
# This is the latest release version of spago on GitHub.
|
||||
new_version=$(curl --silent "https://api.github.com/repos/spacchetti/spago/releases" | jq '.[0].tag_name' --raw-output)
|
||||
new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/releases" | jq '.[0].tag_name' --raw-output)
|
||||
|
||||
echo "Updating spago from old version $old_version to new version $new_version."
|
||||
echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
|
||||
|
||||
cabal2nix --revision "$new_version" "https://github.com/spacchetti/spago.git" > "$spago_derivation_file"
|
||||
cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" > "$spago_derivation_file"
|
||||
|
||||
# TODO: This should ideally also automatically update the docsSearchVersion
|
||||
# from pkgs/development/haskell/configuration-nix.nix.
|
||||
|
||||
echo "Finished."
|
||||
|
|
|
@ -8284,7 +8284,7 @@ in
|
|||
|
||||
# Please update doc/languages-frameworks/haskell.section.md, “Our
|
||||
# current default compiler is”, if you bump this:
|
||||
haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc865;
|
||||
haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc882;
|
||||
|
||||
inherit (haskellPackages) ghc;
|
||||
|
||||
|
|
|
@ -68,6 +68,12 @@ in {
|
|||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc883 = callPackage ../development/compilers/ghc/8.8.3.nix {
|
||||
bootPkgs = packages.ghc863Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc8101 = callPackage ../development/compilers/ghc/8.10.1.nix {
|
||||
bootPkgs = packages.ghc863Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
|
@ -137,6 +143,11 @@ in {
|
|||
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 { };
|
||||
};
|
||||
ghc8101 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8101;
|
||||
ghc = bh.compiler.ghc8101;
|
||||
|
|
Loading…
Reference in a new issue