Well, I havn’t seen this recently. Maybe because aptitude has rename ‘upgrade’ do ‘safe-upgrade’, to make it obvious, that ‘dist-upgrade’ might do unwanted things.

Back when I was the maintainer of the galeon webbrowser package, I got bug reports and reports on IRC each time the mozilla packages was updated.

The galeon package used to have a conflict with mozilla of any newer major version than the one it was built with. This was a good thing - mozilla APIs were chaning, and when Mozilla was upgraded from let’s say version 1.5 to 1.6, it would break galeon. Galeon would at least need to be recompiled or might even need source changes. So there was plenty of reason to add this conflic.

People were using ‘dist-upgrade’ all the time, and what dist-upgrade did then was to upgrade the mozilla package by removing galeon. And they couldn’t even install galeon back again, because the new mozilla had replaced the old mozilla in unstable. And each time, I basically had to tell people “well, you shouldn’t have used ‘dist-upgrade’, it’s for upgrading between major version of Debian, not for daily use.

In fact, running dist-upgrade right now would uninstall ‘iceweasel-dom-inspector’ for me. I guess this is exactly due to the same reasons.

I’m wondering whether we should maybe do a ‘uninstall-ok’ list (or ‘dist-upgrade-hints’) and ship it with the distribution. I’d then modify the ‘dist-upgrade’ command to

  • removing any package in this ‘hints’ list to satisfy dependencies is okay (i.e. as it is now for any package)
  • prompt for confirmation for any other package

Note that I’m not suggesting to automatically remove any package. It also is not supposed to be a list with all packages that ever were removed. But just packages where it’s known that they might need to be removed. Nor is this list meant to do away with aptitudes automatic uninstalling of packages that were only installed to satisfy dependencies. (If you are still using ‘apt-get’, you should really consider to use ‘aptitude’ instead. It will automatically uninstall all those ‘libfoo13’ packages for you if you use it consequently. Whenever you install a package with ‘apt-get’, aptitude won’t know if it was manually selected or automatically, and assume manual.)

So let’s say there was experimental-browser in some revision, built with mozilla version 1.7, and conflicting to mozilla 1.8. The browser is discontinued, and ends up in the ‘uninstall-hints’ file. If the user does a dist-upgrade, it will be removed as usual.

However, if ‘galeon’ has such a conflict and is still alive, it won’t be listed in unstables ‘uninstall-hints’ file, and thus not considered for automatic uninstallation. So people who unnecessarily run dist-upgrade will still suffer less (unless they chose to remove it anyway!)

However, if the user has built his own ‘custom-webbrowser’ package, it will cause a bigger warning when running dist-upgrade, because aptitude doesn’t have that package in the hints file. So the users of local packages actually have a benefit here, too.

P.S. Sorry; I don’t have time to follow planet debian these days. Still if you have feedback it’s recommended to use planet or the mailing lists!