Describe the bug
Cabal upgrade (aka cabal install cabal-install) fails.
To Reproduce
Steps to reproduce the behavior - as per your README:
$ cabal install cabal-install
Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.0.0.0 supports
'ghc' version < 8.10): /Users/ur20980/.ghcup/bin/ghc is version 8.10.1
Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.0.0.0 supports
'ghc' version < 8.10): /Users/ur20980/.ghcup/bin/ghc is version 8.10.1
Resolving dependencies...
Build profile: -w ghc-8.10.1 -O1
In order, the following will be built (use -v for more details):
- cabal-install-3.0.0.0 (exe:cabal) (requires build)
Starting cabal-install-3.0.0.0 (all, legacy fallback)
Building cabal-install-3.0.0.0 (all, legacy fallback)
Failed to build cabal-install-3.0.0.0.
Build log (
/Users/ur20980/.cabal/logs/ghc-8.10.1/cbl-nstll-3.0.0.0-604f306e.log ):
[1 of 1] Compiling Main ( /var/folders/c6/lnc_0m093ys8w16md_fm1mnxhtfnj8/T/cabal-install.-68428/dist-newstyle/tmp/src-68428/cabal-install-3.0.0.0/dist/setup/setup.hs, /var/folders/c6/lnc_0m093ys8w16md_fm1mnxhtfnj8/T/cabal-install.-68428/dist-newstyle/tmp/src-68428/cabal-install-3.0.0.0/dist/setup/Main.o )
Linking /var/folders/c6/lnc_0m093ys8w16md_fm1mnxhtfnj8/T/cabal-install.-68428/dist-newstyle/tmp/src-68428/cabal-install-3.0.0.0/dist/setup/setup ...
Configuring cabal-install-3.0.0.0...
Preprocessing executable 'cabal' for cabal-install-3.0.0.0..
Building executable 'cabal' for cabal-install-3.0.0.0..
on the commandline: warning:
-Wnoncanonical-monadfail-instances is deprecated: fail is no longer a method of Monad
[ 1 of 156] Compiling Distribution.Client.Compat.Directory ( Distribution/Client/Compat/Directory.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/Directory.dyn_o )
[ 2 of 156] Compiling Distribution.Client.Compat.ExecutablePath ( Distribution/Client/Compat/ExecutablePath.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/ExecutablePath.dyn_o )
[ 3 of 156] Compiling Distribution.Client.Compat.FileLock ( dist/build/cabal/cabal-tmp/Distribution/Client/Compat/FileLock.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/FileLock.dyn_o )
[ 4 of 156] Compiling Distribution.Client.Compat.FilePerms ( Distribution/Client/Compat/FilePerms.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/FilePerms.dyn_o )
[ 5 of 156] Compiling Distribution.Client.Compat.Prelude ( Distribution/Client/Compat/Prelude.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/Prelude.dyn_o )
[ 6 of 156] Compiling Distribution.Client.Compat.Process ( Distribution/Client/Compat/Process.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/Process.dyn_o )
[ 7 of 156] Compiling Distribution.Client.Compat.Semaphore ( Distribution/Client/Compat/Semaphore.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Compat/Semaphore.dyn_o )
[ 8 of 156] Compiling Distribution.Client.GZipUtils ( Distribution/Client/GZipUtils.hs, dist/build/cabal/cabal-tmp/Distribution/Client/GZipUtils.dyn_o )
[ 9 of 156] Compiling Distribution.Client.Haddock ( Distribution/Client/Haddock.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Haddock.dyn_o )
[ 10 of 156] Compiling Distribution.Client.Init.Licenses ( Distribution/Client/Init/Licenses.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Init/Licenses.dyn_o )
[ 11 of 156] Compiling Distribution.Client.JobControl ( Distribution/Client/JobControl.hs, dist/build/cabal/cabal-tmp/Distribution/Client/JobControl.dyn_o )
[ 12 of 156] Compiling Distribution.Client.PackageUtils ( Distribution/Client/PackageUtils.hs, dist/build/cabal/cabal-tmp/Distribution/Client/PackageUtils.dyn_o )
[ 13 of 156] Compiling Distribution.Client.SavedFlags ( Distribution/Client/SavedFlags.hs, dist/build/cabal/cabal-tmp/Distribution/Client/SavedFlags.dyn_o )
[ 14 of 156] Compiling Distribution.Client.Security.DNS ( Distribution/Client/Security/DNS.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Security/DNS.dyn_o )
[ 15 of 156] Compiling Distribution.Client.Tar ( Distribution/Client/Tar.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Tar.dyn_o )
[ 16 of 156] Compiling Distribution.Client.Utils ( Distribution/Client/Utils.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Utils.dyn_o )
[ 17 of 156] Compiling Distribution.Client.Utils.Assertion ( Distribution/Client/Utils/Assertion.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Utils/Assertion.dyn_o )
[ 18 of 156] Compiling Distribution.Client.Utils.Json ( Distribution/Client/Utils/Json.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Utils/Json.dyn_o )
Distribution/Client/Utils/Json.hs:22:8: warning: [-Wcompat-unqualified-imports]
To ensure compatibility with future core libraries changes
imports to Data.List should be
either qualified or have an explicit import list.
|
22 | import Data.List
| ^^^^^^^^^
[ 19 of 156] Compiling Distribution.Client.Utils.Parsec ( Distribution/Client/Utils/Parsec.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Utils/Parsec.dyn_o )
[ 20 of 156] Compiling Distribution.Client.Check ( Distribution/Client/Check.hs, dist/build/cabal/cabal-tmp/Distribution/Client/Check.dyn_o )
Distribution/Client/Check.hs:48:56: error:
• Couldn't match expected type ‘[Distribution.Parsec.Error.PError]’
with actual type ‘NonEmpty Distribution.Parsec.Error.PError’
• In the third argument of ‘renderParseError’, namely ‘errors’
In the second argument of ‘($)’, namely
‘renderParseError fpath bs errors warnings’
In a stmt of a 'do' block:
hPutStr stderr $ renderParseError fpath bs errors warnings
|
48 | hPutStr stderr $ renderParseError fpath bs errors warnings
| ^^^^^^
cabal: Failed to build cabal-install-3.0.0.0. See the build log above for
details.
$
Expected behavior
Successful upgrade.
System information
Additional context
Log file (probably doesn't add much beyond what I copied above from the terminal): cabal-build-fails.txt
Cannot reproduce, I get:
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: cabal-install-3.0.0.0 (user goal)
[__1] trying: cabal-install:+native-dns
[__2] trying: resolv-0.1.1.3 (dependency of cabal-install +native-dns)
[__3] next goal: unix (dependency of cabal-install)
[__3] rejecting: unix-2.7.2.2/installed-2.7.2.2 (conflict: cabal-install =>
base>=4.8 && <4.13, unix => base==4.14.0.0/installed-4.14.0.0)
[__3] trying: unix-2.7.2.2
[__4] next goal: base (dependency of cabal-install)
[__4] rejecting: base-4.14.0.0/installed-4.14.0.0 (conflict: cabal-install =>
base>=4.8 && <4.13)
[__4] rejecting: base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0,
base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0,
base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1,
base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0,
base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0,
base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from
non-upgradeable package requires installed instance)
[__4] fail (backjumping, conflict set: base, cabal-install)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, unix, cabal-install, HTTP,
resolv, cabal-install:lib, cabal-install:native-dns
Try running with --minimize-conflict-set to improve the error message.
... which is because cabal-install-3.0 is not buildable with GHC-8.10. (Very likely, that neither will be the next cabal-install-3.2.0.0, you have to use older compiler to build it).
Thank you for the quick response.
Cannot reproduce
Yeah, I was getting what you were, until enabled allow-newer: True in ~/.cabal/config.
you have to use older compiler to build it...
It did not work for me with GHC 8.8.3 either:
$ time cabal install cabal-install
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: cabal-install-3.0.0.0 (user goal)
[__1] next goal: time (dependency of cabal-install)
[__1] rejecting: time-1.9.3/installed-1.9... (conflict: cabal-install =>
base>=4.8 && <4.13, time => base==4.13.0.0/installed-4.1...)
[__1] rejecting: time-1.10 (conflict: cabal-install => time>=1.5.0.1 && <1.10)
[__1] trying: time-1.9.3
[__2] next goal: stm (dependency of cabal-install)
[__2] rejecting: stm-2.5.0.0/installed-2.5... (conflict: cabal-install =>
base>=4.8 && <4.13, stm => base==4.13.0.0/installed-4.1...)
[__2] trying: stm-2.5.0.0
[__3] next goal: process (dependency of cabal-install)
[__3] rejecting: process-1.6.8.0/installed-1.6... (conflict: cabal-install =>
base>=4.8 && <4.13, process => base==4.13.0.0/installed-4.1...)
[__3] trying: process-1.6.8.2
[__4] next goal: pretty (dependency of cabal-install)
[__4] rejecting: pretty-1.1.3.6/installed-1.1... (conflict: cabal-install =>
base>=4.8 && <4.13, pretty => base==4.13.0.0/installed-4.1...)
[__4] trying: pretty-1.1.3.6
[__5] trying: network-3.1.1.1 (dependency of cabal-install)
[__6] next goal: hackage-security (dependency of cabal-install)
[__6] rejecting: hackage-security-0.6.0.0 (conflict: cabal-install =>
hackage-security>=0.5.2.2 && <0.6)
[__6] trying: hackage-security-0.5.3.0
[__7] next goal: template-haskell (dependency of hackage-security)
[__7] rejecting: template-haskell-2.15.0.0/installed-2.1... (conflict:
cabal-install => base>=4.8 && <4.13, template-haskell =>
base==4.13.0.0/installed-4.1...)
[__7] rejecting: template-haskell-2.15.0.0, template-haskell-2.14.0.0,
template-haskell-2.13.0.0, template-haskell-2.12.0.0,
template-haskell-2.11.1.0, template-haskell-2.11.0.0,
template-haskell-2.10.0.0, template-haskell-2.9.0.0, template-haskell-2.8.0.0,
template-haskell-2.7.0.0, template-haskell-2.6.0.0, template-haskell-2.5.0.0,
template-haskell-2.4.0.1, template-haskell-2.4.0.0, template-haskell-2.3.0.1,
template-haskell-2.3.0.0, template-haskell-2.2.0.0 (constraint from
non-upgradeable package requires installed instance)
[__7] fail (backjumping, conflict set: cabal-install, hackage-security,
template-haskell)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, cabal-install, directory,
template-haskell, network, process, time, hackage-security, pretty, deepseq,
HTTP, stm, cabal-install:lib
Try running with --minimize-conflict-set to improve the error message.
real 0m4.697s
user 0m3.913s
sys 0m0.567s
Does it mean one cannot use Cabal with GHC 8.10.1??? And cannot upgrade it under GHC 8.8.3?
With GHC 8.6.5 it appears to be downgrading Cabal to 2.4.1.0 - which is not desirable.
No :( We unfortunately hadn't GHC-8.8 compatible cabal-install-3.0 release yet (In general, you need "previous" GHC to compile "next" cabal). Our release manager is busy...
In general, you need "previous" GHC to compile "next" cabal
Ah. I didn't realize that. So, for 8.8.3 I need to build Cabal with 8.6.5 (which worked).
And for 8.10.1 I need to build it with 8.8.3, but that isn't ready yet. Right?
If you don't mind - what does the following mean from practical point of view:
Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.0.0.0 supports
'ghc' version < 8.10): /Users/ur20980/.ghcup/bin/ghc is version 8.10.1
and when in your opinion it could be remedied?
Cabal-3.0 doesn't know about GHC-8.10 functionality. Say there is something changed which needs adoptation from a build tool: Cabal-3.0 is "old", so doesn't know about "newer" compilers. It's unluckily that wrong binaries would be produced, but it might be that it just don't work (so you'll get some weird compilation errors).
Still, it would be great if at least 3.2.0.0 become compatible with 8.10.1...
Thanks!
Also, not quite a problem - it looks like libHSCabal-3.2.0.0-ghc8.10.1.dylib is included, but not Cabal executable itself that could use that level of the library.
Again, what does it mean from practical point of view? (sorry for the layman's question)
There is Cabal the library, and there is cabal-install executable, often called just cabal.
cabal-install just happens to have the same (similar) name as the library. But they are still separate "components".
GHC only bundles the Cabal library. In theory it's enough to build all the libraries. In practice, it's not convinient, therefore there are tools, like cabal (or stack or ...) which automate some bits of development workflow.
Ah, thank you! So, for the GHC's internal needs there is that Cabal library 3.2.0.0.
For a user who wants a tool to automate his workflow, the cabal tool is not provided; or, at least, not at that version level.
I can only ask that hopefully it would become available rather sooner than later.
Oh, and what is cabal-install? Is it also a library? Or a tool to automate builds...?
cabal-install is the full name of the cabal tool.
I see. And cabal-install is not included, alas...
This problem impacts other projects/packages that use Cabal. For example, https://github.com/haskell/haskell-ide-engine (see issue https://github.com/haskell/haskell-ide-engine/issues/1712).
It would be great if you guys could help.
@mouse07410 I've built succesful cabal-install with support for ghc-8.10.1 (aka using the library Cabal-3.2) from source, checking out the 3.2 branch.
For building i used a previous cabal executable (3.0.0.0) downloaded from the official cabal download page and ghc-8.6.5:
> git clone https://github.com/haskell/cabal.git
> cd cabal
> git checkout 3.2
> cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
> cabal install -w ghc-8.6.5 --install-dir D:\bin\cabals\3.2 cabal-install
....
> D:\bin\cabals\3.2\cabal -version
cabal-install version 3.2.0.0
compiled using version 3.2.0.0 of the Cabal library
> cd ..
> cd cabal-test
> D:\bin\cabals\3.2\cabal -w ghc-8.10.1 build
..... (Succesfully build a simple project)
@jneira thank you - great work!
So, if I want to switch everything to cabal-install 3.2.0.0 that supports ghc-8.10.1, where should I install cabal-install that we build using ghc-8.6.5? Would ~/.cabal/bin/ or ~/.ghcup/bin/ be OK?
After the build/installation above succeeds (assuming it does), do I need to rebuild cabal-install 3.2.0.0 that was build with ghc-8.6.5, now using ghc-8.10.1? Or does it automatically support ghc-8.10.1 now, so no need to rebuild it?
When I return to building HIE with ghc-8.10.1 support, what do I do for cabal.project-8.10.1? Do I keep the commit numbers specified in cabal.project-8.8.3, or do I comment them out to just use the master branches...?
I try to answer 1 y 2 (3 is hie specific):
$PATH. But it is from a somewhat cutting-edge branch and it can contain bugs or trigger them so i would keep the cabal released version (3.0.0.0) and a ghc compatible with it somewhere. I would replace it with a release 3.2.0.0 as soon as it is available. In my case i dont usually use newest ghc features so i am fine with ghc-8.6.5..cabal stanzas) over ghc version (and they are not, i think)@phadej Tried to build/install from the master branch. Fails miserably:
$ pwd
/Users/ur20980/src/cabal/Cabal
$ time cabal install
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/Cabal-3.3.0.0.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/cabal-testsuite-3.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/cabal-install-3.3.0.0.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/solver-benchmarks-3.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/Cabal-quickcheck-3.3.0.0.tar.gz
cabal: filepath wildcard 'README.md' does not match any files.
real 0m3.796s
user 0m2.991s
sys 0m0.540s
$ li
Cabal-quickcheck/ Distribution/ Makefile doc/ tests/
Cabal.cabal LICENSE README.md misc/
ChangeLog.md Language/ Setup.hs prologue.txt
$ cd ../cabal-install/
$ time cabal install
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/Cabal-3.3.0.0.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/cabal-testsuite-3.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/cabal-install-3.3.0.0.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/solver-benchmarks-3.tar.gz
Wrote tarball sdist to
/Users/ur20980/Src/cabal/dist-newstyle/sdist/Cabal-quickcheck-3.3.0.0.tar.gz
cabal: filepath wildcard 'README.md' does not match any files.
real 0m1.162s
user 0m1.027s
sys 0m0.108s
$
I expected some errors, but not even an attempt to build...? I did exactly what's in the top-level README.md...
Trying ./bootstrap.sh in cabal-install subdir gave
$ time ./bootstrap.sh
mktemp: illegal option -- p
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix
Using clang for C compiler. If this is not what you want, set CC.
Using /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld instead.
Checking installed packages for ghc-8.8.3...
deepseq is already installed and the version is ok.
binary is already installed and the version is ok.
time is already installed and the version is ok.
transformers is already installed and the version is ok.
mtl is already installed and the version is ok.
text is already installed and the version is ok.
parsec is already installed and the version is ok.
network-uri-2.6.1.0 will be downloaded and installed.
network-2.7.0.0 will be downloaded and installed.
HTTP-4000.3.14 will be downloaded and installed.
zlib-0.6.2.1 will be downloaded and installed.
random-1.1 will be downloaded and installed.
. . . . .
lukko-0.1.1 will be downloaded and installed.
hackage-security-0.6.0.0 will be downloaded and installed.
Cabal-3.3.0.0 will be installed from the local Git clone.
Loaded package environment from /Users/ur20980/.ghc/x86_64-darwin-8.8.3/environments/default
[ 1 of 242] Compiling Distribution.Compat.Async ( Distribution/Compat/Async.hs, Distribution/Compat/Async.o )
[ 2 of 242] Compiling Distribution.Compat.Binary ( Distribution/Compat/Binary.hs, Distribution/Compat/Binary.o )
[ 3 of 242] Compiling Distribution.Compat.Directory ( Distribution/Compat/Directory.hs, Distribution/Compat/Directory.o )
[ 4 of 242] Compiling Distribution.Compat.Exception ( Distribution/Compat/Exception.hs, Distribution/Compat/Exception.o )
[ 5 of 242] Compiling Distribution.Compat.FilePath ( Distribution/Compat/FilePath.hs, Distribution/Compat/FilePath.o )
[ 6 of 242] Compiling Distribution.Compat.Internal.TempFile ( Distribution/Compat/Internal/TempFile.hs, Distribution/Compat/Internal/TempFile.o )
[ 7 of 242] Compiling Distribution.Compat.MonadFail ( Distribution/Compat/MonadFail.hs, Distribution/Compat/MonadFail.o )
[ 8 of 242] Compiling Distribution.Compat.Newtype ( Distribution/Compat/Newtype.hs, Distribution/Compat/Newtype.o )
[ 9 of 242] Compiling Distribution.Compat.Process ( Distribution/Compat/Process.hs, Distribution/Compat/Process.o )
[ 10 of 242] Compiling Distribution.Compat.Stack ( Distribution/Compat/Stack.hs, Distribution/Compat/Stack.o )
[ 11 of 242] Compiling Distribution.Compat.Typeable ( Distribution/Compat/Typeable.hs, Distribution/Compat/Typeable.o )
[ 12 of 242] Compiling Distribution.PackageDescription.Utils ( Distribution/PackageDescription/Utils.hs, Distribution/PackageDescription/Utils.o )
[ 13 of 242] Compiling Distribution.Simple.Utils.Json ( Distribution/Simple/Utils/Json.hs, Distribution/Simple/Utils/Json.o )
[ 14 of 242] Compiling Distribution.Utils.Base62 ( Distribution/Utils/Base62.hs, Distribution/Utils/Base62.o )
[ 15 of 242] Compiling Distribution.Utils.MD5 ( Distribution/Utils/MD5.hs, Distribution/Utils/MD5.o )
[ 16 of 242] Compiling Distribution.Utils.String ( Distribution/Utils/String.hs, Distribution/Utils/String.o )
[ 17 of 242] Compiling Distribution.Utils.Structured ( Distribution/Utils/Structured.hs, Distribution/Utils/Structured.o )
[ 18 of 242] Compiling Distribution.Compat.Semigroup ( Distribution/Compat/Semigroup.hs, Distribution/Compat/Semigroup.o )
[ 19 of 242] Compiling Distribution.Compat.Prelude ( Distribution/Compat/Prelude.hs, Distribution/Compat/Prelude.o )
[ 20 of 242] Compiling Distribution.Utils.ShortText ( Distribution/Utils/ShortText.hs, Distribution/Utils/ShortText.o )
[ 21 of 242] Compiling Distribution.Utils.Progress ( Distribution/Utils/Progress.hs, Distribution/Utils/Progress.o )
[ 22 of 242] Compiling Distribution.Utils.MapAccum ( Distribution/Utils/MapAccum.hs, Distribution/Utils/MapAccum.o )
[ 23 of 242] Compiling Distribution.Utils.IOData ( Distribution/Utils/IOData.hs, Distribution/Utils/IOData.o )
[ 24 of 242] Compiling Distribution.Utils.Generic ( Distribution/Utils/Generic.hs, Distribution/Utils/Generic.o )
[ 25 of 242] Compiling Distribution.Utils.CharSet ( Distribution/Utils/CharSet.hs, Distribution/Utils/CharSet.o )
[ 26 of 242] Compiling Distribution.Utils.Regex ( Distribution/Utils/Regex.hs, Distribution/Utils/Regex.o )
[ 27 of 242] Compiling Distribution.Types.Condition ( Distribution/Types/Condition.hs, Distribution/Types/Condition.o )
[ 28 of 242] Compiling Distribution.TestSuite ( Distribution/TestSuite.hs, Distribution/TestSuite.o )
[ 29 of 242] Compiling Distribution.Simple.Program.Internal ( Distribution/Simple/Program/Internal.hs, Distribution/Simple/Program/Internal.o )
[ 30 of 242] Compiling Distribution.Simple.PreProcess.Unlit ( Distribution/Simple/PreProcess/Unlit.hs, Distribution/Simple/PreProcess/Unlit.o )
[ 31 of 242] Compiling Distribution.Simple.InstallDirs.Internal ( Distribution/Simple/InstallDirs/Internal.hs, Distribution/Simple/InstallDirs/Internal.o )
[ 32 of 242] Compiling Distribution.Simple.Flag ( Distribution/Simple/Flag.hs, Distribution/Simple/Flag.o )
[ 33 of 242] Compiling Distribution.Simple.CCompiler ( Distribution/Simple/CCompiler.hs, Distribution/Simple/CCompiler.o )
[ 34 of 242] Compiling Distribution.Parsec.Position ( Distribution/Parsec/Position.hs, Distribution/Parsec/Position.o )
[ 35 of 242] Compiling Distribution.Parsec.Warning ( Distribution/Parsec/Warning.hs, Distribution/Parsec/Warning.o )
[ 36 of 242] Compiling Distribution.Parsec.FieldLineStream ( Distribution/Parsec/FieldLineStream.hs, Distribution/Parsec/FieldLineStream.o )
Distribution/Parsec/FieldLineStream.hs:20:1: error:
Could not load module ‘Text.Parsec’
It is a member of the hidden package ‘parsec-3.1.14.0’.
You can run ‘:set -package parsec’ to expose it.
(Note: this unloads all the modules in the current scope.)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
20 | import qualified Text.Parsec as Parsec
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error during cabal-install bootstrap:
Compiling the Setup script failed.
real 0m9.734s
user 0m4.316s
sys 0m2.239s
Default GHC is set to 8.8.3. Installed GHC: 8.6.5, 8.8.3, 8.10.1.
@phadej thanks - the master builds now using cabal-install/bootstrap.sh. What the README.md suggests - doesn't work:
$ cd Cabal; cabal install
. . . . .
$ cd cabal-install; cabal install
Also, I don't think that it's the "Update copyright years" #8a4b091 commit that fixes this issue? ;-)
It does fix cabal install cabal-install from the root. I have to check what README.md says. Probably it's outdated as our copyright years were...
@phadej current master builds Cabal-3.3.0.0. I could only build it with GHC up to 8.8.3, but not 8.10.1.
Is it likely to cause any problems if I use this cabal-3.3.0.0 (or cabal-install 3.3.0.0 ;) in/with a project that based on/employs GHC-8.10.1?
Same question for cabal-install 3.2.0.0 that's currently released - is it OK to use with GHC-8.10.1 projects?