Merge pull request #232914 from NixOS/haskell-updates
haskellPackages: update stackage and hackage, ghc: 9.2.7 -> 9.2.8
This commit is contained in:
commit
d746b4e460
|
@ -307,12 +307,12 @@ $ nix-env --install --attr haskellPackages.dhall-nixpkgs
|
||||||
|
|
||||||
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
|
$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs
|
||||||
|
|
||||||
$ dhall-to-nixpkgs github https://github.com/Gabriel439/dhall-semver.git
|
$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git
|
||||||
{ buildDhallGitHubPackage, Prelude }:
|
{ buildDhallGitHubPackage, Prelude }:
|
||||||
buildDhallGitHubPackage {
|
buildDhallGitHubPackage {
|
||||||
name = "dhall-semver";
|
name = "dhall-semver";
|
||||||
githubBase = "github.com";
|
githubBase = "github.com";
|
||||||
owner = "Gabriel439";
|
owner = "Gabriella439";
|
||||||
repo = "dhall-semver";
|
repo = "dhall-semver";
|
||||||
rev = "2d44ae605302ce5dc6c657a1216887fbb96392a4";
|
rev = "2d44ae605302ce5dc6c657a1216887fbb96392a4";
|
||||||
fetchSubmodules = false;
|
fetchSubmodules = false;
|
||||||
|
|
|
@ -276,6 +276,15 @@ Defaults to `true`.
|
||||||
: Whether to generate an index for interactive navigation of the HTML documentation.
|
: Whether to generate an index for interactive navigation of the HTML documentation.
|
||||||
Defaults to `true` if supported.
|
Defaults to `true` if supported.
|
||||||
|
|
||||||
|
`doInstallIntermediates`
|
||||||
|
: Whether to install intermediate build products (files written to `dist/build`
|
||||||
|
by GHC during the build process). With `enableSeparateIntermediatesOutput`,
|
||||||
|
these files are instead installed to [a separate `intermediates`
|
||||||
|
output.][multiple-outputs] The output can then be passed into a future build of
|
||||||
|
the same package with the `previousIntermediates` argument to support
|
||||||
|
incremental builds. See [“Incremental builds”](#haskell-incremental-builds) for
|
||||||
|
more information. Defaults to `false`.
|
||||||
|
|
||||||
`enableLibraryProfiling`
|
`enableLibraryProfiling`
|
||||||
: Whether to enable [profiling][profiling] for libraries contained in the
|
: Whether to enable [profiling][profiling] for libraries contained in the
|
||||||
package. Enabled by default if supported.
|
package. Enabled by default if supported.
|
||||||
|
@ -371,6 +380,12 @@ Defaults to `false`.
|
||||||
: Whether to install documentation to a separate `doc` output.
|
: Whether to install documentation to a separate `doc` output.
|
||||||
Is automatically enabled if `doHaddock` is `true`.
|
Is automatically enabled if `doHaddock` is `true`.
|
||||||
|
|
||||||
|
`enableSeparateIntermediatesOutput`
|
||||||
|
: When `doInstallIntermediates` is true, whether to install intermediate build
|
||||||
|
products to a separate `intermediates` output. See [“Incremental
|
||||||
|
builds”](#haskell-incremental-builds) for more information. Defaults to
|
||||||
|
`false`.
|
||||||
|
|
||||||
`allowInconsistentDependencies`
|
`allowInconsistentDependencies`
|
||||||
: If enabled, allow multiple versions of the same Haskell package in the
|
: If enabled, allow multiple versions of the same Haskell package in the
|
||||||
dependency tree at configure time. Often in such a situation compilation would
|
dependency tree at configure time. Often in such a situation compilation would
|
||||||
|
@ -381,6 +396,11 @@ later fail because of type mismatches. Defaults to `false`.
|
||||||
when loading the library in the REPL, but requires extra build time and
|
when loading the library in the REPL, but requires extra build time and
|
||||||
disk space. Defaults to `false`.
|
disk space. Defaults to `false`.
|
||||||
|
|
||||||
|
`previousIntermediates`
|
||||||
|
: If non-null, intermediate build artifacts are copied from this input to
|
||||||
|
`dist/build` before performing compiling. See [“Incremental
|
||||||
|
builds”](#haskell-incremental-builds) for more information. Defaults to `null`.
|
||||||
|
|
||||||
`buildTarget`
|
`buildTarget`
|
||||||
: Name of the executable or library to build and install.
|
: Name of the executable or library to build and install.
|
||||||
If unset, all available targets are built and installed.
|
If unset, all available targets are built and installed.
|
||||||
|
@ -496,6 +516,54 @@ the [Meta-attributes section](#chap-meta) for their documentation.
|
||||||
* `broken`
|
* `broken`
|
||||||
* `hydraPlatforms`
|
* `hydraPlatforms`
|
||||||
|
|
||||||
|
### Incremental builds {#haskell-incremental-builds}
|
||||||
|
|
||||||
|
`haskellPackages.mkDerivation` supports incremental builds for GHC 9.4 and
|
||||||
|
newer with the `doInstallIntermediates`, `enableSeparateIntermediatesOutput`,
|
||||||
|
and `previousIntermediates` arguments.
|
||||||
|
|
||||||
|
The basic idea is to first perform a full build of the package in question,
|
||||||
|
save its intermediate build products for later, and then copy those build
|
||||||
|
products into the build directory of an incremental build performed later.
|
||||||
|
Then, GHC will use those build artifacts to avoid recompiling unchanged
|
||||||
|
modules.
|
||||||
|
|
||||||
|
For more detail on how to store and use incremental build products, see
|
||||||
|
[Gabriella Gonzalez’ blog post “Nixpkgs support for incremental Haskell
|
||||||
|
builds”.][incremental-builds] motivation behind this feature.
|
||||||
|
|
||||||
|
An incremental build for [the `turtle` package][turtle] can be performed like
|
||||||
|
so:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> {};
|
||||||
|
inherit (pkgs) haskell;
|
||||||
|
inherit (haskell.lib.compose) overrideCabal;
|
||||||
|
|
||||||
|
# Incremental builds work with GHC >=9.4.
|
||||||
|
turtle = haskell.packages.ghc944.turtle;
|
||||||
|
|
||||||
|
# This will do a full build of `turtle`, while writing the intermediate build products
|
||||||
|
# (compiled modules, etc.) to the `intermediates` output.
|
||||||
|
turtle-full-build-with-incremental-output = overrideCabal (drv: {
|
||||||
|
doInstallIntermediates = true;
|
||||||
|
enableSeparateIntermediatesOutput = true;
|
||||||
|
}) turtle;
|
||||||
|
|
||||||
|
# This will do an incremental build of `turtle` by copying the previously
|
||||||
|
# compiled modules and intermediate build products into the source tree
|
||||||
|
# before running the build.
|
||||||
|
#
|
||||||
|
# GHC will then naturally pick up and reuse these products, making this build
|
||||||
|
# complete much more quickly than the previous one.
|
||||||
|
turtle-incremental-build = overrideCabal (drv: {
|
||||||
|
previousIntermediates = turtle-full-build-with-incremental-output.intermediates;
|
||||||
|
}) turtle;
|
||||||
|
in
|
||||||
|
turtle-incremental-build
|
||||||
|
```
|
||||||
|
|
||||||
## Development environments {#haskell-development-environments}
|
## Development environments {#haskell-development-environments}
|
||||||
|
|
||||||
In addition to building and installing Haskell software, nixpkgs can also
|
In addition to building and installing Haskell software, nixpkgs can also
|
||||||
|
@ -1083,8 +1151,11 @@ on the issue linked above.
|
||||||
[haskell.nix]: https://input-output-hk.github.io/haskell.nix/index.html
|
[haskell.nix]: https://input-output-hk.github.io/haskell.nix/index.html
|
||||||
[HLS user guide]: https://haskell-language-server.readthedocs.io/en/latest/configuration.html#configuring-your-editor
|
[HLS user guide]: https://haskell-language-server.readthedocs.io/en/latest/configuration.html#configuring-your-editor
|
||||||
[hoogle]: https://wiki.haskell.org/Hoogle
|
[hoogle]: https://wiki.haskell.org/Hoogle
|
||||||
|
[incremental-builds]: https://www.haskellforall.com/2022/12/nixpkgs-support-for-incremental-haskell.html
|
||||||
[jailbreak-cabal]: https://github.com/NixOS/jailbreak-cabal/
|
[jailbreak-cabal]: https://github.com/NixOS/jailbreak-cabal/
|
||||||
|
[multiple-outputs]: https://nixos.org/manual/nixpkgs/stable/#chap-multiple-output
|
||||||
[optparse-applicative-completions]: https://github.com/pcapriotti/optparse-applicative/blob/7726b63796aa5d0df82e926d467f039b78ca09e2/README.md#bash-zsh-and-fish-completions
|
[optparse-applicative-completions]: https://github.com/pcapriotti/optparse-applicative/blob/7726b63796aa5d0df82e926d467f039b78ca09e2/README.md#bash-zsh-and-fish-completions
|
||||||
[profiling-detail]: https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-profiling-detail
|
[profiling-detail]: https://cabal.readthedocs.io/en/latest/cabal-project.html#cfg-field-profiling-detail
|
||||||
[profiling]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html
|
[profiling]: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/profiling.html
|
||||||
[search.nixos.org]: https://search.nixos.org
|
[search.nixos.org]: https://search.nixos.org
|
||||||
|
[turtle]: https://hackage.haskell.org/package/turtle
|
||||||
|
|
|
@ -5536,18 +5536,18 @@
|
||||||
githubId = 606000;
|
githubId = 606000;
|
||||||
name = "Gabriel Adomnicai";
|
name = "Gabriel Adomnicai";
|
||||||
};
|
};
|
||||||
Gabriel439 = {
|
|
||||||
email = "Gabriel439@gmail.com";
|
|
||||||
github = "Gabriella439";
|
|
||||||
githubId = 1313787;
|
|
||||||
name = "Gabriel Gonzalez";
|
|
||||||
};
|
|
||||||
GabrielDougherty = {
|
GabrielDougherty = {
|
||||||
email = "contact@gabrieldougherty.com";
|
email = "contact@gabrieldougherty.com";
|
||||||
github = "GabrielDougherty";
|
github = "GabrielDougherty";
|
||||||
githubId = 10541219;
|
githubId = 10541219;
|
||||||
name = "Gabriel Dougherty";
|
name = "Gabriel Dougherty";
|
||||||
};
|
};
|
||||||
|
Gabriella439 = {
|
||||||
|
email = "GenuineGabriella@gmail.com";
|
||||||
|
github = "Gabriella439";
|
||||||
|
githubId = 1313787;
|
||||||
|
name = "Gabriella Gonzalez";
|
||||||
|
};
|
||||||
gador = {
|
gador = {
|
||||||
email = "florian.brandes@posteo.de";
|
email = "florian.brandes@posteo.de";
|
||||||
github = "gador";
|
github = "gador";
|
||||||
|
|
|
@ -213,7 +213,7 @@ with lib.maintainers; {
|
||||||
|
|
||||||
dhall = {
|
dhall = {
|
||||||
members = [
|
members = [
|
||||||
Gabriel439
|
Gabriella439
|
||||||
ehmry
|
ehmry
|
||||||
];
|
];
|
||||||
scope = "Maintain Dhall and related packages.";
|
scope = "Maintain Dhall and related packages.";
|
||||||
|
@ -556,6 +556,15 @@ with lib.maintainers; {
|
||||||
shortName = "Minimal Bootstrap";
|
shortName = "Minimal Bootstrap";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mercury = {
|
||||||
|
members = [
|
||||||
|
_9999years
|
||||||
|
Gabriella439
|
||||||
|
];
|
||||||
|
scope = "Group registry for packages maintained by Mercury";
|
||||||
|
shortName = "Mercury Employees";
|
||||||
|
};
|
||||||
|
|
||||||
mobile = {
|
mobile = {
|
||||||
members = [
|
members = [
|
||||||
samueldr
|
samueldr
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"commit": "c607134983625cc3fc664211145b7f31dff95d1c",
|
"commit": "149e34766e4b393af8f4b1e02b3a8cb341d22151",
|
||||||
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c607134983625cc3fc664211145b7f31dff95d1c.tar.gz",
|
"url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/149e34766e4b393af8f4b1e02b3a8cb341d22151.tar.gz",
|
||||||
"sha256": "10frbz00cbklr3k0y45qd0wb9rwln7ivm05nb9lq7vl9a9dxx93w",
|
"sha256": "09acrzaqr05hbhdj2d0i5yj8j321fi7qcxfmpgws25bz9l07qand",
|
||||||
"msg": "Update from Hackage at 2023-05-10T18:33:26Z"
|
"msg": "Update from Hackage at 2023-05-28T10:08:17Z"
|
||||||
}
|
}
|
||||||
|
|
391
pkgs/development/compilers/ghc/9.2.8.nix
Normal file
391
pkgs/development/compilers/ghc/9.2.8.nix
Normal file
|
@ -0,0 +1,391 @@
|
||||||
|
{ 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 dependency, 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
|
||||||
|
&& lib.meta.availableOn stdenv.targetPlatform gmp)
|
||||||
|
, gmp
|
||||||
|
|
||||||
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
|
||||||
|
# aarch64 outputs otherwise exceed 2GB limit
|
||||||
|
, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
|
||||||
|
|
||||||
|
, # Whether to build dynamic libs for the standard library (on the target
|
||||||
|
# platform). Static libs are always built.
|
||||||
|
enableShared ? with stdenv.targetPlatform; !isWindows && !useiOSPrebuilt && !isStatic
|
||||||
|
|
||||||
|
, # Whether to build terminfo.
|
||||||
|
enableTerminfo ? !stdenv.targetPlatform.isWindows
|
||||||
|
|
||||||
|
, # What flavour to build. An empty string indicates no
|
||||||
|
# specific flavour and falls back to ghc default values.
|
||||||
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
|
, # Whether to build sphinx documentation.
|
||||||
|
enableDocs ? (
|
||||||
|
# Docs disabled for musl and cross because it's a large task to keep
|
||||||
|
# all `sphinx` dependencies building in those environments.
|
||||||
|
# `sphinx` pulls in among others:
|
||||||
|
# Ruby, Python, Perl, Rust, OpenGL, Xorg, gtk, LLVM.
|
||||||
|
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||||
|
&& !stdenv.hostPlatform.isMusl
|
||||||
|
)
|
||||||
|
|
||||||
|
, enableHaddockProgram ?
|
||||||
|
# Disabled for cross; see note [HADDOCK_DOCS].
|
||||||
|
(stdenv.targetPlatform == stdenv.hostPlatform)
|
||||||
|
|
||||||
|
, # Whether to disable the large address space allocator
|
||||||
|
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||||
|
disableLargeAddressSpace ? stdenv.targetPlatform.isiOS
|
||||||
|
}:
|
||||||
|
|
||||||
|
assert !enableNativeBignum -> gmp != null;
|
||||||
|
|
||||||
|
# Cross cannot currently build the `haddock` program for silly reasons,
|
||||||
|
# see note [HADDOCK_DOCS].
|
||||||
|
assert (stdenv.targetPlatform != stdenv.hostPlatform) -> !enableHaddockProgram;
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||||
|
|
||||||
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
|
# TODO(@Ericson2314) Make unconditional
|
||||||
|
targetPrefix = lib.optionalString
|
||||||
|
(targetPlatform != hostPlatform)
|
||||||
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
buildMK = ''
|
||||||
|
BuildFlavour = ${ghcFlavour}
|
||||||
|
ifneq \"\$(BuildFlavour)\" \"\"
|
||||||
|
include mk/flavours/\$(BuildFlavour).mk
|
||||||
|
endif
|
||||||
|
BUILD_SPHINX_HTML = ${if enableDocs then "YES" else "NO"}
|
||||||
|
BUILD_SPHINX_PDF = NO
|
||||||
|
'' +
|
||||||
|
# Note [HADDOCK_DOCS]:
|
||||||
|
# Unfortunately currently `HADDOCK_DOCS` controls both whether the `haddock`
|
||||||
|
# program is built (which we generally always want to have a complete GHC install)
|
||||||
|
# and whether it is run on the GHC sources to generate hyperlinked source code
|
||||||
|
# (which is impossible for cross-compilation); see:
|
||||||
|
# https://gitlab.haskell.org/ghc/ghc/-/issues/20077
|
||||||
|
# This implies that currently a cross-compiled GHC will never have a `haddock`
|
||||||
|
# program, so it can never generate haddocks for any packages.
|
||||||
|
# If this is solved in the future, we'd like to unconditionally
|
||||||
|
# build the haddock program (removing the `enableHaddockProgram` option).
|
||||||
|
''
|
||||||
|
HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
|
||||||
|
# Build haddocks for boot packages with hyperlinking
|
||||||
|
EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
|
||||||
|
|
||||||
|
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||||
|
BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
|
||||||
|
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
|
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||||
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
|
GhcLibWays = "v dyn"
|
||||||
|
'' +
|
||||||
|
# -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
|
||||||
|
# makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
|
||||||
|
# This solution was described in https://www.tweag.io/blog/2020-09-30-bazel-static-haskell
|
||||||
|
lib.optionalString enableRelocatedStaticLibs ''
|
||||||
|
GhcLibHcOpts += -fPIC -fexternal-dynamic-refs
|
||||||
|
GhcRtsHcOpts += -fPIC -fexternal-dynamic-refs
|
||||||
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Splicer will pull out correct variations
|
||||||
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
|
++ [libffi]
|
||||||
|
++ lib.optional (!enableNativeBignum) gmp
|
||||||
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
|
# TODO(@sternenseemann): is buildTarget LLVM unnecessary?
|
||||||
|
# GHC doesn't seem to have {LLC,OPT}_HOST
|
||||||
|
toolsForTarget = [
|
||||||
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
|
] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
|
||||||
|
|
||||||
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
# Sometimes we have to dispatch between the bintools wrapper and the unwrapped
|
||||||
|
# derivation for certain tools depending on the platform.
|
||||||
|
bintoolsFor = {
|
||||||
|
# GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
|
||||||
|
# part of the bintools wrapper (due to codesigning requirements), but not on
|
||||||
|
# x86_64-darwin.
|
||||||
|
install_name_tool =
|
||||||
|
if stdenv.targetPlatform.isAarch64
|
||||||
|
then targetCC.bintools
|
||||||
|
else targetCC.bintools.bintools;
|
||||||
|
# Same goes for strip.
|
||||||
|
strip =
|
||||||
|
# TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
|
||||||
|
if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
|
||||||
|
then targetCC.bintools
|
||||||
|
else targetCC.bintools.bintools;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
|
||||||
|
# But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||||
|
# see #84670 and #49071 for more background.
|
||||||
|
useLdGold = targetPlatform.linker == "gold" ||
|
||||||
|
(targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
|
||||||
|
|
||||||
|
# Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
|
||||||
|
variantSuffix = lib.concatStrings [
|
||||||
|
(lib.optionalString stdenv.hostPlatform.isMusl "-musl")
|
||||||
|
(lib.optionalString enableNativeBignum "-native-bignum")
|
||||||
|
];
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
# C compiler, bintools and LLVM are used at build time, but will also leak into
|
||||||
|
# the resulting GHC's settings file and used at runtime. This means that we are
|
||||||
|
# currently only able to build GHC if hostPlatform == buildPlatform.
|
||||||
|
assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
|
||||||
|
assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
|
||||||
|
assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
|
||||||
|
|
||||||
|
stdenv.mkDerivation (rec {
|
||||||
|
version = "9.2.8";
|
||||||
|
pname = "${targetPrefix}ghc${variantSuffix}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||||
|
sha256 = "sha256-XxPReGv0/RL0tF+qN6vttbs/NtXlj32lMH6L/oilZ6E=";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Fix docs build with sphinx >= 6.0
|
||||||
|
# https://gitlab.haskell.org/ghc/ghc/-/issues/22766
|
||||||
|
(fetchpatch {
|
||||||
|
name = "ghc-docs-sphinx-6.0.patch";
|
||||||
|
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
|
||||||
|
sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
|
||||||
|
})
|
||||||
|
# fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
|
||||||
|
sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk=";
|
||||||
|
extraPrefix = "utils/haddock/";
|
||||||
|
stripLen = 1;
|
||||||
|
})
|
||||||
|
# Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
|
||||||
|
# Can be removed if the Cabal library included with ghc backports the linked fix
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch";
|
||||||
|
stripLen = 1;
|
||||||
|
extraPrefix = "libraries/Cabal/";
|
||||||
|
sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
|
||||||
|
})
|
||||||
|
] ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
|
||||||
|
# Prevent the paths module from emitting symbols that we don't use
|
||||||
|
# when building with separate outputs.
|
||||||
|
#
|
||||||
|
# These cause problems as they're not eliminated by GHC's dead code
|
||||||
|
# elimination on aarch64-darwin. (see
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/140774 for details).
|
||||||
|
./Cabal-3.6-paths-fix-cycle-aarch64-darwin.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
|
# GHC needs the locale configured during the Haddock phase.
|
||||||
|
LANG = "en_US.UTF-8";
|
||||||
|
|
||||||
|
# GHC is a bit confused on its cross terminology.
|
||||||
|
# TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
|
||||||
|
preConfigure = ''
|
||||||
|
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||||
|
export "''${env#TARGET_}=''${!env}"
|
||||||
|
done
|
||||||
|
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||||
|
# the *host* tools.
|
||||||
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}c++"
|
||||||
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
|
||||||
|
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
|
||||||
|
export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
|
||||||
|
'' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
|
||||||
|
export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
|
||||||
|
export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
|
||||||
|
'' + lib.optionalString useLLVM ''
|
||||||
|
export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
|
||||||
|
export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
|
||||||
|
'' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
|
||||||
|
# LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
|
||||||
|
export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
|
||||||
|
'' + ''
|
||||||
|
echo -n "${buildMK}" > mk/build.mk
|
||||||
|
'' + lib.optionalString (stdenv.isLinux && hostPlatform.libc == "glibc") ''
|
||||||
|
export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
|
||||||
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
|
|
||||||
|
# GHC tries the host xattr /usr/bin/xattr by default which fails since it expects python to be 2.7
|
||||||
|
export XATTR=${lib.getBin xattr}/bin/xattr
|
||||||
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
|
echo "patching llvm-targets for musl targets..."
|
||||||
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
echo "(go go gadget sed)"
|
||||||
|
sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
|
||||||
|
echo "llvm-targets now contains these '*-linux-musl*' targets:"
|
||||||
|
grep linux-musl llvm-targets | sed 's/^/ /'
|
||||||
|
|
||||||
|
echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
|
||||||
|
# (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
|
||||||
|
for x in configure aclocal.m4; do
|
||||||
|
substituteInPlace $x \
|
||||||
|
--replace '*-android*|*-gnueabi*)' \
|
||||||
|
'*-android*|*-gnueabi*|*-musleabi*)'
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
|
configurePlatforms = [ "build" "host" ]
|
||||||
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
|
# `--with` flags for libraries needed for RTS linker
|
||||||
|
configureFlags = [
|
||||||
|
"--datadir=$doc/share/doc/ghc"
|
||||||
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
|
] ++ lib.optionals (libffi != null) [
|
||||||
|
"--with-system-libffi"
|
||||||
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
|
||||||
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
|
] ++ lib.optionals useLdGold [
|
||||||
|
"CFLAGS=-fuse-ld=gold"
|
||||||
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
|
"--disable-large-address-space"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Make sure we never relax`$PATH` and hooks support for compatibility.
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
|
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
||||||
|
dontAddExtraLibs = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
perl autoconf automake m4 python3
|
||||||
|
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||||
|
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
|
||||||
|
autoSignDarwinBinariesHook
|
||||||
|
] ++ lib.optionals enableDocs [
|
||||||
|
sphinx
|
||||||
|
];
|
||||||
|
|
||||||
|
# For building runtime libs
|
||||||
|
depsBuildTarget = toolsForTarget;
|
||||||
|
|
||||||
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
|
# that in turn causes GHCi to abort
|
||||||
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
|
checkTarget = "test";
|
||||||
|
|
||||||
|
hardeningDisable =
|
||||||
|
[ "format" ]
|
||||||
|
# In nixpkgs, musl based builds currently enable `pie` hardening by default
|
||||||
|
# (see `defaultHardeningFlags` in `make-derivation.nix`).
|
||||||
|
# But GHC cannot currently produce outputs that are ready for `-pie` linking.
|
||||||
|
# Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
|
||||||
|
# See:
|
||||||
|
# * https://github.com/NixOS/nixpkgs/issues/129247
|
||||||
|
# * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
|
||||||
|
++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
|
# big-parallel allows us to build with more than 2 cores on
|
||||||
|
# Hydra which already warrants a significant speedup
|
||||||
|
requiredSystemFeatures = [ "big-parallel" ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# Install the bash completion file.
|
||||||
|
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
inherit bootPkgs targetPrefix;
|
||||||
|
|
||||||
|
inherit llvmPackages;
|
||||||
|
inherit enableShared;
|
||||||
|
|
||||||
|
# This is used by the haskell builder to query
|
||||||
|
# the presence of the haddock program.
|
||||||
|
hasHaddock = enableHaddockProgram;
|
||||||
|
|
||||||
|
# Our Cabal compiler name
|
||||||
|
haskellCompilerName = "ghc-${version}";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "http://haskell.org/ghc";
|
||||||
|
description = "The Glasgow Haskell Compiler";
|
||||||
|
maintainers = with lib.maintainers; [
|
||||||
|
guibou
|
||||||
|
] ++ lib.teams.haskell.members;
|
||||||
|
timeout = 24 * 3600;
|
||||||
|
inherit (ghc.meta) license platforms;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||||
|
dontStrip = true;
|
||||||
|
dontPatchELF = true;
|
||||||
|
noAuditTmpdir = true;
|
||||||
|
})
|
|
@ -122,7 +122,6 @@ self: super: {
|
||||||
|
|
||||||
# 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3546#issuecomment-1494139751
|
# 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3546#issuecomment-1494139751
|
||||||
# There will probably be a new revision soon.
|
# There will probably be a new revision soon.
|
||||||
hls-tactics-plugin = assert super.hls-tactics-plugin.version == "1.8.0.0"; doJailbreak super.hls-tactics-plugin;
|
|
||||||
hls-brittany-plugin = assert super.hls-brittany-plugin.version == "1.1.0.0"; doJailbreak super.hls-brittany-plugin;
|
hls-brittany-plugin = assert super.hls-brittany-plugin.version == "1.1.0.0"; doJailbreak super.hls-brittany-plugin;
|
||||||
|
|
||||||
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
hls-hlint-plugin = super.hls-hlint-plugin.override {
|
||||||
|
@ -131,65 +130,6 @@ self: super: {
|
||||||
apply-refact = self.apply-refact_0_11_0_0;
|
apply-refact = self.apply-refact_0_11_0_0;
|
||||||
};
|
};
|
||||||
|
|
||||||
hls-test-utils = appendPatch (fetchpatch {
|
|
||||||
name = "hls-test-utils-ghcide-1.10-compat.patch";
|
|
||||||
url = "https://github.com/haskell/haskell-language-server/commit/014c8f90249f11a8dfa1286e67d452ccfb42b2d0.patch";
|
|
||||||
relative = "hls-test-utils";
|
|
||||||
hash = "sha256-sBuqSmgCQSgbXV6KPEZcIP09wbx81q5xjSg7/slH2HQ=";
|
|
||||||
}) super.hls-test-utils;
|
|
||||||
|
|
||||||
hls-rename-plugin = if lib.versionAtLeast super.ghc.version "9.4" then overrideCabal
|
|
||||||
(drv: {
|
|
||||||
prePatch = drv.prePatch or "" + ''
|
|
||||||
"${pkgs.buildPackages.dos2unix}/bin/dos2unix" *.cabal
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
(appendPatch (fetchpatch {
|
|
||||||
name = "hls-rename-ghc-9.4-compat.patch";
|
|
||||||
url = "https://github.com/haskell/haskell-language-server/commit/472947cdb9e711f6ef889bba3b83b0dd44a1b6bc.patch";
|
|
||||||
relative = "plugins/hls-rename-plugin";
|
|
||||||
hash = "sha256-WPhCQmn3rjCOiQFJz23QQ84zfm43FNll0BfsNK5pkG0=";
|
|
||||||
}) super.hls-rename-plugin) else super.hls-rename-plugin;
|
|
||||||
|
|
||||||
hls-floskell-plugin = if lib.versionAtLeast super.ghc.version "9.4" then overrideCabal
|
|
||||||
(drv: {
|
|
||||||
prePatch = drv.prePatch or "" + ''
|
|
||||||
"${pkgs.buildPackages.dos2unix}/bin/dos2unix" *.cabal
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
(appendPatch (fetchpatch {
|
|
||||||
name = "hls-floskell-ghc-9.4-compat.patch";
|
|
||||||
url = "https://github.com/haskell/haskell-language-server/commit/ddc67b2d4d719623b657aa54db20bf58c58a5d4a.patch";
|
|
||||||
relative = "plugins/hls-floskell-plugin";
|
|
||||||
hash = "sha256-n2vuzGbdvhW6I8c7Q22SuNIKSX2LwGNBTVyLLHJIsiU=";
|
|
||||||
}) super.hls-floskell-plugin) else super.hls-floskell-plugin;
|
|
||||||
|
|
||||||
hls-stylish-haskell-plugin = if lib.versionAtLeast super.ghc.version "9.4" then overrideCabal
|
|
||||||
(drv: {
|
|
||||||
prePatch = drv.prePatch or "" + ''
|
|
||||||
"${pkgs.buildPackages.dos2unix}/bin/dos2unix" *.cabal
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
(appendPatch (fetchpatch {
|
|
||||||
name = "hls-stylish-haskell-ghc-9.4-compat.patch";
|
|
||||||
url = "https://github.com/haskell/haskell-language-server/commit/ddc67b2d4d719623b657aa54db20bf58c58a5d4a.patch";
|
|
||||||
relative = "plugins/hls-stylish-haskell-plugin";
|
|
||||||
hash = "sha256-GtN9t5zMOROCDSLiscLZ5GmqDV+ql9R2z/+W++C2h2Q=";
|
|
||||||
}) super.hls-stylish-haskell-plugin) else super.hls-stylish-haskell-plugin;
|
|
||||||
|
|
||||||
hie-compat = if lib.versionAtLeast super.ghc.version "9.6" then overrideCabal
|
|
||||||
(drv: {
|
|
||||||
prePatch = drv.prePatch or "" + ''
|
|
||||||
"${pkgs.buildPackages.dos2unix}/bin/dos2unix" *.cabal
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
(appendPatch (fetchpatch {
|
|
||||||
name = "hie-compat-9.6-compat.patch";
|
|
||||||
url = "https://github.com/haskell/haskell-language-server/commit/191bda61fef34696a793503e639a53003ff70660.patch";
|
|
||||||
relative = "hie-compat";
|
|
||||||
hash = "sha256-z81+fwxwZ8BQWGRqTnh3XlQ6AG7EiaahdKjT+0lFu1Q=";
|
|
||||||
}) super.hie-compat) else super.hie-compat;
|
|
||||||
|
|
||||||
# For -f-auto see cabal.project in haskell-language-server.
|
# 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);
|
ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
|
||||||
|
|
||||||
|
@ -1102,6 +1042,9 @@ self: super: {
|
||||||
cp -v embeddedfiles/*.info* $out/share/info/
|
cp -v embeddedfiles/*.info* $out/share/info/
|
||||||
'';
|
'';
|
||||||
}) super.hledger;
|
}) super.hledger;
|
||||||
|
hledger_1_29_2 = doDistribute (super.hledger_1_29_2.override {
|
||||||
|
hledger-lib = self.hledger-lib_1_29_2;
|
||||||
|
});
|
||||||
hledger-ui = overrideCabal (drv: {
|
hledger-ui = overrideCabal (drv: {
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
for i in $(seq 1 9); do
|
for i in $(seq 1 9); do
|
||||||
|
@ -2515,7 +2458,7 @@ self: super: {
|
||||||
# 2022-11-15: Needs newer witch package and brick 1.3 which in turn works with text-zipper 0.12
|
# 2022-11-15: Needs newer witch package and brick 1.3 which in turn works with text-zipper 0.12
|
||||||
# Other dependencies are resolved with doJailbreak for both swarm and brick_1_3
|
# Other dependencies are resolved with doJailbreak for both swarm and brick_1_3
|
||||||
swarm = doJailbreak (super.swarm.override {
|
swarm = doJailbreak (super.swarm.override {
|
||||||
brick = doJailbreak (dontCheck super.brick_1_7);
|
brick = doJailbreak (dontCheck super.brick_1_9);
|
||||||
});
|
});
|
||||||
|
|
||||||
# Too strict upper bound on bytestring
|
# Too strict upper bound on bytestring
|
||||||
|
@ -2659,7 +2602,7 @@ self: super: {
|
||||||
# https://github.com/fourmolu/fourmolu/issues/231
|
# https://github.com/fourmolu/fourmolu/issues/231
|
||||||
fourmolu_0_12_0_0 = dontCheck (super.fourmolu_0_12_0_0.overrideScope (lself: lsuper: {
|
fourmolu_0_12_0_0 = dontCheck (super.fourmolu_0_12_0_0.overrideScope (lself: lsuper: {
|
||||||
Cabal-syntax = lself.Cabal-syntax_3_10_1_0;
|
Cabal-syntax = lself.Cabal-syntax_3_10_1_0;
|
||||||
ghc-lib-parser = lself.ghc-lib-parser_9_6_1_20230312;
|
ghc-lib-parser = lself.ghc-lib-parser_9_6_2_20230523;
|
||||||
parsec = lself.parsec_3_1_16_1;
|
parsec = lself.parsec_3_1_16_1;
|
||||||
text = lself.text_2_0_2;
|
text = lself.text_2_0_2;
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -117,6 +117,12 @@ self: super: ({
|
||||||
|
|
||||||
yesod-bin = addBuildDepend darwin.apple_sdk.frameworks.Cocoa super.yesod-bin;
|
yesod-bin = addBuildDepend darwin.apple_sdk.frameworks.Cocoa super.yesod-bin;
|
||||||
|
|
||||||
|
yesod-core = super.yesod-core.overrideAttrs (drv: {
|
||||||
|
# Allow access to local networking when the Darwin sandbox is enabled, so yesod-core can
|
||||||
|
# run tests that access localhost.
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
});
|
||||||
|
|
||||||
hmatrix = addBuildDepend darwin.apple_sdk.frameworks.Accelerate super.hmatrix;
|
hmatrix = addBuildDepend darwin.apple_sdk.frameworks.Accelerate super.hmatrix;
|
||||||
|
|
||||||
blas-hs = overrideCabal (drv: {
|
blas-hs = overrideCabal (drv: {
|
||||||
|
@ -276,6 +282,12 @@ self: super: ({
|
||||||
'' + drv.postPatch or "";
|
'' + drv.postPatch or "";
|
||||||
}) super.http-client-tls;
|
}) super.http-client-tls;
|
||||||
|
|
||||||
|
http2 = super.http2.overrideAttrs (drv: {
|
||||||
|
# Allow access to local networking when the Darwin sandbox is enabled, so http2 can run tests
|
||||||
|
# that access localhost.
|
||||||
|
__darwinAllowLocalNetworking = true;
|
||||||
|
});
|
||||||
|
|
||||||
foldl = overrideCabal (drv: {
|
foldl = overrideCabal (drv: {
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# This comment has been inserted, so the derivation hash changes, forcing
|
# This comment has been inserted, so the derivation hash changes, forcing
|
||||||
|
|
|
@ -190,14 +190,6 @@ in {
|
||||||
# https://github.com/kowainik/relude/issues/436
|
# https://github.com/kowainik/relude/issues/436
|
||||||
relude = dontCheck (doJailbreak super.relude);
|
relude = dontCheck (doJailbreak super.relude);
|
||||||
|
|
||||||
# Fixes compilation failure with GHC >= 9.4 on aarch64-* due to an API change
|
|
||||||
cborg = appendPatch (pkgs.fetchpatch {
|
|
||||||
name = "cborg-support-ghc-9.4.patch";
|
|
||||||
url = "https://github.com/well-typed/cborg/pull/304.diff";
|
|
||||||
sha256 = "sha256-W4HldlESKOVkTPhz9nkFrvbj9akCOtF1SbIt5eJqtj8=";
|
|
||||||
relative = "cborg";
|
|
||||||
}) super.cborg;
|
|
||||||
|
|
||||||
ormolu = doDistribute self.ormolu_0_5_3_0;
|
ormolu = doDistribute self.ormolu_0_5_3_0;
|
||||||
# https://github.com/tweag/ormolu/issues/941
|
# https://github.com/tweag/ormolu/issues/941
|
||||||
fourmolu = overrideCabal (drv: {
|
fourmolu = overrideCabal (drv: {
|
||||||
|
|
|
@ -77,8 +77,8 @@ self: super: {
|
||||||
aeson = doDistribute self.aeson_2_1_2_1;
|
aeson = doDistribute self.aeson_2_1_2_1;
|
||||||
memory = doDistribute self.memory_0_18_0;
|
memory = doDistribute self.memory_0_18_0;
|
||||||
|
|
||||||
ghc-lib = doDistribute self.ghc-lib_9_6_1_20230312;
|
ghc-lib = doDistribute self.ghc-lib_9_6_2_20230523;
|
||||||
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_6_1_20230312;
|
ghc-lib-parser = doDistribute self.ghc-lib-parser_9_6_2_20230523;
|
||||||
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_0;
|
ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_0;
|
||||||
|
|
||||||
# allows mtl, template-haskell, text and transformers
|
# allows mtl, template-haskell, text and transformers
|
||||||
|
@ -103,8 +103,7 @@ self: super: {
|
||||||
|
|
||||||
# Forbids base >= 4.18, fix proposed: https://github.com/sjakobi/newtype-generics/pull/25
|
# Forbids base >= 4.18, fix proposed: https://github.com/sjakobi/newtype-generics/pull/25
|
||||||
newtype-generics = jailbreakForCurrentVersion super.newtype-generics "0.6.2";
|
newtype-generics = jailbreakForCurrentVersion super.newtype-generics "0.6.2";
|
||||||
# Forbids base >= 4.18, fix proposed: https://github.com/well-typed/cborg/pull/312
|
|
||||||
cborg = jailbreakForCurrentVersion super.cborg "0.2.8.0";
|
|
||||||
cborg-json = jailbreakForCurrentVersion super.cborg-json "0.2.5.0";
|
cborg-json = jailbreakForCurrentVersion super.cborg-json "0.2.5.0";
|
||||||
serialise = jailbreakForCurrentVersion super.serialise "0.2.6.0";
|
serialise = jailbreakForCurrentVersion super.serialise "0.2.6.0";
|
||||||
|
|
||||||
|
@ -155,7 +154,16 @@ self: super: {
|
||||||
|
|
||||||
# 2023-04-03: plugins disabled for hls 1.10.0.0 based on
|
# 2023-04-03: plugins disabled for hls 1.10.0.0 based on
|
||||||
#
|
#
|
||||||
haskell-language-server = super.haskell-language-server.override {
|
haskell-language-server =
|
||||||
|
let
|
||||||
|
# TODO: HLS-2.0.0.0 added support for the foumolu plugin for ghc-9.6.
|
||||||
|
# However, putting together all the overrides to get the latest
|
||||||
|
# version of fourmolu compiling together with ghc-9.6 and HLS is a
|
||||||
|
# little annoying, so currently fourmolu has been disabled. We should
|
||||||
|
# try to enable this at some point in the future.
|
||||||
|
hlsWithFlags = disableCabalFlag "fourmolu" super.haskell-language-server;
|
||||||
|
in
|
||||||
|
hlsWithFlags.override {
|
||||||
hls-ormolu-plugin = null;
|
hls-ormolu-plugin = null;
|
||||||
hls-floskell-plugin = null;
|
hls-floskell-plugin = null;
|
||||||
hls-fourmolu-plugin = null;
|
hls-fourmolu-plugin = null;
|
||||||
|
|
|
@ -843,7 +843,6 @@ broken-packages:
|
||||||
- conferer-provider-json
|
- conferer-provider-json
|
||||||
- conferer-snap
|
- conferer-snap
|
||||||
- conferer-source-json
|
- conferer-source-json
|
||||||
- conferer-warp
|
|
||||||
- confide
|
- confide
|
||||||
- ConfigFileTH
|
- ConfigFileTH
|
||||||
- config-parser
|
- config-parser
|
||||||
|
@ -2430,6 +2429,7 @@ broken-packages:
|
||||||
- hplaylist
|
- hplaylist
|
||||||
- hpodder
|
- hpodder
|
||||||
- hpqtypes
|
- hpqtypes
|
||||||
|
- hprox # dependency missing in job https://hydra.nixos.org/build/221844808 at 2023-05-30
|
||||||
- hps-kmeans
|
- hps-kmeans
|
||||||
- hPushover
|
- hPushover
|
||||||
- hpygments
|
- hpygments
|
||||||
|
@ -2739,6 +2739,7 @@ broken-packages:
|
||||||
- inj-base
|
- inj-base
|
||||||
- inject-function
|
- inject-function
|
||||||
- injections
|
- injections
|
||||||
|
- inline-c-objc # failure building test suite 'tests' in job https://hydra.nixos.org/build/221844966 at 2023-05-30
|
||||||
- in-other-words-plugin
|
- in-other-words-plugin
|
||||||
- inserts
|
- inserts
|
||||||
- instana-haskell-trace-sdk
|
- instana-haskell-trace-sdk
|
||||||
|
@ -5056,6 +5057,7 @@ broken-packages:
|
||||||
- state-record
|
- state-record
|
||||||
- static
|
- static
|
||||||
- static-canvas
|
- static-canvas
|
||||||
|
- static-ls # failure in job https://hydra.nixos.org/build/221848657 at 2023-05-30
|
||||||
- static-tensor
|
- static-tensor
|
||||||
- statistics-dirichlet
|
- statistics-dirichlet
|
||||||
- statistics-fusion
|
- statistics-fusion
|
||||||
|
@ -5862,6 +5864,7 @@ broken-packages:
|
||||||
- wol
|
- wol
|
||||||
- word24
|
- word24
|
||||||
- word2vec-model
|
- word2vec-model
|
||||||
|
- word8set # failure in job https://hydra.nixos.org/build/221843616 at 2023-05-30
|
||||||
- wordchoice
|
- wordchoice
|
||||||
- wordify
|
- wordify
|
||||||
- Wordlint
|
- Wordlint
|
||||||
|
|
|
@ -202,7 +202,7 @@ package-maintainers:
|
||||||
- vulkan-utils
|
- vulkan-utils
|
||||||
erictapen:
|
erictapen:
|
||||||
- hakyll
|
- hakyll
|
||||||
Gabriel439:
|
Gabriella439:
|
||||||
- annah
|
- annah
|
||||||
- bench
|
- bench
|
||||||
- break
|
- break
|
||||||
|
@ -568,6 +568,7 @@ unsupported-platforms:
|
||||||
bytelog: [ platforms.darwin ] # due to posix-api
|
bytelog: [ platforms.darwin ] # due to posix-api
|
||||||
camfort: [ aarch64-linux ]
|
camfort: [ aarch64-linux ]
|
||||||
charsetdetect: [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3
|
charsetdetect: [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3
|
||||||
|
coinor-clp: [ aarch64-linux ] # aarch64-linux is not supported by required system dependency clp
|
||||||
cut-the-crap: [ platforms.darwin ]
|
cut-the-crap: [ platforms.darwin ]
|
||||||
essence-of-live-coding-PortMidi: [ platforms.darwin ]
|
essence-of-live-coding-PortMidi: [ platforms.darwin ]
|
||||||
Euterpea: [ platforms.darwin ]
|
Euterpea: [ platforms.darwin ]
|
||||||
|
@ -814,3 +815,10 @@ dont-distribute-packages:
|
||||||
|
|
||||||
# Output exceeds Hydra's maximum allowable size
|
# Output exceeds Hydra's maximum allowable size
|
||||||
- stripeapi
|
- stripeapi
|
||||||
|
|
||||||
|
# Packages that (transitively) depend on insecure packages
|
||||||
|
- distributed-process-zookeeper # depends on hzk
|
||||||
|
- hzk # depends on zookeeper_mt, which depends on openssl-1.1
|
||||||
|
- persistent-zookeper # depends on hzk
|
||||||
|
- pocket-dns # depends on persistent-zookeeper
|
||||||
|
- zoovisitor # depends on zookeeper_mt, which depends on openssl-1.1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Stackage LTS 20.20
|
# Stackage LTS 20.23
|
||||||
# This file is auto-generated by
|
# This file is auto-generated by
|
||||||
# maintainers/scripts/haskell/update-stackage.sh
|
# maintainers/scripts/haskell/update-stackage.sh
|
||||||
default-package-overrides:
|
default-package-overrides:
|
||||||
|
@ -203,7 +203,7 @@ default-package-overrides:
|
||||||
- bitvec ==1.1.4.0
|
- bitvec ==1.1.4.0
|
||||||
- bitwise-enum ==1.0.1.0
|
- bitwise-enum ==1.0.1.0
|
||||||
- blake2 ==0.3.0
|
- blake2 ==0.3.0
|
||||||
- Blammo ==1.1.1.1
|
- Blammo ==1.1.1.2
|
||||||
- blank-canvas ==0.7.3
|
- blank-canvas ==0.7.3
|
||||||
- blanks ==0.5.0
|
- blanks ==0.5.0
|
||||||
- blas-carray ==0.1.0.2
|
- blas-carray ==0.1.0.2
|
||||||
|
@ -227,7 +227,7 @@ default-package-overrides:
|
||||||
- bookkeeping ==0.4.0.1
|
- bookkeeping ==0.4.0.1
|
||||||
- Boolean ==0.2.4
|
- Boolean ==0.2.4
|
||||||
- boolsimplifier ==0.1.8
|
- boolsimplifier ==0.1.8
|
||||||
- boomerang ==1.4.8.1
|
- boomerang ==1.4.9
|
||||||
- boots ==0.2.0.1
|
- boots ==0.2.0.1
|
||||||
- bordacount ==0.1.0.0
|
- bordacount ==0.1.0.0
|
||||||
- boring ==0.2.1
|
- boring ==0.2.1
|
||||||
|
@ -294,11 +294,11 @@ default-package-overrides:
|
||||||
- cache ==0.1.3.0
|
- cache ==0.1.3.0
|
||||||
- cached-json-file ==0.1.1
|
- cached-json-file ==0.1.1
|
||||||
- cacophony ==0.10.1
|
- cacophony ==0.10.1
|
||||||
- cairo ==0.13.8.2
|
- cairo ==0.13.10.0
|
||||||
- calendar-recycling ==0.0.0.1
|
- calendar-recycling ==0.0.0.1
|
||||||
- call-alloy ==0.4.0.3
|
- call-alloy ==0.4.0.3
|
||||||
- calligraphy ==0.1.4
|
- calligraphy ==0.1.4
|
||||||
- call-plantuml ==0.0.1.1
|
- call-plantuml ==0.0.1.2
|
||||||
- call-stack ==0.4.0
|
- call-stack ==0.4.0
|
||||||
- can-i-haz ==0.3.1.1
|
- can-i-haz ==0.3.1.1
|
||||||
- capability ==0.5.0.1
|
- capability ==0.5.0.1
|
||||||
|
@ -315,7 +315,7 @@ default-package-overrides:
|
||||||
- cassava-megaparsec ==2.0.4
|
- cassava-megaparsec ==2.0.4
|
||||||
- cast ==0.1.0.2
|
- cast ==0.1.0.2
|
||||||
- cayley-client ==0.4.19.2
|
- cayley-client ==0.4.19.2
|
||||||
- cborg ==0.2.8.0
|
- cborg ==0.2.9.0
|
||||||
- cborg-json ==0.2.5.0
|
- cborg-json ==0.2.5.0
|
||||||
- cdar-mBound ==0.1.0.4
|
- cdar-mBound ==0.1.0.4
|
||||||
- c-enum ==0.1.1.3
|
- c-enum ==0.1.1.3
|
||||||
|
@ -388,7 +388,7 @@ default-package-overrides:
|
||||||
- commutative ==0.0.2
|
- commutative ==0.0.2
|
||||||
- comonad ==5.0.8
|
- comonad ==5.0.8
|
||||||
- comonad-extras ==4.0.1
|
- comonad-extras ==4.0.1
|
||||||
- compactmap ==0.1.4.2.1
|
- compactmap ==0.1.4.3
|
||||||
- compensated ==0.8.3
|
- compensated ==0.8.3
|
||||||
- compiler-warnings ==0.1.0
|
- compiler-warnings ==0.1.0
|
||||||
- componentm ==0.0.0.2
|
- componentm ==0.0.0.2
|
||||||
|
@ -405,11 +405,11 @@ default-package-overrides:
|
||||||
- concise ==0.1.0.1
|
- concise ==0.1.0.1
|
||||||
- concurrency ==1.11.0.2
|
- concurrency ==1.11.0.2
|
||||||
- concurrent-extra ==0.7.0.12
|
- concurrent-extra ==0.7.0.12
|
||||||
- concurrent-output ==1.10.17
|
- concurrent-output ==1.10.18
|
||||||
- concurrent-split ==0.0.1.1
|
- concurrent-split ==0.0.1.1
|
||||||
- cond ==0.4.1.1
|
- cond ==0.4.1.1
|
||||||
- conduino ==0.2.2.0
|
- conduino ==0.2.2.0
|
||||||
- conduit ==1.3.4.3
|
- conduit ==1.3.5
|
||||||
- conduit-aeson ==0.1.0.1
|
- conduit-aeson ==0.1.0.1
|
||||||
- conduit-algorithms ==0.0.13.0
|
- conduit-algorithms ==0.0.13.0
|
||||||
- conduit-combinators ==1.3.0
|
- conduit-combinators ==1.3.0
|
||||||
|
@ -447,7 +447,7 @@ default-package-overrides:
|
||||||
- cookie ==0.4.6
|
- cookie ==0.4.6
|
||||||
- copr-api ==0.1.0
|
- copr-api ==0.1.0
|
||||||
- core-data ==0.3.9.1
|
- core-data ==0.3.9.1
|
||||||
- core-program ==0.6.6.0
|
- core-program ==0.6.8.0
|
||||||
- core-telemetry ==0.2.9.1
|
- core-telemetry ==0.2.9.1
|
||||||
- core-text ==0.3.8.1
|
- core-text ==0.3.8.1
|
||||||
- countable ==1.2
|
- countable ==1.2
|
||||||
|
@ -486,7 +486,7 @@ default-package-overrides:
|
||||||
- crypt-sha512 ==0
|
- crypt-sha512 ==0
|
||||||
- csp ==1.4.0
|
- csp ==1.4.0
|
||||||
- css-text ==0.1.3.0
|
- css-text ==0.1.3.0
|
||||||
- c-struct ==0.1.1.3
|
- c-struct ==0.1.3.0
|
||||||
- csv ==0.1.2
|
- csv ==0.1.2
|
||||||
- csv-conduit ==0.7.3.0
|
- csv-conduit ==0.7.3.0
|
||||||
- ctrie ==0.2
|
- ctrie ==0.2
|
||||||
|
@ -587,7 +587,7 @@ default-package-overrides:
|
||||||
- diagrams-cairo ==1.4.2
|
- diagrams-cairo ==1.4.2
|
||||||
- diagrams-canvas ==1.4.1.1
|
- diagrams-canvas ==1.4.1.1
|
||||||
- diagrams-contrib ==1.4.5
|
- diagrams-contrib ==1.4.5
|
||||||
- diagrams-core ==1.5.0.1
|
- diagrams-core ==1.5.1
|
||||||
- diagrams-lib ==1.4.5.2
|
- diagrams-lib ==1.4.5.2
|
||||||
- diagrams-postscript ==1.5.1.1
|
- diagrams-postscript ==1.5.1.1
|
||||||
- diagrams-rasterific ==1.4.2.2
|
- diagrams-rasterific ==1.4.2.2
|
||||||
|
@ -655,7 +655,7 @@ default-package-overrides:
|
||||||
- duration ==0.2.0.0
|
- duration ==0.2.0.0
|
||||||
- dvorak ==0.1.0.0
|
- dvorak ==0.1.0.0
|
||||||
- dynamic-state ==0.3.1
|
- dynamic-state ==0.3.1
|
||||||
- dyre ==0.9.1
|
- dyre ==0.9.2
|
||||||
- eap ==0.9.0.2
|
- eap ==0.9.0.2
|
||||||
- Earley ==0.13.0.1
|
- Earley ==0.13.0.1
|
||||||
- easy-file ==0.2.5
|
- easy-file ==0.2.5
|
||||||
|
@ -923,7 +923,7 @@ default-package-overrides:
|
||||||
- ghc-source-gen ==0.4.3.0
|
- ghc-source-gen ==0.4.3.0
|
||||||
- ghc-syntax-highlighter ==0.0.8.0
|
- ghc-syntax-highlighter ==0.0.8.0
|
||||||
- ghc-tcplugins-extra ==0.4.4
|
- ghc-tcplugins-extra ==0.4.4
|
||||||
- ghc-trace-events ==0.1.2.6
|
- ghc-trace-events ==0.1.2.7
|
||||||
- ghc-typelits-extra ==0.4.5
|
- ghc-typelits-extra ==0.4.5
|
||||||
- ghc-typelits-knownnat ==0.7.8
|
- ghc-typelits-knownnat ==0.7.8
|
||||||
- ghc-typelits-natnormalise ==0.7.8
|
- ghc-typelits-natnormalise ==0.7.8
|
||||||
|
@ -949,11 +949,11 @@ default-package-overrides:
|
||||||
- gi-gtksource ==3.0.28
|
- gi-gtksource ==3.0.28
|
||||||
- gi-harfbuzz ==0.0.9
|
- gi-harfbuzz ==0.0.9
|
||||||
- gi-javascriptcore ==4.0.27
|
- gi-javascriptcore ==4.0.27
|
||||||
- gio ==0.13.8.2
|
- gio ==0.13.10.0
|
||||||
- gi-pango ==1.0.29
|
- gi-pango ==1.0.29
|
||||||
- githash ==0.1.6.3
|
- githash ==0.1.6.3
|
||||||
- github ==0.28.0.1
|
- github ==0.28.0.1
|
||||||
- github-release ==2.0.0.5
|
- github-release ==2.0.0.6
|
||||||
- github-rest ==1.1.2
|
- github-rest ==1.1.2
|
||||||
- github-types ==0.2.1
|
- github-types ==0.2.1
|
||||||
- github-webhooks ==0.16.0
|
- github-webhooks ==0.16.0
|
||||||
|
@ -966,7 +966,7 @@ default-package-overrides:
|
||||||
- gl ==0.9
|
- gl ==0.9
|
||||||
- glasso ==0.1.0
|
- glasso ==0.1.0
|
||||||
- GLFW-b ==3.3.0.0
|
- GLFW-b ==3.3.0.0
|
||||||
- glib ==0.13.8.2
|
- glib ==0.13.10.0
|
||||||
- Glob ==0.10.2
|
- Glob ==0.10.2
|
||||||
- glob-posix ==0.2.0.1
|
- glob-posix ==0.2.0.1
|
||||||
- gloss ==1.13.2.2
|
- gloss ==1.13.2.2
|
||||||
|
@ -995,9 +995,9 @@ default-package-overrides:
|
||||||
- groom ==0.1.2.1
|
- groom ==0.1.2.1
|
||||||
- grouped-list ==0.2.3.0
|
- grouped-list ==0.2.3.0
|
||||||
- groups ==0.5.3
|
- groups ==0.5.3
|
||||||
- gtk ==0.15.7
|
- gtk ==0.15.8
|
||||||
- gtk2hs-buildtools ==0.13.8.3
|
- gtk2hs-buildtools ==0.13.10.0
|
||||||
- gtk3 ==0.15.7
|
- gtk3 ==0.15.8
|
||||||
- gtk-sni-tray ==0.1.8.1
|
- gtk-sni-tray ==0.1.8.1
|
||||||
- gtk-strut ==0.1.3.2
|
- gtk-strut ==0.1.3.2
|
||||||
- guarded-allocation ==0.0.1
|
- guarded-allocation ==0.0.1
|
||||||
|
@ -1047,7 +1047,7 @@ default-package-overrides:
|
||||||
- hasql-dynamic-statements ==0.3.1.2
|
- hasql-dynamic-statements ==0.3.1.2
|
||||||
- hasql-implicits ==0.1.1
|
- hasql-implicits ==0.1.1
|
||||||
- hasql-migration ==0.3.0
|
- hasql-migration ==0.3.0
|
||||||
- hasql-notifications ==0.2.0.4
|
- hasql-notifications ==0.2.0.5
|
||||||
- hasql-optparse-applicative ==0.5
|
- hasql-optparse-applicative ==0.5
|
||||||
- hasql-pool ==0.8.0.7
|
- hasql-pool ==0.8.0.7
|
||||||
- hasql-queue ==1.2.0.2
|
- hasql-queue ==1.2.0.2
|
||||||
|
@ -1133,7 +1133,7 @@ default-package-overrides:
|
||||||
- hpack ==0.35.2
|
- hpack ==0.35.2
|
||||||
- hpack-dhall ==0.5.7
|
- hpack-dhall ==0.5.7
|
||||||
- hpc-codecov ==0.3.0.0
|
- hpc-codecov ==0.3.0.0
|
||||||
- hpc-lcov ==1.1.0
|
- hpc-lcov ==1.1.1
|
||||||
- HPDF ==1.6.1
|
- HPDF ==1.6.1
|
||||||
- hpp ==0.6.5
|
- hpp ==0.6.5
|
||||||
- hpqtypes ==1.9.4.0
|
- hpqtypes ==1.9.4.0
|
||||||
|
@ -1181,7 +1181,7 @@ default-package-overrides:
|
||||||
- hspec-expectations-json ==1.0.0.7
|
- hspec-expectations-json ==1.0.0.7
|
||||||
- hspec-expectations-lifted ==0.10.0
|
- hspec-expectations-lifted ==0.10.0
|
||||||
- hspec-expectations-pretty-diff ==0.7.2.6
|
- hspec-expectations-pretty-diff ==0.7.2.6
|
||||||
- hspec-golden ==0.2.0.1
|
- hspec-golden ==0.2.1.0
|
||||||
- hspec-golden-aeson ==0.9.0.0
|
- hspec-golden-aeson ==0.9.0.0
|
||||||
- hspec-hedgehog ==0.0.1.2
|
- hspec-hedgehog ==0.0.1.2
|
||||||
- hspec-junit-formatter ==1.1.0.2
|
- hspec-junit-formatter ==1.1.0.2
|
||||||
|
@ -1256,7 +1256,7 @@ default-package-overrides:
|
||||||
- hw-hspec-hedgehog ==0.1.1.1
|
- hw-hspec-hedgehog ==0.1.1.1
|
||||||
- hw-int ==0.0.2.0
|
- hw-int ==0.0.2.0
|
||||||
- hw-ip ==2.4.2.1
|
- hw-ip ==2.4.2.1
|
||||||
- hw-json ==1.3.2.3
|
- hw-json ==1.3.2.4
|
||||||
- hw-json-simd ==0.1.1.2
|
- hw-json-simd ==0.1.1.2
|
||||||
- hw-json-simple-cursor ==0.1.1.1
|
- hw-json-simple-cursor ==0.1.1.1
|
||||||
- hw-json-standard-cursor ==0.2.3.2
|
- hw-json-standard-cursor ==0.2.3.2
|
||||||
|
@ -1314,7 +1314,7 @@ default-package-overrides:
|
||||||
- influxdb ==1.9.2.2
|
- influxdb ==1.9.2.2
|
||||||
- ini ==0.4.2
|
- ini ==0.4.2
|
||||||
- inj ==1.0
|
- inj ==1.0
|
||||||
- inline-c ==0.9.1.7
|
- inline-c ==0.9.1.8
|
||||||
- inline-c-cpp ==0.5.0.0
|
- inline-c-cpp ==0.5.0.0
|
||||||
- inliterate ==0.1.0
|
- inliterate ==0.1.0
|
||||||
- input-parsers ==0.2.3.2
|
- input-parsers ==0.2.3.2
|
||||||
|
@ -1452,7 +1452,7 @@ default-package-overrides:
|
||||||
- lens-properties ==4.11.1
|
- lens-properties ==4.11.1
|
||||||
- lens-regex ==0.1.3
|
- lens-regex ==0.1.3
|
||||||
- lens-regex-pcre ==1.1.0.0
|
- lens-regex-pcre ==1.1.0.0
|
||||||
- lentil ==1.5.5.2
|
- lentil ==1.5.5.4
|
||||||
- LetsBeRational ==1.0.0.0
|
- LetsBeRational ==1.0.0.0
|
||||||
- leveldb-haskell ==0.6.5
|
- leveldb-haskell ==0.6.5
|
||||||
- lexer-applicative ==2.1.0.2
|
- lexer-applicative ==2.1.0.2
|
||||||
|
@ -1525,14 +1525,14 @@ default-package-overrides:
|
||||||
- mainland-pretty ==0.7.1
|
- mainland-pretty ==0.7.1
|
||||||
- main-tester ==0.2.0.1
|
- main-tester ==0.2.0.1
|
||||||
- managed ==1.0.10
|
- managed ==1.0.10
|
||||||
- mandrill ==0.5.6.0
|
- mandrill ==0.5.7.0
|
||||||
- map-syntax ==0.3
|
- map-syntax ==0.3
|
||||||
- markdown ==0.1.17.5
|
- markdown ==0.1.17.5
|
||||||
- markdown-unlit ==0.5.1
|
- markdown-unlit ==0.5.1
|
||||||
- markov-chain ==0.0.3.4
|
- markov-chain ==0.0.3.4
|
||||||
- markov-chain-usage-model ==0.0.0
|
- markov-chain-usage-model ==0.0.0
|
||||||
- mason ==0.2.6
|
- mason ==0.2.6
|
||||||
- massiv ==1.0.3.0
|
- massiv ==1.0.4.0
|
||||||
- massiv-io ==1.0.0.1
|
- massiv-io ==1.0.0.1
|
||||||
- massiv-persist ==1.0.0.3
|
- massiv-persist ==1.0.0.3
|
||||||
- massiv-serialise ==1.0.0.2
|
- massiv-serialise ==1.0.0.2
|
||||||
|
@ -1540,6 +1540,7 @@ default-package-overrides:
|
||||||
- mathexpr ==0.3.1.0
|
- mathexpr ==0.3.1.0
|
||||||
- math-extras ==0.1.1.0
|
- math-extras ==0.1.1.0
|
||||||
- math-functions ==0.3.4.2
|
- math-functions ==0.3.4.2
|
||||||
|
- mathlist ==0.1.0.4
|
||||||
- matplotlib ==0.7.7
|
- matplotlib ==0.7.7
|
||||||
- matrices ==0.5.0
|
- matrices ==0.5.0
|
||||||
- matrix ==0.3.6.1
|
- matrix ==0.3.6.1
|
||||||
|
@ -1713,7 +1714,7 @@ default-package-overrides:
|
||||||
- netwire ==5.0.3
|
- netwire ==5.0.3
|
||||||
- netwire-input ==0.0.7
|
- netwire-input ==0.0.7
|
||||||
- netwire-input-glfw ==0.0.11
|
- netwire-input-glfw ==0.0.11
|
||||||
- network ==3.1.2.9
|
- network ==3.1.4.0
|
||||||
- network-bsd ==2.8.1.0
|
- network-bsd ==2.8.1.0
|
||||||
- network-byte-order ==0.1.6
|
- network-byte-order ==0.1.6
|
||||||
- network-conduit-tls ==1.3.2
|
- network-conduit-tls ==1.3.2
|
||||||
|
@ -1804,10 +1805,10 @@ default-package-overrides:
|
||||||
- optics-extra ==0.4.2.1
|
- optics-extra ==0.4.2.1
|
||||||
- optics-th ==0.4.1
|
- optics-th ==0.4.1
|
||||||
- optics-vl ==0.2.1
|
- optics-vl ==0.2.1
|
||||||
- optima ==0.4.0.3
|
- optima ==0.4.0.4
|
||||||
- optional-args ==1.0.2
|
- optional-args ==1.0.2
|
||||||
- options ==1.2.1.1
|
- options ==1.2.1.1
|
||||||
- optparse-applicative ==0.17.0.0
|
- optparse-applicative ==0.17.1.0
|
||||||
- optparse-enum ==1.0.0.0
|
- optparse-enum ==1.0.0.0
|
||||||
- optparse-generic ==1.4.9
|
- optparse-generic ==1.4.9
|
||||||
- optparse-simple ==0.1.1.4
|
- optparse-simple ==0.1.1.4
|
||||||
|
@ -1829,7 +1830,7 @@ default-package-overrides:
|
||||||
- pandoc-plot ==1.5.5
|
- pandoc-plot ==1.5.5
|
||||||
- pandoc-throw ==0.1.0.0
|
- pandoc-throw ==0.1.0.0
|
||||||
- pandoc-types ==1.22.2.1
|
- pandoc-types ==1.22.2.1
|
||||||
- pango ==0.13.8.2
|
- pango ==0.13.10.0
|
||||||
- pantry ==0.5.7
|
- pantry ==0.5.7
|
||||||
- parallel ==3.2.2.0
|
- parallel ==3.2.2.0
|
||||||
- parallel-io ==0.3.5
|
- parallel-io ==0.3.5
|
||||||
|
@ -1955,7 +1956,7 @@ default-package-overrides:
|
||||||
- postgresql-binary ==0.13.1
|
- postgresql-binary ==0.13.1
|
||||||
- postgresql-libpq ==0.9.5.0
|
- postgresql-libpq ==0.9.5.0
|
||||||
- postgresql-libpq-notify ==0.2.0.0
|
- postgresql-libpq-notify ==0.2.0.0
|
||||||
- postgresql-migration ==0.2.1.6
|
- postgresql-migration ==0.2.1.7
|
||||||
- postgresql-query ==3.10.0
|
- postgresql-query ==3.10.0
|
||||||
- postgresql-schema ==0.1.14
|
- postgresql-schema ==0.1.14
|
||||||
- postgresql-simple ==0.6.4
|
- postgresql-simple ==0.6.4
|
||||||
|
@ -2124,7 +2125,7 @@ default-package-overrides:
|
||||||
- regex-pcre-builtin ==0.95.2.3.8.44
|
- regex-pcre-builtin ==0.95.2.3.8.44
|
||||||
- regex-posix ==0.96.0.1
|
- regex-posix ==0.96.0.1
|
||||||
- regex-posix-clib ==2.7
|
- regex-posix-clib ==2.7
|
||||||
- regex-tdfa ==1.3.2
|
- regex-tdfa ==1.3.2.1
|
||||||
- regex-with-pcre ==1.1.0.2
|
- regex-with-pcre ==1.1.0.2
|
||||||
- registry ==0.3.3.4
|
- registry ==0.3.3.4
|
||||||
- registry-aeson ==0.2.3.3
|
- registry-aeson ==0.2.3.3
|
||||||
|
@ -2408,7 +2409,7 @@ default-package-overrides:
|
||||||
- stack ==2.9.1
|
- stack ==2.9.1
|
||||||
- stack-all ==0.4.1
|
- stack-all ==0.4.1
|
||||||
- stack-clean-old ==0.4.6
|
- stack-clean-old ==0.4.6
|
||||||
- stack-templatizer ==0.1.0.2
|
- stack-templatizer ==0.1.1.0
|
||||||
- state-codes ==0.1.3
|
- state-codes ==0.1.3
|
||||||
- stateref ==0.3
|
- stateref ==0.3
|
||||||
- statestack ==0.3.1.1
|
- statestack ==0.3.1.1
|
||||||
|
@ -2427,7 +2428,7 @@ default-package-overrides:
|
||||||
- stm-extras ==0.1.0.3
|
- stm-extras ==0.1.0.3
|
||||||
- stm-hamt ==1.2.0.11
|
- stm-hamt ==1.2.0.11
|
||||||
- stm-lifted ==2.5.0.0
|
- stm-lifted ==2.5.0.0
|
||||||
- STMonadTrans ==0.4.6
|
- STMonadTrans ==0.4.7
|
||||||
- stm-split ==0.0.2.1
|
- stm-split ==0.0.2.1
|
||||||
- stopwatch ==0.1.0.6
|
- stopwatch ==0.1.0.6
|
||||||
- storable-complex ==0.2.3.0
|
- storable-complex ==0.2.3.0
|
||||||
|
@ -2587,7 +2588,7 @@ default-package-overrides:
|
||||||
- testing-feat ==1.1.1.1
|
- testing-feat ==1.1.1.1
|
||||||
- testing-type-modifiers ==0.1.0.1
|
- testing-type-modifiers ==0.1.0.1
|
||||||
- texmath ==0.12.5.5
|
- texmath ==0.12.5.5
|
||||||
- text-ansi ==0.2.1
|
- text-ansi ==0.2.1.1
|
||||||
- text-binary ==0.2.1.1
|
- text-binary ==0.2.1.1
|
||||||
- text-builder ==0.6.7
|
- text-builder ==0.6.7
|
||||||
- text-builder-dev ==0.3.3.2
|
- text-builder-dev ==0.3.3.2
|
||||||
|
@ -2683,7 +2684,7 @@ default-package-overrides:
|
||||||
- transaction ==0.1.1.3
|
- transaction ==0.1.1.3
|
||||||
- transformers-base ==0.4.6
|
- transformers-base ==0.4.6
|
||||||
- transformers-compat ==0.7.2
|
- transformers-compat ==0.7.2
|
||||||
- transformers-either ==0.1.3
|
- transformers-either ==0.1.4
|
||||||
- transformers-fix ==1.0
|
- transformers-fix ==1.0
|
||||||
- transient ==0.7.0.0
|
- transient ==0.7.0.0
|
||||||
- traverse-with-class ==1.0.1.1
|
- traverse-with-class ==1.0.1.1
|
||||||
|
|
|
@ -1265,7 +1265,6 @@ dont-distribute-packages:
|
||||||
- distributed-process-systest
|
- distributed-process-systest
|
||||||
- distributed-process-task
|
- distributed-process-task
|
||||||
- distributed-process-tests
|
- distributed-process-tests
|
||||||
- distributed-process-zookeeper
|
|
||||||
- distributed-static
|
- distributed-static
|
||||||
- distribution-plot
|
- distribution-plot
|
||||||
- dixi
|
- dixi
|
||||||
|
@ -1514,7 +1513,7 @@ dont-distribute-packages:
|
||||||
- fpnla-examples
|
- fpnla-examples
|
||||||
- frame-markdown
|
- frame-markdown
|
||||||
- freckle-app
|
- freckle-app
|
||||||
- freckle-app_1_9_0_1
|
- freckle-app_1_9_0_2
|
||||||
- free-functors
|
- free-functors
|
||||||
- free-game
|
- free-game
|
||||||
- free-theorems-counterexamples
|
- free-theorems-counterexamples
|
||||||
|
@ -1541,7 +1540,6 @@ dont-distribute-packages:
|
||||||
- functor-combo
|
- functor-combo
|
||||||
- funflow
|
- funflow
|
||||||
- funflow-nix
|
- funflow-nix
|
||||||
- fungll-combinators
|
|
||||||
- funion
|
- funion
|
||||||
- funnyprint
|
- funnyprint
|
||||||
- funsat
|
- funsat
|
||||||
|
@ -1934,6 +1932,8 @@ dont-distribute-packages:
|
||||||
- hakyll-ogmarkup
|
- hakyll-ogmarkup
|
||||||
- hakyll-shortcut-links
|
- hakyll-shortcut-links
|
||||||
- halberd
|
- halberd
|
||||||
|
- halide-JuicyPixels
|
||||||
|
- halide-arrayfire
|
||||||
- hall-symbols
|
- hall-symbols
|
||||||
- halma-gui
|
- halma-gui
|
||||||
- halma-telegram-bot
|
- halma-telegram-bot
|
||||||
|
@ -3004,7 +3004,7 @@ dont-distribute-packages:
|
||||||
- padKONTROL
|
- padKONTROL
|
||||||
- pairing
|
- pairing
|
||||||
- panda
|
- panda
|
||||||
- pandoc-crossref_0_3_15_2
|
- pandoc-crossref_0_3_16_0
|
||||||
- pandoc-highlighting-extensions
|
- pandoc-highlighting-extensions
|
||||||
- pandoc-japanese-filters
|
- pandoc-japanese-filters
|
||||||
- pandora-io
|
- pandora-io
|
||||||
|
@ -3119,13 +3119,13 @@ dont-distribute-packages:
|
||||||
- plugins-auto
|
- plugins-auto
|
||||||
- png-file
|
- png-file
|
||||||
- pngload
|
- pngload
|
||||||
- pocket-dns
|
|
||||||
- point-octree
|
- point-octree
|
||||||
- pointless-lenses
|
- pointless-lenses
|
||||||
- pointless-rewrite
|
- pointless-rewrite
|
||||||
- poker
|
- poker
|
||||||
- polh-lexicon
|
- polh-lexicon
|
||||||
- polydata
|
- polydata
|
||||||
|
- polyglot
|
||||||
- polysemy-RandomFu
|
- polysemy-RandomFu
|
||||||
- polysemy-account
|
- polysemy-account
|
||||||
- polysemy-account-api
|
- polysemy-account-api
|
||||||
|
@ -3570,6 +3570,7 @@ dont-distribute-packages:
|
||||||
- servant-openapi3
|
- servant-openapi3
|
||||||
- servant-postgresql
|
- servant-postgresql
|
||||||
- servant-pushbullet-client
|
- servant-pushbullet-client
|
||||||
|
- servant-queryparam-openapi3
|
||||||
- servant-rate-limit
|
- servant-rate-limit
|
||||||
- servant-reason
|
- servant-reason
|
||||||
- servant-server-namedargs
|
- servant-server-namedargs
|
||||||
|
@ -3740,7 +3741,6 @@ dont-distribute-packages:
|
||||||
- stackage-setup
|
- stackage-setup
|
||||||
- stackage-upload
|
- stackage-upload
|
||||||
- stackage2nix
|
- stackage2nix
|
||||||
- stackctl
|
|
||||||
- stan
|
- stan
|
||||||
- starrover2
|
- starrover2
|
||||||
- stateful-mtl
|
- stateful-mtl
|
||||||
|
@ -4308,5 +4308,4 @@ dont-distribute-packages:
|
||||||
- zoom-cache
|
- zoom-cache
|
||||||
- zoom-cache-pcm
|
- zoom-cache-pcm
|
||||||
- zoom-cache-sndfile
|
- zoom-cache-sndfile
|
||||||
- zoovisitor
|
|
||||||
- zuramaru
|
- zuramaru
|
||||||
|
|
|
@ -426,18 +426,8 @@ self: super: builtins.intersectAttrs super {
|
||||||
'';
|
'';
|
||||||
}) super.leksah);
|
}) super.leksah);
|
||||||
|
|
||||||
dyre =
|
|
||||||
appendPatch
|
|
||||||
# Dyre needs special support for reading the NIX_GHC env var. This is
|
|
||||||
# available upstream in https://github.com/willdonnelly/dyre/pull/43, but
|
|
||||||
# hasn't been released to Hackage as of dyre-0.9.1. Likely included in
|
|
||||||
# next version.
|
|
||||||
(pkgs.fetchpatch {
|
|
||||||
url = "https://github.com/willdonnelly/dyre/commit/c7f29d321aae343d6b314f058812dffcba9d7133.patch";
|
|
||||||
sha256 = "10m22k35bi6cci798vjpy4c2l08lq5nmmj24iwp0aflvmjdgscdb";
|
|
||||||
})
|
|
||||||
# dyre's tests appear to be trying to directly call GHC.
|
# dyre's tests appear to be trying to directly call GHC.
|
||||||
(dontCheck super.dyre);
|
dyre = dontCheck super.dyre;
|
||||||
|
|
||||||
# https://github.com/edwinb/EpiVM/issues/13
|
# https://github.com/edwinb/EpiVM/issues/13
|
||||||
# https://github.com/edwinb/EpiVM/issues/14
|
# https://github.com/edwinb/EpiVM/issues/14
|
||||||
|
@ -1023,6 +1013,7 @@ self: super: builtins.intersectAttrs super {
|
||||||
(super.cachix.override {
|
(super.cachix.override {
|
||||||
fsnotify = dontCheck super.fsnotify_0_4_1_0;
|
fsnotify = dontCheck super.fsnotify_0_4_1_0;
|
||||||
hnix-store-core = super.hnix-store-core_0_6_1_0;
|
hnix-store-core = super.hnix-store-core_0_6_1_0;
|
||||||
|
nix = self.hercules-ci-cnix-store.nixPackage;
|
||||||
})
|
})
|
||||||
[
|
[
|
||||||
(addBuildTool self.hercules-ci-cnix-store.nixPackage)
|
(addBuildTool self.hercules-ci-cnix-store.nixPackage)
|
||||||
|
|
|
@ -31,6 +31,7 @@ in
|
||||||
, doBenchmark ? false
|
, doBenchmark ? false
|
||||||
, doHoogle ? true
|
, doHoogle ? true
|
||||||
, doHaddockQuickjump ? doHoogle && lib.versionAtLeast ghc.version "8.6"
|
, doHaddockQuickjump ? doHoogle && lib.versionAtLeast ghc.version "8.6"
|
||||||
|
, doInstallIntermediates ? false
|
||||||
, editedCabalFile ? null
|
, editedCabalFile ? null
|
||||||
# aarch64 outputs otherwise exceed 2GB limit
|
# aarch64 outputs otherwise exceed 2GB limit
|
||||||
, enableLibraryProfiling ? !(ghc.isGhcjs or stdenv.targetPlatform.isAarch64 or false)
|
, enableLibraryProfiling ? !(ghc.isGhcjs or stdenv.targetPlatform.isAarch64 or false)
|
||||||
|
@ -84,6 +85,7 @@ in
|
||||||
, enableSeparateBinOutput ? false
|
, enableSeparateBinOutput ? false
|
||||||
, enableSeparateDataOutput ? false
|
, enableSeparateDataOutput ? false
|
||||||
, enableSeparateDocOutput ? doHaddock
|
, enableSeparateDocOutput ? doHaddock
|
||||||
|
, enableSeparateIntermediatesOutput ? false
|
||||||
, # Don't fail at configure time if there are multiple versions of the
|
, # Don't fail at configure time if there are multiple versions of the
|
||||||
# same package in the (recursive) dependencies of the package being
|
# same package in the (recursive) dependencies of the package being
|
||||||
# built. Will delay failures, if any, to compile time.
|
# built. Will delay failures, if any, to compile time.
|
||||||
|
@ -93,6 +95,10 @@ in
|
||||||
# This can make it slightly faster to load this library into GHCi, but takes
|
# This can make it slightly faster to load this library into GHCi, but takes
|
||||||
# extra disk space and compile time.
|
# extra disk space and compile time.
|
||||||
enableLibraryForGhci ? false
|
enableLibraryForGhci ? false
|
||||||
|
# Set this to a previous build of this same package to reuse the intermediate
|
||||||
|
# build products from that prior build as a starting point for accelerating
|
||||||
|
# this build
|
||||||
|
, previousIntermediates ? null
|
||||||
} @ args:
|
} @ args:
|
||||||
|
|
||||||
assert editedCabalFile != null -> revision != null;
|
assert editedCabalFile != null -> revision != null;
|
||||||
|
@ -240,6 +246,8 @@ let
|
||||||
"--ghc-options=-haddock"
|
"--ghc-options=-haddock"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPhases = optional doInstallIntermediates [ "installIntermediatesPhase" ];
|
||||||
|
|
||||||
setupCompileFlags = [
|
setupCompileFlags = [
|
||||||
(optionalString (!coreSetup) "-${nativePackageDbFlag}=$setupPackageConfDir")
|
(optionalString (!coreSetup) "-${nativePackageDbFlag}=$setupPackageConfDir")
|
||||||
(optionalString enableParallelBuilding (parallelBuildingFlags))
|
(optionalString enableParallelBuilding (parallelBuildingFlags))
|
||||||
|
@ -306,6 +314,8 @@ let
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
intermediatesDir = "share/haskell/${ghc.version}/${pname}-${version}/dist";
|
||||||
in lib.fix (drv:
|
in lib.fix (drv:
|
||||||
|
|
||||||
assert allPkgconfigDepends != [] -> pkg-config != null;
|
assert allPkgconfigDepends != [] -> pkg-config != null;
|
||||||
|
@ -316,7 +326,9 @@ stdenv.mkDerivation ({
|
||||||
outputs = [ "out" ]
|
outputs = [ "out" ]
|
||||||
++ (optional enableSeparateDataOutput "data")
|
++ (optional enableSeparateDataOutput "data")
|
||||||
++ (optional enableSeparateDocOutput "doc")
|
++ (optional enableSeparateDocOutput "doc")
|
||||||
++ (optional enableSeparateBinOutput "bin");
|
++ (optional enableSeparateBinOutput "bin")
|
||||||
|
++ (optional enableSeparateIntermediatesOutput "intermediates");
|
||||||
|
|
||||||
setOutputFlags = false;
|
setOutputFlags = false;
|
||||||
|
|
||||||
pos = builtins.unsafeGetAttrPos "pname" args;
|
pos = builtins.unsafeGetAttrPos "pname" args;
|
||||||
|
@ -393,7 +405,13 @@ stdenv.mkDerivation ({
|
||||||
# only use the links hack if we're actually building dylibs. otherwise, the
|
# only use the links hack if we're actually building dylibs. otherwise, the
|
||||||
# "dynamic-library-dirs" point to nonexistent paths, and the ln command becomes
|
# "dynamic-library-dirs" point to nonexistent paths, and the ln command becomes
|
||||||
# "ln -s $out/lib/links", which tries to recreate the links dir and fails
|
# "ln -s $out/lib/links", which tries to recreate the links dir and fails
|
||||||
+ (optionalString (stdenv.isDarwin && (enableSharedLibraries || enableSharedExecutables)) ''
|
#
|
||||||
|
# Note: We need to disable this work-around when using intermediate build
|
||||||
|
# products from a prior build because otherwise Nix will change permissions on
|
||||||
|
# the `$out/lib/links` directory to read-only when the build is done after the
|
||||||
|
# dist directory has already been exported, which triggers an unnecessary
|
||||||
|
# rebuild of modules included in the exported dist directory.
|
||||||
|
+ (optionalString (stdenv.isDarwin && (enableSharedLibraries || enableSharedExecutables) && !enableSeparateIntermediatesOutput) ''
|
||||||
# Work around a limit in the macOS Sierra linker on the number of paths
|
# Work around a limit in the macOS Sierra linker on the number of paths
|
||||||
# referenced by any one dynamic library:
|
# referenced by any one dynamic library:
|
||||||
#
|
#
|
||||||
|
@ -471,8 +489,19 @@ stdenv.mkDerivation ({
|
||||||
runHook postConfigure
|
runHook postConfigure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase =
|
||||||
|
''
|
||||||
runHook preBuild
|
runHook preBuild
|
||||||
|
''
|
||||||
|
+ lib.optionalString (previousIntermediates != null)
|
||||||
|
''
|
||||||
|
mkdir -p dist;
|
||||||
|
rm -r dist/build
|
||||||
|
cp -r ${previousIntermediates}/${intermediatesDir}/build dist/build
|
||||||
|
find dist/build -exec chmod u+w {} +
|
||||||
|
find dist/build -exec touch -d '1970-01-01T00:00:00Z' {} +
|
||||||
|
''
|
||||||
|
+ ''
|
||||||
${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString}
|
${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString}
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
'';
|
'';
|
||||||
|
@ -558,6 +587,15 @@ stdenv.mkDerivation ({
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
${if doInstallIntermediates then "installIntermediatesPhase" else null} = ''
|
||||||
|
runHook preInstallIntermediates
|
||||||
|
intermediatesOutput=${if enableSeparateIntermediatesOutput then "$intermediates" else "$out"}
|
||||||
|
installIntermediatesDir="$intermediatesOutput/${intermediatesDir}"
|
||||||
|
mkdir -p "$installIntermediatesDir"
|
||||||
|
cp -r dist/build "$installIntermediatesDir"
|
||||||
|
runHook postInstallIntermediates
|
||||||
|
'';
|
||||||
|
|
||||||
passthru = passthru // rec {
|
passthru = passthru // rec {
|
||||||
|
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
@ -719,6 +757,7 @@ stdenv.mkDerivation ({
|
||||||
// optionalAttrs (args ? preFixup) { inherit preFixup; }
|
// optionalAttrs (args ? preFixup) { inherit preFixup; }
|
||||||
// optionalAttrs (args ? postFixup) { inherit postFixup; }
|
// optionalAttrs (args ? postFixup) { inherit postFixup; }
|
||||||
// optionalAttrs (args ? dontStrip) { inherit dontStrip; }
|
// optionalAttrs (args ? dontStrip) { inherit dontStrip; }
|
||||||
|
// optionalAttrs (postPhases != []) { inherit postPhases; }
|
||||||
// optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
|
// optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
2376
pkgs/development/haskell-modules/hackage-packages.nix
generated
2376
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -6,4 +6,5 @@ lib.recurseIntoAttrs {
|
||||||
documentationTarball = callPackage ./documentationTarball { };
|
documentationTarball = callPackage ./documentationTarball { };
|
||||||
setBuildTarget = callPackage ./setBuildTarget { };
|
setBuildTarget = callPackage ./setBuildTarget { };
|
||||||
writers = callPackage ./writers { };
|
writers = callPackage ./writers { };
|
||||||
|
incremental = callPackage ./incremental { };
|
||||||
}
|
}
|
||||||
|
|
35
pkgs/test/haskell/incremental/default.nix
Normal file
35
pkgs/test/haskell/incremental/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Demonstration of incremental builds for Haskell. Useful for speeding up CI.
|
||||||
|
#
|
||||||
|
# See: https://www.haskellforall.com/2022/12/nixpkgs-support-for-incremental-haskell.html
|
||||||
|
# See: https://felixspringer.xyz/homepage/blog/incrementalHaskellBuildsWithNix
|
||||||
|
|
||||||
|
{ haskell, lib }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (haskell.lib.compose) overrideCabal;
|
||||||
|
|
||||||
|
# Incremental builds work with GHC >=9.4.
|
||||||
|
temporary = haskell.packages.ghc944.temporary;
|
||||||
|
|
||||||
|
# This will do a full build of `temporary`, while writing the intermediate build products
|
||||||
|
# (compiled modules, etc.) to the `intermediates` output.
|
||||||
|
temporary-full-build-with-incremental-output = overrideCabal (drv: {
|
||||||
|
doInstallIntermediates = true;
|
||||||
|
enableSeparateIntermediatesOutput = true;
|
||||||
|
}) temporary;
|
||||||
|
|
||||||
|
# This will do an incremental build of `temporary` by copying the previously
|
||||||
|
# compiled modules and intermediate build products into the source tree
|
||||||
|
# before running the build.
|
||||||
|
#
|
||||||
|
# GHC will then naturally pick up and reuse these products, making this build
|
||||||
|
# complete much more quickly than the previous one.
|
||||||
|
temporary-incremental-build = overrideCabal (drv: {
|
||||||
|
previousIntermediates = temporary-full-build-with-incremental-output.intermediates;
|
||||||
|
}) temporary;
|
||||||
|
in
|
||||||
|
temporary-incremental-build.overrideAttrs (old: {
|
||||||
|
meta = {
|
||||||
|
maintainers = lib.teams.mercury.members;
|
||||||
|
};
|
||||||
|
})
|
|
@ -20,6 +20,7 @@ let
|
||||||
"ghc925"
|
"ghc925"
|
||||||
"ghc926"
|
"ghc926"
|
||||||
"ghc927"
|
"ghc927"
|
||||||
|
"ghc928"
|
||||||
"ghc92"
|
"ghc92"
|
||||||
"ghc942"
|
"ghc942"
|
||||||
"ghc943"
|
"ghc943"
|
||||||
|
@ -39,6 +40,7 @@ let
|
||||||
"ghc925"
|
"ghc925"
|
||||||
"ghc926"
|
"ghc926"
|
||||||
"ghc927"
|
"ghc927"
|
||||||
|
"ghc928"
|
||||||
"ghc94"
|
"ghc94"
|
||||||
"ghc942"
|
"ghc942"
|
||||||
"ghc943"
|
"ghc943"
|
||||||
|
@ -231,7 +233,24 @@ in {
|
||||||
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||||
llvmPackages = pkgs.llvmPackages_12;
|
llvmPackages = pkgs.llvmPackages_12;
|
||||||
};
|
};
|
||||||
ghc92 = ghc927;
|
ghc928 = callPackage ../development/compilers/ghc/9.2.8.nix {
|
||||||
|
bootPkgs =
|
||||||
|
# aarch64 ghc8107Binary exceeds max output size on hydra
|
||||||
|
if stdenv.hostPlatform.isAarch then
|
||||||
|
packages.ghc8107BinaryMinimal
|
||||||
|
else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
|
||||||
|
packages.ghc810
|
||||||
|
else
|
||||||
|
packages.ghc8107Binary;
|
||||||
|
inherit (buildPackages.python3Packages) sphinx;
|
||||||
|
# Need to use apple's patched xattr until
|
||||||
|
# https://github.com/xattr/xattr/issues/44 and
|
||||||
|
# https://github.com/xattr/xattr/issues/55 are solved.
|
||||||
|
inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
|
||||||
|
buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
|
||||||
|
llvmPackages = pkgs.llvmPackages_12;
|
||||||
|
};
|
||||||
|
ghc92 = ghc928;
|
||||||
ghc942 = callPackage ../development/compilers/ghc/9.4.2.nix {
|
ghc942 = callPackage ../development/compilers/ghc/9.4.2.nix {
|
||||||
bootPkgs =
|
bootPkgs =
|
||||||
# Building with 9.2 is broken due to
|
# Building with 9.2 is broken due to
|
||||||
|
@ -485,7 +504,12 @@ in {
|
||||||
ghc = bh.compiler.ghc927;
|
ghc = bh.compiler.ghc927;
|
||||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
||||||
};
|
};
|
||||||
ghc92 = ghc927;
|
ghc928 = callPackage ../development/haskell-modules {
|
||||||
|
buildHaskellPackages = bh.packages.ghc928;
|
||||||
|
ghc = bh.compiler.ghc928;
|
||||||
|
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
|
||||||
|
};
|
||||||
|
ghc92 = ghc928;
|
||||||
ghc942 = callPackage ../development/haskell-modules {
|
ghc942 = callPackage ../development/haskell-modules {
|
||||||
buildHaskellPackages = bh.packages.ghc942;
|
buildHaskellPackages = bh.packages.ghc942;
|
||||||
ghc = bh.compiler.ghc942;
|
ghc = bh.compiler.ghc942;
|
||||||
|
|
|
@ -67,6 +67,7 @@ let
|
||||||
ghc925
|
ghc925
|
||||||
ghc926
|
ghc926
|
||||||
ghc927
|
ghc927
|
||||||
|
ghc928
|
||||||
ghc945
|
ghc945
|
||||||
ghc961
|
ghc961
|
||||||
];
|
];
|
||||||
|
@ -330,7 +331,6 @@ let
|
||||||
nvfetcher
|
nvfetcher
|
||||||
ormolu
|
ormolu
|
||||||
pandoc
|
pandoc
|
||||||
pakcs
|
|
||||||
petrinizer
|
petrinizer
|
||||||
place-cursor-at
|
place-cursor-at
|
||||||
pinboard-notes-backup
|
pinboard-notes-backup
|
||||||
|
@ -437,8 +437,8 @@ let
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
haskell.packages.native-bignum.ghc927 = {
|
haskell.packages.native-bignum.ghc928 = {
|
||||||
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc927)
|
inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc928)
|
||||||
hello
|
hello
|
||||||
lens
|
lens
|
||||||
random
|
random
|
||||||
|
@ -533,6 +533,7 @@ let
|
||||||
compilerNames.ghc925
|
compilerNames.ghc925
|
||||||
compilerNames.ghc926
|
compilerNames.ghc926
|
||||||
compilerNames.ghc927
|
compilerNames.ghc927
|
||||||
|
compilerNames.ghc928
|
||||||
compilerNames.ghc945
|
compilerNames.ghc945
|
||||||
];
|
];
|
||||||
weeder = [
|
weeder = [
|
||||||
|
@ -542,6 +543,7 @@ let
|
||||||
compilerNames.ghc925
|
compilerNames.ghc925
|
||||||
compilerNames.ghc926
|
compilerNames.ghc926
|
||||||
compilerNames.ghc927
|
compilerNames.ghc927
|
||||||
|
compilerNames.ghc928
|
||||||
compilerNames.ghc945
|
compilerNames.ghc945
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
@ -623,6 +625,7 @@ let
|
||||||
jobs.pkgsMusl.haskell.compiler.ghc925
|
jobs.pkgsMusl.haskell.compiler.ghc925
|
||||||
jobs.pkgsMusl.haskell.compiler.ghc926
|
jobs.pkgsMusl.haskell.compiler.ghc926
|
||||||
jobs.pkgsMusl.haskell.compiler.ghc927
|
jobs.pkgsMusl.haskell.compiler.ghc927
|
||||||
|
jobs.pkgsMusl.haskell.compiler.ghc928
|
||||||
jobs.pkgsMusl.haskell.compiler.ghcHEAD
|
jobs.pkgsMusl.haskell.compiler.ghcHEAD
|
||||||
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
|
jobs.pkgsMusl.haskell.compiler.integer-simple.ghc8107
|
||||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc902
|
||||||
|
@ -630,6 +633,7 @@ let
|
||||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc925
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc925
|
||||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc926
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc926
|
||||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc927
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc927
|
||||||
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghc928
|
||||||
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
|
jobs.pkgsMusl.haskell.compiler.native-bignum.ghcHEAD
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -645,7 +649,7 @@ let
|
||||||
};
|
};
|
||||||
constituents = accumulateDerivations [
|
constituents = accumulateDerivations [
|
||||||
jobs.pkgsStatic.haskellPackages
|
jobs.pkgsStatic.haskellPackages
|
||||||
jobs.pkgsStatic.haskell.packages.native-bignum.ghc927
|
jobs.pkgsStatic.haskell.packages.native-bignum.ghc928
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue