Hi,

On Thu, May 18, 2023 at 10:30:48PM +0400, Andrey Rakhmatullin wrote:
> Looks like the file in cadabra2, let's say, provides integration between
> it and python3-notebook. So while it may make sense to not have cadabra2
> depend on python3-notebook, it doesn't make sense for them to conflict, as
> just removing this file is strictly better. The actual solution (as we
> can't just keep this as is because of dpkg) should be moving the file to
> the real path, which is, if I'm not mistaken,
> /usr/share/javascript/codemirror. That directory is provided by
> libjs-codemirror but I don't know if it makes sense for cadabra2 to depend
> on it or not.

I think the characterization that we cannot do this due to dpkg is not
accurate. It is not clear how dpkg should deal with symlink vs directory
conflicts in general. In practice, what happens is that the outcome
depends on the unpack order, so yeah I do think this very much is a bug
in the packaging.

I'm not sure what you want to achieve here. If this is about two
competing implementations where one is strictly superior to the other,
then maybe dpkg-diverting the lesser one would be reasonable? The
diversion mechanism works entirely without adding a relationship between
the packages.

Another option is use of update-alternatives, which also allows
specifying a preference on the packaging level while also providing a
user choice.

I lack the context of the package at hand, so I'll leave that up to you,
but I think there is sufficient options on the table for dealing with it
in a good way. Please choose wisely.

Helmut

Reply via email to