New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #20273 (closed defect: invalid)

Opened 4 years ago

Last modified 3 years ago

hs-cabal depends on zlib

Reported by: gale@… Owned by: gwright@…
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: zlib Cc:
Port: hs-cabal

Description

After installing ghc 6.10.3, the upgrade to hs-cabal 0.6.2 failed due to an unsatisfied dependency on the zlib package from hackage. The vanilla ghc install apparently doesn't provide that anymore. (Did it ever?)

Change History

comment:1 Changed 4 years ago by macsforever2000@…

  • Owner changed from macports-tickets@… to gwright@…

comment:2 follow-up: ↓ 3 Changed 4 years ago by gwright@…

  • Status changed from new to assigned

This is not a bug. hs-cabal has a dependency on hs-zlib already. However, you need to rebuild all of you haskell libraries after the upgrade to 6.10.3. This is required because ghc changes it ABI incompatibly, even for minor versions. You probably have the hs-zlib port installed, but it hasn't been built by and registered with the new compiler.

Try

    $ sudo port -Rf upgrade ghc

This forces upgrading ghc and all of the ports that depend on it. It will rebuild and reregister all of your haskell libraries and ghc too.. It will also take a long time if you many libraries installed.

MacPorts has no way to do this automatically. However, a shell script could probably be added to the ghc port which would run in the post-activate phase to update the dependents.

comment:3 in reply to: ↑ 2 Changed 4 years ago by gale@…

Replying to gwright@…:

This is not a bug. hs-cabal has a dependency on hs-zlib already. However, you need to rebuild all of you haskell libraries after the upgrade to 6.10.3.

Oh, I see. But -Rf is not right, it also recompiles zillions of non-Haskell packages.

In practice, just installing zlib manually via cabal worked here. I think the right port command would be

port  -fun upgrade hs-zlib

and repeat for each port that represents a hackage package.

MacPorts has no way to do this automatically. However, a shell script could probably be added to the ghc port which would run in the post-activate phase to update the dependents.

But you don't want all dependents, just those that are hackage packages. We need some way to get a list of those.

comment:4 Changed 4 years ago by toby@…

Is this a bug?

comment:5 Changed 3 years ago by jmr@…

  • Status changed from assigned to closed
  • Resolution set to invalid
Note: See TracTickets for help on using tickets.