Skip to content

cabal freeze fails with some GHC versions due to missing Distribution.Compat.Typeable #10500

@debug-ito

Description

@debug-ito

I used cabal-install-3.12.1.0, and found a problem in cabal freeze.

To reproduce

  • Install ghc-9.2.1 and cabal-install-3.12.1.0 by ghcup.
  • Clone https://github.com/debug-ito/greskell.git and checkout cba2d6c9dddbf24adf9901dd9b6b0d48356df70c (EDITED: checking out this specific commit is necessary, because it contains cabal.project with allow-newer: all)
  • Run cabal freeze.

Then I got the following error.

Error:
    Problem with module re-exports:
      - The module 'Distribution.Compat.Typeable'
        is not exported by any suitable package.
        It occurs in neither the 'exposed-modules' of this package,
        nor any of its 'build-depends' dependencies.
    In the stanza 'library'
    In the package 'Cabal-3.12.1.0'

It looked like cabal tried to evaluate metadata of Cabal-3.12.1.0 with Cabal-syntax-3.14.0.0 in mind, and complained that Distribution.Compat.Typeable was missing.

See also: One of my GitHub CI runs

System information

I used Xubuntu Linux 22.04 64-bit.

Affected GHC versions

According to my experiments, the following GHC versions had this bug.

  • 9.2.1
  • 9.6.1
  • 9.8.1

The following GHC versions didn't have this bug.

  • 9.4.1
  • 9.10.1

Struggle

I tried running cabal freeze -c 'Cabal==3.12.0.0' -c 'Cabal-syntax==3.12.0.0' with ghc-9.2.1, but it had the same issue.
I also tried writing the equivalent constraints stanza in cabal.project.local or cabal.project.freeze, but it had the same issue.

Any ideas? Is there any way to run cabal freeze with ghc-9.2.1?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions