Bug#723979: libmapserver-6.2.1{, -dev}: transitional packages uninstallable

Andreas Beckmann anbe at debian.org
Sun Sep 22 00:23:58 UTC 2013


On 2013-09-22 01:30, Sebastiaan Couwenberg wrote:
>> But do you really need transitional packages for a shared library?

>From changelog and bugs it looked like it could be the right thing for
libmapserver* (I didn't look at the package at all): moving from an
unstable API (with hopefully very strict dependencies on the library) to
a more stable one (i.e. a proper soname). But it looked outright wrong
for libosgearth1->2 (soname bump).

> As far as I know transitional packages are standard procedure when
> packages are renamed.

A soname bump changes functionality, so this is not renaming but
removing one package and adding another one with a different
functionality ...
Even if you no longer build the old package, it will be kept installed
on users systems as long as it is still needed by some package that is
installed - but it won't be available any longer for new installations.
Once all rdepends have been rebuilt and upgraded, it can be removed.

> Taking your comments about osgearth (#723980) in
> consideration, it seems transitional packages are not needed for shared
> libraries.

Even worse: they would cause lots of problems.

> The API will be incompatible with the one of the old package, so it's
> wrong to still provide the old package. The old API is not available in
> the new package.

In case you have file conflicts between the old and new package names
(something shipped with the same name at the same location in both
packages - ideally that shouldn't happen in only-library packages),
you'll need to add Breaks+Replaces, otherwise leave them out.

> With the transitional packages local builds of MapCache with MapServer
> support will not be removed because its (unversioned) dependency on
> libmapserver will still be satisfied. While the actual libmapserver is
> not available anymore.

But it will break MapCache because the API promised by the old name is
no longer available, so you gain nothing. Ignoring the old library (just
don't build it any more) will get the effect you want: MapCache is kept
installed *and working* using the old library.

> Leaving out the transitional packages, MapCache would remain functional
> if only libmapserver is installed. It will not be considered for update
> if the new libmapserver1 is not pulled in via any of the other mapserver
> packages.

There is no "upgrade path" for libmapserver (besides "disappear if no
longer needed"). There will be an upgrade path for MapCache once it has
been rebuilt against the new library.
In the worst case the old library is not removed automatically after the
last consumer disappears, but nothing will use it ever again.

> The case for MapCache is not an issue for Debian as it hasn't been
> uploaded yet. But the packages are already part of the UbuntuGIS PPA.

That needs to be solved there and not in Debian, but it's probably just
a MapCache rebuild being needed.

>> Wouldn't a transition with binNMUs on all rdeps be better?
> 
> If there were rdeps in Debian it would. But there fortunately aren't any
> yet, but soon MapCache will become the first reverse dependency in Debian.

:-)


Andreas

PS: I haven't looked at either the old source package or the new one at
mentors.



More information about the Pkg-grass-devel mailing list