| Summary: | app-admin/haskell-updater-1.2.7 is unable to update my Haskell packages | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Helmut Jarausch <jarausch> |
| Component: | [OLD] Development | Assignee: | Gentoo's Haskell Language team <haskell> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
build log of dev-haskell/yaml
output of ghc-pkg list -v ghc-pkg check output |
||
|
Description
Helmut Jarausch
2015-01-03 14:16:15 UTC
I hit something like this during the 7.8.4 upgrade. Somehow I wound up with two copies of dev-haskell/nats registered under /usr/lib/ghc-7.8.4, and rebuilding its reverse dependencies would always check the old busted copy and die. The way I got around it was crude: ultimately I uninstalled every haskell package, and then did rm -rf /usr/lib/ghc-* to kill the leftover package databases (I had stuff going back to the 6.x days). Can you post the output of, $ ghc-pkg list -v and $ ghc-pkg check please? If any of the entries in the list are red, can you put an asterisk or something next to them? Created attachment 393080 [details] output of ghc-pkg list -v In this output of ghc-pkg list -v red lines are marked by >>> in the first 3 columns Created attachment 393082 [details]
ghc-pkg check output
(In reply to Helmut Jarausch from comment #3) > Created attachment 393082 [details] > ghc-pkg check output Please, show your output of 'haskell-updater -l'. From your build log,
setup: The following installed packages are broken because other packages
they depend on are missing. These broken packages must be rebuilt before
they can be used.
package aeson-0.8.0.2 is broken due to missing package
unordered-containers-0.2.5.1-cf128ab54a2db02026e21a9f368429d2
And from the `ghc-pkg list` output, you've got two "versions" of unordered-containers registered with GHC:
unordered-containers-0.2.5.1-afc67b0011b3d92eaca88156b1376034
unordered-containers-0.2.5.1-f27abfd87dc652f726481246efccd251
Interestingly, neither of them has the hash "cf128ab54a2db02026e21a9f368429d2" that aeson wants.
You can try to re-emerge just aeson and unordered containers -- maybe you will get lucky. But probably not, if `haskell-updater --all` isn't working.
I'm far from an expert on this, but I don't think you should have so many duplicated packages (of the same version) registered with GHC. Maybe there is/was a bug that could leave orphan entries in the registry. I will ask if anyone knows of a more elegant solution, but the nuke-it-from-outer-space approach is what worked for me.
The GHC package database (everything you see in `ghc-pkg list`) is stored under /usr/lib/ghc-${PV}, so if you uninstall your haskell packages and GHC and remove that directory, you'll be starting with a fresh package database.
(In reply to Michael Orlitzky from comment #1) > I hit something like this during the 7.8.4 upgrade. Somehow I wound up with > two copies of dev-haskell/nats registered under /usr/lib/ghc-7.8.4, and > rebuilding its reverse dependencies would always check the old busted copy > and die. Yeah, our current upgrade path is a bit bumpy. You would only need to manually remove non-managed .conf files reported by: qfile -o $(ghc --print-libdir)/package.conf.d/*.conf The rest haskell-updater can clean up by itself. h-u-1.2.7 alredy shows orphan files, but I was hesitant of removing them automatically as user might have installed something manually (messy affair, but legitimate). Current eclasses won't create orphan .conf files anymore. (In reply to Sergei Trofimovich from comment #6) > > You would only need to manually remove non-managed .conf files reported by: > > qfile -o $(ghc --print-libdir)/package.conf.d/*.conf > > The rest haskell-updater can clean up by itself. > Ah, OK, listen to this guy, he actually knows what he's doing =) (In reply to Michael Orlitzky from comment #7) > (In reply to Sergei Trofimovich from comment #6) > > > > You would only need to manually remove non-managed .conf files reported by: > > > > qfile -o $(ghc --print-libdir)/package.conf.d/*.conf > > > > The rest haskell-updater can clean up by itself. > > > > > Ah, OK, listen to this guy, he actually knows what he's doing =) Many thanks, Michael, that solved me. Helmut |