1

I wiped and reinstalled the Haskell platform (Haskell.org: cabal, stack, ghc), but now no addon package will install properly. Cabal always end with ExitFailure1. Probably because not being able to find a dependency. Most of the times however it is the main package it cannot resolve for some reason. Any experience with that phenomenon?

Local stack build

--  While building custom Setup.hs for package json-lesson-0.1.0.0 using:
      /Users/administrator/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-osx/Cabal-2.2.0.1 configure --with-ghc=/Users/administrator/.stack/programs/x86_64-osx/ghc-8.4.3/bin/ghc --with-ghc-pkg=/Users/administrator/.stack/programs/x86_64-osx/ghc-8.4.3/bin/ghc-pkg --user --package-db=clear --package-db=global --package-db=/Users/administrator/.stack/snapshots/x86_64-osx/lts-12.5/8.4.3/pkgdb --package-db=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/pkgdb --libdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/lib --bindir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/bin --datadir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/share --libexecdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/libexec --sysconfdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/etc --docdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --htmldir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --haddockdir=/Users/administrator/Desktop/Haskell/json-lesson/.stack-work/install/x86_64-osx/lts-12.5/8.4.3/doc/json-lesson-0.1.0.0 --dependency=aeson=aeson-1.3.1.1-v8c5j6KkT8PoXkOVjikF --dependency=base=base-4.11.1.0 --dependency=bytestring=bytestring-0.10.8.2 --dependency=text=text-1.2.3.0
    Process exited with code: ExitFailure 1

Using cabal install:

MacBook-2:Haskell administrator$ cabal install aeson
clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument]
Resolving dependencies...
Downloading base-compat-0.10.4...
Downloading dlist-0.8.0.4...
Configuring dlist-0.8.0.4...
Downloading tagged-0.8.6...
Downloading th-abstraction-0.2.8.0...
Configuring tagged-0.8.6...
Configuring base-compat-0.10.4...
Configuring th-abstraction-0.2.8.0...
Building dlist-0.8.0.4...
Building tagged-0.8.6...
Building base-compat-0.10.4...
Building th-abstraction-0.2.8.0...
Installed dlist-0.8.0.4
Downloading time-locale-compat-0.1.1.4...
Configuring time-locale-compat-0.1.1.4...
Building time-locale-compat-0.1.1.4...
Installed tagged-0.8.6
Downloading uuid-types-1.0.3...
Configuring uuid-types-1.0.3...
Installed time-locale-compat-0.1.1.4
Building uuid-types-1.0.3...
Failed to install uuid-types-1.0.3
Build log ( /Users/administrator/.cabal/logs/ghc-8.4.3/uuid-types-1.0.3-tE9Bfk2PgXDUPgbtamBdI.log ):
cabal: Entering directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-5513/uuid-types-1.0.3'
Configuring uuid-types-1.0.3...
clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument]
Preprocessing library for uuid-types-1.0.3..
Building library for uuid-types-1.0.3..
<command line>: cannot satisfy -package-id hashable-1.2.7.0-3hrKWzET808E40baaqgc23
    (use -v for more information)
cabal: Leaving directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-5513/uuid-types-1.0.3'
Installed th-abstraction-0.2.8.0
Installed base-compat-0.10.4
Updating documentation index
/Users/administrator/Library/Haskell/share/doc/x86_64-osx-ghc-8.4.3/index.html
cabal: Error: some packages failed to install:
aeson-1.4.0.0-64eUw61rbC49Aocs9eETca depends on aeson-1.4.0.0 which failed to
install.
uuid-types-1.0.3-tE9Bfk2PgXDUPgbtamBdI failed during the building phase. The
exception was:
ExitFailure 1
leftaroundabout
  • 117,950
  • 5
  • 174
  • 319
Madderote
  • 1,107
  • 10
  • 19
  • 2
    Always show what exactly you tried and full error messages, else we can't diagnose the problem. Also relevant here would be the outputs of `ghc --version`, `cabal info base`, and `cabal --version`. – leftaroundabout Aug 06 '18 at 14:41
  • Iss this the only error message you get? Did you first run `cabal update` to synchronize the list of packages? – Willem Van Onsem Aug 06 '18 at 14:45
  • Edited original posts with the results of local stack build and cabal install. Both fail. Not only for aeson though, also for conduit, html-conduit etc. – Madderote Aug 06 '18 at 15:18
  • What does `ghc-pkg check` say? – Daniel Wagner Aug 06 '18 at 15:26
  • @DanielWagner Cache outdated. ghc-pkg recache still mentioned cache being outdated. Checking for packages obviously does not show aeson, conduit and html-conduit. – Madderote Aug 06 '18 at 15:35
  • Hm. I would suggest just nuking the entire `~/.ghc/x86_64-osx-ghc-8.4.3/package.conf.d` and `~/.cabal` folders... – leftaroundabout Aug 06 '18 at 16:11
  • @leftaroundabout: I nuked ghc, cabal, stack, and haskell folder, so the complete haskell-platform. To no avail after reinstalling. Quite annoying. Make better progress with learning Haskell than figuring out why cabal is giving me all this. – Madderote Aug 06 '18 at 17:43

1 Answers1

2

Solution to the broken package issues with Cabal: in OSX there's a 'Frameworks' directory. This holds a Haskell-framework, that you need to delete, otherwise ghc stays active in the background and package building by cabal will fail. In general you need to delete the (hidden) .cabal, .stack and .ghc directories, as well the Haskell framework in 'Frameworks'. There are also two (!) Haskell directories in ~/Library and ~/User/Library you'd better delete.

Stumbled across this when looking for the Rails framework. Thank you all for contributing with possible solutions!

Madderote
  • 1,107
  • 10
  • 19
  • The "right" way to uninstall the platform that should clean things out properly is to use the `uninstall-hs` command line tool installed by the platform, which knows all the things that need to be cleaned. – sclv Aug 14 '18 at 04:49
  • @sclv Thanks for the comment. I did try that, to no avail, unfortunately, but that might be due to trying manually first. Your comment is valid. Thanks. – Madderote Aug 15 '18 at 08:14