mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
Merge pull request #208126 from NixOS/haskell-updates
haskellPackages: update stackage and hackage
This commit is contained in:
commit
393bdd70e2
|
@ -62,10 +62,12 @@ sed -r \
|
|||
-e '/ lsp-types /d' \
|
||||
-e '/ lsp-test /d' \
|
||||
-e '/ hie-bios /d' \
|
||||
-e '/ ShellCheck /d' \
|
||||
< "${tmpfile_new}" >> $stackage_config
|
||||
# Explanations:
|
||||
# cabal2nix, distribution-nixpkgs, jailbreak-cabal, language-nix: These are our packages and we know what we are doing.
|
||||
# lsp, lsp-types, lsp-test, hie-bios: These are tightly coupled to hls which is not in stackage. They have no rdeps in stackage.
|
||||
# ShellCheck: latest version of command-line dev tool.
|
||||
|
||||
if [[ "${1:-}" == "--do-commit" ]]; then
|
||||
git add $stackage_config
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"commit": "b88b3496b1b3beb0c706db8a39c0da3396d96f0b",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/b88b3496b1b3beb0c706db8a39c0da3396d96f0b.tar.gz",
|
||||
"sha256": "0gs807cbyi6zyk9bvg5d3wx16575pmgv4j3m8hbz57aa5i71r0nv",
|
||||
"msg": "Update from Hackage at 2022-12-24T13:11:25Z"
|
||||
"commit": "208dc93f04d6fb2dbc01e11434c7dcea50a8a9e6",
|
||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/208dc93f04d6fb2dbc01e11434c7dcea50a8a9e6.tar.gz",
|
||||
"sha256": "19pgh69fj3p1glqyjikpsvn5j4bax6yw5qxf9qaaap19hksgn85p",
|
||||
"msg": "Update from Hackage at 2022-12-28T16:35:05Z"
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
|
||||
{ lib, fetchFromGitHub, fetchpatch, makeWrapper, clang, haskellPackages }:
|
||||
|
||||
haskellPackages.mkDerivation rec {
|
||||
pname = "carp";
|
||||
|
@ -11,6 +11,16 @@ haskellPackages.mkDerivation rec {
|
|||
sha256 = "sha256-B7SBzjegFzL2gGivIJE6BZcLD3f0Bsh8yndjScG2TZI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Compat with GHC 9.2 / Stackage LTS 20, can be dropped at the next release
|
||||
# https://github.com/carp-lang/Carp/pull/1449
|
||||
(fetchpatch {
|
||||
name = "carp-lts-20.patch";
|
||||
url = "https://github.com/carp-lang/Carp/commit/25f50c92a57cc91b6cb4ec48df658439f936b641.patch";
|
||||
sha256 = "14yjv0hcvw1qyjmrhksrj6chac3n14d1f1gcaxldfa05llrbfqk0";
|
||||
})
|
||||
];
|
||||
|
||||
# -Werror breaks build with GHC >= 9.0
|
||||
# https://github.com/carp-lang/Carp/issues/1386
|
||||
postPatch = ''
|
||||
|
@ -49,8 +59,4 @@ haskellPackages.mkDerivation rec {
|
|||
|
||||
# Windows not (yet) supported.
|
||||
platforms = with lib.platforms; unix ++ darwin;
|
||||
|
||||
# doesn't build on ghc92
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
broken = true;
|
||||
}
|
||||
|
|
370
pkgs/development/compilers/ghc/9.4.4.nix
Normal file
370
pkgs/development/compilers/ghc/9.4.4.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.4";
|
||||
pname = "${targetPrefix}ghc${variantSuffix}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "e8cef25a6ded1531cda7a90488d0cfb6d780657d16636daa59430be030cd67e2";
|
||||
};
|
||||
|
||||
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;
|
||||
})
|
|
@ -13,25 +13,7 @@ in self: super: {
|
|||
})
|
||||
];
|
||||
}) (super.ghcjs.overrideScope (self: super: {
|
||||
optparse-applicative = self.optparse-applicative_0_15_1_0;
|
||||
webdriver = overrideCabal (drv: {
|
||||
patches = drv.patches or [] ++ [
|
||||
# Patch for aeson 2.0 which adds a lower bound on it, so we don't apply it globally
|
||||
# Pending https://github.com/kallisti-dev/hs-webdriver/pull/183
|
||||
(fetchpatch {
|
||||
name = "webdriver-aeson-2.0.patch";
|
||||
url = "https://github.com/georgefst/hs-webdriver/commit/90ded63218da17fc0bd9f9b208b0b3f60b135757.patch";
|
||||
sha256 = "1xvkk51r2v020xlmci5n1fd1na8raa332lrj7r9f0ijsyfvnqlv0";
|
||||
excludes = [ "webdriver.cabal" ];
|
||||
})
|
||||
];
|
||||
# Fix line endings so patch applies
|
||||
prePatch = drv.prePatch or "" + ''
|
||||
find . -name '*.hs' | xargs "${buildPackages.dos2unix}/bin/dos2unix"
|
||||
'';
|
||||
|
||||
jailbreak = true;
|
||||
broken = false;
|
||||
}) super.webdriver;
|
||||
# Allow transformers-compat >= 0.7
|
||||
optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0;
|
||||
}));
|
||||
}
|
||||
|
|
|
@ -665,6 +665,10 @@ self: super: {
|
|||
idris = self.generateOptparseApplicativeCompletions [ "idris" ]
|
||||
(doJailbreak (dontCheck super.idris));
|
||||
|
||||
# Too strict bound on hspec
|
||||
# https://github.com/lspitzner/multistate/issues/9#issuecomment-1367853016
|
||||
multistate = doJailbreak super.multistate;
|
||||
|
||||
# https://github.com/pontarius/pontarius-xmpp/issues/105
|
||||
pontarius-xmpp = dontCheck super.pontarius-xmpp;
|
||||
|
||||
|
@ -926,7 +930,6 @@ self: super: {
|
|||
|
||||
# The test suite runs for 20+ minutes on a very fast machine, which feels kinda disproportionate.
|
||||
prettyprinter = dontCheck super.prettyprinter;
|
||||
brittany = doJailbreak (dontCheck super.brittany); # Outdated upperbound on ghc-exactprint: https://github.com/lspitzner/brittany/issues/342
|
||||
|
||||
# Fix with Cabal 2.2, https://github.com/guillaume-nargeot/hpc-coveralls/pull/73
|
||||
hpc-coveralls = appendPatch (fetchpatch {
|
||||
|
@ -1358,8 +1361,9 @@ self: super: {
|
|||
haskell-language-server = (lib.pipe super.haskell-language-server [
|
||||
dontCheck
|
||||
(disableCabalFlag "stan") # Sorry stan is totally unmaintained and terrible to get to run. It only works on ghc 8.8 or 8.10 anyways …
|
||||
(assert super.hls-call-hierarchy-plugin.version == "1.1.0.0"; disableCabalFlag "callHierarchy") # Disabled temporarily: https://github.com/haskell/haskell-language-server/pull/3431
|
||||
]).overrideScope (lself: lsuper: {
|
||||
hlint = enableCabalFlag "ghc-lib" lsuper.hlint;
|
||||
hls-call-hierarchy-plugin = null;
|
||||
# For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
|
||||
# because some packages, like ormolu, need a newer Cabal version.
|
||||
# ghc-paths is special because it depends on Cabal for building
|
||||
|
@ -1372,10 +1376,11 @@ self: super: {
|
|||
ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
|
||||
});
|
||||
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.overrideScope (lself: lsuper: {
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
||||
# For "ghc-lib" flag see https://github.com/haskell/haskell-language-server/issues/3185#issuecomment-1250264515
|
||||
hlint = enableCabalFlag "ghc-lib" lsuper.hlint;
|
||||
});
|
||||
hlint = enableCabalFlag "ghc-lib" super.hlint;
|
||||
apply-refact = self.apply-refact_0_11_0_0;
|
||||
};
|
||||
|
||||
# For -f-auto see cabal.project in haskell-language-server.
|
||||
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
|
||||
|
@ -1386,9 +1391,6 @@ self: super: {
|
|||
# 2021-06-20: Tests fail: https://github.com/haskell/haskell-language-server/issues/1949
|
||||
hls-refine-imports-plugin = dontCheck super.hls-refine-imports-plugin;
|
||||
|
||||
# 2021-09-14: Tests are broken because of undeterministic variable names
|
||||
hls-tactics-plugin = dontCheck super.hls-tactics-plugin;
|
||||
|
||||
# 2021-11-20: https://github.com/haskell/haskell-language-server/pull/2373
|
||||
hls-explicit-imports-plugin = dontCheck super.hls-explicit-imports-plugin;
|
||||
|
||||
|
@ -1398,9 +1400,6 @@ self: super: {
|
|||
# 2022-09-19: https://github.com/haskell/haskell-language-server/issues/3200
|
||||
hls-refactor-plugin = dontCheck super.hls-refactor-plugin;
|
||||
|
||||
# 2022-11-18: https://github.com/haskell/haskell-language-server/commit/c1a7527c4fb348bee6093d9794b7d3e0c8d563f2
|
||||
hls-fourmolu-plugin = assert super.hls-fourmolu-plugin.version == "1.1.0.0"; doJailbreak super.hls-fourmolu-plugin;
|
||||
|
||||
# tests require network
|
||||
ghcide = dontCheck super.ghcide;
|
||||
|
||||
|
@ -1452,10 +1451,10 @@ self: super: {
|
|||
};
|
||||
|
||||
# Point hspec 2.7.10 to correct dependencies
|
||||
hspec_2_7_10 = doDistribute (super.hspec_2_7_10.override {
|
||||
hspec_2_7_10 = super.hspec_2_7_10.override {
|
||||
hspec-discover = self.hspec-discover_2_7_10;
|
||||
hspec-core = self.hspec-core_2_7_10;
|
||||
});
|
||||
};
|
||||
|
||||
# waiting for aeson bump
|
||||
servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core;
|
||||
|
@ -1657,6 +1656,9 @@ self: super: {
|
|||
# 2021-04-02: Outdated optparse-applicative bound is fixed but not realeased on upstream.
|
||||
trial-optparse-applicative = assert super.trial-optparse-applicative.version == "0.0.0.0"; doJailbreak super.trial-optparse-applicative;
|
||||
|
||||
# 2022-12-28: Too strict version bounds on bytestring
|
||||
iconv = doJailbreak super.iconv;
|
||||
|
||||
# 2021-04-02: iCalendar is basically unmaintained.
|
||||
# There is a PR for fixing the build: https://github.com/chrra/iCalendar/pull/50
|
||||
iCalendar = appendPatches [
|
||||
|
@ -1814,6 +1816,7 @@ self: super: {
|
|||
] super.haskell-ci).overrideScope (self: super: {
|
||||
Cabal = self.Cabal_3_6_3_0;
|
||||
cabal-install-parsers = self.cabal-install-parsers_0_4_5;
|
||||
ShellCheck = self.ShellCheck_0_8_0;
|
||||
});
|
||||
|
||||
large-hashable = lib.pipe (super.large-hashable.override {
|
||||
|
@ -1883,15 +1886,6 @@ self: super: {
|
|||
# https://github.com/dagit/zenc/issues/5
|
||||
zenc = doJailbreak super.zenc;
|
||||
|
||||
# Release 1.0.0.0 added version bounds (was unrestricted before),
|
||||
# but with too strict lower bounds for our lts-18.
|
||||
# Disable aeson for now, future release should support it
|
||||
graphql =
|
||||
assert super.graphql.version == "1.0.3.0";
|
||||
appendConfigureFlags [
|
||||
"-f-json"
|
||||
] super.graphql;
|
||||
|
||||
# https://github.com/ajscholl/basic-cpuid/pull/1
|
||||
basic-cpuid = appendPatch (fetchpatch {
|
||||
url = "https://github.com/ajscholl/basic-cpuid/commit/2f2bd7a7b53103fb0cf26883f094db9d7659887c.patch";
|
||||
|
@ -1916,6 +1910,9 @@ self: super: {
|
|||
# https://github.com/haskell/haskell-language-server/pull/2887
|
||||
hls-change-type-signature-plugin = dontCheck super.hls-change-type-signature-plugin;
|
||||
|
||||
# 2022-12-30: Restrictive upper bound on optparse-applicative
|
||||
retrie = doJailbreak super.retrie;
|
||||
|
||||
# Fixes https://github.com/NixOS/nixpkgs/issues/140613
|
||||
# https://github.com/recursion-schemes/recursion-schemes/issues/128
|
||||
recursion-schemes = overrideCabal (drv: {
|
||||
|
|
|
@ -109,7 +109,7 @@ self: super: {
|
|||
hls-brittany-plugin
|
||||
hls-haddock-comments-plugin
|
||||
(unmarkBroken hls-splice-plugin)
|
||||
(unmarkBroken hls-tactics-plugin)
|
||||
hls-tactics-plugin
|
||||
];
|
||||
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
|
||||
Cabal = lself.Cabal_3_6_3_0;
|
||||
|
@ -118,10 +118,16 @@ self: super: {
|
|||
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
|
||||
}));
|
||||
|
||||
hls-tactics-plugin = unmarkBroken (addBuildDepends (with self.hls-tactics-plugin.scope; [
|
||||
aeson extra fingertree generic-lens ghc-exactprint ghc-source-gen ghcide
|
||||
hls-graph hls-plugin-api hls-refactor-plugin hyphenation lens lsp megaparsec
|
||||
parser-combinators prettyprinter refinery retrie syb unagi-chan unordered-containers
|
||||
]) super.hls-tactics-plugin);
|
||||
|
||||
hls-brittany-plugin = unmarkBroken (addBuildDepends (with self.hls-brittany-plugin.scope; [
|
||||
brittany czipwith extra ghc-exactprint ghcide hls-plugin-api hls-test-utils lens lsp-types
|
||||
]) (super.hls-brittany-plugin.overrideScope (lself: lsuper: {
|
||||
brittany = doJailbreak lself.brittany_0_13_1_2;
|
||||
brittany = doJailbreak (unmarkBroken lself.brittany_0_13_1_2);
|
||||
aeson = lself.aeson_1_5_6_0;
|
||||
multistate = unmarkBroken (dontCheck lsuper.multistate);
|
||||
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
|
||||
|
@ -173,10 +179,17 @@ self: super: {
|
|||
# https://github.com/mrkkrp/megaparsec/pull/485#issuecomment-1250051823
|
||||
megaparsec = doJailbreak super.megaparsec;
|
||||
|
||||
retrie = dontCheck self.retrie_1_1_0_0;
|
||||
|
||||
# Later versions only support GHC >= 9.2
|
||||
ghc-exactprint = self.ghc-exactprint_0_6_4;
|
||||
|
||||
apply-refact = self.apply-refact_0_9_3_0;
|
||||
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
||||
inherit (self) apply-refact;
|
||||
};
|
||||
|
||||
# Needs OneTuple for ghc < 9.2
|
||||
binary-orphans = addBuildDepends [ self.OneTuple ] super.binary-orphans;
|
||||
}
|
||||
|
|
|
@ -137,24 +137,7 @@ self: super: {
|
|||
|
||||
mime-string = disableOptimization super.mime-string;
|
||||
|
||||
haskell-language-server = let
|
||||
# These aren't included in hackage-packages.nix because hackage2nix is configured for GHC 9.2, under which these plugins aren't supported.
|
||||
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
|
||||
additionalDeps = with self.haskell-language-server.scope; [
|
||||
hls-brittany-plugin
|
||||
hls-haddock-comments-plugin
|
||||
(unmarkBroken hls-splice-plugin)
|
||||
(unmarkBroken hls-tactics-plugin)
|
||||
];
|
||||
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
|
||||
# Pick old ormolu and fourmolu because ghc-lib-parser is not compatible
|
||||
ormolu = doJailbreak lself.ormolu_0_1_4_1;
|
||||
fourmolu = doJailbreak lself.fourmolu_0_3_0_0;
|
||||
aeson = lself.aeson_1_5_6_0;
|
||||
lens-aeson = lself.lens-aeson_1_1_3;
|
||||
stylish-haskell = doJailbreak lself.stylish-haskell_0_13_0_0;
|
||||
lsp-types = doJailbreak lsuper.lsp-types;
|
||||
}));
|
||||
haskell-language-server = throw "haskell-language-server dropped support for ghc 8.8 in version 1.9.0.0 please use a newer ghc version or an older nixpkgs version";
|
||||
|
||||
hlint = self.hlint_3_2_8;
|
||||
|
||||
|
@ -164,20 +147,6 @@ self: super: {
|
|||
# additional dependency to compile successfully.
|
||||
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser self.ghc-lib-parser-ex_8_10_0_24;
|
||||
|
||||
hls-brittany-plugin = unmarkBroken (addBuildDepends (with self.hls-brittany-plugin.scope; [
|
||||
brittany czipwith extra ghc-exactprint ghcide hls-plugin-api hls-test-utils lens lsp-types
|
||||
]) (super.hls-brittany-plugin.overrideScope (lself: lsuper: {
|
||||
brittany = doJailbreak lself.brittany_0_13_1_2;
|
||||
multistate = unmarkBroken (dontCheck lsuper.multistate);
|
||||
lsp-types = doJailbreak lsuper.lsp-types; # Checks require aeson >= 2.0
|
||||
})));
|
||||
|
||||
# This package is marked as unbuildable on GHC 9.2, so hackage2nix doesn't include any dependencies.
|
||||
# See https://github.com/NixOS/nixpkgs/pull/205902 for why we use `self.<package>.scope`
|
||||
hls-haddock-comments-plugin = unmarkBroken (addBuildDepends (with self.hls-haddock-comments-plugin.scope; [
|
||||
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
|
||||
]) super.hls-haddock-comments-plugin);
|
||||
|
||||
# has a restrictive lower bound on Cabal
|
||||
fourmolu = doJailbreak super.fourmolu;
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ self: super: {
|
|||
additionalDeps = with self.haskell-language-server.scope; [
|
||||
hls-haddock-comments-plugin
|
||||
(unmarkBroken hls-splice-plugin)
|
||||
(unmarkBroken hls-tactics-plugin)
|
||||
hls-tactics-plugin
|
||||
];
|
||||
in addBuildDepends additionalDeps (super.haskell-language-server.overrideScope (lself: lsuper: {
|
||||
# Needed for modern ormolu and fourmolu.
|
||||
|
@ -127,6 +127,12 @@ self: super: {
|
|||
ghc-exactprint ghcide hls-plugin-api hls-refactor-plugin lsp-types unordered-containers
|
||||
]) super.hls-haddock-comments-plugin);
|
||||
|
||||
hls-tactics-plugin = unmarkBroken (addBuildDepends (with self.hls-tactics-plugin.scope; [
|
||||
aeson extra fingertree generic-lens ghc-exactprint ghc-source-gen ghcide
|
||||
hls-graph hls-plugin-api hls-refactor-plugin hyphenation lens lsp megaparsec
|
||||
parser-combinators prettyprinter refinery retrie syb unagi-chan unordered-containers
|
||||
]) super.hls-tactics-plugin);
|
||||
|
||||
# The test suite depends on ChasingBottoms, which is broken with ghc-9.0.x.
|
||||
unordered-containers = dontCheck super.unordered-containers;
|
||||
|
||||
|
@ -157,9 +163,6 @@ self: super: {
|
|||
# Restrictive upper bound on ormolu
|
||||
hls-ormolu-plugin = doJailbreak super.hls-ormolu-plugin;
|
||||
|
||||
# Too strict bounds on base
|
||||
# https://github.com/lspitzner/multistate/issues/9
|
||||
multistate = doJailbreak super.multistate;
|
||||
# https://github.com/lspitzner/butcher/issues/7
|
||||
butcher = doJailbreak super.butcher;
|
||||
|
||||
|
@ -177,8 +180,15 @@ self: super: {
|
|||
|
||||
# Later versions only support GHC >= 9.2
|
||||
ghc-exactprint = self.ghc-exactprint_0_6_4;
|
||||
|
||||
retrie = dontCheck self.retrie_1_1_0_0;
|
||||
|
||||
apply-refact = self.apply-refact_0_9_3_0;
|
||||
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
||||
inherit (self) apply-refact;
|
||||
};
|
||||
|
||||
# Needs OneTuple for ghc < 9.2
|
||||
binary-orphans = addBuildDepends [ self.OneTuple ] super.binary-orphans;
|
||||
}
|
||||
|
|
|
@ -63,7 +63,6 @@ self: super: {
|
|||
|
||||
# Jailbreaks & Version Updates
|
||||
hashable-time = doJailbreak super.hashable-time;
|
||||
retrie = doJailbreak super.retrie_1_2_1_1;
|
||||
|
||||
# Depends on utf8-light which isn't maintained / doesn't support base >= 4.16
|
||||
# https://github.com/haskell-infra/hackage-trustees/issues/347
|
||||
|
|
|
@ -86,8 +86,8 @@ in {
|
|||
dec = doJailbreak super.dec;
|
||||
ed25519 = doJailbreak super.ed25519;
|
||||
ghc-byteorder = doJailbreak super.ghc-byteorder;
|
||||
ghc-lib = doDistribute self.ghc-lib_9_4_3_20221104;
|
||||
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_4_3_20221104;
|
||||
ghc-lib = doDistribute self.ghc-lib-parser_9_4_4_20221225;
|
||||
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_4_4_20221225;
|
||||
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_4_0_0;
|
||||
hackage-security = doJailbreak super.hackage-security;
|
||||
hashable-time = doJailbreak super.hashable-time;
|
||||
|
@ -172,23 +172,28 @@ in {
|
|||
# 2022-08-01: Tests are broken on ghc 9.2.4: https://github.com/wz1000/HieDb/issues/46
|
||||
hiedb = dontCheck super.hiedb;
|
||||
|
||||
hlint = self.hlint_3_5;
|
||||
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
||||
inherit (self) hlint;
|
||||
};
|
||||
|
||||
# 2022-10-06: https://gitlab.haskell.org/ghc/ghc/-/issues/22260
|
||||
ghc-check = dontHaddock super.ghc-check;
|
||||
|
||||
ghc-exactprint = overrideCabal (drv: {
|
||||
libraryHaskellDepends = with self; [ HUnit data-default fail filemanip free ghc-paths ordered-containers silently syb Diff ];
|
||||
})
|
||||
self.ghc-exactprint_1_6_1;
|
||||
|
||||
# 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 {
|
||||
hls-refactor-plugin = null;
|
||||
hls-class-plugin = null;
|
||||
hls-eval-plugin = null;
|
||||
hls-floskell-plugin = null;
|
||||
hls-fourmolu-plugin = null;
|
||||
hls-gadt-plugin = null;
|
||||
hls-hlint-plugin = null;
|
||||
hls-ormolu-plugin = null;
|
||||
hls-rename-plugin = null;
|
||||
hls-stylish-haskell-plugin = null;
|
||||
hls-retrie-plugin = null;
|
||||
};
|
||||
|
||||
# https://github.com/tweag/ormolu/issues/941
|
||||
|
@ -197,5 +202,5 @@ in {
|
|||
}) (disableCabalFlag "fixity-th" super.ormolu);
|
||||
fourmolu = overrideCabal (drv: {
|
||||
libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.file-embed ];
|
||||
}) (disableCabalFlag "fixity-th" super.fourmolu);
|
||||
}) (disableCabalFlag "fixity-th" super.fourmolu_0_10_1_0);
|
||||
}
|
||||
|
|
|
@ -219,6 +219,7 @@ broken-packages:
|
|||
- artifact
|
||||
- asap
|
||||
- ascii85-conduit
|
||||
- ascii-caseless
|
||||
- ascii-flatten
|
||||
- ascii-string
|
||||
- ascii-vector-avc
|
||||
|
@ -473,6 +474,7 @@ broken-packages:
|
|||
- bricks-internal
|
||||
- brick-skylighting
|
||||
- brillig
|
||||
- brittany
|
||||
- broadcast-chan-tests
|
||||
- broccoli
|
||||
- brok
|
||||
|
@ -1779,7 +1781,6 @@ broken-packages:
|
|||
- GiST
|
||||
- git
|
||||
- git-all
|
||||
- git-brunch
|
||||
- git-checklist
|
||||
- git-cuk
|
||||
- git-date
|
||||
|
@ -1861,9 +1862,9 @@ broken-packages:
|
|||
- graphics-drawingcombinators
|
||||
- graphics-formats-collada
|
||||
- graph-matchings
|
||||
- graphmod
|
||||
- graphmod-plugin
|
||||
- graphql-api
|
||||
- graphql-spice
|
||||
- graphql-utils
|
||||
- graphql-w-persistent
|
||||
- graph-rewriting
|
||||
|
@ -2324,7 +2325,6 @@ broken-packages:
|
|||
- hls-brittany-plugin
|
||||
- hls-haddock-comments-plugin
|
||||
- hls-selection-range-plugin
|
||||
- hls-splice-plugin
|
||||
- hls-stan-plugin
|
||||
- hls-tactics-plugin
|
||||
- hlwm
|
||||
|
@ -2570,6 +2570,7 @@ broken-packages:
|
|||
- http-conduit-downloader
|
||||
- http-directory
|
||||
- http-dispatch
|
||||
- http-encodings
|
||||
- http-grammar
|
||||
- http-kinder
|
||||
- http-kit
|
||||
|
@ -2652,7 +2653,7 @@ broken-packages:
|
|||
- icepeak
|
||||
- icfpc2020-galaxy
|
||||
- IcoGrid
|
||||
- iconv
|
||||
- iconv-typed
|
||||
- ideas
|
||||
- ide-backend-common
|
||||
- idempotent
|
||||
|
@ -2774,6 +2775,7 @@ broken-packages:
|
|||
- irc-fun-types
|
||||
- ireal
|
||||
- iri
|
||||
- iridium
|
||||
- iris
|
||||
- iron-mq
|
||||
- irt
|
||||
|
@ -3059,6 +3061,7 @@ broken-packages:
|
|||
- libltdl
|
||||
- liboath-hs
|
||||
- liboleg
|
||||
- libpafe
|
||||
- libpq
|
||||
- librandomorg
|
||||
- libsystemd-daemon
|
||||
|
@ -3355,6 +3358,7 @@ broken-packages:
|
|||
- mmtf
|
||||
- mmtl
|
||||
- Mobile-Legends-Hack-Cheats
|
||||
- mockazo
|
||||
- mock-httpd
|
||||
- modbus-tcp
|
||||
- model
|
||||
|
@ -3472,7 +3476,6 @@ broken-packages:
|
|||
- multiplate-simplified
|
||||
- multipool
|
||||
- multirec
|
||||
- multistate
|
||||
- Munkres-simple
|
||||
- muon
|
||||
- murmur
|
||||
|
@ -3875,6 +3878,7 @@ broken-packages:
|
|||
- patrol
|
||||
- patronscraper
|
||||
- pattern-trie
|
||||
- paynow-zw
|
||||
- paypal-adaptive-hoops
|
||||
- paypal-api
|
||||
- paypal-rest-client
|
||||
|
@ -4052,6 +4056,7 @@ broken-packages:
|
|||
- polysemy-path
|
||||
- polysemy-readline
|
||||
- polysemy-req
|
||||
- polysemy-resume
|
||||
- polysemy-socket
|
||||
- polysemy-video
|
||||
- polysemy-vinyl
|
||||
|
@ -4313,6 +4318,7 @@ broken-packages:
|
|||
- rank-product
|
||||
- rapid-term
|
||||
- Rasenschach
|
||||
- rating-chgk-info
|
||||
- rational-list
|
||||
- rattle
|
||||
- rattletrap
|
||||
|
@ -4484,6 +4490,7 @@ broken-packages:
|
|||
- rivers
|
||||
- rivet-migration
|
||||
- rivet-simple-deploy
|
||||
- RJson
|
||||
- Rlang-QQ
|
||||
- rlglue
|
||||
- RLP
|
||||
|
|
|
@ -70,12 +70,8 @@ core-packages:
|
|||
default-package-overrides:
|
||||
# gi-gdkx11-4.x requires gtk-4.x, but stackage still restricts gi-gtk to 3.*
|
||||
- gi-gdkx11 < 4
|
||||
# 2022-02-18: pin to our current GHC version
|
||||
- ghc-api-compat == 9.0.*
|
||||
# 2021-11-09: ghc-bignum is bundled starting with 9.0.1; only 1.0 builds with GHCs prior to 9.2.1
|
||||
- ghc-bignum == 1.0
|
||||
# 1.2.0.0: “Dropped support for GHC <9.2 (might readd it later)”
|
||||
- retrie < 1.2.0.0
|
||||
# needs http-client >= 0.7.11 which isn't part of Stackage LTS 18
|
||||
- http-client-restricted < 0.0.5
|
||||
# Downgrade hasql-dynamic-statements until hasql 1.6 is in Stackage
|
||||
|
@ -88,6 +84,8 @@ default-package-overrides:
|
|||
- hnix-store-remote == 0.5.0.0 # 2022-06-17: Until hnix 0.17
|
||||
# reflex-dom-core 0.7.0.2 has no reflex 0.9 compatible release and most likely most people will want to use them together
|
||||
- reflex < 0.9.0.0
|
||||
# reqired by haskell-language-server 1.9.0.0
|
||||
- implicit-hie < 0.1.3
|
||||
|
||||
extra-packages:
|
||||
- Cabal == 2.2.* # required for jailbreak-cabal etc.
|
||||
|
@ -159,6 +157,8 @@ extra-packages:
|
|||
- weeder == 2.2.* # 2022-02-21: preserve for GHC 8.10.7
|
||||
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
|
||||
- commonmark-extensions < 0.2.3.3 # 2022-12-17: required by emanote 1.0.0.0 (to avoid a bug in 0.2.3.3)
|
||||
- ShellCheck == 0.8.0 # 2022-12-28: required by haskell-ci 0.14.3
|
||||
- retrie < 1.2.0.0 # 2022-12-30: required for hls on ghc < 9.2
|
||||
|
||||
package-maintainers:
|
||||
abbradar:
|
||||
|
@ -446,6 +446,8 @@ package-maintainers:
|
|||
- time-domain
|
||||
utdemir:
|
||||
- nix-tree
|
||||
zowoq:
|
||||
- ShellCheck
|
||||
|
||||
unsupported-platforms:
|
||||
Allure: [ platforms.darwin ]
|
||||
|
|
|
@ -2315,7 +2315,6 @@ default-package-overrides:
|
|||
- shakespeare ==2.0.30
|
||||
- shakespeare-text ==1.1.0
|
||||
- shared-memory ==0.2.0.0
|
||||
- ShellCheck ==0.8.0
|
||||
- shell-conduit ==5.0.0
|
||||
- shell-escape ==0.2.0
|
||||
- shellmet ==0.0.4.1
|
||||
|
|
|
@ -320,7 +320,6 @@ dont-distribute-packages:
|
|||
- Pup-Events-Demo
|
||||
- Quelea
|
||||
- RESTng
|
||||
- RJson
|
||||
- RMP
|
||||
- RNAFold
|
||||
- RNAFoldProgs
|
||||
|
@ -851,8 +850,6 @@ dont-distribute-packages:
|
|||
- bricks-parsec
|
||||
- bricks-rendering
|
||||
- bricks-syntax
|
||||
- brittany
|
||||
- brittany_0_13_1_2
|
||||
- broadcast-chan-conduit
|
||||
- broadcast-chan-pipes
|
||||
- bronyradiogermany-streaming
|
||||
|
@ -867,7 +864,6 @@ dont-distribute-packages:
|
|||
- burnt-explorer
|
||||
- buster-gtk
|
||||
- buster-network
|
||||
- butcher
|
||||
- butterflies
|
||||
- bv-sized
|
||||
- bv-sized-lens
|
||||
|
@ -2252,7 +2248,6 @@ dont-distribute-packages:
|
|||
- hscassandra
|
||||
- hscope
|
||||
- hsdev
|
||||
- hsexif
|
||||
- hsfacter
|
||||
- hsinspect-lsp
|
||||
- hslogstash
|
||||
|
@ -2284,7 +2279,6 @@ dont-distribute-packages:
|
|||
- htsn-import
|
||||
- http-client-auth
|
||||
- http-client-rustls
|
||||
- http-encodings
|
||||
- http-enumerator
|
||||
- http2-client-grpc
|
||||
- http2-grpc-proto-lens
|
||||
|
@ -2332,7 +2326,6 @@ dont-distribute-packages:
|
|||
- hyperpublic
|
||||
- iException
|
||||
- ice40-prim
|
||||
- iconv-typed
|
||||
- ide-backend
|
||||
- ide-backend-server
|
||||
- ideas-math
|
||||
|
@ -2353,6 +2346,7 @@ dont-distribute-packages:
|
|||
- imprevu-happstack
|
||||
- improve
|
||||
- inch
|
||||
- incipit
|
||||
- incremental-computing
|
||||
- incremental-maps
|
||||
- increments
|
||||
|
@ -2393,7 +2387,6 @@ dont-distribute-packages:
|
|||
- irc-fun-client
|
||||
- irc-fun-color
|
||||
- irc-fun-messages
|
||||
- iridium
|
||||
- ironforge
|
||||
- isevaluated
|
||||
- ismtp
|
||||
|
@ -2586,7 +2579,6 @@ dont-distribute-packages:
|
|||
- liblawless
|
||||
- liblinear-enumerator
|
||||
- libmolude
|
||||
- libpafe
|
||||
- libraft
|
||||
- librato
|
||||
- libxml-enumerator
|
||||
|
@ -2759,7 +2751,6 @@ dont-distribute-packages:
|
|||
- midimory
|
||||
- midisurface
|
||||
- mighttpd
|
||||
- mime-string
|
||||
- minecraft-data
|
||||
- minesweeper
|
||||
- mini-egison
|
||||
|
@ -2779,7 +2770,6 @@ dont-distribute-packages:
|
|||
- mmsyn7ukr
|
||||
- mmtl-base
|
||||
- moan
|
||||
- mockazo
|
||||
- modify-fasta
|
||||
- modsplit
|
||||
- modular-prelude-classy
|
||||
|
@ -3079,7 +3069,6 @@ dont-distribute-packages:
|
|||
- phonetic-languages-simplified-properties-lists-double
|
||||
- phonetic-languages-ukrainian
|
||||
- phooey
|
||||
- photoname
|
||||
- pianola
|
||||
- pier
|
||||
- ping
|
||||
|
@ -3117,9 +3106,13 @@ dont-distribute-packages:
|
|||
- polh-lexicon
|
||||
- polydata
|
||||
- polysemy-RandomFu
|
||||
- polysemy-conc
|
||||
- polysemy-http
|
||||
- polysemy-log
|
||||
- polysemy-log-co
|
||||
- polysemy-log-di
|
||||
- polysemy-methodology-composite
|
||||
- polysemy-process
|
||||
- polysemy-scoped-fs
|
||||
- polyseq
|
||||
- polytypeable-utils
|
||||
|
@ -3274,7 +3267,6 @@ dont-distribute-packages:
|
|||
- rasa-ext-views
|
||||
- rasa-ext-vim
|
||||
- rascal
|
||||
- rating-chgk-info
|
||||
- raw-feldspar
|
||||
- rawr
|
||||
- razom-text-util
|
||||
|
@ -3661,9 +3653,6 @@ dont-distribute-packages:
|
|||
- snow-white
|
||||
- snowflake-core
|
||||
- snowflake-server
|
||||
- soap
|
||||
- soap-openssl
|
||||
- soap-tls
|
||||
- sock2stream
|
||||
- socket-io
|
||||
- sockets
|
||||
|
|
|
@ -694,13 +694,7 @@ self: super: builtins.intersectAttrs super {
|
|||
retrie_1_2_0_0 = addTestToolDepends [pkgs.git pkgs.mercurial] super.retrie_1_2_0_0;
|
||||
retrie_1_2_1_1 = addTestToolDepends [pkgs.git pkgs.mercurial] super.retrie_1_2_1_1;
|
||||
|
||||
haskell-language-server = let
|
||||
# This wrapper will be included in the sdist in the next release, then we can remove this custom fetch.
|
||||
abi-compat-check-wrapper = assert super.haskell-language-server.version == "1.8.0.0"; pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/haskell/haskell-language-server/c12379c57ab8f0abd606e9f397de54e508d024a0/bindist/wrapper.in";
|
||||
sha256 = "sha256-vHi6+s8/V4WJSCxIqjP+thumEpttokpCc+a823WEPPk=";
|
||||
}; in
|
||||
overrideCabal (drv: {
|
||||
haskell-language-server = overrideCabal (drv: {
|
||||
# starting with 1.6.1.1 haskell-language-server wants to be linked dynamically
|
||||
# by default. Unless we reflect this in the generic builder, GHC is going to
|
||||
# produce some illegal references to /build/.
|
||||
|
@ -717,7 +711,7 @@ self: super: builtins.intersectAttrs super {
|
|||
-e "s/@@BOOT_PKGS@@/$BOOT_PKGS/" \
|
||||
-e "s/@@ABI_HASHES@@/$(for dep in $BOOT_PKGS; do printf "%s:" "$dep" && ghc-pkg-${self.ghc.version} field $dep abi --simple-output ; done | tr '\n' ' ' | xargs)/" \
|
||||
-e "s!Consider installing ghc.* via ghcup or build HLS from source.!Visit https://haskell4nix.readthedocs.io/nixpkgs-users-guide.html#how-to-install-haskell-language-server to learn how to correctly install a matching hls for your ghc with nix.!" \
|
||||
${abi-compat-check-wrapper} > "$out/bin/haskell-language-server"
|
||||
bindist/wrapper.in > "$out/bin/haskell-language-server"
|
||||
ln -s "$out/bin/haskell-language-server" "$out/bin/haskell-language-server-${self.ghc.version}"
|
||||
chmod +x "$out/bin/haskell-language-server"
|
||||
'';
|
||||
|
@ -947,6 +941,13 @@ self: super: builtins.intersectAttrs super {
|
|||
'';
|
||||
}) super.fourmolu;
|
||||
|
||||
# Test suite wants to run main executable
|
||||
fourmolu_0_10_1_0 = overrideCabal (drv: {
|
||||
preCheck = drv.preCheck or "" + ''
|
||||
export PATH="$PWD/dist/build/fourmolu:$PATH"
|
||||
'';
|
||||
}) super.fourmolu_0_10_1_0;
|
||||
|
||||
# Test suite needs to execute 'disco' binary
|
||||
disco = overrideCabal (drv: {
|
||||
preCheck = drv.preCheck or "" + ''
|
||||
|
@ -1089,13 +1090,18 @@ self: super: builtins.intersectAttrs super {
|
|||
hls-module-name-plugin
|
||||
hls-splice-plugin
|
||||
hls-refactor-plugin
|
||||
hls-code-range-plugin
|
||||
hls-explicit-fixity-plugin;
|
||||
hls-cabal-plugin;
|
||||
# Tests have file permissions expections that don‘t work with the nix store.
|
||||
hls-stylish-haskell-plugin = dontCheck super.hls-stylish-haskell-plugin;
|
||||
hls-gadt-plugin = dontCheck super.hls-gadt-plugin;
|
||||
|
||||
# https://github.com/haskell/haskell-language-server/pull/3431
|
||||
hls-cabal-fmt-plugin = dontCheck super.hls-cabal-fmt-plugin;
|
||||
hls-code-range-plugin = dontCheck super.hls-code-range-plugin;
|
||||
hls-explicit-record-fields-plugin = dontCheck super.hls-explicit-record-fields-plugin;
|
||||
|
||||
# Flaky tests
|
||||
hls-explicit-fixity-plugin = dontCheck super.hls-explicit-fixity-plugin;
|
||||
hls-hlint-plugin = dontCheck super.hls-hlint-plugin;
|
||||
hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
|
||||
hls-class-plugin = dontCheck super.hls-class-plugin;
|
||||
|
|
991
pkgs/development/haskell-modules/hackage-packages.nix
generated
991
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -46,6 +46,6 @@ let
|
|||
|
||||
in
|
||||
overrideMeta shellcheck (old: {
|
||||
maintainers = with lib.maintainers; [ Profpatsch ];
|
||||
maintainers = with lib.maintainers; [ Profpatsch zowoq ];
|
||||
outputsToInstall = [ "bin" "man" "doc" ];
|
||||
})
|
||||
|
|
|
@ -21,6 +21,7 @@ let
|
|||
"ghc92"
|
||||
"ghc942"
|
||||
"ghc943"
|
||||
"ghc944"
|
||||
"ghc94"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
@ -34,6 +35,7 @@ let
|
|||
"ghc94"
|
||||
"ghc942"
|
||||
"ghc943"
|
||||
"ghc944"
|
||||
"ghcHEAD"
|
||||
];
|
||||
|
||||
|
@ -234,7 +236,31 @@ in {
|
|||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||
llvmPackages = pkgs.llvmPackages_12;
|
||||
};
|
||||
ghc94 = ghc942;
|
||||
ghc944 = callPackage ../development/compilers/ghc/9.4.4.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 = ghc944;
|
||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||
bootPkgs =
|
||||
# For GHC 9.2 no armv7l bindists are available.
|
||||
|
@ -371,6 +397,11 @@ in {
|
|||
ghc = bh.compiler.ghc943;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
|
||||
};
|
||||
ghc944 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc944;
|
||||
ghc = bh.compiler.ghc944;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.4.x.nix { };
|
||||
};
|
||||
ghc94 = ghc942;
|
||||
ghcHEAD = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghcHEAD;
|
||||
|
|
|
@ -54,8 +54,7 @@ let
|
|||
ghc902
|
||||
ghc924
|
||||
ghc925
|
||||
ghc942
|
||||
ghc943
|
||||
ghc944
|
||||
];
|
||||
|
||||
# packagePlatforms applied to `haskell.packages.*`
|
||||
|
@ -360,16 +359,9 @@ let
|
|||
cabal2nix = released;
|
||||
cabal2nix-unstable = released;
|
||||
funcmp = released;
|
||||
haskell-language-server = released;
|
||||
haskell-language-server = builtins.filter (x: x != compilerNames.ghc884) released;
|
||||
hoogle = released;
|
||||
hlint = [
|
||||
compilerNames.ghc884
|
||||
compilerNames.ghc8107
|
||||
compilerNames.ghc902
|
||||
compilerNames.ghc924
|
||||
compilerNames.ghc925
|
||||
# https://github.com/ndmitchell/hlint/issues/1413
|
||||
];
|
||||
hlint = released;
|
||||
hpack = released;
|
||||
hsdns = released;
|
||||
jailbreak-cabal = released;
|
||||
|
|
Loading…
Reference in a new issue