GNOME Bugzilla – Bug 732406
Software sources: never remove core system packages
Last modified: 2016-02-23 09:45:57 UTC
I decided to investigate what happens if, when browsing Software Sources in Software 3.12.2, I press the big red remove button on the GNOME 3.12 copr. You could probably predict that it uninstalled GNOME and gdm and the system was thus hosed, but the behavior I was hoping for was for each package in the copr to have been replaced by the equivalent package in Fedora 20. This is what would happen when removing an openSUSE repository, for example, and I presume it's how Ubuntu PPAs function as well. If you don't want to do this, then we should figure out some way to prevent the user from uninstalling his desktop: since Software lists every app that is going to be removed, the user has no reason to expect it's going to remove more.
A situation where core parts of the OS (gdm, gnome-shell, ...) come from some optional software repository is just not something we can easily accommodate. If we were serious about a robust system, we would not even allow replacing system components from such an optional repository.
(In reply to comment #1) > A situation where core parts of the OS (gdm, gnome-shell, ...) come from some > optional software repository is just not something we can easily accommodate. > If we were serious about a robust system, we would not even allow replacing > system components from such an optional repository. In every distro we care about (Fedora/Ubuntu/openSUSE), the command line is used to install extra repos, and the most popular repos by far are the ones with the latest GNOME or KDE. I'm pretty sure (a) you're right, such repos are evil, and (b) we have no chance of changing this. Better to use a heuristic: if a repo contains anything that gnome-software won't let you uninstall, it shouldn't let you remove that repo. Does that sound good?
(In reply to comment #2) > Better to use a heuristic: if a repo contains anything that gnome-software > won't let you uninstall, it shouldn't let you remove that repo. Does that sound > good? I suppose. We just need some UI mockups from Allan on what to show in this case.
Allan, could you help us with this? We want to show that the software source in uninstallable because it contains important operating system software.
I had marked the severity as major since this bug results in the complete removal of the user's desktop environment.
I don't think there is really any design question here. If we find the repository provides essential system components, we should say so in the details label, and gray out the remove button. Thats easy. What may be hard though is finding out if that is the case.
Recently I installed spot's Chromium repo in order to take some screenshots of Chrome. Today I decided to remove it using GNOME Software. GNOME Software proceeded to remove tons of unrelated applications (including itself); it looked like it was removing all of GNOME before I killed packagekitd. I really think we need to remove this dialog until we can figure out how to implement Matthias's suggestion in comment #6. List of packages included in the copr: http://copr.fedoraproject.org/coprs/spot/chromium/monitor/ (Also, if anyone knows how to revert a PackageKit transaction, so I don't have to spend a day reinstalling Fedora, that would be dandy. Something equivalent to 'dnf undo' would be ideal....)
The issue "Do not allow uninstalling anything that also removes the core system packages" is already reported as bug 723922. Note that "anything" may also mean a repo. The issue "Warn user when removing one thing can also remove another important thing" is already reported as bug 711171.
I agree, this bug is basically the same as bug #723922, but this one is specifically about repos, so it's worth keeping it open. This bug can be solved in one of two ways: * Refuse to remove the offending repo. * Downgrade all software in the repo to the original system versions.
We don't have the sources remove button anymore, so I think we can close this. It turns out installing random repos that update core system packages makes them hard to remove.