[opensuse-kubic] Kubic Desktop - Re: WTF ? Richard likes Flatpak now ?
Hi list, I've watched Richard's talk at GUADEC (https://guadec.ubicast.tv/videos/wtf-richard-likes-flatpak-now/) a while ago and wanted to share my thoughts as an end user on this. I have to note that I have never actually tried running Kubic as a Desktop OS and currently have no plans after I tried out Fedora SilverBlue (and removed it after a day or so). I see the following challenges for an immutable desktop OS comparable to Kubic & Silverblue: 1. installing packages is a pain, because you have to reboot after an installation¹ 2. flatpaks are nice (and a partial solution for 2.) but there's not a whole lot of flatpaks out there. Also, flatpaks (especially editors) suffer from the "issue" that they cannot interface with most of the system's binaries (yeah, I know that's actually a feature). That unfortunately means that you cannot use your system's npm/pip/python/$awesome_tool_xyz. I propose the following ideas for discussion, how this could be addressed: 1. Use something like Fedora-toolbox (or just the actual thing): https://github.com/debarshiray/toolbox. This is a nice wrapper around podman, that allows you to simply start containers which share your file system, but where you can actually install stuff with dnf and don't have to reboot. When I tried it on Silverblue it was even possible to install an X11 program inside a toolbox container and it would work. 2.1 Add support for layering (like with containers) for flatpaks: let's say you installed the VSCode flatpak, but would like to use a python interpreter. Unfortunately, the flatpak runtime refuses vscode to access /usr/bin/python and /usr/bin/pip, so you're stuck with vscode without real python support. Suppose flatpak would support to add a Python layer on top of the vscode flatpak: i.e. you would overlay a file system which provides python & pip onto the vscode flatpak, kind of like containers do this (yes this is _very_ hand-wavy, because I don't have a lot of expertise in this). Flatpak/Flathub itself could provide multiple such overlays, e.g. one for Python, one for Ruby, one for NodeJs, etc. This could be even used further, for instance to support mods for games (looking at you Optifine for Minecraft). Disclaimer: this is not my idea, I've read it somewhere a while ago with the optifine example, but really cannot recall where (I suspect Reddit though). 2.2 Build flatpaks from OBS projects. This "solves" the problem, that there is not an awful lot of flatpaks out there. Fedora already does that by leveraging their modularity project, so it is definitely possible. Unfortunately actually implementing this is going to be a lot of work, but instead of the currently ~650 applications that you get from flathub, you could potentially get all GUI apps that exist on OBS. I am however really not sold on this one, as it is a) a ton of work and b) it would probably be more pragmatic to submit PRs to upstream repos to build them with "native" flatpak support. Cheers, Dan ¹: This is actually less of an issue on Kubic, as transactional-update leverages the standard packaging workflow and installing additional packages is fully supported. On SilverBlue you have to resort to ostree layering, which is discouraged to use extensively. That doesn't solve the rebooting issue, but it means that you can easily experiment around with additional packages. -- Dan Čermák <dcermak@suse.com> Software Engineer Development tools SUSE Software Solutions Germany GmbH Maxfeldstr. 5 90409 Nuremberg Germany (HRB 247165, AG München) Managing Director: Felix Imendörffer
participants (1)
-
Dan Cermak