On 11/18/2016 06:03 PM, Adam Williamson wrote:
On 2016-11-18 08:30 AM, Ralf Corsepius wrote:
> Actually, I am inclined to believe only packages which are replaced by
> others within Fedora or are definitely dead can be obsoleted. Package
> which a just being retired for current/temporary lack
> interest/maintainer should not be obsoleted.
I disagree, for exactly the reason we're discussing here: it tends to
break upgrades. At some point the dependencies for the package will stop
being available in a new release, and then upgrading to that release
will be problematic.
I don't really like gnome-software's behaviour (as explained in this
thread) of silently removing packages that are blocking the upgrade,
because it could be quite destructive. But as long as retired packages
aren't obsoleted, I can't see how it can do anything besides that, or
asking the user, which is really a bad idea for many users who just
won't know what to do and will be very stressed trying to pick a choice.
gnome-software doesn't silently remove packages that are blocking the
upgrade, it asks the user before removing anything. I'd argue that
asking the user is a good behaviour, at least for leaf packages that
they might have manually installed. Maybe not that much for libraries
that were only installed just to satisfy dependencies.
Also, going down the mega-obsolete-package route would cause
gnome-software to _stop_ warning about packages that get removed during
the upgrade: obsoletes are just silently handled. This may not be what
users expect.
I do think there is value in having a mega-obsolete-package, but mostly
to get unmaintained and possibly vulnerable software removed from users
systems. I don't think it would make upgrades less problematic because
both dnf and gnome-software can already remove problematic packages
without needing obsoletes.
I guess one tweak I would be okay with would be a sort of
weaker-Obsoletes mechanism: some kind of field that provides a hint to
package managers that by default it's OK for the packaging system to
remove a given package if it's blocking another transaction. Then we
could tag all retired packages with that, and people who really want to
keep ancient unmaintained packages around could have a flip to switch
that says 'don't do that'. Of course, it's one more conditional for some
poor sap to maintain.
The package not being available in any repos could be that hint, maybe?
--
Kalev