Control: severity -1 serious On Fri, Aug 07, 2020 at 12:28:17PM +0200, Stefan Bühler wrote: > This is an actual problem, as libfam0 doesn't provide the FAMNoExists > symbol, but programs building against libgamin-dev might detect the > symbol as available and use it.
I concur. > So libfam0 can't properly provide "libfam.so*" from libgamin0, and > shouldn't be allowed to by libgamin0.shlibs. You mix two separate problems here: * libfam0 has functionality that libgamin0 doesn't. This is #438330. * libgamin0 has functionality that libfam0 doesn't. This is #510368. To fix the former, libgamin0 should stop providing libfam0. The relevant bug is tagged wontfix and as far as I can see, it no longer has practical consequences. It also is kinda intentional. Dropping the provides would against the intention of gamin. However this bug has practical consequences now. If you build lighttpd against gamin and then use it with fam, it breaks. I argue that therefore, the shlibs part and providing libfam-dev is wrong. How bad is this? If your gamin/fam consumer package wants to support both fam and gamin, it can simply build against fam and work with gamin. If you want to integrate with gamin, you build with gamin. So it doesn't actually add value. The trade-off seems clear here. So I think the part where the shlibs file claims libfam0 to suffice is a release critical bug. Reasonably using libgamin-dev can result in a binary that fails to run. In effect, this is similar to a missing dependency and missing dependencies are release critical. A possible solution would be adding a symbol file such that using a gamin-specific symbol results in a proper libgamin0 dependency while using any other symbol would continue to result in a libfam0 dependency. I'm not sure whether the effort is warranted given that fam is dead. > I think fixing libgamin0.shlibs and dropping fam from the archives is > the smoothest path to fixing this mess. Well, yeah. Removing fam removes the whole mess of compatibility. Helmut