Merge master into staging-next
This commit is contained in:
commit
39026e9822
@ -6791,6 +6791,12 @@
|
||||
githubId = 1488603;
|
||||
name = "François Espinet";
|
||||
};
|
||||
neverbehave = {
|
||||
email = "i@never.pet";
|
||||
github = "NeverBehave";
|
||||
githubId = 17120571;
|
||||
name = "Xinhao Luo";
|
||||
};
|
||||
nikitavoloboev = {
|
||||
email = "nikita.voloboev@gmail.com";
|
||||
github = "nikitavoloboev";
|
||||
|
@ -3,7 +3,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "12.2";
|
||||
version = "12.3";
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "netbeans";
|
||||
exec = "netbeans";
|
||||
@ -19,7 +19,7 @@ stdenv.mkDerivation {
|
||||
inherit version;
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
|
||||
sha512 = "b25cda9830e8fe1d05687b08cc5fa9bcac7e8e6d12776998a4da7e483b3be0d04493345e56be7e6198fa8f86428d57d4459bfa7372c2e3f918f4a1101d0a31a7";
|
||||
sha512 = "2fy696qrfbdkzmq4cwd6l7v6rsc0bf9akh61w3azc544bq3vxl3v6s31hvg3ba0nsh0jv3nbdrk6jp1l4hwgcg9zg7kf2012a1vv2nk";
|
||||
};
|
||||
|
||||
buildCommand = ''
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ lib, python3, fetchPypi, appdirs, attrs, requests,
|
||||
beautifulsoup4, click-plugins, elasticsearch, flask_login, flask_wtf,
|
||||
pypandoc, python-dotenv, python-frontmatter, tinydb, validators,
|
||||
watchdog, wtforms, html2text, flask-compress }:
|
||||
{ lib, buildPythonApplication, fetchPypi, appdirs, attrs
|
||||
, beautifulsoup4, click-plugins, elasticsearch, flask-compress
|
||||
, flask_login, flask_wtf, html2text, python-dotenv, python-frontmatter
|
||||
, requests, tinydb, validators, werkzeug, wtforms }:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
buildPythonApplication rec {
|
||||
pname = "archivy";
|
||||
version = "1.0.2";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "6f706b925175852d8101a4afe2304ab7ee7d56e9658538b9a8e49e925978b87e";
|
||||
sha256 = "sha256-yUXsTPb5oJYZA9MlHz7eLowRjD/ltq5VLTHeOMqcL/M=";
|
||||
};
|
||||
|
||||
# Relax some dependencies
|
||||
@ -30,18 +30,17 @@ python3.pkgs.buildPythonApplication rec {
|
||||
beautifulsoup4
|
||||
click-plugins
|
||||
elasticsearch
|
||||
flask-compress
|
||||
flask_login
|
||||
flask_wtf
|
||||
pypandoc
|
||||
html2text
|
||||
python-dotenv
|
||||
python-frontmatter
|
||||
tinydb
|
||||
requests
|
||||
tinydb
|
||||
validators
|
||||
watchdog
|
||||
werkzeug
|
||||
wtforms
|
||||
html2text
|
||||
flask-compress
|
||||
];
|
||||
|
||||
# __init__.py attempts to mkdir in read-only file system
|
||||
|
@ -55,6 +55,10 @@ mkDerivation rec {
|
||||
sqlite
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib" # expected to be prefix-relative by build code setting RPATH
|
||||
"-DNO_SHIBBOLETH=1" # allows to compile without qtwebkit
|
||||
|
55
pkgs/applications/video/corrscope/default.nix
Normal file
55
pkgs/applications/video/corrscope/default.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{ lib
|
||||
, mkDerivationWith
|
||||
, python3Packages
|
||||
, wrapQtAppsHook
|
||||
, ffmpeg
|
||||
, qtbase
|
||||
}:
|
||||
|
||||
mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||
pname = "corrscope";
|
||||
version = "0.7.0";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0m62p3jlbx5dlp3j8wn1ka1sqpffsxbpsgv2h5cvj1n1lsgbss2s";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace 'attrs>=18.2.0,<19.0.0' 'attrs>=18.2.0' \
|
||||
--replace 'numpy>=1.15,<2.0,!=1.19.4' 'numpy>=1.15,<2.0'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||
|
||||
buildInputs = [ ffmpeg qtbase ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [ appdirs attrs click matplotlib numpy pyqt5 ruamel_yaml ];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=(
|
||||
--prefix PATH : ${ffmpeg}/bin
|
||||
"''${qtWrapperArgs[@]}"
|
||||
)
|
||||
'';
|
||||
|
||||
preCheck = "export HOME=$TEMP";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Render wave files into oscilloscope views, featuring advanced correlation-based triggering algorithm";
|
||||
longDescription = ''
|
||||
Corrscope renders oscilloscope views of WAV files recorded from chiptune (game music from
|
||||
retro sound chips).
|
||||
|
||||
Corrscope uses "waveform correlation" to track complex waves (including SNES and Sega
|
||||
Genesis/FM synthesis) which jump around on other oscilloscope programs.
|
||||
'';
|
||||
homepage = "https://github.com/corrscope/corrscope";
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{ fetchurl }:
|
||||
|
||||
fetchurl {
|
||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/c0fe8e827d5ec71141700f5d5a90a6f6616ecbc5.tar.gz";
|
||||
sha256 = "16is1cipkfiabbh01i247vqfviwzjpfhgf6pkli61wwlhnk0q95s";
|
||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/fd3fefef13b49cbcd9a08b46c2aa4ceb204de5e0.tar.gz";
|
||||
sha256 = "1dr4bqsisizw3qn9qxjpbk0rjri6s0gv9g9717cwfcixy940af2s";
|
||||
}
|
||||
|
45
pkgs/data/themes/juno/default.nix
Normal file
45
pkgs/data/themes/juno/default.nix
Normal file
@ -0,0 +1,45 @@
|
||||
{ lib, stdenv, fetchurl, gtk-engine-murrine }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "juno";
|
||||
version = "0.0.1";
|
||||
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno.tar.xz";
|
||||
sha256 = "1cghsn9qagcf1nlga5cal0aqch6hkjm5wk6ja791zxhdqy3crx1i";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-mirage.tar.xz";
|
||||
sha256 = "0zh6bc85svmwh8qrhpn8mim0pj322x2x2i9sxnp7p1938p5z5m2b";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-ocean.tar.xz";
|
||||
sha256 = "0m2wgmcn12dfq5badzlpzjc8792ba9hi32c79vfvqawdn1q3hrdx";
|
||||
})
|
||||
(fetchurl {
|
||||
url = "https://github.com/gvolpe/Juno/releases/download/${version}/Juno-palenight.tar.xz";
|
||||
sha256 = "1hn2l0m76x61ixjd253hi7czm65asdjdhqvvlv7idbccc40pvrak";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a Juno* $out/share/themes
|
||||
rm $out/share/themes/*/{LICENSE,README.md}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "GTK themes inspired by epic vscode themes";
|
||||
homepage = "https://github.com/EliverLara/Juno";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.all;
|
||||
maintainers = [ maintainers.gvolpe ];
|
||||
};
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{ lib, stdenv, pkgs
|
||||
, haskell, nodejs
|
||||
, haskell, haskellPackages, nodejs
|
||||
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
||||
# Rust dependecies
|
||||
, rustPlatform, openssl, pkg-config, Security
|
||||
@ -7,7 +7,7 @@
|
||||
let
|
||||
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
||||
|
||||
hsPkgs = haskell.packages.ghc8103.override {
|
||||
hsPkgs = haskellPackages.override {
|
||||
overrides = self: super: with haskell.lib; with lib;
|
||||
let elmPkgs = rec {
|
||||
elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
|
||||
|
@ -1,268 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), 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 ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = dontStrip: ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
''
|
||||
# We only need to build stage1 on most cross-compilation because
|
||||
# we will be running the compiler on the native system. In some
|
||||
# situations, like native Musl compilation, we need the compiler
|
||||
# to actually link to our new Libc. The iOS simulator is a special
|
||||
# exception because we can’t actually run simulators binaries
|
||||
# ourselves.
|
||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString dontStrip ''
|
||||
STRIP_CMD = :
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.10.1";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "1xgdl6ig5jzli3bg054vfryfkg0y6wggf68g66c32sr67bw0ffsf";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -1,267 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), 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 ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.10.2";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "02w8n085bw38vyp694j0lfk5wcnwkdaj7hhp0saj71x74533lmww";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
|
||||
./issue-18549.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
||||
sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -1,264 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), 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 ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.10.3";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "0cdrdvs5qnqr93cr9zvrlfjv2xr671kjjghnsw4afa4hahcq7p6c";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
||||
sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -1,191 +0,0 @@
|
||||
{ lib, stdenv, substituteAll
|
||||
, fetchurl, perl, gcc, llvm
|
||||
, ncurses5, gmp, glibc, libiconv
|
||||
, llvmPackages
|
||||
}:
|
||||
|
||||
# Prebuilt only does native
|
||||
assert stdenv.targetPlatform == stdenv.hostPlatform;
|
||||
|
||||
let
|
||||
useLLVM = !stdenv.targetPlatform.isx86;
|
||||
|
||||
libPath = lib.makeLibraryPath ([
|
||||
ncurses5 gmp
|
||||
] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
||||
|
||||
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
||||
+ "LD_LIBRARY_PATH";
|
||||
|
||||
glibcDynLinker = assert stdenv.isLinux;
|
||||
if stdenv.hostPlatform.libc == "glibc" then
|
||||
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
||||
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
||||
else
|
||||
"${lib.getLib glibc}/lib/ld-linux*";
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "8.2.2";
|
||||
|
||||
name = "ghc-${version}-binary";
|
||||
|
||||
src = fetchurl ({
|
||||
i686-linux = {
|
||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb8-linux.tar.xz";
|
||||
sha256 = "08w2ik55dp3n95qikmrflc91lsiq01xp53ki3jlhnbj8fqnxfrwy";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb8-linux.tar.xz";
|
||||
sha256 = "0ahv26304pqi3dm7i78si4pxwvg5f5dc2jwsfgvcrhcx5g30bqj8";
|
||||
};
|
||||
armv7l-linux = {
|
||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb8-linux.tar.xz";
|
||||
sha256 = "1jmv8qmnh5bn324fivbwdcaj55kvw7cb2zq9pafmlmv3qwwx7s46";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-deb8-linux.tar.xz";
|
||||
sha256 = "1k2amylcp1ad67c75h1pqf7czf9m0zj1i7hdc45ghjklnfq9hrk7";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
|
||||
sha256 = "09swx71gh5habzbx55shz2xykgr96xkcy09nzinnm4z0yxicy3zr";
|
||||
};
|
||||
}.${stdenv.hostPlatform.system}
|
||||
or (throw "cannot bootstrap GHC on this platform"));
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
|
||||
|
||||
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
||||
# the final install location/
|
||||
${libEnvVar} = libPath;
|
||||
|
||||
postUnpack =
|
||||
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
||||
# during linking
|
||||
lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
# not enough room in the object files for the full path to libiconv :(
|
||||
for exe in $(find . -type f -executable); do
|
||||
isScript $exe && continue
|
||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||
done
|
||||
'' +
|
||||
|
||||
# Some scripts used during the build need to have their shebangs patched
|
||||
''
|
||||
patchShebangs ghc-${version}/utils/
|
||||
patchShebangs ghc-${version}/configure
|
||||
'' +
|
||||
|
||||
# Strip is harmful, see also below. It's important that this happens
|
||||
# first. The GHC Cabal build system makes use of strip by default and
|
||||
# has hardcoded paths to /usr/bin/strip in many places. We replace
|
||||
# those below, making them point to our dummy script.
|
||||
''
|
||||
mkdir "$TMP/bin"
|
||||
for i in strip; do
|
||||
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
|
||||
chmod +x "$TMP/bin/$i"
|
||||
done
|
||||
PATH="$TMP/bin:$PATH"
|
||||
'' +
|
||||
# We have to patch the GMP paths for the integer-gmp package.
|
||||
''
|
||||
find . -name integer-gmp.buildinfo \
|
||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
find . -name base.buildinfo \
|
||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
||||
'' +
|
||||
# Rename needed libraries and binaries, fix interpreter
|
||||
lib.optionalString stdenv.isLinux ''
|
||||
find . -type f -perm -0100 -exec patchelf \
|
||||
--replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
||||
--replace-needed libtinfo.so libtinfo.so.5 \
|
||||
--interpreter ${glibcDynLinker} {} \;
|
||||
|
||||
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||
'' +
|
||||
# We're kludging a glibc bindist into working with non-glibc...
|
||||
# Here we patch up the use of `__strdup` (part of glibc binary ABI)
|
||||
# to instead use `strdup` since musl doesn't provide __strdup
|
||||
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
||||
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
||||
# Use objcopy magic to make the change:
|
||||
lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
||||
'';
|
||||
|
||||
configurePlatforms = [ ];
|
||||
configureFlags =
|
||||
let
|
||||
gcc-clang-wrapper = substituteAll {
|
||||
inherit (stdenv) shell;
|
||||
isExecutable = true;
|
||||
src = ./gcc-clang-wrapper.sh;
|
||||
};
|
||||
in
|
||||
[ "--with-gmp-libraries=${lib.getLib gmp}/lib"
|
||||
"--with-gmp-includes=${lib.getDev gmp}/include"
|
||||
] ++ lib.optional stdenv.isDarwin "--with-gcc=${gcc-clang-wrapper}"
|
||||
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
||||
|
||||
# Stripping combined with patchelf breaks the executables (they die
|
||||
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
|
||||
dontStrip = true;
|
||||
|
||||
# No building is necessary, but calling make without flags ironically
|
||||
# calls install-strip ...
|
||||
dontBuild = true;
|
||||
|
||||
# On Linux, use patchelf to modify the executables so that they can
|
||||
# find editline/gmp.
|
||||
preFixup = lib.optionalString stdenv.isLinux ''
|
||||
for p in $(find "$out" -type f -executable); do
|
||||
if isELF "$p"; then
|
||||
echo "Patchelfing $p"
|
||||
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
||||
fi
|
||||
done
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
# not enough room in the object files for the full path to libiconv :(
|
||||
for exe in $(find "$out" -type f -executable); do
|
||||
isScript $exe && continue
|
||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||
done
|
||||
|
||||
for file in $(find "$out" -name setup-config); do
|
||||
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
unset ${libEnvVar}
|
||||
# Sanity check, can ghc create executables?
|
||||
cd $TMP
|
||||
mkdir test-ghc; cd test-ghc
|
||||
cat > main.hs << EOF
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Main where
|
||||
main = putStrLn \$([|"yes"|])
|
||||
EOF
|
||||
$out/bin/ghc --make main.hs || exit 1
|
||||
echo compilation ok
|
||||
[ $(./main) == "yes" ]
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
targetPrefix = "";
|
||||
enableShared = true;
|
||||
};
|
||||
|
||||
meta.license = lib.licenses.bsd3;
|
||||
meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
|
||||
}
|
@ -1,275 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
''
|
||||
# We only need to build stage1 on most cross-compilation because
|
||||
# we will be running the compiler on the native system. In some
|
||||
# situations, like native Musl compilation, we need the compiler
|
||||
# to actually link to our new Libc. The iOS simulator is a special
|
||||
# exception because we can’t actually run simulators binaries
|
||||
# ourselves.
|
||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.6.5";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "0qg3zsmbk4rkwkc3jpas3zs74qaxmw4sp4v1mhsbj0a0dzls2jjd";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
|
||||
(fetchpatch { # https://phabricator.haskell.org/D5123
|
||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/13ff0b7ced097286e0d7b054f050871effe07f86.diff";
|
||||
name = "D5123.diff";
|
||||
sha256 = "140lmnqxra7xkwy370c5pyf8dgdwgmbpcrs1dapnwr2dh8bavn8c";
|
||||
})
|
||||
(fetchpatch { # https://github.com/haskell/haddock/issues/900
|
||||
url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/983.diff";
|
||||
name = "loadpluginsinmodules.diff";
|
||||
sha256 = "0bvvv0zsfq2581zsir97zfkggc1kkircbbajc2fz3b169ycpbha1";
|
||||
extraPrefix = "utils/haddock/";
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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";
|
||||
|
||||
# See #63511 - the only unstripped file is the debug rts which isn't meant to
|
||||
# be stripped.
|
||||
dontStrip = true;
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
''
|
||||
# Temporary work-around for https://github.com/NixOS/nixpkgs/issues/66277
|
||||
+ lib.optionalString hostPlatform.isAarch64 ''
|
||||
rm -rf "$doc/share/doc/ghc/html/libraries"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -1,263 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = dontStrip: ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
''
|
||||
# We only need to build stage1 on most cross-compilation because
|
||||
# we will be running the compiler on the native system. In some
|
||||
# situations, like native Musl compilation, we need the compiler
|
||||
# to actually link to our new Libc. The iOS simulator is a special
|
||||
# exception because we can’t actually run simulators binaries
|
||||
# ourselves.
|
||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString dontStrip ''
|
||||
STRIP_CMD = :
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.8.2";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -1,268 +0,0 @@
|
||||
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
buildLlvmPackages, llvmPackages
|
||||
|
||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||
# library instead of the faster but GPLed integer-gmp library.
|
||||
enableIntegerSimple ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), 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 ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
|
||||
, # 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 disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
|
||||
let
|
||||
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
|
||||
|
||||
inherit (bootPkgs) ghc;
|
||||
|
||||
# TODO(@Ericson2314) Make unconditional
|
||||
targetPrefix = lib.optionalString
|
||||
(targetPlatform != hostPlatform)
|
||||
"${targetPlatform.config}-";
|
||||
|
||||
buildMK = dontStrip: ''
|
||||
BuildFlavour = ${ghcFlavour}
|
||||
ifneq \"\$(BuildFlavour)\" \"\"
|
||||
include mk/flavours/\$(BuildFlavour).mk
|
||||
endif
|
||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||
''
|
||||
# We only need to build stage1 on most cross-compilation because
|
||||
# we will be running the compiler on the native system. In some
|
||||
# situations, like native Musl compilation, we need the compiler
|
||||
# to actually link to our new Libc. The iOS simulator is a special
|
||||
# exception because we can’t actually run simulators binaries
|
||||
# ourselves.
|
||||
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||
CrossCompilePrefix = ${targetPrefix}
|
||||
HADDOCK_DOCS = NO
|
||||
BUILD_SPHINX_HTML = NO
|
||||
BUILD_SPHINX_PDF = NO
|
||||
'' + lib.optionalString dontStrip ''
|
||||
STRIP_CMD = :
|
||||
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||
GhcLibHcOpts += -fPIC
|
||||
GhcRtsHcOpts += -fPIC
|
||||
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
EXTRA_CC_OPTS += -std=gnu99
|
||||
'';
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ lib.optional (!enableIntegerSimple) gmp
|
||||
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
toolsForTarget = [
|
||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||
|
||||
targetCC = builtins.head toolsForTarget;
|
||||
|
||||
# ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
|
||||
# see #84670 and #49071 for more background.
|
||||
useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.8.3";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "128g932i3wix6ic03v04nh5755vyjiidzri9iybwad72yfmc1p70";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [
|
||||
# See upstream patch at
|
||||
# https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4885. Since we build
|
||||
# from source distributions, the auto-generated configure script needs to be
|
||||
# patched as well, therefore we use an in-tree patch instead of pulling the
|
||||
# upstream patch. Don't forget to check backport status of the upstream patch
|
||||
# when adding new GHC releases in nixpkgs.
|
||||
./respect-ar-path.patch
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
preConfigure = ''
|
||||
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
|
||||
export "''${env#TARGET_}=''${!env}"
|
||||
done
|
||||
# GHC is a bit confused on its cross terminology, as these would normally be
|
||||
# the *host* tools.
|
||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${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="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
|
||||
|
||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + 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 && !enableIntegerSimple) [
|
||||
"--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 sphinx
|
||||
ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
|
||||
];
|
||||
|
||||
# For building runtime libs
|
||||
depsBuildTarget = toolsForTarget;
|
||||
|
||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||
|
||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||
++ lib.optional useLLVM llvmPackages.llvm;
|
||||
|
||||
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" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
|
||||
postInstall = ''
|
||||
# Install the bash completion file.
|
||||
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
|
||||
|
||||
# Patch scripts to include "readelf" and "cat" in $PATH.
|
||||
for i in "$out/bin/"*; do
|
||||
test ! -h $i || continue
|
||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit bootPkgs targetPrefix;
|
||||
|
||||
inherit llvmPackages;
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "http://haskell.org/ghc";
|
||||
description = "The Glasgow Haskell Compiler";
|
||||
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||
timeout = 24 * 3600;
|
||||
inherit (ghc.meta) license platforms;
|
||||
};
|
||||
|
||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||
|
||||
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||
dontPatchELF = true;
|
||||
noAuditTmpdir = true;
|
||||
})
|
@ -45,7 +45,8 @@ stdenv.mkDerivation rec {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
"-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -26,7 +26,8 @@ stdenv.mkDerivation rec {
|
||||
"-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
|
||||
] ++ lib.optionals (stdenv.isDarwin) [
|
||||
"-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
"-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
] ++ lib.optionals (useLLVM || bareMetal || isMusl) [
|
||||
"-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
|
||||
"-DCOMPILER_RT_BUILD_XRAY=OFF"
|
||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
|
||||
# The compiler-rt build infrastructure sniffs supported platforms on Darwin
|
||||
# and finds i386;x86_64;x86_64h. We only build for x86_64, so linking fails
|
||||
# when it tries to use libc++ and libc++api for i386.
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
|
||||
];
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -72,15 +72,6 @@ self: super: {
|
||||
hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
|
||||
};
|
||||
|
||||
# Backport fix for bash: compgen: command not found
|
||||
# which happens in nix-shell when a non-interactive bash is on PATH
|
||||
# PR to master: https://github.com/pcapriotti/optparse-applicative/pull/408
|
||||
optparse-applicative = appendPatch super.optparse-applicative (pkgs.fetchpatch {
|
||||
name = "optparse-applicative-0.15.1-hercules-ci-compgen.diff";
|
||||
url = "https://github.com/hercules-ci/optparse-applicative/compare/0.15.1...hercules-ci:0.15.1-nixpkgs-compgen.diff";
|
||||
sha256 = "1bcp6b7gvc8pqbn1n1ybhizkkl5if7hk9ipgl746vk08v0d3xxql";
|
||||
});
|
||||
|
||||
# Fix test trying to access /home directory
|
||||
shell-conduit = overrideCabal super.shell-conduit (drv: {
|
||||
postPatch = "sed -i s/home/tmp/ test/Spec.hs";
|
||||
@ -93,33 +84,26 @@ self: super: {
|
||||
# https://github.com/froozen/kademlia/issues/2
|
||||
kademlia = dontCheck super.kademlia;
|
||||
|
||||
# Tests require older tasty
|
||||
# Tests require older versions of tasty.
|
||||
cborg = (doJailbreak super.cborg).override { base16-bytestring = self.base16-bytestring_0_1_1_7; };
|
||||
hzk = dontCheck super.hzk;
|
||||
resolv = doJailbreak super.resolv;
|
||||
tdigest = doJailbreak super.tdigest;
|
||||
text-short = doJailbreak super.text-short;
|
||||
tree-diff = doJailbreak super.tree-diff;
|
||||
|
||||
# Tests require a Kafka broker running locally
|
||||
haskakafka = dontCheck super.haskakafka;
|
||||
|
||||
# Depends on broken "lss" package.
|
||||
snaplet-lss = dontDistribute super.snaplet-lss;
|
||||
|
||||
# Depends on broken "NewBinary" package.
|
||||
ASN1 = dontDistribute super.ASN1;
|
||||
|
||||
# Depends on broken "frame" package.
|
||||
frame-markdown = dontDistribute super.frame-markdown;
|
||||
|
||||
# Depends on broken "Elm" package.
|
||||
hakyll-elm = dontDistribute super.hakyll-elm;
|
||||
haskelm = dontDistribute super.haskelm;
|
||||
snap-elm = dontDistribute super.snap-elm;
|
||||
|
||||
# Depends on broken "hails" package.
|
||||
hails-bin = dontDistribute super.hails-bin;
|
||||
|
||||
bindings-levmar = overrideCabal super.bindings-levmar (drv: {
|
||||
extraLibraries = [ pkgs.blas ];
|
||||
});
|
||||
|
||||
# Requires wrapQtAppsHook
|
||||
qtah-cpp-qt5 = overrideCabal super.qtah-cpp-qt5 (drv: {
|
||||
buildDepends = [ pkgs.qt5.wrapQtAppsHook ];
|
||||
});
|
||||
|
||||
# The Haddock phase fails for one reason or another.
|
||||
deepseq-magic = dontHaddock super.deepseq-magic;
|
||||
feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
|
||||
@ -215,9 +199,6 @@ self: super: {
|
||||
# 2020-06-05: HACK: does not pass own build suite - `dontCheck`
|
||||
hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
|
||||
|
||||
# https://github.com/haskell-nix/hnix-store/issues/127
|
||||
hnix-store-core = addTestToolDepend super.hnix-store-core self.tasty-discover;
|
||||
|
||||
# Fails for non-obvious reasons while attempting to use doctest.
|
||||
search = dontCheck super.search;
|
||||
|
||||
@ -235,13 +216,7 @@ self: super: {
|
||||
angel = dontCheck super.angel;
|
||||
apache-md5 = dontCheck super.apache-md5; # http://hydra.cryp.to/build/498709/nixlog/1/raw
|
||||
app-settings = dontCheck super.app-settings; # http://hydra.cryp.to/build/497327/log/raw
|
||||
aws = appendPatch (dontCheck super.aws) # needs aws credentials
|
||||
(pkgs.fetchpatch {
|
||||
# https://github.com/aristidb/aws/pull/271
|
||||
# bump a version bound
|
||||
url = https://github.com/aristidb/aws/commit/3639262ccd6761dea76f052692ac3aefbd254723.patch;
|
||||
sha256 = "0nxaspldgayqjnidda8w7wps5gdpr2wz6vynl7vkaw8kzxks9bci";
|
||||
});
|
||||
aws = doJailbreak (dontCheck super.aws); # needs aws credentials, jailbreak for base16-bytestring
|
||||
aws-kinesis = dontCheck super.aws-kinesis; # needs aws credentials for testing
|
||||
binary-protocol = dontCheck super.binary-protocol; # http://hydra.cryp.to/build/499749/log/raw
|
||||
binary-search = dontCheck super.binary-search;
|
||||
@ -339,6 +314,7 @@ self: super: {
|
||||
nats-queue = dontCheck super.nats-queue;
|
||||
netpbm = dontCheck super.netpbm;
|
||||
network = dontCheck super.network;
|
||||
network_2_6_3_1 = dontCheck super.network_2_6_3_1; # package is missing files for test
|
||||
network-dbus = dontCheck super.network-dbus;
|
||||
notcpp = dontCheck super.notcpp;
|
||||
ntp-control = dontCheck super.ntp-control;
|
||||
@ -462,9 +438,6 @@ self: super: {
|
||||
# https://github.com/afcowie/locators/issues/1
|
||||
locators = dontCheck super.locators;
|
||||
|
||||
# Test suite won't compile against tasty-hunit 0.9.x.
|
||||
zlib = dontCheck super.zlib;
|
||||
|
||||
# Test suite won't compile against tasty-hunit 0.10.x.
|
||||
binary-parser = dontCheck super.binary-parser;
|
||||
binary-parsers = dontCheck super.binary-parsers;
|
||||
@ -554,9 +527,6 @@ self: super: {
|
||||
# https://github.com/liyang/thyme/issues/36
|
||||
thyme = dontCheck super.thyme;
|
||||
|
||||
# https://github.com/k0ral/hbro-contrib/issues/1
|
||||
hbro-contrib = dontDistribute super.hbro-contrib;
|
||||
|
||||
# Elm is no longer actively maintained on Hackage: https://github.com/NixOS/nixpkgs/pull/9233.
|
||||
Elm = markBroken super.Elm;
|
||||
elm-build-lib = markBroken super.elm-build-lib;
|
||||
@ -828,9 +798,12 @@ self: super: {
|
||||
# Jailbreak is necessary to break out of tasty < 1.x dependency.
|
||||
cryptohash-sha256 = markUnbroken (doJailbreak super.cryptohash-sha256);
|
||||
|
||||
# The test suite has all kinds of out-dated dependencies, so it feels easier
|
||||
# to just disable it.
|
||||
cryptohash-sha1 = dontCheck super.cryptohash-sha1;
|
||||
cryptohash-md5 = dontCheck super.cryptohash-md5;
|
||||
|
||||
# Needs tasty-quickcheck ==0.8.*, which we don't have.
|
||||
cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
|
||||
cryptohash-md5 = doJailbreak super.cryptohash-md5;
|
||||
gitHUD = dontCheck super.gitHUD;
|
||||
githud = dontCheck super.githud;
|
||||
|
||||
@ -1336,7 +1309,7 @@ self: super: {
|
||||
commonmark-extensions = dontCheck super.commonmark-extensions;
|
||||
|
||||
# Testsuite trying to run `which haskeline-examples-Test`
|
||||
haskeline_0_8_1_1 = dontCheck super.haskeline_0_8_1_1;
|
||||
haskeline_0_8_1_2 = dontCheck super.haskeline_0_8_1_2;
|
||||
|
||||
# Tests for list-t, superbuffer, and stm-containers
|
||||
# depend on HTF and it is broken, 2020-08-23
|
||||
@ -1403,10 +1376,7 @@ self: super: {
|
||||
# PATH.
|
||||
update-nix-fetchgit = let deps = [ pkgs.git pkgs.nix pkgs.nix-prefetch-git ];
|
||||
in generateOptparseApplicativeCompletion "update-nix-fetchgit" (overrideCabal
|
||||
(addTestToolDepends (super.update-nix-fetchgit.overrideScope (self: super: {
|
||||
optparse-generic = self.optparse-generic_1_4_4;
|
||||
optparse-applicative = self.optparse-applicative_0_16_1_0;
|
||||
})) deps) (drv: {
|
||||
(addTestToolDepends super.update-nix-fetchgit deps) (drv: {
|
||||
buildTools = drv.buildTools or [ ] ++ [ pkgs.makeWrapper ];
|
||||
postInstall = drv.postInstall or "" + ''
|
||||
wrapProgram "$out/bin/update-nix-fetchgit" --prefix 'PATH' ':' "${
|
||||
@ -1424,6 +1394,16 @@ self: super: {
|
||||
# https://github.com/haskell/haskell-language-server/issues/611
|
||||
haskell-language-server = dontCheck super.haskell-language-server;
|
||||
|
||||
# 2021-03-19: Too restrictive upper bound on optparse-applicative
|
||||
stylish-haskell = doJailbreak super.stylish-haskell;
|
||||
|
||||
# 2021-03-19: https://github.com/facebookincubator/retrie/issues/24
|
||||
retrie = doJailbreak super.retrie;
|
||||
|
||||
# Jailbreak because of restrictive upper bound on base16-bytestring
|
||||
# 2021-03-19: https://github.com/Avi-D-coder/implicit-hie-cradle/pull/8
|
||||
implicit-hie-cradle = doJailbreak super.implicit-hie-cradle;
|
||||
|
||||
# 2021-03-09: Overrides because nightly is to old for hls 1.0.0
|
||||
lsp-test = doDistribute (dontCheck self.lsp-test_0_13_0_0);
|
||||
|
||||
@ -1433,7 +1413,8 @@ self: super: {
|
||||
|
||||
# 2021-03-21 Test hangs
|
||||
# https://github.com/haskell/haskell-language-server/issues/1562
|
||||
ghcide = dontCheck super.ghcide;
|
||||
# Jailbreak because of: https://github.com/haskell/haskell-language-server/pull/1595
|
||||
ghcide = doJailbreak (dontCheck super.ghcide);
|
||||
|
||||
# 2020-03-09: Tests broken in hackage release
|
||||
# fixed on upstream, but not released in hiedb 0.3.0.1
|
||||
@ -1510,7 +1491,7 @@ self: super: {
|
||||
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
|
||||
heist = doJailbreak super.heist;
|
||||
|
||||
hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_1_1; });
|
||||
hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_1_2; });
|
||||
|
||||
# 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219
|
||||
snap = doJailbreak super.snap;
|
||||
@ -1661,4 +1642,34 @@ self: super: {
|
||||
# Test suite does not compile.
|
||||
feed = dontCheck super.feed;
|
||||
|
||||
spacecookie = overrideCabal super.spacecookie (old: {
|
||||
buildTools = (old.buildTools or []) ++ [ pkgs.installShellFiles ];
|
||||
# let testsuite discover the resulting binary
|
||||
preCheck = ''
|
||||
export SPACECOOKIE_TEST_BIN=./dist/build/spacecookie/spacecookie
|
||||
'' + (old.preCheck or "");
|
||||
# install man pages shipped in the sdist
|
||||
postInstall = ''
|
||||
installManPage docs/man/*
|
||||
'' + (old.postInstall or "");
|
||||
});
|
||||
|
||||
# Patch and jailbreak can be removed at next release, chatter > 0.9.1.0
|
||||
# * Remove dependency on regex-tdfa-text
|
||||
# * Jailbreak as bounds on cereal are too strict
|
||||
# * Disable test suite which doesn't compile
|
||||
# https://github.com/creswick/chatter/issues/38
|
||||
chatter = appendPatch
|
||||
(dontCheck (doJailbreak (super.chatter.override { regex-tdfa-text = null; })))
|
||||
(pkgs.fetchpatch {
|
||||
url = "https://github.com/creswick/chatter/commit/e8c15a848130d7d27b8eb5e73e8a0db1366b2e62.patch";
|
||||
sha256 = "1dzak8d12h54vss5fxnrclygz0fz9ygbqvxd5aifz5n3vrwwpj3g";
|
||||
});
|
||||
|
||||
# test suite doesn't compile anymore due to changed hunit/tasty APIs
|
||||
fullstop = dontCheck super.fullstop;
|
||||
|
||||
# https://github.com/jgm/pandoc/issues/7163
|
||||
pandoc = dontCheck super.pandoc;
|
||||
|
||||
} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
|
||||
|
@ -42,19 +42,17 @@ self: super: {
|
||||
unix = null;
|
||||
xhtml = null;
|
||||
|
||||
cabal-install = super.cabal-install.override {
|
||||
Cabal = super.Cabal_3_4_0_0;
|
||||
hackage-security = super.hackage-security.override { Cabal = super.Cabal_3_4_0_0; };
|
||||
# Usung dontCheck to break test dependency cycles
|
||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
||||
random = super.random_1_2_0;
|
||||
};
|
||||
# cabal-install needs more recent versions of Cabal and random, but an older
|
||||
# version of base16-bytestring.
|
||||
cabal-install = super.cabal-install.overrideScope (self: super: {
|
||||
Cabal = self.Cabal_3_4_0_0;
|
||||
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||
});
|
||||
|
||||
# cabal-install-parsers is written for Cabal 3.4
|
||||
cabal-install-parsers = super.cabal-install-parsers.override {
|
||||
Cabal = super.Cabal_3_4_0_0;
|
||||
base16-bytestring = super.base16-bytestring_1_0_1_0;
|
||||
};
|
||||
cabal-install-parsers = super.cabal-install-parsers.override { Cabal = super.Cabal_3_4_0_0; };
|
||||
|
||||
# Jailbreak to fix the build.
|
||||
base-noprelude = doJailbreak super.base-noprelude;
|
||||
@ -91,4 +89,5 @@ self: super: {
|
||||
|
||||
# Break out of "Cabal < 3.2" constraint.
|
||||
stylish-haskell = doJailbreak super.stylish-haskell;
|
||||
|
||||
}
|
||||
|
@ -1,97 +0,0 @@
|
||||
{ pkgs, haskellLib }:
|
||||
|
||||
with haskellLib;
|
||||
|
||||
self: super: {
|
||||
|
||||
# Suitable LLVM version.
|
||||
llvmPackages = pkgs.llvmPackages;
|
||||
|
||||
# Disable GHC 8.2.x core libraries.
|
||||
array = null;
|
||||
base = null;
|
||||
binary = null;
|
||||
bytestring = null;
|
||||
Cabal = null;
|
||||
containers = null;
|
||||
deepseq = null;
|
||||
directory = null;
|
||||
filepath = null;
|
||||
ghc-boot = null;
|
||||
ghc-boot-th = null;
|
||||
ghc-compact = null;
|
||||
ghc-heap = null;
|
||||
ghc-prim = null;
|
||||
ghci = null;
|
||||
haskeline = null;
|
||||
hoopl = null;
|
||||
hpc = null;
|
||||
integer-gmp = null;
|
||||
pretty = null;
|
||||
process = null;
|
||||
rts = null;
|
||||
template-haskell = null;
|
||||
terminfo = null;
|
||||
time = null;
|
||||
transformers = null;
|
||||
unix = null;
|
||||
xhtml = null;
|
||||
|
||||
# These are now core libraries in GHC 8.4.x.
|
||||
mtl = self.mtl_2_2_2;
|
||||
parsec = self.parsec_3_1_14_0;
|
||||
stm = self.stm_2_5_0_0;
|
||||
text = self.text_1_2_4_0;
|
||||
|
||||
# Needs Cabal 3.0.x.
|
||||
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
|
||||
|
||||
# https://github.com/bmillwood/applicative-quoters/issues/6
|
||||
applicative-quoters = appendPatch super.applicative-quoters (pkgs.fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/bmillwood/applicative-quoters/pull/7.patch";
|
||||
sha256 = "026vv2k3ks73jngwifszv8l59clg88pcdr4mz0wr0gamivkfa1zy";
|
||||
});
|
||||
|
||||
# https://github.com/nominolo/ghc-syb/issues/20
|
||||
ghc-syb-utils = dontCheck super.ghc-syb-utils;
|
||||
|
||||
# Upstream failed to distribute the testsuite for 8.2
|
||||
# https://github.com/alanz/ghc-exactprint/pull/60
|
||||
ghc-exactprint = dontCheck super.ghc-exactprint;
|
||||
|
||||
# Reduction stack overflow; size = 38
|
||||
# https://github.com/jystic/hadoop-tools/issues/31
|
||||
hadoop-rpc =
|
||||
let patch = pkgs.fetchpatch
|
||||
{ url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
|
||||
sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
|
||||
stripLen = 1;
|
||||
};
|
||||
in appendPatch super.hadoop-rpc patch;
|
||||
|
||||
# Custom Setup.hs breaks with Cabal 2
|
||||
# https://github.com/NICTA/coordinate/pull/4
|
||||
coordinate =
|
||||
let patch = pkgs.fetchpatch
|
||||
{ url = "https://github.com/NICTA/coordinate/pull/4.patch";
|
||||
sha256 = "06sfxk5cyd8nqgjyb95jkihxxk8m6dw9m3mlv94sm2qwylj86gqy";
|
||||
};
|
||||
in appendPatch super.coordinate patch;
|
||||
|
||||
# https://github.com/purescript/purescript/issues/3189
|
||||
purescript = doJailbreak (super.purescript);
|
||||
|
||||
# These packages need Cabal 2.2.x, which is not the default.
|
||||
cabal2nix = super.cabal2nix.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
||||
cabal2spec = super.cabal2spec.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
||||
distribution-nixpkgs = super.distribution-nixpkgs.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
||||
stack = super.stack.overrideScope (self: super: { Cabal = self.Cabal_2_2_0_1; });
|
||||
|
||||
# Older GHC versions need these additional dependencies.
|
||||
ListLike = addBuildDepend super.ListLike self.semigroups;
|
||||
base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
|
||||
|
||||
# ghc versions prior to 8.8.x needs additional dependency to compile successfully.
|
||||
ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
|
||||
|
||||
}
|
@ -1,93 +0,0 @@
|
||||
{ pkgs, haskellLib }:
|
||||
|
||||
with haskellLib;
|
||||
|
||||
self: super: {
|
||||
|
||||
# This compiler version needs llvm 5.x.
|
||||
llvmPackages = pkgs.llvmPackages_5;
|
||||
|
||||
# Disable GHC 8.4.x core libraries.
|
||||
array = null;
|
||||
base = null;
|
||||
binary = null;
|
||||
bytestring = null;
|
||||
Cabal = null;
|
||||
containers = null;
|
||||
deepseq = null;
|
||||
directory = null;
|
||||
filepath = null;
|
||||
ghc-boot = null;
|
||||
ghc-boot-th = null;
|
||||
ghc-compact = null;
|
||||
ghc-heap = null;
|
||||
ghc-prim = null;
|
||||
ghci = null;
|
||||
haskeline = null;
|
||||
hpc = null;
|
||||
integer-gmp = null;
|
||||
mtl = null;
|
||||
parsec = null;
|
||||
pretty = null;
|
||||
process = null;
|
||||
rts = null;
|
||||
stm = null;
|
||||
template-haskell = null;
|
||||
terminfo = null;
|
||||
text = null;
|
||||
time = null;
|
||||
transformers = null;
|
||||
unix = null;
|
||||
xhtml = null;
|
||||
|
||||
# Needs Cabal 3.2.x.
|
||||
cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_1_0; });
|
||||
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_3_2_1_0; };
|
||||
|
||||
# Restricts aeson to <1.4
|
||||
# https://github.com/purescript/purescript/pull/3537
|
||||
purescript = doJailbreak super.purescript;
|
||||
|
||||
# https://github.com/jcristovao/enclosed-exceptions/issues/12
|
||||
enclosed-exceptions = dontCheck super.enclosed-exceptions;
|
||||
|
||||
# https://github.com/jaor/xmobar/issues/356
|
||||
xmobar = super.xmobar.overrideScope (self: super: { hinotify = self.hinotify_0_3_9; });
|
||||
hinotify_0_3_9 = dontCheck (doJailbreak super.hinotify_0_3_9); # allow async 2.2.x
|
||||
|
||||
# Reduction stack overflow; size = 38
|
||||
# https://github.com/jystic/hadoop-tools/issues/31
|
||||
hadoop-rpc =
|
||||
let patch = pkgs.fetchpatch
|
||||
{ url = "https://github.com/shlevy/hadoop-tools/commit/f03a46cd15ce3796932c3382e48bcbb04a6ee102.patch";
|
||||
sha256 = "09ls54zy6gx84fmzwgvx18ssgm740cwq6ds70p0p125phi54agcp";
|
||||
stripLen = 1;
|
||||
};
|
||||
in appendPatch super.hadoop-rpc patch;
|
||||
|
||||
# stack-1.9.1 needs Cabal 2.4.x, a recent version of hpack, and a non-recent
|
||||
# version of yaml. Go figure. We avoid overrideScope here because using it to
|
||||
# change Cabal would re-compile every single package instead of just those
|
||||
# that have it as an actual library dependency. The explicit overrides are
|
||||
# more verbose but friendlier for Hydra.
|
||||
stack = (doJailbreak super.stack).override {
|
||||
Cabal = self.Cabal_2_4_1_0;
|
||||
hpack = self.hpack.override { Cabal = self.Cabal_2_4_1_0; };
|
||||
hackage-security = self.hackage-security.override { Cabal = self.Cabal_2_4_1_0; };
|
||||
};
|
||||
|
||||
# Older GHC versions need these additional dependencies.
|
||||
aeson = addBuildDepend super.aeson self.contravariant;
|
||||
base-compat-batteries = addBuildDepend super.base-compat-batteries self.contravariant;
|
||||
|
||||
# Newer versions don't compile.
|
||||
resolv = self.resolv_0_1_1_2;
|
||||
|
||||
# The old Haddock cannot process the newer documentation syntax.
|
||||
fast-logger = dontHaddock super.fast-logger;
|
||||
|
||||
# ghc versions prior to 8.8.x needs additional dependency to compile successfully.
|
||||
ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
|
||||
hls-hlint-plugin = addBuildDepend super.hls-hlint-plugin self.ghc-lib;
|
||||
|
||||
}
|
@ -52,15 +52,17 @@ self: super: {
|
||||
haddock = self.haddock_2_23_1;
|
||||
haddock-api = self.haddock-api_2_23_1;
|
||||
|
||||
# These builds need newer versions of Cabal.
|
||||
# This build needs a newer version of Cabal.
|
||||
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
|
||||
cabal-install = super.cabal-install.override {
|
||||
Cabal = super.Cabal_3_4_0_0;
|
||||
hackage-security = super.hackage-security.override { Cabal = super.Cabal_3_4_0_0; };
|
||||
# Using dontCheck to break test dependency cycles
|
||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
||||
random = super.random_1_2_0;
|
||||
};
|
||||
|
||||
# cabal-install needs more recent versions of Cabal and random, but an older
|
||||
# version of base16-bytestring.
|
||||
cabal-install = super.cabal-install.overrideScope (self: super: {
|
||||
Cabal = self.Cabal_3_4_0_0;
|
||||
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||
});
|
||||
|
||||
# Ignore overly restrictive upper version bounds.
|
||||
aeson-diff = doJailbreak super.aeson-diff;
|
||||
|
@ -43,12 +43,14 @@ self: super: {
|
||||
unix = null;
|
||||
xhtml = null;
|
||||
|
||||
# Build cabal-install with the compiler's native Cabal.
|
||||
cabal-install = (doJailbreak super.cabal-install).override {
|
||||
# Use dontCheck to break test dependency cycles
|
||||
edit-distance = dontCheck (super.edit-distance.override { random = super.random_1_2_0; });
|
||||
random = super.random_1_2_0;
|
||||
};
|
||||
# cabal-install needs more recent versions of random, but an older
|
||||
# version of base16-bytestring.
|
||||
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
|
||||
Cabal = null;
|
||||
base16-bytestring = self.base16-bytestring_0_1_1_7;
|
||||
random = dontCheck super.random_1_2_0; # break infinite recursion
|
||||
hashable = doJailbreak super.hashable; # allow random 1.2.x
|
||||
});
|
||||
|
||||
# Jailbreaks & Version Updates
|
||||
async = doJailbreak super.async;
|
||||
|
@ -1,209 +0,0 @@
|
||||
# GHCJS package fixes
|
||||
#
|
||||
# Please insert new packages *alphabetically*
|
||||
# in the OTHER PACKAGES section.
|
||||
{ pkgs, haskellLib }:
|
||||
|
||||
let
|
||||
removeLibraryHaskellDepends = pnames: depends:
|
||||
builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
|
||||
in
|
||||
|
||||
with haskellLib;
|
||||
|
||||
self: super:
|
||||
|
||||
## GENERAL SETUP BASE PACKAGES
|
||||
|
||||
let # The stage 1 packages
|
||||
stage1 = pkgs.lib.genAttrs super.ghc.stage1Packages (pkg: null);
|
||||
# The stage 2 packages. Regenerate with ../compilers/ghcjs/gen-stage2.rb
|
||||
stage2 = super.ghc.mkStage2 {
|
||||
inherit (self) callPackage;
|
||||
};
|
||||
in stage1 // stage2 // {
|
||||
|
||||
# GHCJS does not ship with the same core packages as GHC.
|
||||
# https://github.com/ghcjs/ghcjs/issues/676
|
||||
stm = self.stm_2_5_0_0;
|
||||
ghc-compact = self.ghc-compact_0_1_0_0;
|
||||
|
||||
network = addBuildTools super.network (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
zlib = addBuildTools super.zlib (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
unix-compat = addBuildTools super.unix-compat (pkgs.lib.optional pkgs.buildPlatform.isDarwin pkgs.buildPackages.darwin.libiconv);
|
||||
|
||||
# LLVM is not supported on this GHC; use the latest one.
|
||||
inherit (pkgs) llvmPackages;
|
||||
|
||||
inherit (self.ghc.bootPkgs)
|
||||
jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
|
||||
|
||||
# Don't set integer-simple to null!
|
||||
# GHCJS uses integer-gmp, so any package expression that depends on
|
||||
# integer-simple is wrong.
|
||||
#integer-simple = null;
|
||||
|
||||
# These packages are core libraries in GHC 8.6..x, but not here.
|
||||
bin-package-db = null;
|
||||
haskeline = self.haskeline_0_7_5_0;
|
||||
hpc = self.hpc_0_6_0_3;
|
||||
terminfo = self.terminfo_0_4_1_4;
|
||||
xhtml = self.xhtml_3000_2_2_1;
|
||||
|
||||
## OTHER PACKAGES
|
||||
|
||||
# haddock throws the error: No input file(s).
|
||||
fail = dontHaddock super.fail;
|
||||
|
||||
cereal = addBuildDepend super.cereal [ self.fail ];
|
||||
|
||||
entropy = overrideCabal super.entropy (old: {
|
||||
postPatch = old.postPatch or "" + ''
|
||||
# cabal doesn’t find ghc in this script, since it’s in the bootPkgs
|
||||
sed -e '/Simple.Program/a import Distribution.Simple.Program.Types' \
|
||||
-e 's|mConf.*=.*$|mConf = Just $ simpleConfiguredProgram "ghc" (FoundOnSystem "${self.ghc.bootPkgs.ghc}/bin/ghc")|g' -i Setup.hs
|
||||
'';
|
||||
});
|
||||
|
||||
# https://github.com/kazu-yamamoto/logger/issues/97
|
||||
fast-logger = overrideCabal super.fast-logger (old: {
|
||||
postPatch = old.postPatch or "" + ''
|
||||
# remove the Safe extensions, since ghcjs-boot directory
|
||||
# doesn’t provide Trustworthy
|
||||
sed -ie '/LANGUAGE Safe/d' System/Log/FastLogger/*.hs
|
||||
cat System/Log/FastLogger/Date.hs
|
||||
'';
|
||||
});
|
||||
|
||||
# experimental
|
||||
ghcjs-ffiqq = self.callPackage
|
||||
({ mkDerivation, base, template-haskell, ghcjs-base, split, containers, text, ghc-prim
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "ghcjs-ffiqq";
|
||||
version = "0.1.0.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ghcjs";
|
||||
repo = "ghcjs-ffiqq";
|
||||
rev = "b52338c2dcd3b0707bc8aff2e171411614d4aedb";
|
||||
sha256 = "08zxfm1i6zb7n8vbz3dywdy67vkixfyw48580rwfp48rl1s2z1c7";
|
||||
};
|
||||
libraryHaskellDepends = [
|
||||
base template-haskell ghcjs-base split containers text ghc-prim
|
||||
];
|
||||
description = "FFI QuasiQuoter for GHCJS";
|
||||
license = pkgs.lib.licenses.mit;
|
||||
}) {};
|
||||
# experimental
|
||||
ghcjs-vdom = self.callPackage
|
||||
({ mkDerivation, base, ghc-prim, ghcjs-ffiqq, ghcjs-base, ghcjs-prim
|
||||
, containers, split, template-haskell
|
||||
}:
|
||||
mkDerivation rec {
|
||||
pname = "ghcjs-vdom";
|
||||
version = "0.2.0.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ghcjs";
|
||||
repo = pname;
|
||||
rev = "1c1175ba22eca6d7efa96f42a72290ade193c148";
|
||||
sha256 = "0c6l1dk2anvz94yy5qblrfh2iv495rjq4qmhlycc24dvd02f7n9m";
|
||||
};
|
||||
libraryHaskellDepends = [
|
||||
base ghc-prim ghcjs-ffiqq ghcjs-base ghcjs-prim containers split
|
||||
template-haskell
|
||||
];
|
||||
license = pkgs.lib.licenses.mit;
|
||||
description = "bindings for https://github.com/Matt-Esch/virtual-dom";
|
||||
}) {};
|
||||
|
||||
ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
|
||||
libraryHaskellDepends = with self; [
|
||||
ghcjs-base ghcjs-dom-jsffi text transformers
|
||||
];
|
||||
configureFlags = [ "-fjsffi" "-f-webkit" ];
|
||||
});
|
||||
|
||||
ghcjs-dom-jsffi = overrideCabal super.ghcjs-dom-jsffi (drv: {
|
||||
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
|
||||
isLibrary = true;
|
||||
});
|
||||
|
||||
ghc-paths = overrideCabal super.ghc-paths (drv: {
|
||||
patches = [ ./patches/ghc-paths-nix-ghcjs.patch ];
|
||||
});
|
||||
|
||||
http2 = addBuildDepends super.http2 [ self.aeson self.aeson-pretty self.hex self.unordered-containers self.vector self.word8 ];
|
||||
# ghcjsBoot uses async 2.0.1.6, protolude wants 2.1.*
|
||||
|
||||
# These are the correct dependencies specified when calling `cabal2nix --compiler ghcjs`
|
||||
# By default, the `miso` derivation present in hackage-packages.nix
|
||||
# does not contain dependencies suitable for ghcjs
|
||||
miso = overrideCabal super.miso (drv: {
|
||||
libraryHaskellDepends = with self; [
|
||||
BoundedChan bytestring containers ghcjs-base aeson base
|
||||
http-api-data http-types network-uri scientific servant text
|
||||
transformers unordered-containers vector
|
||||
];
|
||||
});
|
||||
|
||||
pqueue = overrideCabal super.pqueue (drv: {
|
||||
postPatch = ''
|
||||
sed -i -e '12s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
|
||||
sed -i -e '64s|null|Data.PQueue.Internals.null|' Data/PQueue/Internals.hs
|
||||
sed -i -e '32s|null|Data.PQueue.Internals.null|' Data/PQueue/Min.hs
|
||||
sed -i -e '32s|null|Data.PQueue.Max.null|' Data/PQueue/Max.hs
|
||||
sed -i -e '42s|null|Data.PQueue.Prio.Internals.null|' Data/PQueue/Prio/Min.hs
|
||||
sed -i -e '42s|null|Data.PQueue.Prio.Max.null|' Data/PQueue/Prio/Max.hs
|
||||
'';
|
||||
});
|
||||
|
||||
profunctors = overrideCabal super.profunctors (drv: {
|
||||
preConfigure = ''
|
||||
sed -i 's/^{-# ANN .* #-}//' src/Data/Profunctor/Unsafe.hs
|
||||
'';
|
||||
});
|
||||
|
||||
protolude = doJailbreak super.protolude;
|
||||
|
||||
# reflex 0.3, made compatible with the newest GHCJS.
|
||||
reflex = overrideCabal super.reflex (drv: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ryantrinkle";
|
||||
repo = "reflex";
|
||||
rev = "cc62c11a6cde31412582758c236919d4bb766ada";
|
||||
sha256 = "1j4vw0636bkl46lj8ry16i04vgpivjc6bs3ls54ppp1wfp63q7w4";
|
||||
};
|
||||
});
|
||||
|
||||
# reflex-dom 0.2, made compatible with the newest GHCJS.
|
||||
reflex-dom = overrideCabal super.reflex-dom (drv: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ryantrinkle";
|
||||
repo = "reflex-dom";
|
||||
rev = "639d9ca13c2def075e83344c9afca6eafaf24219";
|
||||
sha256 = "0166ihbh3dbfjiym9w561svpgvj0x4i8i8ws70xaafi0cmpsxrar";
|
||||
};
|
||||
libraryHaskellDepends =
|
||||
removeLibraryHaskellDepends [
|
||||
"glib" "gtk3" "webkitgtk3" "webkitgtk3-javascriptcore" "raw-strings-qq" "unix"
|
||||
] drv.libraryHaskellDepends;
|
||||
});
|
||||
|
||||
transformers-compat = overrideCabal super.transformers-compat (drv: {
|
||||
configureFlags = [];
|
||||
});
|
||||
|
||||
# triggers an internal pattern match failure in haddock
|
||||
# https://github.com/haskell/haddock/issues/553
|
||||
wai = dontHaddock super.wai;
|
||||
|
||||
base-orphans = dontCheck super.base-orphans;
|
||||
distributive = dontCheck super.distributive;
|
||||
|
||||
# https://github.com/glguy/th-abstraction/issues/53
|
||||
th-abstraction = dontCheck super.th-abstraction;
|
||||
# https://github.com/dreixel/syb/issues/21
|
||||
syb = dontCheck super.syb;
|
||||
# https://github.com/ghcjs/ghcjs/issues/677
|
||||
hspec-core = dontCheck super.hspec-core;
|
||||
}
|
@ -73,8 +73,11 @@ default-package-overrides:
|
||||
# gi-gdkx11-4.x requires gtk-4.x, which is still under development and
|
||||
# not yet available in Nixpkgs
|
||||
- gi-gdkx11 < 4
|
||||
- hlint < 3.3 # We don‘t have ghc-lib-parser 9.0.X yet.
|
||||
- ghcide < 1.1 # To stay hls 1.0 compatible
|
||||
- hls-retrie-plugin < 1.0.0.1 # To stay hls 1.0 compatible
|
||||
|
||||
# Stackage Nightly 2021-03-12
|
||||
# Stackage Nightly 2021-03-17
|
||||
- abstract-deque ==0.3
|
||||
- abstract-par ==0.3.3
|
||||
- AC-Angle ==1.0
|
||||
@ -88,7 +91,7 @@ default-package-overrides:
|
||||
- aeson-attoparsec ==0.0.0
|
||||
- aeson-better-errors ==0.9.1.0
|
||||
- aeson-casing ==0.2.0.0
|
||||
- aeson-combinators ==0.0.4.1
|
||||
- aeson-combinators ==0.0.5.0
|
||||
- aeson-commit ==1.3
|
||||
- aeson-compat ==0.3.9
|
||||
- aeson-default ==0.9.1.0
|
||||
@ -208,10 +211,10 @@ default-package-overrides:
|
||||
- amazonka-waf ==1.6.1
|
||||
- amazonka-workspaces ==1.6.1
|
||||
- amazonka-xray ==1.6.1
|
||||
- amqp ==0.21.0
|
||||
- amqp ==0.22.0
|
||||
- amqp-utils ==0.6.1.0
|
||||
- annotated-wl-pprint ==0.7.0
|
||||
- ansi-terminal ==0.10.3
|
||||
- ansi-terminal ==0.11
|
||||
- ansi-wl-pprint ==0.6.9
|
||||
- ANum ==0.2.0.2
|
||||
- apecs ==0.9.2
|
||||
@ -228,7 +231,6 @@ default-package-overrides:
|
||||
- approximate-equality ==1.1.0.2
|
||||
- app-settings ==0.2.0.12
|
||||
- arbor-lru-cache ==0.1.1.1
|
||||
- arbor-postgres ==0.0.5
|
||||
- arithmoi ==0.11.0.1
|
||||
- array-memoize ==0.6.0
|
||||
- arrow-extras ==0.1.0.1
|
||||
@ -278,7 +280,7 @@ default-package-overrides:
|
||||
- bank-holidays-england ==0.2.0.6
|
||||
- barbies ==2.0.2.0
|
||||
- base16 ==0.3.0.1
|
||||
- base16-bytestring ==0.1.1.7
|
||||
- base16-bytestring ==1.0.1.0
|
||||
- base16-lens ==0.1.3.2
|
||||
- base32 ==0.2.0.0
|
||||
- base32-lens ==0.1.1.1
|
||||
@ -375,6 +377,7 @@ default-package-overrides:
|
||||
- bugzilla-redhat ==0.3.1
|
||||
- burrito ==1.2.0.1
|
||||
- butcher ==1.3.3.2
|
||||
- buttplug-hs-core ==0.1.0.0
|
||||
- bv ==0.5
|
||||
- bv-little ==1.1.1
|
||||
- byteable ==0.1.1
|
||||
@ -412,7 +415,7 @@ default-package-overrides:
|
||||
- cardano-coin-selection ==1.0.1
|
||||
- carray ==0.1.6.8
|
||||
- casa-client ==0.0.1
|
||||
- casa-types ==0.0.1
|
||||
- casa-types ==0.0.2
|
||||
- cased ==0.1.0.0
|
||||
- case-insensitive ==1.2.1.0
|
||||
- cases ==0.1.4
|
||||
@ -457,7 +460,7 @@ default-package-overrides:
|
||||
- cipher-rc4 ==0.1.4
|
||||
- circle-packing ==0.1.0.6
|
||||
- circular ==0.3.1.1
|
||||
- citeproc ==0.3.0.8
|
||||
- citeproc ==0.3.0.9
|
||||
- clash-ghc ==1.2.5
|
||||
- clash-lib ==1.2.5
|
||||
- clash-prelude ==1.2.5
|
||||
@ -477,18 +480,15 @@ default-package-overrides:
|
||||
- cmark-lucid ==0.1.0.0
|
||||
- cmdargs ==0.10.21
|
||||
- codec-beam ==0.2.0
|
||||
- codec-rpm ==0.2.2
|
||||
- code-page ==0.2.1
|
||||
- co-log ==0.4.0.1
|
||||
- co-log-concurrent ==0.5.0.0
|
||||
- co-log-core ==0.2.1.1
|
||||
- Color ==0.3.0
|
||||
- Color ==0.3.1
|
||||
- colorful-monoids ==0.2.1.3
|
||||
- colorize-haskell ==1.0.1
|
||||
- colour ==2.3.5
|
||||
- colourista ==0.1.0.0
|
||||
- combinatorial ==0.1.0.1
|
||||
- comfort-array ==0.4
|
||||
- comfort-array ==0.4.1
|
||||
- comfort-graph ==0.0.3.1
|
||||
- commonmark ==0.1.1.4
|
||||
- commonmark-extensions ==0.2.0.4
|
||||
@ -501,7 +501,7 @@ default-package-overrides:
|
||||
- compensated ==0.8.3
|
||||
- compiler-warnings ==0.1.0
|
||||
- composable-associations ==0.1.0.0
|
||||
- composable-associations-aeson ==0.1.0.0
|
||||
- composable-associations-aeson ==0.1.0.1
|
||||
- composite-aeson ==0.7.4.0
|
||||
- composite-aeson-path ==0.7.4.0
|
||||
- composite-aeson-refined ==0.7.4.0
|
||||
@ -514,7 +514,7 @@ default-package-overrides:
|
||||
- composition ==1.0.2.1
|
||||
- composition-extra ==2.0.0
|
||||
- concise ==0.1.0.1
|
||||
- concurrency ==1.11.0.0
|
||||
- concurrency ==1.11.0.1
|
||||
- concurrent-extra ==0.7.0.12
|
||||
- concurrent-output ==1.10.12
|
||||
- concurrent-split ==0.0.1.1
|
||||
@ -528,7 +528,7 @@ default-package-overrides:
|
||||
- conduit-parse ==0.2.1.0
|
||||
- conduit-zstd ==0.0.2.0
|
||||
- conferer ==1.1.0.0
|
||||
- conferer-aeson ==1.1.0.0
|
||||
- conferer-aeson ==1.1.0.1
|
||||
- conferer-hspec ==1.1.0.0
|
||||
- conferer-warp ==1.1.0.0
|
||||
- ConfigFile ==1.1.4
|
||||
@ -556,7 +556,6 @@ default-package-overrides:
|
||||
- core-text ==0.3.0.0
|
||||
- countable ==1.0
|
||||
- country ==0.2.1
|
||||
- cpio-conduit ==0.7.0
|
||||
- cpphs ==1.20.9.1
|
||||
- cprng-aes ==0.6.1
|
||||
- cpu ==0.1.2
|
||||
@ -577,7 +576,7 @@ default-package-overrides:
|
||||
- cryptohash-sha1 ==0.11.100.1
|
||||
- cryptohash-sha256 ==0.11.102.0
|
||||
- cryptohash-sha512 ==0.11.100.1
|
||||
- cryptonite ==0.27
|
||||
- cryptonite ==0.28
|
||||
- cryptonite-conduit ==0.2.2
|
||||
- cryptonite-openssl ==0.7
|
||||
- crypto-numbers ==0.2.7
|
||||
@ -628,7 +627,7 @@ default-package-overrides:
|
||||
- data-forest ==0.1.0.8
|
||||
- data-has ==0.4.0.0
|
||||
- data-hash ==0.2.0.1
|
||||
- data-interval ==2.0.1
|
||||
- data-interval ==2.1.0
|
||||
- data-inttrie ==0.1.4
|
||||
- data-lens-light ==0.1.2.2
|
||||
- data-memocombinators ==0.5.1
|
||||
@ -649,12 +648,12 @@ default-package-overrides:
|
||||
- debian-build ==0.10.2.0
|
||||
- debug-trace-var ==0.2.0
|
||||
- dec ==0.0.4
|
||||
- Decimal ==0.5.1
|
||||
- Decimal ==0.5.2
|
||||
- declarative ==0.5.4
|
||||
- deepseq-generics ==0.2.0.0
|
||||
- deepseq-instances ==0.1.0.1
|
||||
- deferred-folds ==0.9.17
|
||||
- dejafu ==2.4.0.1
|
||||
- dejafu ==2.4.0.2
|
||||
- dense-linear-algebra ==0.1.0.0
|
||||
- depq ==0.4.1.0
|
||||
- deque ==0.4.3
|
||||
@ -691,12 +690,13 @@ default-package-overrides:
|
||||
- dlist-nonempty ==0.1.1
|
||||
- dns ==4.0.1
|
||||
- dockerfile ==0.2.0
|
||||
- doclayout ==0.3
|
||||
- doclayout ==0.3.0.2
|
||||
- doctemplates ==0.9
|
||||
- doctest ==0.16.3
|
||||
- doctest-discover ==0.2.0.0
|
||||
- doctest-driver-gen ==0.3.0.3
|
||||
- doctest-exitcode-stdio ==0.0
|
||||
- doctest-extract ==0.1
|
||||
- doctest-lib ==0.1
|
||||
- doldol ==0.4.1.2
|
||||
- do-list ==1.0.1
|
||||
@ -712,7 +712,7 @@ default-package-overrides:
|
||||
- dual ==0.1.1.1
|
||||
- dublincore-xml-conduit ==0.1.0.2
|
||||
- dunai ==0.7.0
|
||||
- duration ==0.1.0.0
|
||||
- duration ==0.2.0.0
|
||||
- dvorak ==0.1.0.0
|
||||
- dynamic-state ==0.3.1
|
||||
- dyre ==0.8.12
|
||||
@ -794,7 +794,7 @@ default-package-overrides:
|
||||
- executable-path ==0.0.3.1
|
||||
- exit-codes ==1.0.0
|
||||
- exomizer ==1.0.0
|
||||
- experimenter ==0.1.0.4
|
||||
- experimenter ==0.1.0.10
|
||||
- expiring-cache-map ==0.0.6.1
|
||||
- explicit-exception ==0.1.10
|
||||
- exp-pairs ==0.2.1.0
|
||||
@ -844,6 +844,7 @@ default-package-overrides:
|
||||
- fixed-length ==0.2.2
|
||||
- fixed-vector ==1.2.0.0
|
||||
- fixed-vector-hetero ==0.6.0.0
|
||||
- fix-whitespace ==0.0.5
|
||||
- flac ==0.2.0
|
||||
- flac-picture ==0.1.2
|
||||
- flags-applicative ==0.1.0.2
|
||||
@ -951,7 +952,7 @@ default-package-overrides:
|
||||
- ghc-byteorder ==4.11.0.0.10
|
||||
- ghc-check ==0.5.0.3
|
||||
- ghc-core ==0.5.6
|
||||
- ghc-events ==0.15.1
|
||||
- ghc-events ==0.16.0
|
||||
- ghc-exactprint ==0.6.4
|
||||
- ghcid ==0.8.7
|
||||
- ghci-hexcalc ==0.1.1.0
|
||||
@ -969,7 +970,7 @@ default-package-overrides:
|
||||
- ghc-typelits-extra ==0.4.2
|
||||
- ghc-typelits-knownnat ==0.7.5
|
||||
- ghc-typelits-natnormalise ==0.7.4
|
||||
- ghc-typelits-presburger ==0.5.2.0
|
||||
- ghc-typelits-presburger ==0.6.0.0
|
||||
- ghost-buster ==0.1.1.0
|
||||
- gi-atk ==2.0.22
|
||||
- gi-cairo ==1.0.24
|
||||
@ -991,8 +992,7 @@ default-package-overrides:
|
||||
- gingersnap ==0.3.1.0
|
||||
- gi-pango ==1.0.23
|
||||
- githash ==0.1.5.0
|
||||
- github ==0.26
|
||||
- github-release ==1.3.6
|
||||
- github-release ==1.3.7
|
||||
- github-rest ==1.0.3
|
||||
- github-types ==0.2.1
|
||||
- github-webhooks ==0.15.0
|
||||
@ -1016,6 +1016,7 @@ default-package-overrides:
|
||||
- graphite ==0.10.0.1
|
||||
- graphql-client ==1.1.0
|
||||
- graphs ==0.7.1
|
||||
- graphula ==2.0.0.3
|
||||
- graphviz ==2999.20.1.0
|
||||
- graph-wrapper ==0.2.6.0
|
||||
- gravatar ==0.8.0
|
||||
@ -1032,7 +1033,6 @@ default-package-overrides:
|
||||
- hackage-db ==2.1.0
|
||||
- hackage-security ==0.6.0.1
|
||||
- haddock-library ==1.9.0
|
||||
- hadolint ==1.23.0
|
||||
- hadoop-streaming ==0.2.0.3
|
||||
- hakyll-convert ==0.3.0.4
|
||||
- half ==0.3.1
|
||||
@ -1078,11 +1078,11 @@ default-package-overrides:
|
||||
- hdaemonize ==0.5.6
|
||||
- HDBC ==2.4.0.3
|
||||
- HDBC-session ==0.1.2.0
|
||||
- headroom ==0.4.0.0
|
||||
- headroom ==0.4.1.0
|
||||
- heap ==1.0.4
|
||||
- heaps ==0.3.6.1
|
||||
- hebrew-time ==0.1.2
|
||||
- hedgehog ==1.0.4
|
||||
- hedgehog ==1.0.5
|
||||
- hedgehog-corpus ==0.2.0
|
||||
- hedgehog-fakedata ==0.0.1.4
|
||||
- hedgehog-fn ==1.0
|
||||
@ -1095,18 +1095,17 @@ default-package-overrides:
|
||||
- hexml ==0.3.4
|
||||
- hexml-lens ==0.2.1
|
||||
- hexpat ==0.20.13
|
||||
- hexstring ==0.11.1
|
||||
- hformat ==0.3.3.1
|
||||
- hfsevents ==0.1.6
|
||||
- hgrev ==0.2.6
|
||||
- hidapi ==0.1.5
|
||||
- hie-bios ==0.7.4
|
||||
- hie-bios ==0.7.5
|
||||
- hi-file-parser ==0.1.0.0
|
||||
- higher-leveldb ==0.6.0.0
|
||||
- highlighting-kate ==0.6.4
|
||||
- hinfo ==0.0.3.0
|
||||
- hinotify ==0.4.1
|
||||
- hint ==0.9.0.3
|
||||
- hint ==0.9.0.4
|
||||
- hjsmin ==0.2.0.4
|
||||
- hkd-default ==1.1.0.0
|
||||
- hkgr ==0.2.7
|
||||
@ -1152,9 +1151,10 @@ default-package-overrides:
|
||||
- hsinstall ==2.6
|
||||
- HSlippyMap ==3.0.1
|
||||
- hslogger ==1.3.1.0
|
||||
- hslua ==1.2.0
|
||||
- hslua ==1.3.0.1
|
||||
- hslua-aeson ==1.0.3.1
|
||||
- hslua-module-doclayout ==0.2.0.1
|
||||
- hslua-module-path ==0.1.0.1
|
||||
- hslua-module-system ==0.2.2.1
|
||||
- hslua-module-text ==0.3.0.1
|
||||
- HsOpenSSL ==0.11.5.1
|
||||
@ -1180,10 +1180,11 @@ default-package-overrides:
|
||||
- hspec-parsec ==0
|
||||
- hspec-smallcheck ==0.5.2
|
||||
- hspec-tables ==0.0.1
|
||||
- hspec-wai ==0.10.1
|
||||
- hspec-wai-json ==0.10.1
|
||||
- hspec-wai ==0.11.0
|
||||
- hspec-wai-json ==0.11.0
|
||||
- hs-php-session ==0.0.9.3
|
||||
- hsshellscript ==3.4.5
|
||||
- hsshellscript ==3.5.0
|
||||
- hs-tags ==0.1.5
|
||||
- HStringTemplate ==0.8.7
|
||||
- HSvm ==0.1.1.3.22
|
||||
- HsYAML ==0.2.1.0
|
||||
@ -1196,9 +1197,9 @@ default-package-overrides:
|
||||
- html-entities ==1.1.4.3
|
||||
- html-entity-map ==0.1.0.0
|
||||
- htoml ==1.0.0.3
|
||||
- http2 ==2.0.5
|
||||
- http2 ==2.0.6
|
||||
- HTTP ==4000.3.15
|
||||
- http-api-data ==0.4.1.1
|
||||
- http-api-data ==0.4.2
|
||||
- http-client ==0.6.4.1
|
||||
- http-client-openssl ==0.3.2.0
|
||||
- http-client-overrides ==0.1.1.0
|
||||
@ -1209,7 +1210,7 @@ default-package-overrides:
|
||||
- http-directory ==0.1.8
|
||||
- http-download ==0.2.0.0
|
||||
- httpd-shed ==0.4.1.1
|
||||
- http-link-header ==1.0.3.1
|
||||
- http-link-header ==1.2.0
|
||||
- http-media ==0.8.0.0
|
||||
- http-query ==0.1.0.1
|
||||
- http-reverse-proxy ==0.6.0
|
||||
@ -1286,9 +1287,10 @@ default-package-overrides:
|
||||
- indexed-list-literals ==0.2.1.3
|
||||
- indexed-profunctors ==0.1
|
||||
- indexed-traversable ==0.1.1
|
||||
- indexed-traversable-instances ==0.1
|
||||
- infer-license ==0.2.0
|
||||
- inflections ==0.4.0.6
|
||||
- influxdb ==1.9.1
|
||||
- influxdb ==1.9.1.1
|
||||
- ini ==0.4.1
|
||||
- inj ==1.0
|
||||
- inline-c ==0.9.1.4
|
||||
@ -1344,9 +1346,9 @@ default-package-overrides:
|
||||
- ix-shapable ==0.1.0
|
||||
- jack ==0.7.1.4
|
||||
- jalaali ==1.0.0.0
|
||||
- jira-wiki-markup ==1.3.3
|
||||
- jira-wiki-markup ==1.3.4
|
||||
- jose ==0.8.4
|
||||
- jose-jwt ==0.9.0
|
||||
- jose-jwt ==0.9.1
|
||||
- js-chart ==2.9.4.1
|
||||
- js-dgtable ==0.5.2
|
||||
- js-flot ==0.8.3
|
||||
@ -1369,6 +1371,7 @@ default-package-overrides:
|
||||
- kawhi ==0.3.0
|
||||
- kazura-queue ==0.1.0.4
|
||||
- kdt ==0.2.4
|
||||
- keep-alive ==0.2.0.0
|
||||
- keycode ==0.2.2
|
||||
- keys ==3.12.3
|
||||
- ki ==0.2.0.1
|
||||
@ -1381,6 +1384,7 @@ default-package-overrides:
|
||||
- kubernetes-webhook-haskell ==0.2.0.3
|
||||
- l10n ==0.1.0.1
|
||||
- labels ==0.3.3
|
||||
- lackey ==1.0.14
|
||||
- LambdaHack ==0.9.5.0
|
||||
- lame ==0.2.0
|
||||
- language-avro ==0.1.3.1
|
||||
@ -1396,7 +1400,7 @@ default-package-overrides:
|
||||
- lapack ==0.3.2
|
||||
- lapack-carray ==0.0.3
|
||||
- lapack-comfort-array ==0.0.0.1
|
||||
- lapack-ffi ==0.0.2
|
||||
- lapack-ffi ==0.0.3
|
||||
- lapack-ffi-tools ==0.1.2.1
|
||||
- largeword ==1.2.5
|
||||
- latex ==0.1.0.4
|
||||
@ -1432,7 +1436,6 @@ default-package-overrides:
|
||||
- liboath-hs ==0.0.1.2
|
||||
- libyaml ==0.1.2
|
||||
- LibZip ==1.0.1
|
||||
- life-sync ==1.1.1.0
|
||||
- lifted-async ==0.10.1.3
|
||||
- lifted-base ==0.2.3.12
|
||||
- lift-generics ==0.2
|
||||
@ -1450,7 +1453,6 @@ default-package-overrides:
|
||||
- list-singleton ==1.0.0.5
|
||||
- list-t ==1.0.4
|
||||
- ListTree ==0.2.3
|
||||
- little-logger ==0.3.1
|
||||
- little-rio ==0.2.2
|
||||
- llvm-hs ==9.0.1
|
||||
- llvm-hs-pure ==9.0.0
|
||||
@ -1523,12 +1525,12 @@ default-package-overrides:
|
||||
- messagepack ==0.5.4
|
||||
- metrics ==0.4.1.1
|
||||
- mfsolve ==0.3.2.0
|
||||
- microlens ==0.4.11.2
|
||||
- microlens ==0.4.12.0
|
||||
- microlens-aeson ==2.3.1
|
||||
- microlens-contra ==0.1.0.2
|
||||
- microlens-ghc ==0.4.12
|
||||
- microlens-ghc ==0.4.13
|
||||
- microlens-mtl ==0.2.0.1
|
||||
- microlens-platform ==0.4.1
|
||||
- microlens-platform ==0.4.2
|
||||
- microlens-process ==0.2.0.2
|
||||
- microlens-th ==0.4.3.9
|
||||
- microspec ==0.2.1.3
|
||||
@ -1551,7 +1553,7 @@ default-package-overrides:
|
||||
- mixed-types-num ==0.4.1
|
||||
- mltool ==0.2.0.1
|
||||
- mmap ==0.5.9
|
||||
- mmark ==0.0.7.3
|
||||
- mmark ==0.0.7.2
|
||||
- mmark-cli ==0.0.5.0
|
||||
- mmark-ext ==0.2.1.3
|
||||
- mmorph ==1.1.5
|
||||
@ -1625,7 +1627,7 @@ default-package-overrides:
|
||||
- mwc-random ==0.14.0.0
|
||||
- mwc-random-monad ==0.7.3.1
|
||||
- mx-state-codes ==1.0.0.0
|
||||
- mysql ==0.1.7.3
|
||||
- mysql ==0.2
|
||||
- mysql-simple ==0.4.5
|
||||
- n2o ==0.11.1
|
||||
- nagios-check ==0.3.2
|
||||
@ -1668,11 +1670,12 @@ default-package-overrides:
|
||||
- nix-paths ==1.0.1
|
||||
- nonce ==1.0.7
|
||||
- nondeterminism ==1.4
|
||||
- non-empty ==0.3.2
|
||||
- non-empty ==0.3.3
|
||||
- nonempty-containers ==0.3.4.1
|
||||
- nonemptymap ==0.0.6.0
|
||||
- non-empty-sequence ==0.2.0.4
|
||||
- nonempty-vector ==0.2.1.0
|
||||
- nonempty-zipper ==1.0.0.1
|
||||
- non-negative ==0.1.2
|
||||
- not-gloss ==0.7.7.0
|
||||
- no-value ==1.0.0.0
|
||||
@ -1684,7 +1687,7 @@ default-package-overrides:
|
||||
- nsis ==0.3.3
|
||||
- numbers ==3000.2.0.2
|
||||
- numeric-extras ==0.1
|
||||
- numeric-prelude ==0.4.3.2
|
||||
- numeric-prelude ==0.4.3.3
|
||||
- numhask ==0.6.0.2
|
||||
- NumInstances ==1.4
|
||||
- numtype-dk ==0.5.0.2
|
||||
@ -1729,8 +1732,8 @@ default-package-overrides:
|
||||
- optics-vl ==0.2.1
|
||||
- optional-args ==1.0.2
|
||||
- options ==1.2.1.1
|
||||
- optparse-applicative ==0.15.1.0
|
||||
- optparse-generic ==1.3.1
|
||||
- optparse-applicative ==0.16.1.0
|
||||
- optparse-generic ==1.4.4
|
||||
- optparse-simple ==0.1.1.3
|
||||
- optparse-text ==0.1.1.0
|
||||
- ordered-containers ==0.2.2
|
||||
@ -1741,8 +1744,8 @@ default-package-overrides:
|
||||
- pager ==0.1.1.0
|
||||
- pagination ==0.2.2
|
||||
- pagure-cli ==0.2
|
||||
- pandoc ==2.11.4
|
||||
- pandoc-plot ==1.1.0
|
||||
- pandoc ==2.12
|
||||
- pandoc-plot ==1.1.1
|
||||
- pandoc-types ==1.22
|
||||
- pantry ==0.5.1.4
|
||||
- parallel ==3.2.2.0
|
||||
@ -1760,8 +1763,9 @@ default-package-overrides:
|
||||
- partial-handler ==1.0.3
|
||||
- partial-isomorphisms ==0.2.2.1
|
||||
- partial-semigroup ==0.5.1.8
|
||||
- password ==2.1.1.0
|
||||
- password-instances ==2.0.0.2
|
||||
- password ==3.0.0.0
|
||||
- password-instances ==3.0.0.0
|
||||
- password-types ==1.0.0.0
|
||||
- path ==0.7.0
|
||||
- path-binary-instance ==0.1.0.1
|
||||
- path-extensions ==0.1.1.0
|
||||
@ -1892,7 +1896,7 @@ default-package-overrides:
|
||||
- promises ==0.3
|
||||
- prompt ==0.1.1.2
|
||||
- prospect ==0.1.0.0
|
||||
- proto3-wire ==1.1.0
|
||||
- proto3-wire ==1.2.0
|
||||
- protobuf ==0.2.1.3
|
||||
- protobuf-simple ==0.1.1.0
|
||||
- protocol-buffers ==2.4.17
|
||||
@ -1900,7 +1904,6 @@ default-package-overrides:
|
||||
- protocol-radius ==0.0.1.1
|
||||
- protocol-radius-test ==0.1.0.1
|
||||
- proto-lens ==0.7.0.0
|
||||
- proto-lens-optparse ==0.1.1.7
|
||||
- proto-lens-protobuf-types ==0.7.0.0
|
||||
- proto-lens-protoc ==0.7.0.0
|
||||
- proto-lens-runtime ==0.7.0.0
|
||||
@ -1958,10 +1961,11 @@ default-package-overrides:
|
||||
- rank2classes ==1.4.1
|
||||
- Rasterific ==0.7.5.3
|
||||
- rasterific-svg ==0.3.3.2
|
||||
- ratel ==1.0.13
|
||||
- ratel ==1.0.14
|
||||
- rate-limit ==1.4.2
|
||||
- ratel-wai ==1.1.4
|
||||
- ratel-wai ==1.1.5
|
||||
- rattle ==0.2
|
||||
- rattletrap ==11.0.0
|
||||
- Rattus ==0.5
|
||||
- rawfilepath ==0.2.4
|
||||
- rawstring-qm ==0.2.3.0
|
||||
@ -1997,7 +2001,7 @@ default-package-overrides:
|
||||
- regex-compat ==0.95.2.1
|
||||
- regex-compat-tdfa ==0.95.1.4
|
||||
- regex-pcre ==0.95.0.0
|
||||
- regex-pcre-builtin ==0.95.1.3.8.43
|
||||
- regex-pcre-builtin ==0.95.2.3.8.43
|
||||
- regex-posix ==0.96.0.0
|
||||
- regex-tdfa ==1.3.1.0
|
||||
- regex-with-pcre ==1.1.0.0
|
||||
@ -2017,6 +2021,7 @@ default-package-overrides:
|
||||
- req ==3.9.0
|
||||
- req-conduit ==1.0.0
|
||||
- rerebase ==1.6.1
|
||||
- rescue ==0.4.2.1
|
||||
- resistor-cube ==0.0.1.2
|
||||
- resolv ==0.1.2.0
|
||||
- resource-pool ==0.2.3.2
|
||||
@ -2088,7 +2093,7 @@ default-package-overrides:
|
||||
- selda-postgresql ==0.1.8.1
|
||||
- selda-sqlite ==0.1.7.1
|
||||
- selections ==0.3.0.0
|
||||
- selective ==0.4.1.1
|
||||
- selective ==0.4.2
|
||||
- semialign ==1.1.0.1
|
||||
- semialign-indexed ==1.1
|
||||
- semialign-optics ==1.1
|
||||
@ -2116,7 +2121,6 @@ default-package-overrides:
|
||||
- servant-exceptions ==0.2.1
|
||||
- servant-exceptions-server ==0.2.1
|
||||
- servant-foreign ==0.15.3
|
||||
- servant-github-webhook ==0.4.2.0
|
||||
- servant-http-streams ==0.18.2
|
||||
- servant-machines ==0.15.1
|
||||
- servant-multipart ==0.12
|
||||
@ -2168,15 +2172,15 @@ default-package-overrides:
|
||||
- singleton-bool ==0.1.5
|
||||
- singleton-nats ==0.4.5
|
||||
- singletons ==2.7
|
||||
- singletons-presburger ==0.5.0.0
|
||||
- singletons-presburger ==0.6.0.0
|
||||
- siphash ==1.0.3
|
||||
- sitemap-gen ==0.1.0.0
|
||||
- sized ==1.0.0.0
|
||||
- skein ==1.0.9.4
|
||||
- skews ==0.1.0.3
|
||||
- skip-var ==0.1.1.0
|
||||
- skylighting ==0.10.4
|
||||
- skylighting-core ==0.10.4
|
||||
- skylighting ==0.10.4.1
|
||||
- skylighting-core ==0.10.4.1
|
||||
- slack-api ==0.12
|
||||
- slack-progressbar ==0.1.0.1
|
||||
- slist ==0.1.1.0
|
||||
@ -2248,7 +2252,7 @@ default-package-overrides:
|
||||
- storable-record ==0.0.5
|
||||
- storable-tuple ==0.0.3.3
|
||||
- storablevector ==0.2.13.1
|
||||
- store ==0.7.9
|
||||
- store ==0.7.10
|
||||
- store-core ==0.4.4.4
|
||||
- store-streaming ==0.2.0.3
|
||||
- stratosphere ==0.59.1
|
||||
@ -2256,6 +2260,7 @@ default-package-overrides:
|
||||
- streaming-attoparsec ==1.0.0.1
|
||||
- streaming-bytestring ==0.2.0
|
||||
- streaming-commons ==0.2.2.1
|
||||
- streamly ==0.7.3
|
||||
- streams ==3.3
|
||||
- strict ==0.4.0.1
|
||||
- strict-concurrency ==0.2.4.3
|
||||
@ -2277,11 +2282,11 @@ default-package-overrides:
|
||||
- stripe-haskell ==2.6.2
|
||||
- stripe-http-client ==2.6.2
|
||||
- stripe-tests ==2.6.2
|
||||
- strive ==5.0.13
|
||||
- strive ==5.0.14
|
||||
- structs ==0.1.5
|
||||
- structured ==0.1.0.1
|
||||
- structured-cli ==2.6.0.0
|
||||
- subcategories ==0.1.0.0
|
||||
- structured-cli ==2.7.0.1
|
||||
- subcategories ==0.1.1.0
|
||||
- sum-type-boilerplate ==0.1.1
|
||||
- sundown ==0.6
|
||||
- superbuffer ==0.3.1.1
|
||||
@ -2320,14 +2325,14 @@ default-package-overrides:
|
||||
- tar ==0.5.1.1
|
||||
- tar-conduit ==0.3.2
|
||||
- tardis ==0.4.3.0
|
||||
- tasty ==1.2.3
|
||||
- tasty-ant-xml ==1.1.7
|
||||
- tasty ==1.4.1
|
||||
- tasty-ant-xml ==1.1.8
|
||||
- tasty-bench ==0.2.2
|
||||
- tasty-dejafu ==2.0.0.7
|
||||
- tasty-discover ==4.2.2
|
||||
- tasty-expected-failure ==0.12.3
|
||||
- tasty-focus ==1.0.1
|
||||
- tasty-golden ==2.3.3.2
|
||||
- tasty-golden ==2.3.4
|
||||
- tasty-hedgehog ==1.0.1.0
|
||||
- tasty-hspec ==1.1.6
|
||||
- tasty-hunit ==0.10.0.3
|
||||
@ -2338,7 +2343,7 @@ default-package-overrides:
|
||||
- tasty-program ==1.0.5
|
||||
- tasty-quickcheck ==0.10.1.2
|
||||
- tasty-rerun ==1.1.18
|
||||
- tasty-silver ==3.1.15
|
||||
- tasty-silver ==3.2.1
|
||||
- tasty-smallcheck ==0.8.2
|
||||
- tasty-test-reporter ==0.1.1.4
|
||||
- tasty-th ==0.1.7
|
||||
@ -2363,7 +2368,7 @@ default-package-overrides:
|
||||
- test-framework-smallcheck ==0.2
|
||||
- test-fun ==0.1.0.0
|
||||
- testing-type-modifiers ==0.1.0.1
|
||||
- texmath ==0.12.1.1
|
||||
- texmath ==0.12.2
|
||||
- text-ansi ==0.1.1
|
||||
- text-binary ==0.2.1.1
|
||||
- text-builder ==0.6.6.1
|
||||
@ -2373,7 +2378,7 @@ default-package-overrides:
|
||||
- text-latin1 ==0.3.1
|
||||
- text-ldap ==0.1.1.13
|
||||
- textlocal ==0.1.0.5
|
||||
- text-manipulate ==0.2.0.1
|
||||
- text-manipulate ==0.3.0.0
|
||||
- text-metrics ==0.3.0
|
||||
- text-postgresql ==0.0.3.1
|
||||
- text-printer ==0.5.0.1
|
||||
@ -2383,11 +2388,11 @@ default-package-overrides:
|
||||
- text-show ==3.9
|
||||
- text-show-instances ==3.8.4
|
||||
- text-zipper ==0.11
|
||||
- tfp ==1.0.1.1
|
||||
- tfp ==1.0.2
|
||||
- tf-random ==0.5
|
||||
- th-abstraction ==0.4.2.0
|
||||
- th-bang-compat ==0.0.1.0
|
||||
- th-compat ==0.1.1
|
||||
- th-compat ==0.1.2
|
||||
- th-constraint-compat ==0.0.1.0
|
||||
- th-data-compat ==0.1.0.0
|
||||
- th-desugar ==1.11
|
||||
@ -2396,7 +2401,7 @@ default-package-overrides:
|
||||
- these-lens ==1.0.1.2
|
||||
- these-optics ==1.0.1.2
|
||||
- these-skinny ==0.7.4
|
||||
- th-expand-syns ==0.4.6.0
|
||||
- th-expand-syns ==0.4.8.0
|
||||
- th-extras ==0.0.0.4
|
||||
- th-lift ==0.8.2
|
||||
- th-lift-instances ==0.1.18
|
||||
@ -2447,15 +2452,13 @@ default-package-overrides:
|
||||
- topograph ==1.0.0.1
|
||||
- torsor ==0.1
|
||||
- tostring ==0.2.1.1
|
||||
- tracing ==0.0.5.2
|
||||
- tracing-control ==0.0.6
|
||||
- transaction ==0.1.1.3
|
||||
- transformers-base ==0.4.5.2
|
||||
- transformers-bifunctors ==0.1
|
||||
- transformers-compat ==0.6.6
|
||||
- transformers-fix ==1.0
|
||||
- traverse-with-class ==1.0.1.0
|
||||
- tree-diff ==0.1
|
||||
- tree-diff ==0.2
|
||||
- tree-fun ==0.8.1.0
|
||||
- tree-view ==0.5.1
|
||||
- trifecta ==2.1.1
|
||||
@ -2468,7 +2471,7 @@ default-package-overrides:
|
||||
- tuples-homogenous-h98 ==0.1.1.0
|
||||
- tuple-sop ==0.3.1.0
|
||||
- tuple-th ==0.2.5
|
||||
- turtle ==1.5.20
|
||||
- turtle ==1.5.21
|
||||
- typecheck-plugin-nat-simple ==0.1.0.2
|
||||
- TypeCompose ==0.9.14
|
||||
- typed-process ==0.2.6.0
|
||||
@ -2504,6 +2507,7 @@ default-package-overrides:
|
||||
- unicode ==0.0.1.1
|
||||
- unicode-show ==0.1.0.4
|
||||
- unicode-transforms ==0.3.7.1
|
||||
- unification-fd ==0.11.1
|
||||
- union-find ==0.2
|
||||
- unipatterns ==0.0.0.0
|
||||
- uniplate ==1.6.13
|
||||
@ -2541,11 +2545,11 @@ default-package-overrides:
|
||||
- utf8-light ==0.4.2
|
||||
- utf8-string ==1.0.2
|
||||
- util ==0.1.17.1
|
||||
- utility-ht ==0.0.15
|
||||
- utility-ht ==0.0.16
|
||||
- uuid ==1.3.14
|
||||
- uuid-types ==1.0.4
|
||||
- validation ==1.1.1
|
||||
- validation-selective ==0.1.0.0
|
||||
- validation-selective ==0.1.0.1
|
||||
- validity ==0.11.0.0
|
||||
- validity-aeson ==0.2.0.4
|
||||
- validity-bytestring ==0.4.1.1
|
||||
@ -2595,7 +2599,6 @@ default-package-overrides:
|
||||
- wai-feature-flags ==0.1.0.1
|
||||
- wai-handler-launch ==3.0.3.1
|
||||
- wai-logger ==2.3.6
|
||||
- wai-middleware-auth ==0.2.3.1
|
||||
- wai-middleware-caching ==0.1.0.2
|
||||
- wai-middleware-clacks ==0.1.0.1
|
||||
- wai-middleware-static ==0.9.0
|
||||
@ -2629,7 +2632,7 @@ default-package-overrides:
|
||||
- Win32-notify ==0.3.0.3
|
||||
- windns ==0.1.0.1
|
||||
- witch ==0.0.0.5
|
||||
- witherable-class ==0
|
||||
- witherable ==0.4.1
|
||||
- within ==0.2.0.1
|
||||
- with-location ==0.1.0
|
||||
- with-utf8 ==1.0.2.2
|
||||
@ -2695,7 +2698,6 @@ default-package-overrides:
|
||||
- yesod-gitrev ==0.2.1
|
||||
- yesod-markdown ==0.12.6.6
|
||||
- yesod-newsfeed ==1.7.0.0
|
||||
- yesod-page-cursor ==2.0.0.4
|
||||
- yesod-paginator ==1.1.1.0
|
||||
- yesod-persistent ==1.6.0.5
|
||||
- yesod-sitemap ==1.6.0
|
||||
@ -2732,6 +2734,7 @@ extra-packages:
|
||||
- Cabal == 2.2.* # required for jailbreak-cabal etc.
|
||||
- Cabal == 2.4.* # required for cabal-install etc.
|
||||
- Cabal == 3.2.* # required for cabal-install etc.
|
||||
- base16-bytestring < 1 # required for cabal-install etc.
|
||||
- dhall == 1.29.0 # required for ats-pkg
|
||||
- dhall == 1.37.1 # required for spago 0.19.0.
|
||||
- Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
|
||||
@ -2871,27 +2874,27 @@ unsupported-platforms:
|
||||
alsa-mixer: [ x86_64-darwin ]
|
||||
alsa-pcm: [ x86_64-darwin ]
|
||||
alsa-seq: [ x86_64-darwin ]
|
||||
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
barbly: [ i686-linux, x86_64-linux ]
|
||||
AWin32Console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
barbly: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
|
||||
bindings-directfb: [ x86_64-darwin ]
|
||||
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
dx9base: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
d3d11binding: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
DirectSound: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
dx9base: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
dx9d3d: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
dx9d3dx: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
freenect: [ x86_64-darwin ]
|
||||
FTGL: [ x86_64-darwin ]
|
||||
gi-ostree: [ x86_64-darwin ]
|
||||
gtk-mac-integration: [ i686-linux, x86_64-linux ]
|
||||
gtk-mac-integration: [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
|
||||
hcwiid: [ x86_64-darwin ]
|
||||
HFuse: [ x86_64-darwin ]
|
||||
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
hommage-ds: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
lio-fs: [ x86_64-darwin ]
|
||||
midi-alsa: [ x86_64-darwin ]
|
||||
pam: [ x86_64-darwin ]
|
||||
PortMidi: [ x86_64-darwin ]
|
||||
Raincat: [ x86_64-darwin ]
|
||||
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
reactivity: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
rtlsdr: [ x86_64-darwin ]
|
||||
rubberband: [ x86_64-darwin ]
|
||||
sdl2-mixer: [ x86_64-darwin ]
|
||||
@ -2899,18 +2902,18 @@ unsupported-platforms:
|
||||
tokyotyrant-haskell: [ x86_64-darwin ]
|
||||
vulkan: [ i686-linux, armv7l-linux ]
|
||||
VulkanMemoryAllocator: [ i686-linux, armv7l-linux ]
|
||||
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
Win32-console: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-dhcp-server: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-errors: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-extras: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-junction-point: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-notify: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-security: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-services-wrapper: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32-services: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
Win32: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
xattr: [ x86_64-darwin ]
|
||||
XInput: [ i686-linux, x86_64-linux, x86_64-darwin ]
|
||||
XInput: [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-linux, armv7l-linux ]
|
||||
xmobar: [ x86_64-darwin ]
|
||||
|
||||
dont-distribute-packages:
|
||||
@ -3343,6 +3346,7 @@ broken-packages:
|
||||
- asic
|
||||
- asil
|
||||
- asn
|
||||
- ASN1
|
||||
- asn1-codec
|
||||
- asn1-data
|
||||
- assert
|
||||
@ -4013,7 +4017,6 @@ broken-packages:
|
||||
- Chart-tests
|
||||
- chart-unit
|
||||
- charter
|
||||
- chatter
|
||||
- chatty-text
|
||||
- chatwork
|
||||
- cheapskate-terminal
|
||||
@ -5388,6 +5391,7 @@ broken-packages:
|
||||
- fractals
|
||||
- fraction
|
||||
- frag
|
||||
- frame-markdown
|
||||
- Frames-beam
|
||||
- Frames-dsv
|
||||
- Frames-map-reduce
|
||||
@ -5450,7 +5454,6 @@ broken-packages:
|
||||
- ftree
|
||||
- ftshell
|
||||
- full-sessions
|
||||
- fullstop
|
||||
- funbot
|
||||
- funbot-client
|
||||
- funbot-git-hook
|
||||
@ -5945,6 +5948,7 @@ broken-packages:
|
||||
- hahp
|
||||
- haiji
|
||||
- hailgun-send
|
||||
- hails-bin
|
||||
- hairy
|
||||
- hakaru
|
||||
- hakismet
|
||||
@ -5961,6 +5965,7 @@ broken-packages:
|
||||
- hakyll-contrib-links
|
||||
- hakyll-dhall
|
||||
- hakyll-dir-list
|
||||
- hakyll-elm
|
||||
- hakyll-favicon
|
||||
- hakyll-filestore
|
||||
- hakyll-images
|
||||
@ -6127,7 +6132,6 @@ broken-packages:
|
||||
- haskell-reflect
|
||||
- haskell-rules
|
||||
- haskell-spacegoo
|
||||
- haskell-src
|
||||
- haskell-src-exts-observe
|
||||
- haskell-src-exts-prisms
|
||||
- haskell-src-exts-qq
|
||||
@ -6189,6 +6193,7 @@ broken-packages:
|
||||
- haskellscript
|
||||
- HaskellTorrent
|
||||
- HaskellTutorials
|
||||
- haskelm
|
||||
- haskelzinc
|
||||
- haskeme
|
||||
- haskey
|
||||
@ -6623,10 +6628,6 @@ broken-packages:
|
||||
- hopencl
|
||||
- HOpenCV
|
||||
- hopfield
|
||||
- hoppy-docs
|
||||
- hoppy-generator
|
||||
- hoppy-runtime
|
||||
- hoppy-std
|
||||
- hops
|
||||
- hoq
|
||||
- horizon
|
||||
@ -6913,6 +6914,7 @@ broken-packages:
|
||||
- http-wget
|
||||
- http2-client-grpc
|
||||
- http2-grpc-proto-lens
|
||||
- http2-grpc-proto3-wire
|
||||
- https-everywhere-rules
|
||||
- https-everywhere-rules-raw
|
||||
- httpspec
|
||||
@ -6960,6 +6962,7 @@ broken-packages:
|
||||
- hw-kafka-avro
|
||||
- hw-prim-bits
|
||||
- hw-simd
|
||||
- hw-simd-cli
|
||||
- hw-uri
|
||||
- hwall-auth-iitk
|
||||
- hweblib
|
||||
@ -9180,6 +9183,7 @@ broken-packages:
|
||||
- proto-lens-combinators
|
||||
- proto-lens-descriptors
|
||||
- proto3-suite
|
||||
- proto3-wire
|
||||
- protobuf-native
|
||||
- protocol
|
||||
- protocol-buffers-descriptor-fork
|
||||
@ -9254,10 +9258,6 @@ broken-packages:
|
||||
- qr-imager
|
||||
- qr-repa
|
||||
- qsem
|
||||
- qtah-cpp-qt5
|
||||
- qtah-examples
|
||||
- qtah-generator
|
||||
- qtah-qt5
|
||||
- QuadEdge
|
||||
- QuadTree
|
||||
- quantfin
|
||||
@ -10005,7 +10005,6 @@ broken-packages:
|
||||
- sha1
|
||||
- shade
|
||||
- shadower
|
||||
- shake-bench
|
||||
- shake-bindist
|
||||
- shake-cabal-build
|
||||
- shake-dhall
|
||||
@ -10052,6 +10051,7 @@ broken-packages:
|
||||
- Shpadoinkle-examples
|
||||
- Shpadoinkle-html
|
||||
- Shpadoinkle-router
|
||||
- Shpadoinkle-template
|
||||
- Shpadoinkle-widgets
|
||||
- shpider
|
||||
- shuffle
|
||||
@ -10190,6 +10190,7 @@ broken-packages:
|
||||
- snap-auth-cli
|
||||
- snap-blaze-clay
|
||||
- snap-configuration-utilities
|
||||
- snap-elm
|
||||
- snap-error-collector
|
||||
- snap-extras
|
||||
- snap-routes
|
||||
@ -10211,6 +10212,7 @@ broken-packages:
|
||||
- snaplet-hdbc
|
||||
- snaplet-hslogger
|
||||
- snaplet-influxdb
|
||||
- snaplet-lss
|
||||
- snaplet-mandrill
|
||||
- snaplet-mongoDB
|
||||
- snaplet-mongodb-minimalistic
|
||||
@ -11366,6 +11368,7 @@ broken-packages:
|
||||
- wai-middleware-route
|
||||
- wai-middleware-static-caching
|
||||
- wai-middleware-travisci
|
||||
- wai-middleware-validation
|
||||
- wai-rate-limit-redis
|
||||
- wai-request-spec
|
||||
- wai-responsible
|
||||
|
4869
pkgs/development/haskell-modules/hackage-packages.nix
generated
4869
pkgs/development/haskell-modules/hackage-packages.nix
generated
File diff suppressed because it is too large
Load Diff
@ -1,22 +1,23 @@
|
||||
{ stdenv, lib, buildPythonPackage, fetchFromGitHub, python, pythonOlder
|
||||
, pytestCheckHook, pyhamcrest, pytestrunner, pytest
|
||||
{ lib, buildPythonPackage, fetchFromGitHub
|
||||
, pytestCheckHook, pyhamcrest, pytestrunner
|
||||
, six, isodate, tornado, aenum, radish-bdd, mock
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "gremlinpython";
|
||||
version = "3.4.8";
|
||||
version = "3.4.10";
|
||||
|
||||
# pypi tarball doesn't include tests
|
||||
src = fetchFromGitHub {
|
||||
owner = "apache";
|
||||
repo = "tinkerpop";
|
||||
rev = version;
|
||||
sha256 = "0kcyhfxz7z4f8i64gig8q1q9dhy24cprbh63vwsdiwryg74q4chl";
|
||||
sha256 = "0i9lkrwbsmpx1h9480vf97pibm2v37sgw2qm2r1c0i8gg5bcmhj3";
|
||||
};
|
||||
sourceRoot = "source/gremlin-python/src/main/jython";
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace 'aenum>=1.4.5,<3.0.0' 'aenum' \
|
||||
--replace 'tornado>=4.4.1,<6.0' 'tornado' \
|
||||
--replace 'PyHamcrest>=1.9.0,<2.0.0' 'PyHamcrest' \
|
||||
--replace 'radish-bdd==0.8.6' 'radish-bdd' \
|
||||
|
@ -1,27 +1,41 @@
|
||||
{ lib, buildPythonPackage, fetchPypi, isPy3k, certifi, six
|
||||
, setuptools_scm
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, certifi
|
||||
, fetchPypi
|
||||
, flaky
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, setuptools-scm
|
||||
, six
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pylast";
|
||||
version = "4.1.0";
|
||||
|
||||
disabled = !isPy3k;
|
||||
version = "4.2.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "ad084aec1bf7e307bc42d7cc1a003851f5bee1ad24fb697a9fdc300bbfe63932";
|
||||
sha256 = "sha256-w/mkAUUgj7L7Xv+nz1pI1TYKfihH3S3MbxaNQ4VtoH0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools_scm ];
|
||||
propagatedBuildInputs = [ certifi six ];
|
||||
nativeBuildInputs = [ setuptools-scm ];
|
||||
|
||||
# tests require last.fm credentials
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = [
|
||||
certifi
|
||||
six
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
flaky
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pylast" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python interface to last.fm (and compatibles)";
|
||||
homepage = "https://github.com/pylast/pylast";
|
||||
description = "A python interface to last.fm (and compatibles)";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ rvolosatovs ];
|
||||
};
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "transformers";
|
||||
version = "4.3.3";
|
||||
version = "4.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-KII7ZR+vnCxCxUcBOQo9y0KxZa+XuIIAkSJejk8HrlA=";
|
||||
hash = "sha256-kl1Z2FBo+yqVXUqLaUtet6IycmdcAtfydNTI4MNNrkc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ccloud-cli";
|
||||
version = "0.202.0";
|
||||
version = "1.25.0";
|
||||
|
||||
# To get the latest version:
|
||||
# curl -L 'https://s3-us-west-2.amazonaws.com/confluent.cloud?prefix=ccloud-cli/archives/&delimiter=/' | nix run nixpkgs.libxml2 -c xmllint --format -
|
||||
# curl -L https://cnfl.io/ccloud-cli | sh -s -- -l | grep -v latest | sort -V | tail -n1
|
||||
src = fetchurl (if stdenv.hostPlatform.isDarwin then {
|
||||
url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_darwin_amd64.tar.gz";
|
||||
sha256 = "1w7c7fwpjj6f26nmcgm6rkrl4v9zhdpygkh02la77n23lg8wxah5";
|
||||
sha256 = "0306jg36dpccwyy239r2xvw3bvsrnrdc88390g26fhcb0048qmgb";
|
||||
} else {
|
||||
url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_linux_amd64.tar.gz";
|
||||
sha256 = "1xbhv2viw8cbwv03rfq99jddnw5lwy812a8xby348290l323xi89";
|
||||
sha256 = "02sly7cxqlrfd6chamlp05k9ar93mpfrkx5183js0hf595nlki61";
|
||||
});
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://docs.confluent.io/current/cloud/cli/index.html";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ kalbasit ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
|
||||
# TODO: There's support for i686 systems but I do not have any such system
|
||||
# to build it locally on, it's also unfree so I cannot rely on ofborg to
|
||||
# build it. Get the list of supported system by looking at the list of
|
||||
# files in the S3 bucket:
|
||||
#
|
||||
# https://s3-us-west-2.amazonaws.com/confluent.cloud?prefix=ccloud-cli/archives/1.25.0/&delimiter=/%27
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fly";
|
||||
version = "7.0.0";
|
||||
version = "7.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "concourse";
|
||||
repo = "concourse";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WpwMx8mPedunBKlRUDdcVA1sLWkZvuoaw6DEtvGSyAg=";
|
||||
sha256 = "sha256-M0Jo4DyvPghhVLK3eFdew10lGUJJODxKoL+v16y9CW8=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-OxU+Hb8bX71SFuyAw583Z7bEu+b/j2i/fOGE5S9C91M=";
|
||||
vendorSha256 = "sha256-W6m+nDNcZBVfa1OTkOHWf4E9LmEUewsTLT/56Iyp6+Y=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
30
pkgs/development/tools/fission/default.nix
Normal file
30
pkgs/development/tools/fission/default.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fission";
|
||||
version = "1.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fission";
|
||||
repo = "fission";
|
||||
rev = version;
|
||||
sha256 = "0izvkjd7ydcxhr6zmgrbfm3ybz2kf4p27099lr07gd4x7c6xxmqr";
|
||||
};
|
||||
|
||||
vendorSha256 = "12clw0wy4lypf45imqnabj39yxqpi348csr4m5d0d1rksxgvwngq";
|
||||
|
||||
buildFlagsArray = "-ldflags=-s -w -X info.Version=${version}";
|
||||
|
||||
subPackages = [ "cmd/fission-cli" ];
|
||||
|
||||
postInstall = ''
|
||||
ln -s $out/bin/fission-cli $out/bin/fission
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "The cli used by end user to interact Fission";
|
||||
homepage = "https://fission.io";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ neverbehave ];
|
||||
};
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
{ lib, supportedGhcVersions ? [ "865" "884" "8104" ], stdenv, haskellPackages
|
||||
{ lib, supportedGhcVersions ? [ "884" "8104" ], stdenv, haskellPackages
|
||||
, haskell }:
|
||||
#
|
||||
# The recommended way to override this package is
|
||||
|
@ -49,6 +49,10 @@ let
|
||||
}));
|
||||
|
||||
in rec {
|
||||
inherit mkTmuxPlugin;
|
||||
|
||||
mkDerivation = throw "tmuxPlugins.mkDerivation is deprecated, use tmuxPlugins.mkTmuxPlugin instead"; # added 2021-03-14
|
||||
|
||||
battery = mkTmuxPlugin {
|
||||
pluginName = "battery";
|
||||
version = "unstable-2019-07-04";
|
||||
|
@ -246,6 +246,18 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
emmanuelbeziat.vscode-great-icons = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-great-icons";
|
||||
publisher = "emmanuelbeziat";
|
||||
version = "2.1.64";
|
||||
sha256 = "sha256-qsL1vWiEAYeWkMDNSrr1yzg0QxroEQQeznoDL3Ujy/o=";
|
||||
};
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
esbenp.prettier-vscode = buildVscodeMarketplaceExtension {
|
||||
meta = with lib; {
|
||||
changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
|
||||
@ -377,8 +389,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "todo-tree";
|
||||
publisher = "Gruntfuggly";
|
||||
version = "0.0.205";
|
||||
sha256 = "0s7bmnsx40lz9wiijrh7cnazwqvmkhsbnidl832qx27pzk0977ix";
|
||||
version = "0.0.206";
|
||||
sha256 = "1xalwk2bndb73p8p2b4w5qz7m1n80xyw67wb5qlq1rrfjchhicyv";
|
||||
};
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
|
@ -3,13 +3,13 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
mktplcRef = {
|
||||
name = "terraform";
|
||||
publisher = "hashicorp";
|
||||
version = "2.8.2";
|
||||
version = "2.8.3";
|
||||
};
|
||||
|
||||
vsix = fetchurl {
|
||||
name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
|
||||
url = "https://github.com/hashicorp/vscode-terraform/releases/download/v${mktplcRef.version}/terraform-${mktplcRef.version}.vsix";
|
||||
sha256 = "0f1ck3h8ckvr75j27w2lxjbwnr24nc6fjki0gnn715ynkqg7w9bi";
|
||||
sha256 = "1cng82q9079qmn5q71h9knh9qzhqrl3phaamkqfjy1jallgi43b1";
|
||||
};
|
||||
|
||||
patches = [ ./fix-terraform-ls.patch ];
|
||||
|
@ -2,16 +2,15 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pam_mount";
|
||||
version = "2.16";
|
||||
version = "2.17";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/pam-mount/pam_mount/${version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1rvi4irb7ylsbhvx1cr6islm2xxw1a4b19q6z4a9864ndkm0f0mf";
|
||||
url = "mirror://sourceforge/pam-mount/pam_mount/${pname}-${version}.tar.xz";
|
||||
sha256 = "1q2n6a2ah6nghdn8i6ad2wj247njwb5nx48cggxknaa6lqxylidy";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./insert_utillinux_path_hooks.patch
|
||||
./support_luks2.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@ -31,7 +30,6 @@ stdenv.mkDerivation rec {
|
||||
"--sbindir=${placeholder "out"}/bin"
|
||||
"--sysconfdir=${placeholder "out"}/etc"
|
||||
"--with-slibdir=${placeholder "out"}/lib"
|
||||
"--with-ssbindir=${placeholder "out"}/bin"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
@ -1,47 +0,0 @@
|
||||
commit d4434c05e7c0cf05d87089404cfa2deedc60811a
|
||||
Author: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
Date: Mon Oct 29 16:47:40 2018 +0100
|
||||
|
||||
crypto: Add support for LUKS2
|
||||
|
||||
Cryptsetup version 2.0 added support for LUKS2.
|
||||
This patch adds support for mounting LUKS2 volumes with
|
||||
pam_mount.
|
||||
|
||||
Signed-off-by: Ingo Franzki <ifranzki@linux.ibm.com>
|
||||
|
||||
diff --git a/src/crypto-dmc.c b/src/crypto-dmc.c
|
||||
index d0ab6ca..abd0358 100644
|
||||
--- a/src/crypto-dmc.c
|
||||
+++ b/src/crypto-dmc.c
|
||||
@@ -21,6 +21,12 @@
|
||||
#include "libcryptmount.h"
|
||||
#include "pam_mount.h"
|
||||
|
||||
+#ifndef CRYPT_LUKS
|
||||
+ #define CRYPT_LUKS NULL /* Passing NULL to crypt_load will
|
||||
+ default to LUKS(1) on older
|
||||
+ libcryptsetup versions. */
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
* dmc_is_luks - check if @path points to a LUKS volume (cf. normal dm-crypt)
|
||||
* @path: path to the crypto container
|
||||
@@ -48,7 +54,7 @@ EXPORT_SYMBOL int ehd_is_luks(const char *path, bool blkdev)
|
||||
|
||||
ret = crypt_init(&cd, device);
|
||||
if (ret == 0) {
|
||||
- ret = crypt_load(cd, CRYPT_LUKS1, NULL);
|
||||
+ ret = crypt_load(cd, CRYPT_LUKS, NULL);
|
||||
if (ret == -EINVAL)
|
||||
ret = false;
|
||||
else if (ret == 0)
|
||||
@@ -106,7 +112,7 @@ static bool dmc_run(const struct ehd_mount_request *req,
|
||||
#endif
|
||||
}
|
||||
|
||||
- ret = crypt_load(cd, CRYPT_LUKS1, NULL);
|
||||
+ ret = crypt_load(cd, CRYPT_LUKS, NULL);
|
||||
if (ret == 0) {
|
||||
ret = crypt_activate_by_passphrase(cd, mt->crypto_name,
|
||||
CRYPT_ANY_SLOT, req->key_data, req->key_size, flags);
|
47
pkgs/tools/archivers/7zz/default.nix
Normal file
47
pkgs/tools/archivers/7zz/default.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ lib, stdenv, fetchurl, autoPatchelfHook }:
|
||||
|
||||
let platform = if stdenv.isi686 then "x86"
|
||||
else if stdenv.isx86_64 then "x64"
|
||||
else if stdenv.isAarch32 then "arm"
|
||||
else if stdenv.isAarch64 then "arm64"
|
||||
else throw "Unsupported architecture";
|
||||
|
||||
url = "https://7-zip.org/a/7z2101-linux-${platform}.tar.xz";
|
||||
|
||||
hashes = {
|
||||
x86 = "0k6vg85ld8i2pcv5sv3xbvf3swqh9qj8hf2jcpadssys3yyidqyj";
|
||||
x64 = "1yfanx98fizj8d2s87yxgsy30zydx7h5w9wf4wy3blgsp0vkbjb3";
|
||||
arm = "04iah9vijm86r8rbkhxig86fx3lpag4xi7i3vq7gfrlwkymclhm1";
|
||||
arm64 = "0a26ginpb22aydcyvffxpbi7lxh4sgs9gb6cj96qqx7cnf7bk2ri";
|
||||
};
|
||||
sha256 = hashes."${platform}";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
pname = "7zz";
|
||||
version = "21.01";
|
||||
|
||||
src = fetchurl { inherit url sha256; };
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc.lib ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D -t $out/bin 7zz
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Command line archiver utility";
|
||||
homepage = "https://www.7-zip.org";
|
||||
|
||||
# source not released yet. will be under LGPL 2.1+ with RAR exception
|
||||
license = licenses.unfree;
|
||||
|
||||
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
|
||||
maintainers = with maintainers; [ anna328p ];
|
||||
};
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
{ lib, rustPlatform, fetchFromGitHub }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-about";
|
||||
version = "0.2.3";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmbarkStudios";
|
||||
repo = "cargo-about";
|
||||
rev = version;
|
||||
sha256 = "1jdp5ksxm4rsqhirgl5zwpiahrz2lx046pkvf6xvr6ms70l2xiwj";
|
||||
sha256 = "sha256-MsXNneKj2xCci1guj1TKcIrX7XByJ5/lWUmjxAsgzPY=";
|
||||
};
|
||||
|
||||
cargoSha256 = "07bjxsg5kgx8dg3wf6mvi5460db206l68irqc21hz10plz5llmnr";
|
||||
cargoSha256 = "sha256-NdzgIB6uXMtGiLwOACEIeAb4iv7mYLnwRte3M/TkSMA=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cargo plugin to generate list of all licenses for a crate";
|
||||
|
@ -158,6 +158,8 @@ in
|
||||
|
||||
fishnet = callPackage ../servers/fishnet { };
|
||||
|
||||
fission = callPackage ../development/tools/fission { };
|
||||
|
||||
authy = callPackage ../applications/misc/authy { };
|
||||
|
||||
avro-tools = callPackage ../development/tools/avro-tools { };
|
||||
@ -633,6 +635,8 @@ in
|
||||
|
||||
_6tunnel = callPackage ../tools/networking/6tunnel { };
|
||||
|
||||
_7zz = callPackage ../tools/archivers/7zz { };
|
||||
|
||||
_9pfs = callPackage ../tools/filesystems/9pfs { };
|
||||
|
||||
a2ps = callPackage ../tools/text/a2ps { };
|
||||
@ -10320,8 +10324,7 @@ in
|
||||
|
||||
krank = haskell.lib.justStaticExecutables haskellPackages.krank;
|
||||
|
||||
# We use a version built with an older compiler because of https://github.com/pikajude/stylish-cabal/issues/12.
|
||||
stylish-cabal = haskell.lib.justStaticExecutables haskell.packages.ghc865.stylish-cabal;
|
||||
stylish-cabal = haskell.lib.justStaticExecutables haskellPackages.stylish-cabal;
|
||||
|
||||
all-cabal-hashes = callPackage ../data/misc/hackage { };
|
||||
|
||||
@ -20863,6 +20866,8 @@ in
|
||||
|
||||
julia-mono = callPackage ../data/fonts/julia-mono { };
|
||||
|
||||
juno-theme = callPackage ../data/themes/juno { };
|
||||
|
||||
kanji-stroke-order-font = callPackage ../data/fonts/kanji-stroke-order-font {};
|
||||
|
||||
kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
|
||||
@ -21905,6 +21910,8 @@ in
|
||||
inherit (gnome2) libgnomeui GConf;
|
||||
};
|
||||
|
||||
corrscope = libsForQt5.callPackage ../applications/video/corrscope { };
|
||||
|
||||
csa = callPackage ../applications/audio/csa { };
|
||||
|
||||
csound = callPackage ../applications/audio/csound {
|
||||
|
@ -3,12 +3,9 @@
|
||||
let
|
||||
# These are attributes in compiler and packages that don't support integer-simple.
|
||||
integerSimpleExcludes = [
|
||||
"ghc822Binary"
|
||||
"ghc865Binary"
|
||||
"ghc8102Binary"
|
||||
"ghc8102BinaryMinimal"
|
||||
"ghcjs"
|
||||
"ghcjs86"
|
||||
"integer-simple"
|
||||
"native-bignum"
|
||||
"ghcHEAD"
|
||||
@ -47,8 +44,6 @@ in {
|
||||
|
||||
compiler = {
|
||||
|
||||
ghc822Binary = callPackage ../development/compilers/ghc/8.2.2-binary.nix { };
|
||||
|
||||
ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
|
||||
|
||||
ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
|
||||
@ -60,24 +55,6 @@ in {
|
||||
minimal = true;
|
||||
};
|
||||
|
||||
ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
|
||||
bootPkgs = packages.ghc822Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_6;
|
||||
llvmPackages = pkgs.llvmPackages_6;
|
||||
};
|
||||
ghc882 = callPackage ../development/compilers/ghc/8.8.2.nix {
|
||||
bootPkgs = packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc883 = callPackage ../development/compilers/ghc/8.8.3.nix {
|
||||
bootPkgs = packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
bootPkgs = if stdenv.isAarch64 then
|
||||
@ -88,32 +65,6 @@ in {
|
||||
buildLlvmPackages = buildPackages.llvmPackages_7;
|
||||
llvmPackages = pkgs.llvmPackages_7;
|
||||
};
|
||||
ghc8101 = callPackage ../development/compilers/ghc/8.10.1.nix {
|
||||
bootPkgs = packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
||||
llvmPackages = pkgs.llvmPackages_9;
|
||||
};
|
||||
ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix {
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
packages.ghc8102BinaryMinimal
|
||||
else
|
||||
packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
||||
llvmPackages = pkgs.llvmPackages_9;
|
||||
};
|
||||
ghc8103 = callPackage ../development/compilers/ghc/8.10.3.nix {
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
packages.ghc8102BinaryMinimal
|
||||
else
|
||||
packages.ghc865Binary;
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_9;
|
||||
llvmPackages = pkgs.llvmPackages_9;
|
||||
};
|
||||
ghc8104 = callPackage ../development/compilers/ghc/8.10.4.nix {
|
||||
# aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
|
||||
bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
|
||||
@ -131,19 +82,12 @@ in {
|
||||
llvmPackages = pkgs.llvmPackages_10;
|
||||
};
|
||||
ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
|
||||
bootPkgs = packages.ghc883; # no binary yet
|
||||
bootPkgs = packages.ghc884; # no binary yet
|
||||
inherit (buildPackages.python3Packages) sphinx;
|
||||
buildLlvmPackages = buildPackages.llvmPackages_10;
|
||||
llvmPackages = pkgs.llvmPackages_10;
|
||||
libffi = pkgs.libffi;
|
||||
};
|
||||
ghcjs = compiler.ghcjs86;
|
||||
ghcjs86 = callPackage ../development/compilers/ghcjs-ng {
|
||||
bootPkgs = packages.ghc865;
|
||||
ghcjsSrcJson = ../development/compilers/ghcjs-ng/8.6/git.json;
|
||||
stage0 = ../development/compilers/ghcjs-ng/8.6/stage0.nix;
|
||||
ghcjsDepOverrides = callPackage ../development/compilers/ghcjs-ng/8.6/dep-overrides.nix {};
|
||||
};
|
||||
|
||||
# The integer-simple attribute set contains all the GHC compilers
|
||||
# build with integer-simple instead of integer-gmp.
|
||||
@ -172,12 +116,6 @@ in {
|
||||
# Always get compilers from `buildPackages`
|
||||
packages = let bh = buildPackages.haskell; in {
|
||||
|
||||
ghc822Binary = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc822Binary;
|
||||
ghc = bh.compiler.ghc822Binary;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.2.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc865Binary = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc865Binary;
|
||||
ghc = bh.compiler.ghc865Binary;
|
||||
@ -196,41 +134,11 @@ in {
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
packageSetConfig = bootstrapPackageSet;
|
||||
};
|
||||
ghc865 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc865;
|
||||
ghc = bh.compiler.ghc865;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
|
||||
};
|
||||
ghc882 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc882;
|
||||
ghc = bh.compiler.ghc882;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
||||
};
|
||||
ghc883 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc883;
|
||||
ghc = bh.compiler.ghc883;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
||||
};
|
||||
ghc884 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc884;
|
||||
ghc = bh.compiler.ghc884;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
|
||||
};
|
||||
ghc8101 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8101;
|
||||
ghc = bh.compiler.ghc8101;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
};
|
||||
ghc8102 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8102;
|
||||
ghc = bh.compiler.ghc8102;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
};
|
||||
ghc8103 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8103;
|
||||
ghc = bh.compiler.ghc8103;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
|
||||
};
|
||||
ghc8104 = callPackage ../development/haskell-modules {
|
||||
buildHaskellPackages = bh.packages.ghc8104;
|
||||
ghc = bh.compiler.ghc8104;
|
||||
@ -246,13 +154,6 @@ in {
|
||||
ghc = bh.compiler.ghcHEAD;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
|
||||
};
|
||||
ghcjs = packages.ghcjs86;
|
||||
ghcjs86 = callPackage ../development/haskell-modules rec {
|
||||
buildHaskellPackages = ghc.bootPkgs;
|
||||
ghc = bh.compiler.ghcjs86;
|
||||
compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
|
||||
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
|
||||
};
|
||||
|
||||
# The integer-simple attribute set contains package sets for all the GHC compilers
|
||||
# using integer-simple instead of integer-gmp.
|
||||
|
Loading…
Reference in New Issue
Block a user