fedora-silverblue / issue-tracker

Fedora Silverblue issue tracker
https://fedoraproject.org/atomic-desktops/silverblue/
125 stars 3 forks source link

[RFE] Ship all applications available in Workstation by default #289

Open JamesBelchamber opened 2 years ago

JamesBelchamber commented 2 years ago

Currently Silverblue ships with a very bare-bones set of packages compared to Workstation, and is missing these applications:

(Weirdly, it also seems that Silverblue ships GNOME Extensions while Workstation doesn't..)

Let's install these packages, either as Flatpaks or as layers on top of the base image, so the default Silverblue experience matches Workstation.

tpopela commented 2 years ago

Currently Silverblue ships with a very bare-bones set of packages compared to Workstation, and is missing these applications:

* GNOME Photos

Not available as a Fedora Flatpak and actually might be removed from future Workstation - see https://pagure.io/fedora-workstation/issue/164

* GNOME Videos (Totem)

Currently not possible to have a Fedora Flatpak as there is no way to install additional codecs into it. Also the recommended way is to install Totem from Flathub.

* LibreOffice

This one has a Fedora Flatpak and could definitely be added.

* Document Scanner

Not possible to have a Flatpak due to technical limitations (waits on device portal to be implement in Flatpak)

* Problem Reporting (GNOME ABRT)

See https://github.com/fedora-silverblue/issue-tracker/issues/283 - currently not possible and I'm hesitant to do so as it brings additional 80+ packages into the base image (at least when I tried it 2 years ago).

* GNOME Boxes

Definitely not something that should be part of the base image due to its dependencies. There is a work in progress (by @felipeborges) on finally having the GNOME Boxes as a Fedora Flatpak - then we can ship it as a Flatpak.

* Rhythmbox

Not available as a Fedora Flatpak and actually might be removed from future Workstation - see https://pagure.io/fedora-workstation/issue/33

* Cheese

We didn't want to include Cheese as its future is not clear and it was supposed to be replaced by something else in recent GNOME releases - see https://pagure.io/fedora-workstation/issue/166

Let's install these packages, either as Flatpaks or as layers on top of the base image, so the default Silverblue experience matches Workstation.

I honestly don't know whether that's what we want to do - we are trying to develop a next generation desktop operating system and starting to add more and more stuff into the base image isn't a way to go. I would rather suggest users to install what they need from Flathub (if the application exists there) or overlay it. We want the Silverblue experience to be better than the Workstation one, but until we get there it might be that in some aspects the Workstation will provide better out of the box one.

JamesBelchamber commented 2 years ago

I don't see a reason that a next-generation desktop operating system wouldn't match Workstation for features out of the box - any decision to include (or not) an application on the Workstation desktop surely also applies to Silverblue? In theory Silverblue is aiming for the same user profile (as well as leveraging the unique advantages of the platform to expand the userbase).

I don't really understand why it's technically impossible to ship Silverblue as a product with layers on top of the base image (I'll try to do some more reading, where such things are documented) but the decision to include e.g. GNOME Tour but not Document Scanner in the base image seems arbitrary - a new user to Silverblue might just assume it doesn't work with scanners.

travier commented 2 years ago

I don't really understand why it's technically impossible to ship Silverblue as a product with layers on top of the base image (I'll try to do some more reading, where such things are documented) but the decision to include e.g. GNOME Tour but not Document Scanner in the base image seems arbitrary - a new user to Silverblue might just assume it doesn't work with scanners.

Shipping packages as pre-installed layered packages should be possible but would require work in several places, including the build infrastructure, thus making it not an easy task.

Regarding adding "missing" packages to the base image by default: Unlike Workstation, it's easier to add things to Silverblue with package layering than to remove them. Adding packages to the base image also increases its size for everyone. Thus having less packages installed by default is another trade off for faster updates.

Adding more Flatpaks by default only impacts new users so this is probably what we should focus on.

JamesBelchamber commented 2 years ago

I'm not married to the idea of pre-layered packages, but I do think that the sooner you can close the gap vs Workstation the sooner Silverblue can be considered a first-class Fedora Edition. This is just one way you might approach that without increasing the size of the base image. Flatpaks are the future but we're not there yet, and Silverblue is a compelling improvement on Workstation today (without all the promise of future Flatpak development).

I never managed to find where the list of Silverblue preinstalled Flatpaks are kept but if you can point me towards them I'll raise a PR against the packages we can include (..LibreOffice?).

exfat-matt commented 2 years ago

As a Silverblue user I always felt the first boot is a bit lacking due to missing default applications. I very much agree we should provide a solution to have all the same software Workstation has on first boot, even if we temporarily layer packages while Fedora Flatpaks are being made.

Respectfully I don't agree with the base image size argument against pre-layering because a) Fedora Workstation comes with this software and there is no issue with the base image size and b) its already tedious to add on media backends other than the GNOME defaults, so what is another reboot to remove Totem and Rhythmbox3.

Thank you for the information @tpopela, a couple questions on what you posted as well:

  1. "Also the recommended way is to install Totem from Flathub." - Where can users find this guidance to install Totem via Flathub vs layering?
  2. (Re: Rhythmbox3) "Not available as a Fedora Flatpak and actually might be removed from future Workstation" - GNOME Music is not currently an available option for default Music application... do you know if this will change, or is perhaps the default applications section of the settings menu about to get deprecated?
tpopela commented 2 years ago

I'm not married to the idea of pre-layered packages, but I do think that the sooner you can close the gap vs Workstation the sooner Silverblue can be considered a first-class Fedora Edition.

We really don't share the same view on this (i.e. in the Firefox issue). From my point of view it's better if we won't put those problematic applications into the base image and leave it on users to overlay them, because in fact not all users need them. I don't want to do anything now that might make our life way harder in the future (i.e. when removing it or moving it to Flatpak - there is no way (yet) to install additional Flatpaks automatically after user installs the system).

This is just one way you might approach that without increasing the size of the base image. Flatpaks are the future but we're not there yet, and Silverblue is a compelling improvement on Workstation today (without all the promise of future Flatpak development).

I never managed to find where the list of Silverblue preinstalled Flatpaks are kept but if you can point me towards them I'll raise a PR against the packages we can include (..LibreOffice?).

https://pagure.io/pungi-fedora/blob/main/f/fedora.conf#_789 - it's still pointing to F35, so once I will move it to F36 ( when https://bodhi.fedoraproject.org/updates/FEDORA-FLATPAK-2022-274a792493 will hit the stable ), then I will add LibreOffice there.

tpopela commented 2 years ago

Respectfully I don't agree with the base image size argument against pre-layering because a) Fedora Workstation comes with this software and there is no issue with the base image size and

Workstation doesn't have any notion about the base image - it's just a collection of RPMs. On the other hand for ostree based operating system you want to have the smallest and curated base image so the operations are fast, safe and so on - to really enjoy the benefits of ostree based OS. You could have everything in the base image as Workstation but it might broaden the possibilities that something will go wrong with dependencies and other things.

b) its already tedious to add on media backends other than the GNOME defaults, so what is another reboot to remove Totem and Rhythmbox3.

Thank you for the information @tpopela, a couple questions on what you posted as well:

1. "Also the recommended way is to install Totem from Flathub." - Where can users find this guidance to install Totem via Flathub vs layering?

There is no guidance - the upstream (and in this case Fedora as well) maintainer stated this several times - and maybe it's the "tribal" knowledge as he's part of the same Desktop team at Red Hat.

2. (Re: Rhythmbox3) "Not available as a Fedora Flatpak and actually might be removed from future Workstation" - GNOME Music is not currently an available option for default Music application... do you know if this will change, or is perhaps the default applications section of the settings menu about to get deprecated?

For that see https://pagure.io/fedora-workstation/issue/33

travier commented 2 years ago

Respectfully I don't agree with the base image size argument against pre-layering

To clarify things here: pre-layering does not exist right now. See https://github.com/fedora-silverblue/issue-tracker/issues/252#issuecomment-1137060666

JamesBelchamber commented 2 years ago

When people install Silverblue and see that it's missing applications, the reasonable assumption is that Silverblue can't support those applications yet. But that's not true - every package can be installed either as an RPM or as a Flatpak (even ABRT). The way Silverblue is currently distributed sells the current capabilities of Silverblue short. Maybe an "are we workstation yet" approach could be considered, so we can see where Silverblue falls short (and why). But so far as I can see, we are Workstation - we're just not "perfection" (and never will be).

I suppose this is ultimately just a design decision for project leadership to make a call on. I would encourage closely tracking Workstation. If/where desktop design decisions diverge from Workstation, documenting those decisions (and how they came about) would be useful. There seems to be some agreed design considerations that the community doesn't know about (or, at least, I don't know about).

If the goal of Silverblue is to only show off the parts of Workstation that can be Flatpak'd then.. okay, but there are many applications that Silverblue ships with as RPMs. Why is Firefox shipped as part of the base image, but not Document Scanner or GNOME Boxes? They both work, and neither pull in crazy dependencies (I don't think?). If this is the goal then shouldn't Firefox be shipped as a Flatpak, warts and all, so people can see and test with each iteration how much of their workflows are blocked by the deficiencies vs the RPM?

