[Slackbuilds-users] haskell-mtl-2.2.2 seemingly conflicts with ghc

Vladimir Nikishkin for_slackbuilds-users_mlist_2023-04-21 at lockywolf.net
Mon Sep 25 02:22:39 UTC 2023

andrew.clemons at gmail.com writes:

> [[PGP Signed Part:Undecided]]
> On 24/09/23 21:09, Vladimir Nikishkin wrote:
>> Dear SlackBuilds Users,
>> I think there is some confusion between ghc and haskell-mtl.
>> I think, mtl overwrites some files installed by ghc, which creates a
>> problem for dependency resolution.
>> Namely, the whole directory /usr/lib64/ghc-8.10.4/mtl-2.2.2 seems to be
>> provided by both packages.
> You are correct. Nothing in the repo requires it. Last year when we were prepping
> the repo for 15.0, I was trying to fix the pandoc build with all the latest
> dependencies (it has > 150 dependencies) and I wrote a slackbuild for this, but
> later realised it was already part of ghc, just the version was too new for other
> dependencies which were complaining about not finding it and those needed upgrading
> instead. Looks like I pushed this dependency anyway, despite it being redundant.
> I'll stage it for removal this week.
> Thanks,
> Andrew
> [[End of PGP Signed Part]]

After talking to some people on #haskell, and looking how Haskell
manages its libraries, it seems more sensible to do packaging more or
less the Rust way.

That is, we would have to build only one Haskell tool systemwide,
"cabal", the command-line binary, which can be used basically like

Then builds would have to include a giant number of DOWNLOAD sources,
but at least the dependency problem would not be that hard any more.
I am saying "hard", because, apparently, Haskell makes packages
transitively dependent on the build flags, managing which on the scale
of SBo is unrealistic.

Then, a typical script would essentially copy a bunch of "cabal" files
into a ./vendor/, and use the "cabal" command to build a package using
files from that directory only.

However, recently I have spent a day to try and build "cabal-install",
and failed. The backbone libraries build fine on Slackware with SBo (I
mean haskell-Cabal-syntax, and haskell-Cabal itself), however,
"haskell-hackage-security" fails with some obscure flag dependencies.

Suggestions on how to build it are welcome.

Your sincerely,
Vladimir Nikishkin (MiEr, lockywolf)

More information about the SlackBuilds-users mailing list