Opened 15 years ago

Closed 13 years ago

#20273 closed defect (invalid)

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 (5)

comment:1 Changed 15 years ago by mf2k (Frank Schima)

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

comment:2 Changed 15 years ago by gwright@…

Status: newassigned

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 15 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 15 years ago by tobypeterson

Is this a bug?

comment:5 Changed 13 years ago by jmroot (Joshua Root)

Resolution: invalid
Status: assignedclosed
Note: See TracTickets for help on using tickets.