Re: Bug#482528: heimdal-clients,krb5-user
Michael Tautschnig <email@example.com> writes:
> Well, if alternatives is the wrong approach, let's try an analytical approach:
> - heimdal-clients and krb5-user must not both be installed: Clearly,
> conflicts: is indicated. Then both may provide kadmin. It will break
> no system (they can't both get installed right now).
Bastian is arguing that this violates Policy 10.1:
Two different packages must not install programs with different
functionality but with the same filenames. (The case of two programs
having the same functionality but different implementations is handled
via "alternatives" or the "Conflicts" mechanism. See Maintainer
Scripts, Section 3.9 and Conflicting binary packages - Conflicts,
Section 7.4 respectively.) If this case happens, one of the programs
must be renamed. The maintainers should report this to the
debian-devel mailing list and try to find a consensus about which
program will have to be renamed. If a consensus cannot be reached,
both programs must be renamed.
I think I disagree, but I'm not sure.
The crux of my disagreement is that I think the bar for using alternatives
is higher than the bar for using Conflicts. I think that kadmin provides
sufficiently similar functionality in both heimdal-clients and krb5-user
to not qualify as "different functionality" in Policy 10.1, since both
binaries fundamentally do the same thing (manage a Kerberos realm).
However, since the *API* is completely different, I don't think they
qualify for alternatives. Policy 3.9 says:
All packages which supply an instance of a common command name (or, in
general, filename) should generally use update-alternatives, so that
they may be installed together. If update-alternatives is not used,
then each package must use Conflicts to ensure that other packages are
de-installed. (In this case, it may be appropriate to specify a
conflict against earlier versions of something that previously did not
use update-alternatives; this is an exception to the usual rule that
versioned conflicts should be avoided.)
which is what we're complying with right now. I don't think this is
hair-splitting, but I could be wrong.
Policy doesn't provide any real guidance at the moment on when
alternatives are appropriate and when they aren't.
> - Conversely, the packages do not conflict. Then they must not both
> provide kadmin. I guess that there is consensus that even neither of
> them must ship kadmin.
> - If no kind of aliasing is provided, surely all scripts are going to break.
> It will force users to clean up their scripts. A migration path may be
> provided, but this will just delay breakage.
It will also break all scripts written for other systems that someone
tries to use on Debian.
> - If an alias is provided (be it alternatives or whatever), it will
> not cause scripts to break whenever the link points to the proper
> kadmin. Determined by luck or proper system administration. It will
> break fewer systems. Alternatives at least provide a clean
> interface to such a shared alias. They may be inappropriate, though,
> as pointed out.
The other option, just for the sake of completeness, is to have one
package win and the other lose and have to rename only its kadmin binary.
Russ Allbery (firstname.lastname@example.org) <http://www.eyrie.org/~eagle/>