Merge pull request #75857 from NixOS/haskell-updates

Update Haskell Package Set
This commit is contained in:
Peter Simons 2019-12-27 20:59:21 +01:00 committed by GitHub
commit 4ba505b887
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 2559 additions and 994 deletions

View 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.10.0.20191210";
name = "${targetPrefix}ghc-${version}";
src = fetchurl {
url = "https://downloads.haskell.org/ghc/8.10.1-alpha2/ghc-${version}-src.tar.xz";
sha256 = "1mmv8s9cs41kp7wh1qqnzin5wv32cvs3lmzgda7njz0ssqb0mmvj";
};
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;
# Dont 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;
})

View 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.1.20191211";
name = "${targetPrefix}ghc-${version}";
src = fetchurl {
url = "https://downloads.haskell.org/ghc/8.8.2-rc1/ghc-${version}-src.tar.xz";
sha256 = "1gl4fzakjbhd94v1saxmr9sfzgk22m1b95jq51rxm93b2g4cixl4";
};
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;
# Dont 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;
})

View File

@ -74,7 +74,7 @@ self: super: {
name = "git-annex-${super.git-annex.version}-src";
url = "git://git-annex.branchable.com/";
rev = "refs/tags/" + super.git-annex.version;
sha256 = "04l1yrjq7n4nlzkmkg73xp6p7vpw1iq53mrmyb8162wqb7zapg4f";
sha256 = "1i4arhwbc05iz8hl7kk843m2f49i3ysby1kxcm9qfhpk7z9nyzj4";
};
}).override {
dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@ -1048,7 +1048,30 @@ self: super: {
generateOptparseApplicativeCompletion "dhall" (
dontCheck super.dhall
);
dhall_1_28_0 = dontCheck super.dhall_1_28_0;
# 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_28_0 =
dontCheck (super.dhall_1_28_0.override {
prettyprinter = self.prettyprinter_1_5_1;
prettyprinter-ansi-terminal =
self.prettyprinter-ansi-terminal.override {
prettyprinter = self.prettyprinter_1_5_1;
};
});
dhall-bash_1_0_25 = super.dhall-bash_1_0_25.override { dhall = self.dhall_1_28_0; };
dhall-json_1_6_0 = super.dhall-json_1_6_0.override {
dhall = self.dhall_1_28_0;
prettyprinter = self.prettyprinter_1_5_1;
prettyprinter-ansi-terminal =
self.prettyprinter-ansi-terminal.override {
prettyprinter = self.prettyprinter_1_5_1;
};
};
# Tests for dhall access the network.
dhall_1_27_0 = dontCheck super.dhall_1_27_0;
# Missing test files in source distribution, fixed once 1.4.0 is bumped
# https://github.com/dhall-lang/dhall-haskell/pull/997
@ -1313,9 +1336,29 @@ self: super: {
# needs newer version of the systemd package
spacecookie = super.spacecookie.override { systemd = self.systemd_2_2_0; };
# ghcide needs the latest versions of haskell-lsp.
ghcide = super.ghcide.override { haskell-lsp = self.haskell-lsp_0_18_0_0; lsp-test = self.lsp-test_0_8_2_0; };
haskell-lsp_0_18_0_0 = super.haskell-lsp_0_18_0_0.override { haskell-lsp-types = self.haskell-lsp-types_0_18_0_0; };
lsp-test_0_8_2_0 = (dontCheck super.lsp-test_0_8_2_0).override { haskell-lsp = self.haskell-lsp_0_18_0_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
glirc = doJailbreak super.glirc;
# apply patches from https://github.com/snapframework/snap-server/pull/126
# manually until they are accepted upstream
snap-server = overrideCabal super.snap-server (drv: {
patches = [(pkgs.fetchpatch {
# allow compilation with network >= 3
url = https://github.com/snapframework/snap-server/pull/126/commits/4338fe15d68e11e3c7fd0f9862f818864adc1d45.patch;
sha256 = "1nlw9lckm3flzkmhkzwc7zxhdh9ns33w8p8ds8nf574nqr5cr8bv";
})
(pkgs.fetchpatch {
# prefer fdSocket over unsafeFdSocket
url = https://github.com/snapframework/snap-server/pull/126/commits/410de2df123b1d56b3093720e9c6a1ad79fe9de6.patch;
sha256 = "08psvw0xny64q4bw1nwg01pkzh01ak542lw6k1ps7cdcwaxk0n94";
})];
});
# https://github.com/haskell-servant/servant-blaze/issues/17
servant-blaze = doJailbreak super.servant-blaze;
# https://github.com/haskell-servant/servant-ekg/issues/15
servant-ekg = doJailbreak super.servant-ekg;
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super

View File

@ -0,0 +1,44 @@
{ pkgs, haskellLib }:
with haskellLib;
self: super: {
# This compiler version needs llvm 9.x.
llvmPackages = pkgs.llvmPackages_9;
# Disable GHC 8.10.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;
libiserv = 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;
}

View File

@ -91,7 +91,7 @@ self: super: {
microlens-th = self.microlens-th_0_4_3_2;
network = self.network_3_1_1_1;
optparse-applicative = self.optparse-applicative_0_15_1_0;
pandoc = self.pandoc_2_9;
pandoc = self.pandoc_2_9_1;
pandoc-types = self.pandoc-types_1_20;
prettyprinter = self.prettyprinter_1_5_1;
primitive = dontCheck super.primitive_0_7_0_0; # evaluating the test suite gives an infinite recursion

View File

@ -43,7 +43,7 @@ core-packages:
- ghcjs-base-0
default-package-overrides:
# LTS Haskell 14.17
# LTS Haskell 14.18
- abstract-deque ==0.3
- abstract-deque-tests ==0.3
- abstract-par ==0.3.3
@ -73,7 +73,7 @@ default-package-overrides:
- alarmclock ==0.7.0.2
- alerts ==0.1.2.0
- alex ==3.2.5
- alg ==0.2.12.0
- alg ==0.2.13.0
- algebraic-graphs ==0.4
- Allure ==0.9.5.0
- almost-fix ==0.0.2
@ -202,7 +202,7 @@ default-package-overrides:
- bitcoin-types ==0.9.2
- bits ==0.5.2
- bitset-word8 ==0.1.1.1
- bits-extra ==0.0.1.4
- bits-extra ==0.0.1.5
- bitvec ==1.0.2.0
- bitx-bitcoin ==0.12.0.0
- blake2 ==0.3.0
@ -235,7 +235,7 @@ default-package-overrides:
- bower-json ==1.0.0.1
- boxes ==0.1.5
- brick ==0.47.1
- brittany ==0.12.1.0
- brittany ==0.12.1.1
- bsb-http-chunked ==0.0.0.4
- bson ==0.3.2.8
- bson-lens ==0.1.1
@ -266,8 +266,8 @@ default-package-overrides:
- cabal2spec ==2.2.2.1
- cabal-doctest ==1.0.8
- cabal-file-th ==0.2.6
- cabal-rpm ==1.0.1
- cache ==0.1.2.0
- cabal-rpm ==1.0.2
- cache ==0.1.3.0
- cacophony ==0.10.1
- calendar-recycling ==0.0.0.1
- call-stack ==0.1.0
@ -371,7 +371,7 @@ default-package-overrides:
- concurrent-split ==0.0.1.1
- concurrent-supply ==0.1.8
- cond ==0.4.1.1
- conduit ==1.3.1.1
- conduit ==1.3.1.2
- conduit-algorithms ==0.0.11.0
- conduit-combinators ==1.3.0
- conduit-concurrent-map ==0.1.1
@ -523,9 +523,9 @@ default-package-overrides:
- diagrams-core ==1.4.2
- diagrams-lib ==1.4.3
- diagrams-postscript ==1.4.1
- diagrams-rasterific ==1.4.1.1
- diagrams-rasterific ==1.4.2
- diagrams-solve ==0.1.1
- diagrams-svg ==1.4.2
- diagrams-svg ==1.4.3
- di-core ==1.0.4
- dictionary-sharing ==0.1.0.0
- Diff ==0.3.4
@ -595,7 +595,6 @@ default-package-overrides:
- elm-bridge ==0.5.2
- elm-core-sources ==1.0.0
- elm-export ==0.6.0.1
- elm-street ==0.0.1
- emacs-module ==0.1.1
- email-validate ==2.3.2.12
- emd ==0.1.5.1
@ -662,7 +661,7 @@ default-package-overrides:
- fgl ==5.7.0.1
- fib ==0.1
- filecache ==0.4.1
- file-embed ==0.0.11
- file-embed ==0.0.11.1
- file-embed-lzma ==0
- filelock ==0.1.1.4
- filemanip ==0.3.6.3
@ -670,8 +669,8 @@ default-package-overrides:
- filepattern ==0.1.1
- fileplow ==0.1.0.0
- filter-logger ==0.6.0.0
- filtrable ==0.1.2.0
- fin ==0.1
- filtrable ==0.1.3.0
- fin ==0.1.1
- FindBin ==0.0.5
- fingertree ==0.1.4.2
- finite-typelits ==0.1.4.2
@ -718,7 +717,7 @@ default-package-overrides:
- free-vl ==0.1.4
- friendly-time ==0.4.1
- frisby ==0.2.2
- from-sum ==0.2.1.0
- from-sum ==0.2.2.0
- frontmatter ==0.1.0.2
- fsnotify ==0.3.0.1
- fsnotify-conduit ==0.1.1.1
@ -854,7 +853,7 @@ default-package-overrides:
- HandsomeSoup ==0.4.2
- hapistrano ==0.3.10.0
- happy ==1.19.12
- hasbolt ==0.1.3.6
- hasbolt ==0.1.4.0
- hashable ==1.2.7.0
- hashable-time ==0.2.0.2
- hashids ==1.0.2.4
@ -895,7 +894,7 @@ default-package-overrides:
- hedgehog ==1.0.1
- hedgehog-corpus ==0.1.0
- hedgehog-fn ==1.0
- hedis ==0.12.10
- hedis ==0.12.11
- hedn ==0.2.0.1
- here ==1.2.13
- heredoc ==0.2.0.0
@ -1005,7 +1004,7 @@ default-package-overrides:
- html-entities ==1.1.4.3
- html-entity-map ==0.1.0.0
- htoml ==1.0.0.3
- http2 ==1.6.5
- http2 ==2.0.3
- HTTP ==4000.3.14
- http-api-data ==0.4.1.1
- http-client ==0.6.4
@ -1376,7 +1375,8 @@ default-package-overrides:
- mono-traversable ==1.0.13.0
- mono-traversable-instances ==0.1.0.0
- mono-traversable-keys ==0.1.0
- more-containers ==0.2.1.2
- more-containers ==0.2.2.0
- morpheus-graphql ==0.8.0
- mountpoints ==1.0.2
- mpi-hs ==0.5.3.0
- msgpack ==1.0.1.0
@ -1387,12 +1387,12 @@ default-package-overrides:
- multiarg ==0.30.0.10
- multimap ==1.2.1
- multipart ==0.1.3
- multiset ==0.3.4.1
- multiset ==0.3.4.3
- multistate ==0.8.0.2
- murmur3 ==1.0.3
- murmur-hash ==0.1.0.9
- MusicBrainz ==0.4.1
- mustache ==2.3.0
- mustache ==2.3.1
- mutable-containers ==0.3.4
- mwc-probability ==2.1.0
- mwc-probability-transition ==0.4
@ -1558,7 +1558,7 @@ default-package-overrides:
- persistable-record ==0.6.0.4
- persistable-types-HDBC-pg ==0.0.3.5
- persistent ==2.9.2
- persistent-iproute ==0.2.3
- persistent-iproute ==0.2.4
- persistent-mysql ==2.9.0
- persistent-mysql-haskell ==0.5.2
- persistent-pagination ==0.1.1.0
@ -1681,10 +1681,11 @@ default-package-overrides:
- pure-zlib ==0.6.6
- pushbullet-types ==0.4.1.0
- pusher-http-haskell ==1.5.1.11
- PyF ==0.8.1.2
- qchas ==1.1.0.1
- qm-interpolated-string ==0.3.0.0
- qnap-decrypt ==0.3.5
- qrcode-core ==0.9.1
- qrcode-core ==0.9.2
- qrcode-juicypixels ==0.8.0
- quadratic-irrational ==0.1.0
- QuasiText ==0.1.2.6
@ -1858,7 +1859,6 @@ default-package-overrides:
- serialise ==0.2.1.0
- servant ==0.16.2
- servant-auth ==0.3.2.0
- servant-auth-client ==0.4.0.0
- servant-auth-docs ==0.2.10.0
- servant-auth-server ==0.4.4.0
- servant-auth-swagger ==0.2.10.0
@ -1923,7 +1923,7 @@ default-package-overrides:
- silently ==1.2.5.1
- simple ==0.11.3
- simple-cabal ==0.1.1
- simple-cmd ==0.2.0.1
- simple-cmd ==0.2.1
- simple-cmd-args ==0.1.4
- simple-log ==0.9.12
- simple-reflect ==0.3.3
@ -1986,7 +1986,7 @@ default-package-overrides:
- StateVar ==1.2
- static-text ==0.2.0.4
- statistics ==0.15.1.1
- stb-image-redux ==0.2.1.2
- stb-image-redux ==0.2.1.3
- step-function ==0.2
- stm-chans ==3.0.0.4
- stm-conduit ==4.0.1
@ -2148,6 +2148,7 @@ default-package-overrides:
- th-test-utils ==1.0.1
- th-utilities ==0.2.3.1
- thyme ==0.3.5.5
- tidal ==1.4.5
- tile ==0.3.0.0
- time-compat ==1.9.2.2
- timeit ==2.0
@ -2278,7 +2279,7 @@ default-package-overrides:
- users-test ==0.5.0.1
- utf8-light ==0.4.2
- utf8-string ==1.0.1.1
- util ==0.1.14.1
- util ==0.1.15.0
- utility-ht ==0.0.14
- uuid ==1.3.13
- uuid-types ==1.0.3
@ -2341,8 +2342,8 @@ default-package-overrides:
- wai-slack-middleware ==0.2.0
- wai-transformers ==0.1.0
- wai-websockets ==3.0.1.2
- warp ==3.2.28
- warp-tls ==3.2.8
- warp ==3.3.5
- warp-tls ==3.2.9
- warp-tls-uid ==0.2.0.6
- wave ==0.2.0
- wcwidth ==0.0.2
@ -2367,7 +2368,6 @@ default-package-overrides:
- windns ==0.1.0.1
- winery ==1.1.3
- wire-streams ==0.1.1.0
- witherable ==0.3.4
- with-location ==0.1.0
- witness ==0.4
- wizards ==1.0.3
@ -2489,6 +2489,7 @@ extra-packages:
- control-monad-free < 0.6 # newer versions don't compile with anything but GHC 7.8.x
- dbus <1 # for xmonad-0.26
- deepseq == 1.3.0.1 # required to build Cabal with GHC 6.12.3
- dhall == 1.27.0 # required for spago 0.13.0. Probably can be removed when next version of spago is available.
- generic-deriving == 1.10.5.* # new versions don't compile with GHC 7.10.x
- gloss < 1.9.3 # new versions don't compile with GHC 7.8.x
- haddock == 2.22.* # required on GHC 8.0.x
@ -2575,6 +2576,8 @@ package-maintainers:
- elm-export-persistent
- pipes-mongodb
- streaming-wai
kiwi:
- glirc
psibi:
- path-pieces
- persistent
@ -5080,7 +5083,6 @@ broken-packages:
- gli
- glicko
- glider-nlp
- glirc
- GLMatrix
- glob-posix
- global
@ -6438,6 +6440,7 @@ broken-packages:
- ip2proxy
- ipatch
- ipc
- ipfs
- ipld-cid
- ipopt-hs
- ipprint
@ -6530,6 +6533,7 @@ broken-packages:
- jmonkey
- jni
- jobqueue
- jobs-ui
- join
- join-api
- joinlist
@ -7247,6 +7251,8 @@ broken-packages:
- mmsyn2
- mmsyn4
- mmsyn6ukr
- mmsyn7h
- mmsyn7ukr
- mmtf
- mmtl
- mmtl-base
@ -8063,7 +8069,6 @@ broken-packages:
- postgresql-simple-queue
- postgresql-simple-sop
- postgresql-simple-typed
- postgresql-simple-url
- postgresql-typed
- postgresql-typed-lifted
- postgrest
@ -9199,7 +9204,6 @@ broken-packages:
- stack-run-auto
- stack-type
- stack-wrapper
- stack2cabal
- stack2nix
- stackage
- stackage-build-plan

View File

@ -592,12 +592,19 @@ self: super: builtins.intersectAttrs super {
'';
});
# On Darwin, git-annex mis-detects options to `cp`, so we wrap the binary to
# ensure it uses Nixpkgs' coreutils.
git-annex = with pkgs;
if (!stdenv.isLinux) then
let path = stdenv.lib.makeBinPath [ coreutils ];
in overrideCabal (addBuildTool super.git-annex makeWrapper) (_drv: {
# This is an instance of https://github.com/NixOS/nix/pull/1085
# Fails with:
# gpg: can't connect to the agent: File name too long
postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace Test.hs \
--replace ', testCase "crypto" test_crypto' ""
'';
# On Darwin, git-annex mis-detects options to `cp`, so we wrap the
# binary to ensure it uses Nixpkgs' coreutils.
postFixup = ''
wrapProgram $out/bin/git-annex \
--prefix PATH : "${path}"
@ -644,8 +651,8 @@ 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 the latest version of dhall.
directory = self.dhall_1_28_0;
# spago requires dhall_1_27_0.
dhall = self.dhall_1_27_0;
});
docsSearchAppJsFile = pkgs.fetchurl {
@ -683,13 +690,9 @@ self: super: builtins.intersectAttrs super {
'';
});
# Haddock generation is broken for spago.
# https://github.com/spacchetti/spago/issues/511
spagoWithoutHaddocks = dontHaddock spagoFixHpack;
# Because of the problem above with pulling in hspec defaults to the
# package.yaml file, the tests are disabled.
spagoWithoutChecks = dontCheck spagoWithoutHaddocks;
spagoWithoutChecks = dontCheck spagoFixHpack;
in
spagoWithoutChecks;
}

File diff suppressed because it is too large Load Diff

View File

@ -15,5 +15,5 @@ self: super: {
# spago is not released to Hackage.
# https://github.com/spacchetti/spago/issues/512
spago = self.callPackage ../tools/purescript/spago { };
spago = self.callPackage ../tools/purescript/spago/spago.nix { };
}

View File

@ -1,47 +1,14 @@
{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
, base, bower-json, bytestring, Cabal, containers, dhall, directory
, either, exceptions, extra, fetchgit, file-embed, filepath, foldl
, fsnotify, github, Glob, hpack, hspec, hspec-discover
, hspec-megaparsec, http-client, http-conduit, lens-family-core
, megaparsec, mtl, network-uri, open-browser, optparse-applicative
, prettyprinter, process, QuickCheck, retry, rio, rio-orphans, safe
, semver-range, stdenv, stm, tar, template-haskell, temporary, text
, time, transformers, turtle, unliftio, unordered-containers
, vector, versions, zlib
{ haskellPackages
, haskell
, lib
}:
mkDerivation {
pname = "spago";
version = "0.12.1.0";
src = fetchgit {
url = "https://github.com/spacchetti/spago";
sha256 = "17xgp75yxangmb65sv3raysad31kmc109c4q4aj9dgcdqz23fcn2";
rev = "a4679880402ead320f8be2f091b25d30e27b62df";
fetchSubmodules = true;
haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: {
maintainers = (oldAttrs.maintainers or []) ++ [
lib.maintainers.cdepillabout
];
passthru = (oldAttrs.passthru or {}) // {
updateScript = ./update.sh;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson aeson-pretty ansi-terminal async-pool base bower-json
bytestring Cabal containers dhall directory either exceptions
file-embed filepath foldl fsnotify github Glob http-client
http-conduit lens-family-core megaparsec mtl network-uri
open-browser prettyprinter process retry rio rio-orphans safe
semver-range stm tar template-haskell temporary text time
transformers turtle unliftio unordered-containers vector versions
zlib
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [
aeson-pretty async-pool base bytestring containers dhall filepath
github lens-family-core megaparsec optparse-applicative process
retry stm temporary text time turtle vector
];
testHaskellDepends = [
base containers directory extra hspec hspec-megaparsec megaparsec
process QuickCheck temporary text turtle versions
];
testToolDepends = [ hspec-discover ];
prePatch = "hpack";
homepage = "https://github.com/spacchetti/spago#readme";
license = stdenv.lib.licenses.bsd3;
}
}))

View File

@ -0,0 +1,47 @@
{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
, base, bower-json, bytestring, Cabal, containers, dhall, directory
, either, exceptions, extra, fetchgit, file-embed, filepath, foldl
, fsnotify, github, Glob, hpack, hspec, hspec-discover
, hspec-megaparsec, http-client, http-conduit, lens-family-core
, megaparsec, mtl, network-uri, open-browser, optparse-applicative
, prettyprinter, process, QuickCheck, retry, rio, rio-orphans, safe
, semver-range, stdenv, stm, tar, template-haskell, temporary, text
, time, transformers, turtle, unliftio, unordered-containers
, vector, versions, zlib
}:
mkDerivation {
pname = "spago";
version = "0.13.0";
src = fetchgit {
url = "https://github.com/spacchetti/spago.git";
sha256 = "158xq5zn32iwswxmpma92763hl6kzq7kb01cyvphmmlilx55b6yk";
rev = "426838670ba9de4593f4c533a6947efb2d8ad4ba";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson aeson-pretty ansi-terminal async-pool base bower-json
bytestring Cabal containers dhall directory either exceptions
file-embed filepath foldl fsnotify github Glob http-client
http-conduit lens-family-core megaparsec mtl network-uri
open-browser prettyprinter process retry rio rio-orphans safe
semver-range stm tar template-haskell temporary text time
transformers turtle unliftio unordered-containers vector versions
zlib
];
libraryToolDepends = [ hpack ];
executableHaskellDepends = [
aeson-pretty async-pool base bytestring containers dhall filepath
github lens-family-core megaparsec optparse-applicative process
retry stm temporary text time turtle vector
];
testHaskellDepends = [
base containers directory extra hspec hspec-megaparsec megaparsec
process QuickCheck temporary text turtle versions
];
testToolDepends = [ hspec-discover ];
prePatch = "hpack";
homepage = "https://github.com/spacchetti/spago#readme";
license = stdenv.lib.licenses.bsd3;
}

View File

@ -0,0 +1,30 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq
#
# This script will update the spago derivation to the latest version using
# cabal2nix.
#
# Note that you should always try building spago after updating it here, since
# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
# need to be updated/changed.
set -eo pipefail
# This is the directory of this update.sh script.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Spago derivation created with cabal2nix.
spago_derivation_file="${script_dir}/spago.nix"
# This is the current revision of spago in Nixpkgs.
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)
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"
echo "Finished."

View File

@ -8154,7 +8154,7 @@ in
purescript-psa = nodePackages.purescript-psa;
spago = haskell.lib.justStaticExecutables haskellPackages.spago;
spago = callPackage ../development/tools/purescript/spago { };
pulp = nodePackages.pulp;
@ -11663,6 +11663,8 @@ in
glib-networking = callPackage ../development/libraries/glib-networking {};
glirc = haskell.lib.justStaticExecutables haskellPackages.glirc;
gom = callPackage ../development/libraries/gom { };
ace = callPackage ../development/libraries/ace { };

View File

@ -62,6 +62,18 @@ in {
buildLlvmPackages = buildPackages.llvmPackages_7;
llvmPackages = pkgs.llvmPackages_7;
};
ghc882 = callPackage ../development/compilers/ghc/8.8.2.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;
buildLlvmPackages = buildPackages.llvmPackages_9;
llvmPackages = pkgs.llvmPackages_9;
};
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
bootPkgs = packages.ghc863Binary;
inherit (buildPackages.python3Packages) sphinx;
@ -120,6 +132,16 @@ in {
ghc = bh.compiler.ghc881;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.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 { };
};
ghc8101 = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghc8101;
ghc = bh.compiler.ghc8101;
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
};
ghcHEAD = callPackage ../development/haskell-modules {
buildHaskellPackages = bh.packages.ghcHEAD;
ghc = bh.compiler.ghcHEAD;