ubuntu / app-center

App Store for Ubuntu made with Flutter 🧡 💙
GNU General Public License v3.0
650 stars 115 forks source link

Support protected system packages #1106

Open AsciiWolf opened 1 year ago

AsciiWolf commented 1 year ago

GNOME Software / Snap Store / KDE Discover have support for system apps (and other packages) that are compulsory and are not uninstallable. When looking at the latest screenshot of the Flutter Software App, it looks like that all core packages/Snaps are actually user uninstallable. It is extremely important to implement a similar mechanism since it prevents users from removing system packages and breaking their system. The way it is implemented in GNOME Software / Snap Store / KDE Discover is by using the compulsory_for_desktop tag in AppStream metadata, however, that is not the only way how it could be implemented in the Flutter Software App.

Feichtmeier commented 1 year ago

This is also interesting for https://github.com/ubuntu-flutter-community/software/issues/827

Thank you @AsciiWolf !

AsciiWolf commented 1 year ago

For reference, this is how the protected packages look like in the gnome-software based Ubuntu Software on a clean Ubuntu 23.04 system:

1gs

2gs

And regular packages without AppStream metadata (for example most of the critical system packages) are not displayed at all.

This is how it looks like in the Flutter based Software app (latest 0.3.0-alpha from preview/edge Snap):

1us

2us

3us

Notice that all the critical system packages/Snaps are there and I have actually confirmed that it is possible to uninstall them by clicking the "Remove" button.

It is also possible to uninstall the Software app itself:

4us

AsciiWolf commented 1 year ago

A good start could probably be disabling removal of the snap-store app itself. :-)

anasereijo commented 10 months ago

closing as we have now a 'new' store. please re-open if it's still an issue

AsciiWolf commented 10 months ago

@anasereijo Was this ticket left open by mistake? Anyway, I am not sure what "new store" you mean. This ticket is for the Flutter app-center.