Bug#910480: ghc: missing Breaks+Replaces+Provides for newly bundled libraries

Joachim Breitner nomeata at debian.org
Thu Oct 18 22:40:33 BST 2018


Hi,

Am Donnerstag, den 18.10.2018, 22:45 +0300 schrieb Ilias Tsitsimpis:
> On Thu, Oct 18, 2018 at 08:43PM, Joachim Breitner wrote:
> > Am Donnerstag, den 18.10.2018, 12:56 +0300 schrieb Ilias Tsitsimpis:
> > > There seems to exist the debian/provided_substvars script which tries to
> > > add Provides+Conflicts for ghc's bundled libraries, but for some reason
> > > mtl is explicitly ignored. I am not sure why this (as well as other
> > > packages) are being ignored, so I have CC-ed Joachim who wrote that
> > > script.
> > 
> > I think these are packages that come with the GHC source (e.g. to build
> > other included tools), but that we do not want to provide from the ghc
> > package, as there is a separate stand-alone package doing that.
> 
> I think I may be missing something, so let me take libghc-mtl-dev as an
> example. GHC-8.4.3 includes the mtl library which was not included in
> GHC-8.0.2. The Debian package for ghc-8.4.3 does not provide
> libghc-mtl-dev, because, as you said, there is a separate, stand-alone
> package doing that. But then, libghc-mtl-dev fails to install with:
> 
>    trying to overwrite '/var/lib/ghc/package.conf.d/mtl-2.2.2.conf',
>    which is also in package libghc-mtl-dev 2.2.2-2
> 
> as the mtl library is already provided by ghc (see #910008).
> 
> It seems to me that the Debian ghc package needs to Provides+Conflicts
> with libghc-mtl-dev as it does with libghc-cabal-dev. Is there anything
> special with mtl or any of the other packages that are excluded by that
> list?

there are two ways of solving the problem:
 * ghc starts to Provide+Conflict libghc-mtl-dev
 * ghc stops shipping /var/lib/ghc/package.conf.d/mtl-2.2.2.conf

Judging from
https://ghc.haskell.org/trac/ghc/wiki/Commentary/Libraries/VersionHistory
mtl is indeed now shipped “officially” with GHC. So yes, remove it from
@ignored. The mtl has been in @ignored since 6.12.1, long before I got
involved, so don’t assume it is all up-to-date.

The commit messages in
$ git log -p debian/provided_substvars
are somewhat helpful.

> > >  * Remove all ignored libraries except for ghc, although I believe we
> > >     can safely remove that too, and Provide/Conflict libghc-ghc-dev.
> > >     @nomeata please comment on whether this is the right approach.
> > 
> > If you start actually providing them with ghc, then yes. But it would
> > mean that you cannot upgrade them independently any more.
> 
> How can I choose which libraries are provided by ghc? Taking mtl again
> as an example, how can I tell ghc to not install the mtl library, and
> provide it through a separate package?

If mtl is now a dependency of, say, ghc or another library provided by
GHC, then you can’t really. I thought there might have been some code
in debian/ to control that, but I don’t see it right now.

> Also, wouldn't we be able to upgrade them independently, if we used
> versioned Conflicts (as has been previously be done for libghc-cabal-dev)?
> Take libghc-stm-dev as an example. GHC-8.4.3 provides stm-2.4.5.0 but
> the user should be able to install libghc-stm-dev-2.4.5.1 if the Debian
> ghc package Conflicts with libghc-stm-dev (<< 2.4.5.1).

Oh, yes, that might work indeed.

> Again, thank you very much for you input, this is all new to me.

It’s very old to me, which is not much better :-)

Cheers,
Joachim
-- 
Joachim “nomeata” Breitner • nomeata at debian.orghttps://j.oach.im/
  
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-maintainers/attachments/20181018/e36b9843/attachment-0001.sig>


More information about the Pkg-haskell-maintainers mailing list