Several years ago, we organized two workshops focused on packaging software for Fedora. It was a success. Both workshops were full and several participants became package maintainers in Fedora. Packaging for Flatpak is becoming popular lately, so we decided to offer a workshop which is focused on flatpaking apps.
I spent the last weekend in Prague attending InstallFest 2017. The event is called InstallFest because many, many years ago it started as an event where students could come and get help with installations of various Linux distributions. Times of installfests are gone and this event has transitioned into an open source conference with more practical focus.
The event has moved to a new venue – Faculty of Electrical Engineering of Czech University of Technology. It’s where Red Hat recently started a new open source lab. The venue was larger than the one in previous years and hosted 3 tracks + a small booth area.
I came to talk on two things – Flatpak and Endless OS. My Flatpak talk was on Saturday and got a 55-minute slot which seemed like a lot of time, but if you want to cover all the specifics of the technology, even 55 minutes is not much. The room was pretty full and the topic apparently stirred some attention. There was even one person interested in porting Flatpak to another distribution.
My talk on Endless OS was the first one of the second day. I only asked for a 25-minute slot which was just enough to make a brief introduction of the system. I also brought with me both Endless devices I have in possession – Endless One and Endless Mini. There were not as many people as at my Flatpak talk, but those who came seemed pretty interested. Almost none of them had ever heard of the OS and PCs before. They asked if they’d ever be available in Europe (which I couldn’t answer because I have no idea) or if you can connect extending hardware to the PCs just like to Raspberry.
As a side note, I was positively surprised how many people wore Fedora t-shirts at the conference.
When I announced Firefox Developer Edition for Flatpak over a month ago, I also promised that we would not stop there and bring more options in the future. Now I can proudly announce that we provide two more variants of Firefox – Firefox Nightly and Firefox Nightly for Wayland.
With Nightly, you can closely follow the development of Firefox. Due to Flatpak you can easily install it and keep getting daily updates via our flatpak repo.
As a bonus, we’re also bringing a Firefox build that runs natively on Wayland. We used to provide a Copr repository, but with Flatpak it’s open to users of other distros, too. When running this version, keep in mind it’s still WIP and very experimental. Firefox seems to run just fine on Wayland at first glance, but there is still some basic functionality missing (copy-paste for example) and it’s not so stable either (it crashed the whole Wayland session for me once). But once it’s done, it will be a big improvement in security for Firefox on Linux because Wayland isolates the application on the display server level. Together with other pieces of Flatpak sandboxing, it will provide a full sandbox for the browser in the future.
When adding more Firefox variants to the repo, we first considered using branches, but you have to switch between them manually to start different variants of Firefox which we didn’t find very user friendly. In the end, we’re using one branch and multiple applications with different names in it. This way, you can install and run multiple variants in parallel.
You can find the instructions to install Firefox for Flatpak on the repository webpage. We’re also constantly improving how Firefox runs in Flatpak. If you have any Flatpak-specific problems with Firefox, please report it to our bug tracker on Github. If you hit problems that are not Flatpak-specific, please report them directly to Mozilla.
And again kudos to Jan Hořák from our team who made all this happen!
Our team maintains Firefox RPMs for Fedora and RHEL and a lot of people have been asking us to provide Firefox for Flatpak as well. I’m finally happy to announce Firefox Developer Edition for Flatpak.
We started with the Developer Edition because that’s something that is not easily available to Fedora users. Providing the standard Firefox wouldn’t bring a lot of benefit right now because it’s available very quickly after upstream releases via Fedora repositories. In the future, we’d like to add releases of the standard Firefox (nightly, stable, perhaps ESR).
Firefox DE for Flatpak is built on our internal build cluster and hosted on mojefedora.cz (mojefedora == myfedora in Czech) on OpenShift. It’s an unofficial build for testing purposes, not provided by Mozilla. We’d like to work with Mozilla, so that it can eventually be adopted by the Mozilla project and you can get Firefox flatpaks directly from the source.
Right now, Firefox DE is not sandboxed, it has full access to user’s home. In the near future, we’d like to start a devel branch in the flatpak repository where we will ship a sandboxed Firefox and experiment how well Firefox can handle sandboxing and what needs to be done to assure the expected user experience. A web browser is definitely the #1 candidate among desktop applications for sandboxing. If you’re interested in sandboxing Firefox on Linux via Flatpak, contact us (you’ll find Jan’s email on the website with installation instructions).
We’ve tested the FDE flatpak on Fedora 25, openSUSE Tumbleweed, and Ubuntu 16.10. You need flatpak 0.6.13 or newer for the installation commands to work. The repo should work with older versions as well, but there was a change in command syntax and the commands we use don’t work in older releases than 0.6.13. Fedora 25 has the newest release (0.8.0), openSUSE Tumbleweed has a new enough release (0.6.14), just for Ubuntu you’ll need to install the newest flatpak from a PPA.
GNOME Software in Fedora 25 also supports adding repos via .flatpakrepo files and installing apps via .flatpakref files, but it’s not reliable enough yet, so we only recommend you use the command line instructions. It’s just two commands (you only need the latter one on Fedora 25 with the newest flatpak).
There are also a couple of problems we haven’t quite figured out yet. In openSUSE and Ubuntu, the desktop file database is not refreshed after the installation, so the launcher doesn’t appear right away. You need to log out and log in to refresh it and make the launcher appear. In openSUSE Tumbleweed in KDE Plasma in a VM, I couldn’t start the app getting “no protocol specified, Error: cannot open display: :99.0”. We’re looking for hearing from you how it works on other distributions.
Although the repo is for testing purposes, we’re committed to updating it regularly until we announce otherwise on the website with the installation instructions. So you don’t have to worry that you’ll end up with a scratch build that will never get updated.
At last, I’d like to thank Vadim Rutkovsky who made the initial proof-of-concept Firefox build for Flatpak we built upon, and Jan Hořák who did most of the work on the current build and repo setup.
A lot of users complained that installing flatpaks was too difficult. And they were right, just look at the installation instructions on the Flatpak download page at LibreOffice.org. But that was never meant to be the final user experience.
Richard Hughes integrated Flatpak support into GNOME Software and the Red Hat desktop apps team worked with him to make sure it works well with apps we’ve already packaged for Flatpak. And this is the result. As you can see installing LibreOffice for Flatpak is now a matter of a couple of clicks with GNOME Software 3.22.2 in Fedora 25:
Flatpak allows you to generate a .flatpak bundle which includes the app and all the necessary info for installation of the app and setting up its repo for future updates. You can also create a .flatpakref file which doesn’t contain the app, but all the installation info and the app is downloaded during the installation. This format is also supported by GNOME Software now. LibreOffice offers a .flatpak bundle because it’s more similar to what users are used to from Windows and macOS.
As you can see on the video, installing .flatpak bundles is a matter of downloading the file and opening it directly with GNOME Software or double-clicking it. There is one prerequisite though. You need to have a repo of the runtime the app requires enabled which I had because I had been using the GNOME runtime for other apps already. Installation of runtimes is being streamlined as well. As a runtime provider, you can ship .flatpakrepo file which includes necessary info for setting up the repo and is as easy to install as .flatpak and .flatpakref. For Fedora Workstation we’re currently considering to enable repos of most common runtimes by default, so users would not have to deal with them at all, the required runtimes would get installed automatically with the app.
OpenAlt, a traditional open source conference in Brno, took place last weekend. I gave talks on Wayland and Flatpak, and organized a Fedora booth.
Originally, I planned to give a talk on Flatpak only, but then the organizers came to me if I could find someone who could give a talk on the status of Wayland because people ask for it. And because I couldn’t find anyone else, I had to do the talk myself. OpenAlt was promoted live on Czech Television (something like BBC) and the Wayland talk was featured as one of the hot talks for which people should attend OpenAlt.
Both talks were in the main hall and both attracted quite a lot of people although Wayland was more popular in the end. Both topics also stirred quite a lot of interest and many people came to me afterwards to discuss the topics more in detail. LinuxEXPRES.cz has already released an article based on information from my Flatpak talk.
There were other interesting desktop-related talks. Dan Vrátil, an ex-member of our team, gave a talk about the history of KDE and he ran the presentation on KDE 1 (in Fedora 25), so he literally went back in time 🙂
Jan Holešovský talked on LibreOffice Online and Katarina Brehens on LibreOffice adoption in Germany.
Brno is a stronghold of Fedora mainly due to large presence of Red Hat, so OpenAlt is a lot about meeting our current users. We had some Fedora winter hats and t-shirts for them. Many users were happy to hear that Fedora 25 has much better and currently probably the best-among-distributions support for switchable graphics cards and much easier way to install nVidia drivers.
I had an interesting chat with a guy from sledovanitv.cz, a local startup providing TV streaming. He mentioned that they originally wanted to install Fedora on their laptops, but WiFi didn’t work (missing Broadcom drivers) and they gave up. So we definitely have another major hardware PITA in line to fix.
We also organized the 4th Linux Desktop Meetup. This time on Friday as “OpenAlt Edition”. And we had a special guest from Mozilla CZ who gave a talk on what’s going on in the Mozilla community. Some of the stuff was really exciting and Mozilla guys are interested in participating in future meetups even though they live in a different city.
Yet another app is packaged for Flatpak. Jan Grulich from our team has packaged the official desktop client for Telegram (EDIT: see his blogpost).
And it was quite some task because the app is… well… wildly put together. Just see the build instructions provided by upstream. Flatpak manifests are usually fairly simple files, less complex than spec files, but this one ended up being 394 lines long.
I think such an app is an ideal target for Flatpak. There is no way that an app like this would make it to the official Fedora repositories and its authors don’t even seem to be interested in making it more possible.
Telegram client for Flatpak is also built from source. That’s not the case of most packages of this app out there. The Copr package or snap just wrap the upstream binary. With Jan’s manifest, you can build the app yourself. It also works better than the Copr package which creates its own desktop file and then the app itself creates another and you need to log in every time you start the app. It simply behaves weirdly.
If you want to try it out, Jan has created a repo:
$ flatpak remote-add --user --no-gpg-verify telegram-desktop https://jgrulich.fedorapeople.org/telegram/repo/
$ flatpak --user install telegram-desktop org.telegram.TelegramDesktopDevel
$ flatpak run org.telegram.TelegramDesktopDevel
If you still don’t have it, you also need to install the GNOME runtime (the app is using Qt, but it’s own patched version and it also uses components that are in the GNOME runtime, so it was a more sensible option):
flatpak remote-add --user --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
flatpak install --user gnome org.gnome.Platform 3.20
It should create (Nightly) Telegram launcher (why nightly? because it’s built from master). And you’re good to go! Feedback is welcome. We’d like to propose it to the upstream project one day, so that they can build it themselves and ship it directly to their users with better experience than just a binary in an archive.