Cabal: Cabal fails to install/uprade

Created on 25 Mar 2020  Â·  20Comments  Â·  Source: haskell/cabal

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

  • MacOS Catalina 10.15.3
  • Cabal 3.0.0.0
  • cabal-install 3.0.0.0
  • GHC 8.10.1 (also observed this problem with 8.8.3 and earlier)

Additional context
Log file (probably doesn't add much beyond what I copied above from the terminal): cabal-build-fails.txt

All 20 comments

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!

  1. 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?

  2. 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?

  3. 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):

  1. You can put cabal-install-3.2.0.0 where you wish while the location is in $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.
  2. Afaik a rebuild should not be needed, if there is no cpp conditions (or conditional .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...

Update

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?

Was this page helpful?
0 / 5 - 0 ratings