mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-22 21:18:28 +03:00
Merge pull request #75857 from NixOS/haskell-updates
Update Haskell Package Set
This commit is contained in:
commit
4ba505b887
232
pkgs/development/compilers/ghc/8.10.1.nix
Normal file
232
pkgs/development/compilers/ghc/8.10.1.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.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;
|
||||
|
||||
# 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;
|
||||
})
|
232
pkgs/development/compilers/ghc/8.8.2.nix
Normal file
232
pkgs/development/compilers/ghc/8.8.2.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.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;
|
||||
|
||||
# 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;
|
||||
})
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
2737
pkgs/development/haskell-modules/hackage-packages.nix
generated
2737
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -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 { };
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}))
|
||||
|
47
pkgs/development/tools/purescript/spago/spago.nix
Normal file
47
pkgs/development/tools/purescript/spago/spago.nix
Normal 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;
|
||||
}
|
30
pkgs/development/tools/purescript/spago/update.sh
Executable file
30
pkgs/development/tools/purescript/spago/update.sh
Executable 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."
|
@ -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 { };
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user