cabal-install: adapt to changes for 3.8.1.0

https://github.com/haskell/cabal/blob/cabal-install-v3.8.1.0/release-notes/cabal-install-3.8.1.0.md
This commit is contained in:
sternenseemann 2022-08-20 12:20:39 +02:00
parent ff6962c829
commit 4ad395f0c9
6 changed files with 45 additions and 26 deletions

View file

@ -1773,21 +1773,6 @@ self: super: {
vivid-osc = dontCheck super.vivid-osc;
vivid-supercollider = dontCheck super.vivid-supercollider;
# cabal-install switched to build type simple in 3.2.0.0
# as a result, the cabal(1) man page is no longer installed
# automatically. Instead we need to use the `cabal man`
# command which generates the man page on the fly and
# install it to $out/share/man/man1 ourselves in this
# override.
# The commit that introduced this change:
# https://github.com/haskell/cabal/commit/91ac075930c87712eeada4305727a4fa651726e7
cabal-install = overrideCabal (old: {
postInstall = old.postInstall + ''
mkdir -p "$out/share/man/man1"
"$out/bin/cabal" man --raw > "$out/share/man/man1/cabal.1"
'';
}) super.cabal-install;
# while waiting for a new release: https://github.com/brendanhay/amazonka/pull/572
amazonka = appendPatches [
(fetchpatch {

View file

@ -48,9 +48,11 @@ self: super: {
# still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
# cabal-install needs more recent versions of Cabal and base16-bytestring.
# cabal-install needs most recent versions of Cabal and Cabal-syntax
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_6_3_0;
Cabal = self.Cabal_3_8_1_0;
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
process = self.process_1_6_15_0;
});
# Pick right versions for GHC-specific packages

View file

@ -54,10 +54,11 @@ self: super: {
# This build needs a newer version of Cabal.
cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_1_0; };
# cabal-install needs more recent versions of Cabal and random, but an older
# version of base16-bytestring.
# cabal-install needs most recent versions of Cabal and Cabal-syntax
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_6_3_0;
Cabal = self.Cabal_3_8_1_0;
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
process = self.process_1_6_15_0;
});
# Ignore overly restrictive upper version bounds.

View file

@ -49,9 +49,11 @@ self: super: {
# still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
# cabal-install needs more recent versions of Cabal and base16-bytestring.
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
Cabal = self.Cabal_3_6_3_0;
# cabal-install needs the latest/matching versions of Cabal-syntax and Cabal
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_8_1_0;
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
process = self.process_1_6_15_0;
});
# Jailbreaks & Version Updates

View file

@ -55,9 +55,11 @@ self: super: {
# 0.30 introduced support for GHC 9.2.
cryptonite = doDistribute self.cryptonite_0_30;
# cabal-install needs more recent versions of Cabal
cabal-install = (doJailbreak super.cabal-install).overrideScope (self: super: {
Cabal = self.Cabal_3_6_3_0;
# cabal-install needs most recent versions of Cabal and Cabal-syntax
cabal-install = super.cabal-install.overrideScope (self: super: {
Cabal = self.Cabal_3_8_1_0;
Cabal-syntax = self.Cabal-syntax_3_8_1_0;
process = self.process_1_6_15_0;
});
doctest = dontCheck (doJailbreak super.doctest);

View file

@ -1024,4 +1024,31 @@ self: super: builtins.intersectAttrs super {
# Wants to execute cabal-install to (re-)build itself
hint = dontCheck super.hint;
# cabal-install switched to build type simple in 3.2.0.0
# as a result, the cabal(1) man page is no longer installed
# automatically. Instead we need to use the `cabal man`
# command which generates the man page on the fly and
# install it to $out/share/man/man1 ourselves in this
# override.
# The commit that introduced this change:
# https://github.com/haskell/cabal/commit/91ac075930c87712eeada4305727a4fa651726e7
# Since cabal-install 3.8, the cabal man (without the raw) command
# uses nroff(1) instead of man(1) for macOS/BSD compatibility. That utility
# is not commonly installed on systems, so we add it to PATH. Closure size
# penalty is about 10MB at the time of writing this (2022-08-20).
cabal-install = overrideCabal (old: {
executableToolDepends = [
pkgs.buildPackages.makeWrapper
] ++ old.buildToolDepends or [];
postInstall = old.postInstall + ''
mkdir -p "$out/share/man/man1"
"$out/bin/cabal" man --raw > "$out/share/man/man1/cabal.1"
wrapProgram "$out/bin/cabal" \
--prefix PATH : "${pkgs.lib.makeBinPath [ pkgs.groff ]}"
'';
hydraPlatforms = pkgs.lib.platforms.all;
broken = false;
}) super.cabal-install;
}