#587971 dpkg-divert: should support updating diversions: changing the --divert name and/or --package name

Package:
dpkg
Source:
dpkg
Description:
Debian package management system
Submitter:
Andreas Beckmann
Date:
2015-03-29 00:03:16 UTC
Severity:
wishlist
#587971#5
Date:
2010-07-03 12:13:09 UTC
From:
To:
Hi,

it would be nice if dpkg-divert supported updates to the diversions, so
one can change the --divert name or the --package owning the diversion
directly through a single dpkg-divert call as in the following example.

There is 'some' package providing an awful version of /the/file which was
previously diverted by the package 'foo' to provide a much better version
of /the/file. But now 'foo' has been renamed to 'bar' (or at least /the/file
moved from 'foo' to 'bar') and now the package 'bar' has to take over the
diversion.

'bar' would do the following in it's preinst:

dpkg-divert
  --update	# example new subcommand
  --rename	# move around things in the file system if neccessary
  --old-package foo	# the package that currently own the diversion
  --package bar		# the new package that shall own the diversion
  --old-divert /the/file.not-foo	# file from someone else is currently there
  --divert /the/file.not-bar		# file from someone else should be here in the future
  /the/file				# our much better file

Of course the arguments to --old-package and --new-package must match
the database.

If either --old-package or --old-divert is omitted, only change the
property where there is an --old-* parameter while the other must match
the current database.

Eventually the --update option could be combined with --add so that it
either creates the diversion if there was none previously or migrates
it.

Packages doing this need to ensure proper versioned Conflicts/Replaces
(Breaks/Replaces will probably be not enough) so that up- and down-grade
paths work.


Andreas