jwiegley / gitlib

180 stars 56 forks source link

hlibgit2 setup.Cabal version issue #92

Open nickmertin opened 4 years ago

nickmertin commented 4 years ago

Attempting to build any package which depends on the hlibgit2 library causes an error regarding required versions of Cabal:

[__2] next goal: hlibgit2:setup.Cabal (dependency of hlibgit2)
[__2] rejecting: hlibgit2:setup.Cabal-3.2.0.0/installed-3.2.0.0 (conflict:
hlibgit2 => hlibgit2:setup.Cabal>=1.10 && <1.25)
[__2] skipping: hlibgit2:setup.Cabal-3.2.0.0, hlibgit2:setup.Cabal-3.0.2.0,
hlibgit2:setup.Cabal-3.0.1.0, hlibgit2:setup.Cabal-3.0.0.0,
hlibgit2:setup.Cabal-2.4.1.0, hlibgit2:setup.Cabal-2.4.0.1,
hlibgit2:setup.Cabal-2.4.0.0, hlibgit2:setup.Cabal-2.2.0.1,
hlibgit2:setup.Cabal-2.2.0.0, hlibgit2:setup.Cabal-2.0.1.1,
hlibgit2:setup.Cabal-2.0.1.0, hlibgit2:setup.Cabal-2.0.0.2 (has the same
characteristics that caused the previous version to fail: excluded by
constraint '>=1.10 && <1.25' from 'hlibgit2')
[__2] rejecting: hlibgit2:setup.Cabal-1.24.2.0, hlibgit2:setup.Cabal-1.24.0.0,
hlibgit2:setup.Cabal-1.22.8.0, hlibgit2:setup.Cabal-1.22.7.0,
hlibgit2:setup.Cabal-1.22.6.0, hlibgit2:setup.Cabal-1.22.5.0,
hlibgit2:setup.Cabal-1.22.4.0, hlibgit2:setup.Cabal-1.22.3.0,
hlibgit2:setup.Cabal-1.22.2.0, hlibgit2:setup.Cabal-1.22.1.1,
hlibgit2:setup.Cabal-1.22.1.0, hlibgit2:setup.Cabal-1.22.0.0,
hlibgit2:setup.Cabal-1.20.0.4, hlibgit2:setup.Cabal-1.20.0.3,
hlibgit2:setup.Cabal-1.20.0.2, hlibgit2:setup.Cabal-1.20.0.1,
hlibgit2:setup.Cabal-1.20.0.0, hlibgit2:setup.Cabal-1.18.1.7,
hlibgit2:setup.Cabal-1.18.1.6, hlibgit2:setup.Cabal-1.18.1.5,
hlibgit2:setup.Cabal-1.18.1.4, hlibgit2:setup.Cabal-1.18.1.3,
hlibgit2:setup.Cabal-1.18.1.2, hlibgit2:setup.Cabal-1.18.1.1,
hlibgit2:setup.Cabal-1.18.1, hlibgit2:setup.Cabal-1.18.0,
hlibgit2:setup.Cabal-1.16.0.3, hlibgit2:setup.Cabal-1.16.0.2,
hlibgit2:setup.Cabal-1.16.0.1, hlibgit2:setup.Cabal-1.16.0,
hlibgit2:setup.Cabal-1.14.0, hlibgit2:setup.Cabal-1.12.0,
hlibgit2:setup.Cabal-1.10.2.0, hlibgit2:setup.Cabal-1.10.1.0,
hlibgit2:setup.Cabal-1.10.0.0, hlibgit2:setup.Cabal-1.8.0.6,
hlibgit2:setup.Cabal-1.8.0.4, hlibgit2:setup.Cabal-1.8.0.2,
hlibgit2:setup.Cabal-1.6.0.3, hlibgit2:setup.Cabal-1.6.0.2,
hlibgit2:setup.Cabal-1.6.0.1, hlibgit2:setup.Cabal-1.4.0.2,
hlibgit2:setup.Cabal-1.4.0.1, hlibgit2:setup.Cabal-1.4.0.0,
hlibgit2:setup.Cabal-1.2.4.0, hlibgit2:setup.Cabal-1.2.3.0,
hlibgit2:setup.Cabal-1.2.2.0, hlibgit2:setup.Cabal-1.2.1,
hlibgit2:setup.Cabal-1.1.6, hlibgit2:setup.Cabal-1.24.1.0 (constraint from
minimum version of Cabal used by Setup.hs requires >=3.2)
[__2] fail (backjumping, conflict set: hlibgit2, hlibgit2:setup.Cabal)

I don't know enough about the cabal build system to be able to trace down exactly what needs to be changed, but I haven't seen this behaviour from any other package. This happens both when installing from Hackage and when building locally from the latest Git source.

elaforge commented 2 years ago

Looks like it's this one: https://github.com/haskell/cabal/issues/5278

However, it also looks like it's fixed at head by removing the custom build type, so we probably just need a hackage release. Meanwhile, I finally learned a bit about newer cabal and discovered that I can work around by cloning the latest locally and putting it in cabal.project packages: /path/to/gitlib/hlibgit2/*.cabal

elaforge commented 1 year ago

@jwiegley can you or another maintainer do a hackage release? This should fix it for darwin without the need for manual workarounds. Or if there's a way to give me permission I could do it, as (one of the few?) users I could take over basic new ghc version maintenance.