Right now, Silverblue's default install sits between the two - neither an example of how much of Workstation's desktop applications can be Flatpak'd, nor an example of how much of Workstation can be Silverblue. I'd like it to be a showcase of how much rpm-ostree can fill the gap while Flatpak catches up, but I see the value of Silverblue being a platform for people to test whether their workflows are able to be migrated to a Flatpak'd future yet. But where we are, it's sort of not suitable for either - hence the feature request.

JamesBelchamber commented 2 years ago

I've gone away and built a Silverblue image with the following packages added, which adds 61 packages and 35.1MB to the base image:

As discussed in #288, I would prefer these to be preinstalled layers - but since this is not (yet) possible, a simple rpm-ostree override remove would work to remove any packages people don't want and would closely match the experience in Workstation (where the working group believe these packages are worth pre-installing). If the Workstation working group decide to remove any of these packages from Fedora then Silverblue can mirror that decision - and as these applications become Flatpak'd you can remove them from the base image.

This leaves the following packages:

It really feels like this is within reach of making Silverblue 37 a drop-in replacement for Workstation 37.

(Another thought - is this a problem that could be solved through a "minimal" image, which doesn't include any of these packages and also removes Tour, Help, Firefox and Disks? There seems to be at least some demand for that within the community.)

lumingzh commented 2 years ago

No, I wish the base image as minimal as possible. If the app has flatpak version, then can preinstall it as flatpak, otherwise not. The first thing I do after installed silverblue is remove firefox and install the flatpak version.

gjask commented 2 years ago

I kinda agree that base image should be as minimal as possible as long as it maintains core desktop functionality. As a user I have opposing experience to @JamesBelchamber and @exfat-matt I believe it is actually better to have "clean" system from the start and leave choice and installation of desired applications to user. Because you can never anticipate needs and tastes of every user and you cannot have prepared all applications for everybody.

In my opinion it is better to improve process of adding new application via flatpaks or as layered packages if must be. So if there are users who fall under impression that Silverblue is missing some functionality because there is no pre-installed application for that, we probably should better educate on how that or any application can be added after system installation.

JamesBelchamber commented 2 years ago

So, I think Silverblue needs both - out-of-the-box it should have the same experience as Workstation (because Workstation is carefully crafted by a working group to give the best out-of-the-box desktop Linux experience), and power users should be able to remove "cruft" without having to punch holes in the base image.

I built this repository based on this idea. It creates an image that matches Workstation, and also a "minimal" image which contains nothing. I'm currently using the minimal version (with the Flathub packages) but I can also show off Silverblue as a proper Workstation replacement.

Silverblue could ship with this Workstation image, and also build the minimal image alongside it - power users could then simply run rpm-ostree rebase <minimal-image> and then happily layer on anything they want. There could be a note in the docs/faq to remind people that the minimal image exists for this purpose. But for most people installing Silverblue, they'll get the full-fat Fedora experience.

q30a commented 2 years ago

The minimal set of pre-installed applications on Silverblue is wonderful. If one needs more applications, it is easy to get them. The other way around is annoying, for example: I would probably uninstall 5 out of 8 apps suggested

  1. GNOME Photos
  2. GNOME Videos (Totem) uninstall - VLC or mpv is more widely used
  3. LibreOffice
  4. Document Scanner uninstall - hardware specific, not everyone uses a scanner
  5. Problem Reporting (GNOME ABRT)
  6. GNOME Boxes uninstall - not everyone needs a VM
  7. Rhythmbox uninstall - not everyone stores music locally
  8. Cheese uninstall - hardware specific, not everyone uses a camera

I feel that Silverblue should provide only basic functionality and the user can install more apps to meet their needs.

q30a commented 2 years ago

In my opinion it is better to improve process of adding new application via flatpaks or as layered packages if must be. So if there are users who fall under impression that Silverblue is missing some functionality because there is no pre-installed application for that, we probably should better educate on how that or any application can be added after system installation.

If this is really needed, it could be implemented as a checklist that is presented to the user right after initial log in. The user would check boxes for suggested apps and then those would be installed.

1player commented 2 years ago

Be aware that some Fedora flatpaks have bugs compared to their RPM or Flathub counterparts. Example:

Either Silverblue goes full Flathub, or we need better QA on Fedora flatpaks.

user1-github commented 2 years ago

Since we are talking about preinstalled apps in Silverblue, I thought of an idea to implement a function to the installer that lets you choose which Flatpaks you want to be installed before installation begins. To me, even with the current set of preinstalled Flatpaks in Silverblue, I don't need 80% of them and I'm sure I'm not the only one. I think this would be a killer feature of Silverblue, because AFAIK, no other operating system has something like this in their installers. Only OpenSuse has something close to this and it still doesn't really let you choose a specific app you want to be installed, only sets of packages. I don't know if something like this could be implemented in the current Fedora installer, but I heard a new installer is currently being developed. So if it's not possible to implement in the current one, maybe it would be possible in the new one?

user1-github commented 2 years ago

@1player Yeah, it would be really nice if Silverblue will switch all its Flatpaks to Flathub versions. Unfortunately, I heard Fedora has a policy that all preinstalled apps must be packaged by Fedora team, so it's highly unlikely. Btw, from this thread I understand that Silverblue will come with Libreoffice preinstalled in the future, so I noticed that Flathub is currently on the latest version, while Fedora Flatpak version is on 7.2.6.

AndrejSh3 commented 2 years ago

I feel like additional applications should only be included by default if they come in the form of a flatpak, since then they are very easy to uninstall. When I installed Silverblue I got rid of most of the included applications because I didn't need them, or I knew of alternatives that suited me better, like many others in this post.

user1-github commented 2 years ago

Since we are talking about preinstalled apps in Silverblue, I thought of an idea to implement a function to the installer that lets you choose which Flatpaks you want to be installed before installation begins. To me, even with the current set of preinstalled Flatpaks in Silverblue, I don't need 80% of them and I'm sure I'm not the only one. I think this would be a killer feature of Silverblue, because AFAIK, no other operating system has something like this in their installers. Only OpenSuse has something close to this and it still doesn't really let you choose a specific app you want to be installed, only sets of packages. I don't know if something like this could be implemented in the current Fedora installer, but I heard a new installer is currently being developed. So if it's not possible to implement in the current one, maybe it would be possible in the new one?

Alternatively, if implementing something like this is still a problem, maybe introduce a simple checkbox in the installer that will disable the installation of Flatpaks. This way, the users like me who don't need most of the preinstalled Flatpaks will be able to install only the apps that they need.

This will save a lot of time because currently I just uninstall all the Flatpaks after I install Silverblue and then install the Flathub version of the apps I need (they work better for me).

1player commented 2 years ago

This will save a lot of time because currently I just uninstall all the Flatpaks after I install Silverblue

Is preinstallings Flatpak such a big issue? How often do you reinstall your Silverblue that you want to save a lot of time? And it's not like Flatpaks leave a lot of unused files all over the filesystem either. Everything is neatly contained in ~/.var/app.

Without descending into bikeshedding, I think it's a good idea to have the same set of applications as the Workstation edition, in Flatpak version, and if one doesn't like something, they can just uninstall it and go about their day.

I don't think there's a need to complicate and change the installer for a very marginal benefit.

user1-github commented 2 years ago

I don't think there's a need to complicate and change the installer for a very marginal benefit.

I don't see how a simple switch that disables Flatpak installation would complicate the installer. It's not that they're part of the base image or something. And no, I don't reinstall it that often, but when I want to for whatever reason, I really want to set all the things as fast as possible.

kalev commented 1 year ago

Be aware that some Fedora flatpaks have bugs compared to their RPM or Flathub counterparts. Example:

I just tracked down the Cheese issue and it turned out to be https://src.fedoraproject.org/rpms/gstreamer1-plugins-good/c/5a0d15ca6153c68276933c9595ce6d653d865ac3?branch=rawhide . Should be fixed in https://bodhi.fedoraproject.org/updates/FEDORA-FLATPAK-2023-1e9ccabe66

The gnome-text-editor issue linked above should be already fixed.

DEM0NAssissan7 commented 1 year ago

+1 for totem being installed by default as a flatpak. It is expected that a desktop operating system is able to playback basic video and audio files out of the box. While some people may look down upon this, this is the reality we live in.