Question about removal of cyrus-sasl2-mit

Russ Allbery rra at debian.org
Mon Dec 11 20:06:25 CET 2006


Roberto C Sanchez <roberto at connexer.com> writes:
> On Mon, Dec 11, 2006 at 10:49:50AM -0800, Russ Allbery wrote:

>> Wait, woah.  You shouldn't just remove libsasl2-gssapi-mit from etch
>> without a transition package so that people who are upgrading from
>> sarge still have the MIT GSSAPI SASL module installed.  That would
>> break a bunch of our servers.
>> 
>> I agree with the removal since the base SASL libraries are now newer
>> and the old modules may well not work, but we should provide a better
>> upgrade path than just having the package disappear.

> Please read my original message.  The new cyrus-sasl2 packages are
> linked against MIT Kerberos.

I did, and I understand that.  You're not understanding the problem, I
think.

> In fact, the new libsasl2-modules-gssapi-mit package replaces and
> conflicts with the one produced by cyrus-sasl2-mit.  Thus, the upgrade
> path has already been planned and implemented.

No, that still doesn't provide an upgrade path.  That means that the right
thing will happen if someone manually installs
libsasl2-modules-gssapi-mit, which isn't the same thing.

If I have a system that has:

    libsasl2
    libsasl2-gssapi-mit

installed and I do an upgrade, I'm going to end up with a system that has
the new libsasl2 and continues to have libsasl2-gssapi-mit installed on
it.  There's no conflict in libsasl2-2 that would remove
libsasl2-gssapi-mit and libsasl2-gssapi-mit only requires libsasl 2.1.19
or later.  That system is going to end up with an old, broken module
installed that will probably fail to work.

If make libsasl2-2 conflict with libsasl2-gssapi-mit, then the latter
package will get removed, so at least the system isn't broken.  However,
nothing is then going to go find libsasl2-modules-gssapi-mit and install
it.  That's not how Conflicts and Replaces works; apt isn't smart enough,
when seeing a conflict that can be resolved by just removing a package, to
instead go seek out a package that replaces it.

You need to provide a transitional package named libsasl2-gssapi-mit that
depends on libsasl2-modules-gssapi-mit and version the Conflicts and
Replaces on libsasl2-modules-gssapi-mit.  You probably also want to make
libsasl2-2 conflict with the old libsasl2-gssapi-mit.  Otherwise, so far
as I can tell, people who have the current MIT GSSAPI modules installed
will not get the new modules after a sarge to etch upgrade.

That transitional package can then be removed for lenny.

-- 
Russ Allbery (rra at debian.org)               <http://www.eyrie.org/~eagle/>



More information about the Pkg-cyrus-sasl2-debian-devel mailing list