On 03/26/2012 08:05 AM, Ricardo Rocha wrote:
(resending after subscribing to the list)
Hi all.
The lcgdm packages are using alternatives, as several flavors are provided - mysql, postgresql, ... backends.
While trying to provide an upgrade path to some of our users taking legacy packages - as in from other repositories, not fedora - by using obsoletes/provides i've bumped into an issue with the upgrade of the init scripts. The old packages are not using alternatives, so the init.d script is an actual file, not a symlink. While upgrading to the new fedora package (which would obsolete/provide the old ones), the old init.d script is left there, as it's a real file. This breaks the service as the daemon binaries are now (as they should) in /usr/sbin - they used to go in /usr/bin.
Debian seems to provide an option for these cases: # man update-alternatives """ If some real file is installed where an alternative link has to be installed, it is kept unless --force is used. """
but i can't find anything similar in Fedora. Is there a solution other than documenting that people should remove the old package and install the new one in two steps?
Why not just test if the target is a symlink or not prior to the update-alternatives call (and remove or rename it as you see fit, so it no longer would interfere)?
-- rex