Merge pull request #199424 from NixOS/haskell-updates
haskellPackages: update stackage and hackage
This commit is contained in:
commit
880e077b15
18 changed files with 1486 additions and 559 deletions
|
@ -123,7 +123,7 @@ rec {
|
|||
Example:
|
||||
mkPackageOption pkgs "GHC" {
|
||||
default = [ "ghc" ];
|
||||
example = "pkgs.haskell.packages.ghc924.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])";
|
||||
}
|
||||
=> { _type = "option"; default = «derivation /nix/store/jxx55cxsjrf8kyh3fp2ya17q99w7541r-ghc-8.10.7.drv»; defaultText = { ... }; description = "The GHC package to use."; example = { ... }; type = { ... }; }
|
||||
*/
|
||||
|
|
|
@ -2106,7 +2106,7 @@ Superuser created successfully.
|
|||
<literal>ghc810</literal>. Those attributes point to the same
|
||||
compilers and packagesets but have the advantage that e.g.
|
||||
<literal>ghc92</literal> stays stable when we update from
|
||||
<literal>ghc924</literal> to <literal>ghc925</literal>.
|
||||
<literal>ghc925</literal> to <literal>ghc926</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
|
|
@ -576,4 +576,4 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- More jdk and jre versions are now exposed via `java-packages.compiler`.
|
||||
|
||||
- The sets `haskell.packages` and `haskell.compiler` now contain for every ghc version an attribute with the minor version dropped. E.g. for `ghc8107` there also now exists `ghc810`. Those attributes point to the same compilers and packagesets but have the advantage that e.g. `ghc92` stays stable when we update from `ghc924` to `ghc925`.
|
||||
- The sets `haskell.packages` and `haskell.compiler` now contain for every ghc version an attribute with the minor version dropped. E.g. for `ghc8107` there also now exists `ghc810`. Those attributes point to the same compilers and packagesets but have the advantage that e.g. `ghc92` stays stable when we update from `ghc925` to `ghc926`.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"commit": "8983027e744098e8a2fbeac09bcc6eb8a9471fff",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/8983027e744098e8a2fbeac09bcc6eb8a9471fff.tar.gz",
|
||||
"sha256": "1iqgakw71x8cymdifpqnv546wmmrda6w862axli4k03vj7rv91iw",
|
||||
"msg": "Update from Hackage at 2022-10-27T19:26:33Z"
|
||||
"commit": "7e2dca1338ee7f19dbb8cdbc81e9eb1716bbf64e",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/7e2dca1338ee7f19dbb8cdbc81e9eb1716bbf64e.tar.gz",
|
||||
"sha256": "1vrhv9w042sn2sm3niiy5640qvhiqn79zllp4vsbdpds758rj9vm",
|
||||
"msg": "Update from Hackage at 2022-11-03T21:09:38Z"
|
||||
}
|
||||
|
|
367
pkgs/development/compilers/ghc/9.2.5.nix
Normal file
367
pkgs/development/compilers/ghc/9.2.5.nix
Normal file
|
@ -0,0 +1,367 @@
|
|||
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
||||
, xattr, autoSignDarwinBinariesHook
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
, glibcLocales ? null
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !(stdenv.targetPlatform.isx86
|
||||
|| stdenv.targetPlatform.isPower
|
||||
|| stdenv.targetPlatform.isSparc
|
||||
|| (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
|
||||
, # 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.
|
||||
buildTargetLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slightly slower native
|
||||
# bignum backend instead of the faster but GPLed gmp backend.
|
||||
enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
|
||||
, gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
# aarch64 outputs otherwise exceed 2GB limit
|
||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic
|
||||
|
||||
, # Whether to build terminfo.
|
||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
||||
|
||||
, # What flavour to build. An empty string indicates no
|
||||
# specific flavour and falls back to ghc default values.
|
||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||
|
||||
, # Whether to build sphinx documentation.
|
||||
enableDocs ? (
|
||||
# Docs disabled for musl and cross because it's a large task to keep
|
||||
# all `sphinx` dependencies building in those environments.
|
||||
# `sphinx` pulls in among others:
|
||||
# Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM.
|
||||
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||
&& !stdenv.hostPlatform.isMusl
|
||||
)
|
||||
|
||||
, enableHaddockProgram ?
|
||||
# Disabled for cross; see note [HADDOCK_DOCS].
|
||||
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||
|
||||
, # 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.isiOS
|
||||
}:
|
||||
|
||||
assert !enableNativeBignum -> gmp != null;
|
||||
|
||||
# Cross cannot currently build the `haddock` program for silly reasons,
|
||||
# see note [HADDOCK_DOCS].
|
||||
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' +
|
||||
# Note [HADDOCK_DOCS]:
|
||||
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
|
||||
# program is built (which we generally always want to have a complete GHC install)
|
||||
# and whether it is run on the GHC sources to generate hyperlinked source code
|
||||
# (which is impossible for cross-compilation); see:
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/20077
|
||||
# This implies that currently a cross-compiled GHC will never have a `haddock`
|
||||
# program, so it can never generate haddocks for any packages.
|
||||
# If this is solved in the future, we'd like to unconditionally
|
||||
# build the haddock program (removing the `enableHaddockProgram` option).
|
||||
''
|
||||
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
|
||||
# Build haddocks for boot packages with hyperlinking
|
||||
EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
|
||||
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' +
|
||||
# -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
|
||||
# makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
|
||||
# This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell
|
||||
lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC -fexternal-dynamic-refs
|
||||
GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableNativeBignum) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
|
||||
# GHC doesn't seem to have {LLC,OPT}_HOST
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# Sometimes we have to dispatch between the bintools wrapper and the unwrapped
|
||||
# derivation for certain tools depending on the platform.
|
||||
bintoolsFor = {
|
||||
# GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
|
||||
# part of the bintools wrapper (due to codesigning requirements), but not on
|
||||
# x86_64-darwin.
|
||||
install_name_tool =
|
||||
if stdenv.targetPlatform.isAarch64
|
||||
then targetCC.bintools
|
||||
else targetCC.bintools.bintools;
|
||||
# Same goes for strip.
|
||||
strip =
|
||||
# TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
|
||||
if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
|
||||
then targetCC.bintools
|
||||
else targetCC.bintools.bintools;
|
||||
};
|
||||
|
||||
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
|
||||
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.linker == "gold" ||
|
||||
(targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
|
||||
|
||||
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
|
||||
variantSuffix = lib.concatStrings [
|
||||
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
|
||||
(lib.optionalString enableNativeBignum "-native-bignum")
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
# C compiler, bintools and LLVM are used at build time, but will also leak into
|
||||
# the resulting GHC's settings file and used at runtime. This means that we are
|
||||
# currently only able to build GHC if hostPlatform == buildPlatform.
|
||||
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
|
||||
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
|
||||
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "9.2.5";
|
||||
pname = "${targetPrefix}ghc${variantSuffix}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "0606797d1b38e2d88ee2243f38ec6b9a1aa93e9b578e95f0de9a9c0a4144021c";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
|
||||
(fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
|
||||
sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk=";
|
||||
extraPrefix = "utils/haddock/";
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC needs the locale configured during the Haddock phase.
|
||||
LANG = "en_US.UTF-8";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
# TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
|
||||
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}c++"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
||||
export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
|
||||
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
|
||||
export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
|
||||
export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
|
||||
'' + lib.optionalString useLLVM ''
|
||||
export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
|
||||
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
|
||||
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
|
||||
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
|
||||
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
|
||||
'' + ''
|
||||
echo -n "${buildMK}" > mk/build.mk
|
||||
'' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") ''
|
||||
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
|
||||
# GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7
|
||||
export XATTR=${lib.getBin xattr}/bin/xattr
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||
'' + lib.optionalString targetPlatform.isMusl ''
|
||||
echo "patching llvm-targets for musl targets..."
|
||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||
echo "(go go gadget sed)"
|
||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
||||
|
||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
||||
for x in configure aclocal.m4; do
|
||||
substituteInPlace $x \
|
||||
--replace '*-android*|*-gnueabi*)' \
|
||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
||||
done
|
||||
'';
|
||||
|
||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||
configurePlatforms = [ "build" "host" ]
|
||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||
|
||||
# `--with` flags for libraries needed for RTS linker
|
||||
configureFlags = [
|
||||
"--datadir=$doc/share/doc/ghc"
|
||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||
] ++ lib.optionals (libffi != null) [
|
||||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
"--with-iconv-includes=${libiconv}/include"
|
||||
"--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||
"--disable-large-address-space"
|
||||
];
|
||||
|
||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
||||
strictDeps = true;
|
||||
|
||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
||||
dontAddExtraLibs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl autoconf automake m4 python3
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
|
||||
autoSignDarwinBinariesHook
|
||||
] ++ lib.optionals enableDocs [
|
||||
sphinx
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||
|
||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||
# that in turn causes GHCi to abort
|
||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
hardeningDisable =
|
||||
[ "format" ]
|
||||
# In nixpkgs, musl based builds currently enable `pie` hardening by default
|
||||
# (see `defaultHardeningFlags` in `make-derivation.nix`).
|
||||
# But GHC cannot currently produce outputs that are ready for `-pie` linking.
|
||||
# Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
|
||||
# See:
|
||||
# * https://github.com/NixOS/nixpkgs/issues/129247
|
||||
# * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
|
||||
++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
# big-parallel allows us to build with more than 2 cores on
|
||||
# Hydra which already warrants a significant speedup
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# This is used by the haskell builder to query
|
||||
# the presence of the haddock program.
|
||||
hasHaddock = enableHaddockProgram;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [
|
||||
guibou
|
||||
] ++ lib.teams.haskell.members;
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
370
pkgs/development/compilers/ghc/9.4.3.nix
Normal file
370
pkgs/development/compilers/ghc/9.4.3.nix
Normal file
|
@ -0,0 +1,370 @@
|
|||
# DO NOT port this expression to hadrian. It is not possible to build a GHC
|
||||
# cross compiler with 9.4.* and hadrian.
|
||||
{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
||||
, xattr, autoSignDarwinBinariesHook
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
, glibcLocales ? null
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !(stdenv.targetPlatform.isx86
|
||||
|| stdenv.targetPlatform.isPower
|
||||
|| stdenv.targetPlatform.isSparc
|
||||
|| (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
|
||||
, # 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.
|
||||
buildTargetLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slightly slower native
|
||||
# bignum backend instead of the faster but GPLed gmp backend.
|
||||
enableNativeBignum ? !(lib.meta.availableOn stdenv.hostPlatform gmp)
|
||||
, gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
# aarch64 outputs otherwise exceed 2GB limit
|
||||
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic
|
||||
|
||||
, # Whether to build terminfo.
|
||||
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
||||
|
||||
, # What flavour to build. An empty string indicates no
|
||||
# specific flavour and falls back to ghc default values.
|
||||
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||
|
||||
, # Whether to build sphinx documentation.
|
||||
enableDocs ? (
|
||||
# Docs disabled for musl and cross because it's a large task to keep
|
||||
# all `sphinx` dependencies building in those environments.
|
||||
# `sphinx` pulls in among others:
|
||||
# Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM.
|
||||
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||
&& !stdenv.hostPlatform.isMusl
|
||||
)
|
||||
|
||||
, enableHaddockProgram ?
|
||||
# Disabled for cross; see note [HADDOCK_DOCS].
|
||||
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||
|
||||
, # 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.isiOS
|
||||
}:
|
||||
|
||||
assert !enableNativeBignum -> gmp != null;
|
||||
|
||||
# Cross cannot currently build the `haddock` program for silly reasons,
|
||||
# see note [HADDOCK_DOCS].
|
||||
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' +
|
||||
# Note [HADDOCK_DOCS]:
|
||||
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
|
||||
# program is built (which we generally always want to have a complete GHC install)
|
||||
# and whether it is run on the GHC sources to generate hyperlinked source code
|
||||
# (which is impossible for cross-compilation); see:
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/20077
|
||||
# This implies that currently a cross-compiled GHC will never have a `haddock`
|
||||
# program, so it can never generate haddocks for any packages.
|
||||
# If this is solved in the future, we'd like to unconditionally
|
||||
# build the haddock program (removing the `enableHaddockProgram` option).
|
||||
''
|
||||
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
|
||||
# Build haddocks for boot packages with hyperlinking
|
||||
EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
|
||||
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' +
|
||||
# -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
|
||||
# makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
|
||||
# This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell
|
||||
lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC -fexternal-dynamic-refs
|
||||
GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableNativeBignum) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
|
||||
# GHC doesn't seem to have {LLC,OPT}_HOST
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# Sometimes we have to dispatch between the bintools wrapper and the unwrapped
|
||||
# derivation for certain tools depending on the platform.
|
||||
bintoolsFor = {
|
||||
# GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
|
||||
# part of the bintools wrapper (due to codesigning requirements), but not on
|
||||
# x86_64-darwin.
|
||||
install_name_tool =
|
||||
if stdenv.targetPlatform.isAarch64
|
||||
then targetCC.bintools
|
||||
else targetCC.bintools.bintools;
|
||||
# Same goes for strip.
|
||||
strip =
|
||||
# TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
|
||||
if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
|
||||
then targetCC.bintools
|
||||
else targetCC.bintools.bintools;
|
||||
};
|
||||
|
||||
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
|
||||
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.linker == "gold" ||
|
||||
(targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
|
||||
|
||||
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
|
||||
variantSuffix = lib.concatStrings [
|
||||
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
|
||||
(lib.optionalString enableNativeBignum "-native-bignum")
|
||||
];
|
||||
|
||||
in
|
||||
|
||||
# C compiler, bintools and LLVM are used at build time, but will also leak into
|
||||
# the resulting GHC's settings file and used at runtime. This means that we are
|
||||
# currently only able to build GHC if hostPlatform == buildPlatform.
|
||||
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
|
||||
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
|
||||
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "9.4.3";
|
||||
pname = "${targetPrefix}ghc${variantSuffix}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "eaf63949536ede50ee39179f2299d5094eb9152d87cc6fb2175006bc98e8905a";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC needs the locale configured during the Haddock phase.
|
||||
LANG = "en_US.UTF-8";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
# TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
|
||||
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}c++"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
||||
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
||||
export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
|
||||
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
|
||||
export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
|
||||
export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
|
||||
'' + lib.optionalString useLLVM ''
|
||||
export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
|
||||
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
|
||||
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
|
||||
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
|
||||
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
|
||||
'' + ''
|
||||
|
||||
echo -n "${buildMK}" > mk/build.mk
|
||||
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") ''
|
||||
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
|
||||
# GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7
|
||||
export XATTR=${lib.getBin xattr}/bin/xattr
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||
'' + lib.optionalString targetPlatform.isMusl ''
|
||||
echo "patching llvm-targets for musl targets..."
|
||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||
echo "(go go gadget sed)"
|
||||
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
||||
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
||||
grep linux-musl llvm-targets | sed 's/^/ /'
|
||||
|
||||
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
||||
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
||||
for x in configure aclocal.m4; do
|
||||
substituteInPlace $x \
|
||||
--replace '*-android*|*-gnueabi*)' \
|
||||
'*-android*|*-gnueabi*|*-musleabi*)'
|
||||
done
|
||||
''
|
||||
# HACK: allow bootstrapping with GHC 8.10 which works fine, as we don't have
|
||||
# binary 9.0 packaged. Bootstrapping with 9.2 is broken without hadrian.
|
||||
+ ''
|
||||
substituteInPlace configure --replace \
|
||||
'MinBootGhcVersion="9.0"' \
|
||||
'MinBootGhcVersion="8.10"'
|
||||
'';
|
||||
|
||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||
configurePlatforms = [ "build" "host" ]
|
||||
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||
|
||||
# `--with` flags for libraries needed for RTS linker
|
||||
configureFlags = [
|
||||
"--datadir=$doc/share/doc/ghc"
|
||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||
] ++ lib.optionals (libffi != null) [
|
||||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
"--with-iconv-includes=${libiconv}/include"
|
||||
"--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||
"--disable-large-address-space"
|
||||
];
|
||||
|
||||
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
||||
strictDeps = true;
|
||||
|
||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
||||
dontAddExtraLibs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl autoconf automake m4 python3
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
|
||||
autoSignDarwinBinariesHook
|
||||
] ++ lib.optionals enableDocs [
|
||||
sphinx
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||
|
||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||
# that in turn causes GHCi to abort
|
||||
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
hardeningDisable =
|
||||
[ "format" ]
|
||||
# In nixpkgs, musl based builds currently enable `pie` hardening by default
|
||||
# (see `defaultHardeningFlags` in `make-derivation.nix`).
|
||||
# But GHC cannot currently produce outputs that are ready for `-pie` linking.
|
||||
# Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
|
||||
# See:
|
||||
# * https://github.com/NixOS/nixpkgs/issues/129247
|
||||
# * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
|
||||
++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
# big-parallel allows us to build with more than 2 cores on
|
||||
# Hydra which already warrants a significant speedup
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# This is used by the haskell builder to query
|
||||
# the presence of the haddock program.
|
||||
hasHaddock = enableHaddockProgram;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [
|
||||
guibou
|
||||
] ++ lib.teams.haskell.members;
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
|
@ -158,7 +158,7 @@ assert !enableNativeBignum -> gmp != null;
|
|||
|
||||
assert stdenv.hostPlatform == stdenv.targetPlatform || throw ''
|
||||
hadrian doesn't support building an installable GHC cross-compiler at the moment.
|
||||
Consider using GHC 9.4.2 or lower which support this via the make build system.
|
||||
Consider using GHC 9.4 or lower which support this via the make build system.
|
||||
See also: https://gitlab.haskell.org/ghc/ghc/-/issues/22090
|
||||
'';
|
||||
|
||||
|
|
|
@ -106,7 +106,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 = "09ksaaf5kxpskq2hmi1ad35k15cnhn86j795iw6nk86gbvx5hrap";
|
||||
sha256 = "14391vj0awvkpsd32kanmc85yic5mg4pxmjhiv7wjxy7ga13wfqw";
|
||||
# delete android and Android directories which cause issues on
|
||||
# darwin (case insensitive directory). Since we don't need them
|
||||
# during the build process, we can delete it to prevent a hash
|
||||
|
@ -123,6 +123,10 @@ self: super: {
|
|||
passthru.shellPath = "/bin/git-annex-shell";
|
||||
}) super.git-annex;
|
||||
|
||||
# Too strict bounds on servant
|
||||
# Pending a hackage revision: https://github.com/berberman/arch-web/commit/5d08afee5b25e644f9e2e2b95380a5d4f4aa81ea#commitcomment-89230555
|
||||
arch-web = doJailbreak super.arch-web;
|
||||
|
||||
# Fix test trying to access /home directory
|
||||
shell-conduit = overrideCabal (drv: {
|
||||
postPatch = "sed -i s/home/tmp/ test/Spec.hs";
|
||||
|
@ -1577,6 +1581,10 @@ self: super: {
|
|||
ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
|
||||
});
|
||||
|
||||
hledger_1_27_1 = doDistribute (super.hledger_1_27_1.override {
|
||||
hledger-lib = self.hledger-lib_1_27_1;
|
||||
});
|
||||
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.overrideScope (lself: lsuper: {
|
||||
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
|
||||
hlint = enableCabalFlag "ghc-lib" lself.hlint_3_4_1;
|
||||
|
@ -1715,7 +1723,17 @@ self: super: {
|
|||
# waiting for aeson bump
|
||||
servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core;
|
||||
|
||||
hercules-ci-agent = self.generateOptparseApplicativeCompletions [ "hercules-ci-agent" ] super.hercules-ci-agent;
|
||||
hercules-ci-agent = lib.pipe super.hercules-ci-agent [
|
||||
(appendPatches [
|
||||
# https://github.com/hercules-ci/hercules-ci-agent/pull/446
|
||||
(fetchpatch {
|
||||
url = "https://github.com/hercules-ci/hercules-ci-agent/commit/99afac77ddb84122a5321494a08e6fe2e95548a1.patch";
|
||||
sha256 = "sha256-0dtmNL1rqzeXvXWinfANc57a5LIM3uNnhR3A+p8mH0A=";
|
||||
stripLen = 1;
|
||||
})
|
||||
])
|
||||
(self.generateOptparseApplicativeCompletions [ "hercules-ci-agent" ])
|
||||
];
|
||||
|
||||
# Test suite doesn't compile with aeson 2.0
|
||||
# https://github.com/hercules-ci/hercules-ci-agent/pull/387
|
||||
|
@ -2377,17 +2395,6 @@ self: super: {
|
|||
# https://github.com/kuribas/mfsolve/issues/8
|
||||
mfsolve = dontCheck super.mfsolve;
|
||||
|
||||
# GHC 9 support https://github.com/lambdabot/dice/pull/2
|
||||
dice = appendPatch (fetchpatch {
|
||||
name = "dice-ghc9.patch";
|
||||
url = "https://github.com/lambdabot/dice/commit/80d6fd443cb17b21d91b725f994ece6e8274e0a0.patch";
|
||||
excludes = [ ".gitignore" ];
|
||||
sha256 = "sha256-MtS1n7v5D6MRWWzzTyKl3Lqd/NhD1bV+g80wnhZ3P/Y=";
|
||||
}) (overrideCabal (drv: {
|
||||
revision = null;
|
||||
editedCabalFile = null;
|
||||
}) super.dice);
|
||||
|
||||
# GHC 9 support https://github.com/lambdabot/lambdabot/pull/204
|
||||
lambdabot-core = appendPatch ./patches/lambdabot-core-ghc9.patch (overrideCabal (drv: {
|
||||
revision = null;
|
||||
|
@ -2559,9 +2566,6 @@ self: super: {
|
|||
testTarget = "regex-tdfa-unittest";
|
||||
} super.regex-tdfa;
|
||||
|
||||
# Missing test files https://github.com/qrilka/xlsx/issues/165
|
||||
xlsx = dontCheck super.xlsx;
|
||||
|
||||
# Missing test files https://github.com/kephas/xdg-basedir-compliant/issues/1
|
||||
xdg-basedir-compliant = dontCheck super.xdg-basedir-compliant;
|
||||
|
||||
|
@ -2635,4 +2639,13 @@ in {
|
|||
|
||||
# 2022-10-04: Needs newer tasty-dejafu than (currently) in stackage
|
||||
rec-def = super.rec-def.override { tasty-dejafu = self.tasty-dejafu_2_1_0_0; };
|
||||
|
||||
# 2022-11-05: https://github.com/ysangkok/haskell-tzdata/issues/3
|
||||
tzdata = dontCheck super.tzdata;
|
||||
|
||||
# 2022-11-04: The situation around heist-emanote is quite terrible.
|
||||
# It‘s simply a heist fork because heist is unmaintained.
|
||||
# Upstream jailbreak is unreleased: https://github.com/srid/heist/commit/988692ea850b3cbe966c7dc4dd26ba1d49647706
|
||||
heist-emanote = doJailbreak (dontCheck super.heist-emanote);
|
||||
|
||||
})
|
||||
|
|
|
@ -61,13 +61,6 @@ in {
|
|||
# 0.30 introduced support for GHC 9.2.
|
||||
cryptonite = doDistribute self.cryptonite_0_30;
|
||||
|
||||
cabal2nix =
|
||||
# cabal2nix depends on foundation, which is broken on aarch64-linux.
|
||||
# https://github.com/haskell-foundation/foundation/issues/571
|
||||
overrideCabal
|
||||
(drv: { badPlatforms = [ "aarch64-linux" ]; })
|
||||
super.cabal2nix;
|
||||
|
||||
doctest = self.doctest_0_20_1;
|
||||
# consequences of doctest breakage follow:
|
||||
|
||||
|
@ -78,8 +71,6 @@ in {
|
|||
lucid = jailbreakForCurrentVersion super.lucid "2.11.1";
|
||||
invariant = jailbreakForCurrentVersion super.invariant "0.5.6";
|
||||
implicit-hie-cradle = jailbreakForCurrentVersion super.implicit-hie-cradle "0.5.0.0";
|
||||
# https://github.com/co-log/co-log-core/pull/22#issuecomment-1294040208
|
||||
co-log-core = jailbreakForCurrentVersion super.co-log-core "0.3.1.0";
|
||||
|
||||
haskell-src-meta = doJailbreak super.haskell-src-meta;
|
||||
|
||||
|
@ -206,6 +197,11 @@ in {
|
|||
# 2022-10-06: https://gitlab.haskell.org/ghc/ghc/-/issues/22260
|
||||
ghc-check = dontHaddock super.ghc-check;
|
||||
|
||||
# 2022-11-06: Override override from common, because Cabal-syntax is included since ghc 9.4.
|
||||
implicit-hie = super.implicit-hie.override {
|
||||
Cabal-syntax = null;
|
||||
};
|
||||
|
||||
# 2022-10-06: plugins disabled for hls 1.8.0.0 based on
|
||||
# https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html#current-plugin-support-tiers
|
||||
haskell-language-server = super.haskell-language-server.override {
|
||||
|
|
|
@ -2137,7 +2137,6 @@ broken-packages:
|
|||
- heidi
|
||||
- hein
|
||||
- heist-async
|
||||
- heist-emanote
|
||||
- helisp
|
||||
- helix
|
||||
- hell
|
||||
|
@ -2627,6 +2626,7 @@ broken-packages:
|
|||
- imapget
|
||||
- imgur
|
||||
- imj-prelude
|
||||
- imm
|
||||
- immortal-worker
|
||||
- imperative-edsl
|
||||
- imperative-edsl-vhdl
|
||||
|
@ -3777,7 +3777,6 @@ broken-packages:
|
|||
- pasta
|
||||
- pastis
|
||||
- pasty
|
||||
- patat
|
||||
- patches-vector
|
||||
- Pathfinder
|
||||
- pathfindingcore
|
||||
|
@ -3955,6 +3954,7 @@ broken-packages:
|
|||
- polysemy-check
|
||||
- polysemy-keyed-state
|
||||
- polysemy-kvstore-jsonfile
|
||||
- polysemy-log-co
|
||||
- polysemy-managed
|
||||
- polysemy-mocks
|
||||
- polysemy-readline
|
||||
|
@ -5027,7 +5027,6 @@ broken-packages:
|
|||
- tagsoup-selection
|
||||
- tai
|
||||
- tai64
|
||||
- tailwind
|
||||
- tak
|
||||
- takahashi
|
||||
- Takusen
|
||||
|
@ -5080,7 +5079,9 @@ broken-packages:
|
|||
- tensorflow
|
||||
- tensorflow-opgen
|
||||
- tensor-safe
|
||||
- termbox-banana
|
||||
- termbox-bindings
|
||||
- termbox-tea
|
||||
- termination-combinators
|
||||
- termplot
|
||||
- term-rewriting
|
||||
|
@ -5335,6 +5336,7 @@ broken-packages:
|
|||
- type-int
|
||||
- type-interpreter
|
||||
- type-level-bst
|
||||
- type-level-kv-list-esqueleto
|
||||
- type-level-natural-number-induction
|
||||
- type-level-natural-number-operations
|
||||
- typelevel-tensor
|
||||
|
|
|
@ -290,6 +290,7 @@ package-maintainers:
|
|||
maralorn:
|
||||
- cabal-fmt
|
||||
- ema
|
||||
- emanote
|
||||
- generic-optics
|
||||
- ghcid
|
||||
- ghcide
|
||||
|
@ -454,6 +455,7 @@ unsupported-platforms:
|
|||
FTGL: [ platforms.darwin ]
|
||||
fuzzytime: [ platforms.darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
|
||||
ghcjs-dom-hello: [ platforms.darwin ]
|
||||
ghc-gc-hook: [ platforms.darwin ] # requires C11 threads which Apple doesn't support
|
||||
gi-adwaita: [ platforms.darwin ]
|
||||
gi-dbusmenugtk3: [ platforms.darwin ]
|
||||
gi-dbusmenu: [ platforms.darwin ]
|
||||
|
@ -520,6 +522,7 @@ unsupported-platforms:
|
|||
sensei: [ platforms.darwin ]
|
||||
synthesizer-alsa: [ platforms.darwin ]
|
||||
taffybar: [ platforms.darwin ]
|
||||
emanote: [ x86_64-darwin ] # Depends on stork which is broken on macOS sdk < 10.14
|
||||
termonad: [ platforms.darwin ]
|
||||
tokyotyrant-haskell: [ platforms.darwin ]
|
||||
Unixutils-shadow: [ platforms.darwin ]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Stackage LTS 19.30
|
||||
# Stackage LTS 19.31
|
||||
# This file is auto-generated by
|
||||
# maintainers/scripts/haskell/update-stackage.sh
|
||||
default-package-overrides:
|
||||
|
@ -359,7 +359,7 @@ default-package-overrides:
|
|||
- code-conjure ==0.5.2
|
||||
- code-page ==0.2.1
|
||||
- coercible-utils ==0.1.0
|
||||
- cointracking-imports ==0.1.0.1
|
||||
- cointracking-imports ==0.1.0.2
|
||||
- collect-errors ==0.1.5.0
|
||||
- colonnade ==1.2.0.2
|
||||
- Color ==0.3.3
|
||||
|
@ -729,7 +729,7 @@ default-package-overrides:
|
|||
- fast-builder ==0.1.3.0
|
||||
- fast-logger ==3.1.1
|
||||
- fast-math ==1.0.2
|
||||
- fastmemo ==0.1.0.1
|
||||
- fastmemo ==0.1.1
|
||||
- fclabels ==2.0.5.1
|
||||
- feature-flags ==0.1.0.1
|
||||
- fedora-dists ==2.0.0
|
||||
|
@ -914,7 +914,7 @@ default-package-overrides:
|
|||
- gi-javascriptcore ==4.0.25
|
||||
- ginger ==0.10.4.0
|
||||
- gi-pango ==1.0.27
|
||||
- githash ==0.1.6.2
|
||||
- githash ==0.1.6.3
|
||||
- github ==0.27
|
||||
- github-release ==2.0.0.2
|
||||
- github-rest ==1.1.2
|
||||
|
@ -946,7 +946,7 @@ default-package-overrides:
|
|||
- graph-core ==0.3.0.0
|
||||
- graphite ==0.10.0.1
|
||||
- graphs ==0.7.2
|
||||
- graphula ==2.0.2.1
|
||||
- graphula ==2.0.2.2
|
||||
- graphviz ==2999.20.1.0
|
||||
- graph-wrapper ==0.2.6.0
|
||||
- gravatar ==0.8.1
|
||||
|
@ -992,8 +992,8 @@ default-package-overrides:
|
|||
- hashtables ==1.2.4.2
|
||||
- haskeline ==0.8.2
|
||||
- haskell-awk ==1.2.0.1
|
||||
- haskell-gi ==0.26.1
|
||||
- haskell-gi-base ==0.26.2
|
||||
- haskell-gi ==0.26.2
|
||||
- haskell-gi-base ==0.26.3
|
||||
- haskell-gi-overloading ==1.0
|
||||
- haskell-lexer ==1.1
|
||||
- haskell-lsp-types ==0.24.0.0
|
||||
|
@ -1221,7 +1221,7 @@ default-package-overrides:
|
|||
- hworker ==0.1.0.1
|
||||
- hw-packed-vector ==0.2.1.1
|
||||
- hw-parser ==0.1.1.0
|
||||
- hw-prim ==0.6.3.1
|
||||
- hw-prim ==0.6.3.2
|
||||
- hw-rankselect ==0.13.4.1
|
||||
- hw-rankselect-base ==0.3.4.1
|
||||
- hw-simd ==0.1.2.1
|
||||
|
@ -1548,7 +1548,7 @@ default-package-overrides:
|
|||
- mock-time ==0.1.0
|
||||
- mod ==0.1.2.2
|
||||
- model ==0.5
|
||||
- modern-uri ==0.3.5.0
|
||||
- modern-uri ==0.3.6.0
|
||||
- modular ==0.1.0.8
|
||||
- monad-chronicle ==1.0.1
|
||||
- monad-control ==1.0.3.1
|
||||
|
@ -1578,7 +1578,7 @@ default-package-overrides:
|
|||
- monad-st ==0.2.4.1
|
||||
- monads-tf ==0.1.0.3
|
||||
- monad-time ==0.3.1.0
|
||||
- mongoDB ==2.7.1.1
|
||||
- mongoDB ==2.7.1.2
|
||||
- monoidal-containers ==0.6.3.0
|
||||
- monoid-extras ==0.6.1
|
||||
- monoid-subclasses ==1.1.3
|
||||
|
@ -1878,13 +1878,13 @@ default-package-overrides:
|
|||
- postgresql-orm ==0.5.1
|
||||
- postgresql-query ==3.9.0
|
||||
- postgresql-schema ==0.1.14
|
||||
- postgresql-simple ==0.6.4
|
||||
- postgresql-simple ==0.6.5
|
||||
- postgresql-simple-url ==0.2.1.0
|
||||
- postgresql-syntax ==0.4.1
|
||||
- postgresql-typed ==0.6.2.1
|
||||
- post-mess-age ==0.2.1.0
|
||||
- pptable ==0.3.0.0
|
||||
- pqueue ==1.4.2.0
|
||||
- pqueue ==1.4.3.0
|
||||
- prefix-units ==0.2.0
|
||||
- prelude-compat ==0.0.0.2
|
||||
- prelude-safeenum ==0.1.1.3
|
||||
|
@ -2088,7 +2088,7 @@ default-package-overrides:
|
|||
- rope-utf16-splay ==0.3.2.0
|
||||
- rosezipper ==0.2
|
||||
- rot13 ==0.2.0.1
|
||||
- rpmbuild-order ==0.4.9
|
||||
- rpmbuild-order ==0.4.10
|
||||
- rpm-nvr ==0.1.2
|
||||
- rp-tree ==0.7.1
|
||||
- RSA ==2.4.1
|
||||
|
@ -2121,8 +2121,8 @@ default-package-overrides:
|
|||
- say ==0.1.0.1
|
||||
- sbp ==4.1.6
|
||||
- sbv ==8.17
|
||||
- scalpel ==0.6.2
|
||||
- scalpel-core ==0.6.2
|
||||
- scalpel ==0.6.2.1
|
||||
- scalpel-core ==0.6.2.1
|
||||
- scanf ==0.1.0.0
|
||||
- scanner ==0.3.1
|
||||
- scheduler ==2.0.0.1
|
||||
|
@ -2156,7 +2156,7 @@ default-package-overrides:
|
|||
- sequenceTools ==1.5.2
|
||||
- serf ==0.1.1.0
|
||||
- serialise ==0.2.6.0
|
||||
- servant ==0.19
|
||||
- servant ==0.19.1
|
||||
- servant-auth ==0.4.1.0
|
||||
- servant-auth-client ==0.4.1.0
|
||||
- servant-auth-docs ==0.2.10.0
|
||||
|
@ -2184,7 +2184,7 @@ default-package-overrides:
|
|||
- servant-pipes ==0.15.3
|
||||
- servant-rawm ==1.0.0.0
|
||||
- servant-ruby ==0.9.0.0
|
||||
- servant-server ==0.19.1
|
||||
- servant-server ==0.19.2
|
||||
- servant-static-th ==1.0.0.0
|
||||
- servant-subscriber ==0.7.0.0
|
||||
- servant-swagger ==1.1.11
|
||||
|
@ -2342,7 +2342,7 @@ default-package-overrides:
|
|||
- streaming-attoparsec ==1.0.0.1
|
||||
- streaming-bytestring ==0.2.4
|
||||
- streaming-cassava ==0.2.0.0
|
||||
- streaming-commons ==0.2.2.4
|
||||
- streaming-commons ==0.2.2.5
|
||||
- streamly ==0.8.1.1
|
||||
- streamly-bytestring ==0.1.4
|
||||
- streams ==3.3
|
||||
|
@ -2379,7 +2379,7 @@ default-package-overrides:
|
|||
- svg-builder ==0.1.1
|
||||
- SVGFonts ==1.8.0.1
|
||||
- svg-tree ==0.6.2.4
|
||||
- swagger2 ==2.8.5
|
||||
- swagger2 ==2.8.6
|
||||
- swish ==0.10.2.0
|
||||
- syb ==0.7.2.2
|
||||
- sydtest-discover ==0.0.0.2
|
||||
|
@ -2595,7 +2595,7 @@ default-package-overrides:
|
|||
- type-spec ==0.4.0.0
|
||||
- typography-geometry ==1.0.1.0
|
||||
- tz ==0.1.3.6
|
||||
- tzdata ==0.2.20221011.0
|
||||
- tzdata ==0.2.20221028.0
|
||||
- ua-parser ==0.7.7.0
|
||||
- uglymemo ==0.1.0.1
|
||||
- unagi-chan ==0.4.1.4
|
||||
|
@ -2634,7 +2634,7 @@ default-package-overrides:
|
|||
- unix-bytestring ==0.3.7.8
|
||||
- unix-compat ==0.5.4
|
||||
- unix-time ==0.4.8
|
||||
- unliftio ==0.2.22.0
|
||||
- unliftio ==0.2.23.0
|
||||
- unliftio-core ==0.2.0.1
|
||||
- unliftio-path ==0.0.2.0
|
||||
- unliftio-pool ==0.2.2.0
|
||||
|
|
|
@ -2041,7 +2041,6 @@ dont-distribute-packages:
|
|||
- hedgehog-gen-json
|
||||
- hedis-pile
|
||||
- heist-aeson
|
||||
- heist-extra
|
||||
- helic
|
||||
- helics
|
||||
- helics-wai
|
||||
|
@ -2958,6 +2957,7 @@ dont-distribute-packages:
|
|||
- persistent-audit
|
||||
- persistent-hssqlppp
|
||||
- persistent-map
|
||||
- persistent-mtl_0_5_0_0
|
||||
- persistent-mysql-haskell
|
||||
- persistent-relational-record
|
||||
- persona-idp
|
||||
|
@ -3484,7 +3484,7 @@ dont-distribute-packages:
|
|||
- skeletons
|
||||
- sketch-frp-copilot
|
||||
- skylark-client
|
||||
- skylighting_0_13_1
|
||||
- skylighting_0_13_1_1
|
||||
- slate
|
||||
- slidemews
|
||||
- slip32
|
||||
|
@ -3584,6 +3584,7 @@ dont-distribute-packages:
|
|||
- stackage-setup
|
||||
- stackage-upload
|
||||
- stackage2nix
|
||||
- stackctl
|
||||
- stan
|
||||
- starrover2
|
||||
- stateful-mtl
|
||||
|
|
|
@ -1102,6 +1102,20 @@ self: super: builtins.intersectAttrs super {
|
|||
broken = false;
|
||||
}) super.cabal-install;
|
||||
|
||||
tailwind = addBuildDepend
|
||||
# Overrides for tailwindcss copied from:
|
||||
# https://github.com/EmaApps/emanote/blob/master/nix/tailwind.nix
|
||||
(pkgs.nodePackages.tailwindcss.overrideAttrs (oa: {
|
||||
plugins = [
|
||||
pkgs.nodePackages."@tailwindcss/aspect-ratio"
|
||||
pkgs.nodePackages."@tailwindcss/forms"
|
||||
pkgs.nodePackages."@tailwindcss/line-clamp"
|
||||
pkgs.nodePackages."@tailwindcss/typography"
|
||||
];
|
||||
})) super.tailwind;
|
||||
|
||||
emanote = addBuildDepend pkgs.stork super.emanote;
|
||||
|
||||
keid-render-basic = addBuildTool pkgs.glslang super.keid-render-basic;
|
||||
|
||||
# ghcide-bench tests need network
|
||||
|
|
1090
pkgs/development/haskell-modules/hackage-packages.nix
generated
1090
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -18692,6 +18692,8 @@ with pkgs;
|
|||
|
||||
elfio = callPackage ../development/libraries/elfio { };
|
||||
|
||||
emanote = haskell.lib.compose.justStaticExecutables haskellPackages.emanote;
|
||||
|
||||
enchant1 = callPackage ../development/libraries/enchant/1.x.nix { };
|
||||
|
||||
enchant2 = callPackage ../development/libraries/enchant/2.x.nix { };
|
||||
|
|
|
@ -17,8 +17,10 @@ let
|
|||
"ghc902"
|
||||
"ghc90"
|
||||
"ghc924"
|
||||
"ghc925"
|
||||
"ghc92"
|
||||
"ghc942"
|
||||
"ghc943"
|
||||
"ghc94"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
@ -28,8 +30,10 @@ let
|
|||
"ghc902"
|
||||
"ghc92"
|
||||
"ghc924"
|
||||
"ghc925"
|
||||
"ghc94"
|
||||
"ghc942"
|
||||
"ghc943"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
|
@ -164,6 +168,23 @@ in {
|
|||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc925 = callPackage ../development/compilers/ghc/9.2.5.nix {
|
||||
bootPkgs =
|
||||
# aarch64 ghc8107Binary exceeds max output size on hydra
|
||||
if stdenv.hostPlatform.isAarch then
|
||||
packages.ghc8107BinaryMinimal
|
||||
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
|
||||
packages.ghc810
|
||||
else
|
||||
packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
# Need to use apple's patched xattr until
|
||||
# https://github.com/xattr/xattr/issues/44 and
|
||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc92 = ghc924;
|
||||
ghc942 = callPackage ../development/compilers/ghc/9.4.2.nix {
|
||||
bootPkgs =
|
||||
|
@ -189,10 +210,34 @@ in {
|
|||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc943 = callPackage ../development/compilers/ghc/9.4.3.nix {
|
||||
bootPkgs =
|
||||
# Building with 9.2 is broken due to
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/21914
|
||||
# Use 8.10 as a workaround where possible to keep bootstrap path short.
|
||||
|
||||
# On ARM text won't build with GHC 8.10.*
|
||||
if stdenv.hostPlatform.isAarch then
|
||||
# TODO(@sternenseemann): package bindist
|
||||
packages.ghc902
|
||||
# No suitable bindists for powerpc64le
|
||||
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
|
||||
packages.ghc902
|
||||
else
|
||||
packages.ghc8107Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
# Need to use apple's patched xattr until
|
||||
# https://github.com/xattr/xattr/issues/44 and
|
||||
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||
# Support range >= 10 && < 14
|
||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc94 = ghc942;
|
||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||
bootPkgs =
|
||||
# For GHC 9.2.3 and 9.2.4 no armv7l bindists are available.
|
||||
# For GHC 9.2 no armv7l bindists are available.
|
||||
if stdenv.hostPlatform.isAarch32 then
|
||||
packages.ghc924
|
||||
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
|
||||
|
@ -310,13 +355,23 @@ in {
|
|||
ghc = bh.compiler.ghc924;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
||||
};
|
||||
ghc925 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc925;
|
||||
ghc = bh.compiler.ghc925;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
||||
};
|
||||
ghc92 = ghc924;
|
||||
ghc942 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc942;
|
||||
ghc = bh.compiler.ghc942;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
|
||||
};
|
||||
ghc94= ghc942;
|
||||
ghc943 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc943;
|
||||
ghc = bh.compiler.ghc943;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
|
||||
};
|
||||
ghc94 = ghc942;
|
||||
ghcHEAD = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghcHEAD;
|
||||
ghc = bh.compiler.ghcHEAD;
|
||||
|
|
|
@ -53,7 +53,9 @@ let
|
|||
ghc8107
|
||||
ghc902
|
||||
ghc924
|
||||
ghc925
|
||||
ghc942
|
||||
ghc943
|
||||
];
|
||||
|
||||
# packagePlatforms applied to `haskell.packages.*`
|
||||
|
@ -178,6 +180,7 @@ let
|
|||
dhall-nix
|
||||
diagrams-builder
|
||||
elm2nix
|
||||
emanote
|
||||
fffuu
|
||||
futhark
|
||||
ghcid
|
||||
|
@ -334,7 +337,7 @@ let
|
|||
};
|
||||
|
||||
haskell.packages.native-bignum.ghc924 = {
|
||||
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc92)
|
||||
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc924)
|
||||
hello
|
||||
lens
|
||||
random
|
||||
|
@ -366,6 +369,7 @@ let
|
|||
compilerNames.ghc8107
|
||||
compilerNames.ghc902
|
||||
compilerNames.ghc924
|
||||
compilerNames.ghc925
|
||||
# https://github.com/ndmitchell/hlint/issues/1413
|
||||
];
|
||||
hpack = released;
|
||||
|
@ -393,9 +397,11 @@ let
|
|||
compilerNames.ghc8107
|
||||
compilerNames.ghc902
|
||||
compilerNames.ghc924
|
||||
compilerNames.ghc925
|
||||
];
|
||||
purescript = [
|
||||
compilerNames.ghc924
|
||||
compilerNames.ghc925
|
||||
];
|
||||
purescript-cst = [
|
||||
compilerNames.ghc8107
|
||||
|
@ -470,10 +476,12 @@ let
|
|||
jobs.pkgsMusl.haskell.compiler.ghc8107
|
||||
jobs.pkgsMusl.haskell.compiler.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.ghc924
|
||||
jobs.pkgsMusl.haskell.compiler.ghc925
|
||||
jobs.pkgsMusl.haskell.compiler.ghcHEAD
|
||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc924
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc925
|
||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
|
||||
];
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue