Merge pull request #208126 from NixOS/haskell-updates

haskellPackages: update stackage and hackage
This commit is contained in:
maralorn 2022-12-30 23:51:37 +01:00 committed by GitHub
commit 393bdd70e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 1241 additions and 423 deletions

View file

@ -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

View file

@ -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"
}

View file

@ -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;
}

View 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;
# Dont 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;
})

View file

@ -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;
}));
}

View file

@ -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: {

View file

@ -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;
}

View file

@ -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;

View file

@ -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;
}

View file

@ -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

View file

@ -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);
}

View file

@ -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

View file

@ -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 ]

View file

@ -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

View file

@ -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

View file

@ -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 dont 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;

File diff suppressed because it is too large Load diff

View file

@ -46,6 +46,6 @@ let
in
overrideMeta shellcheck (old: {
maintainers = with lib.maintainers; [ Profpatsch ];
maintainers = with lib.maintainers; [ Profpatsch zowoq ];
outputsToInstall = [ "bin" "man" "doc" ];
})

View file

@ -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;

View file

@ -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;