Fedora, Red Hat

Fedora at Bratislava OpenCamp 2018

A few months ago I was invited to represent Red Hat and Fedora at a new conference in Bratislava – OpenCamp. All the Open Source/Linux conferences in Slovakia I’ve been to were rather small compared to Czech ones. But OpenCamp was promising a new fresh start. So I registered a Red Hat/Fedora booth and also submitted a talk on the present and future of Linux desktop.

I convinced Jaroslav “Rezza” Řezník to run the booth with me, so we could recall the good old days when we regularly staffed Fedora booths at conferences. Last Saturday early in the morning we loaded my car with Fedora and Red Hat swag, computers, and banners, and headed to Bratislava. Fortunately Brno and Bratislava are connected by highways, so the journey takes a bit over an hour.

opencamp
Me and Jaroslav at the booth.

EDIT: The original photo had Pepe the Frog and other references to the alt-right movement on the wall behind us. The wall was created by university students and because we’re not anyhow associated with the movement and don’t want the photo to send any unintented messages I just GIMPed it out.

The conference was located in the new building of FIIT of Slovak Technical University. I really liked the large hallway that had enough space for booths and hallway discussions. That’s something we miss for conferences at FIT BUT. In the morning we found out that our booth was located in an area where there was no power plug. So we had to be moved and it was a lucky move because we ended up in front of the main room and got a lot of visibility.

Snímek z 2018-04-23 15-28-46
Author: OpenCamp organizers, more pictures in the gallery.

The booth was mostly about showcasing Fedora Workstation. We had a HiDPI laptop connected to a standard DPI display to show people HiDPI support in Fedora. We also prepared 10 features that are the best in Fedora or even unique to Fedora. We picked those which are concrete and easy to show, and tried to avoid something like “Fedora brings new versions of software in a stable form” because it’s too vague and subjective.

Two days before the conference I found components for Fedorator in our office and under the impression that it only takes to assemble it and load a ready-to-use ISO on an SD card I asked Jaroslav if he could get it ready. Jaroslav spent two days and the whole conference day on it, but in the last hour of the conference he was able to create a Fedora installation USB drive with it 🙂

We got surprisingly a lot of attention, e.g. from Ubuntu users who feel the attention to the desktop is not the same any more there and look for alternatives. We were also quite new to people because although we had attended various conferences in Slovakia we never had a booth there. I made several new contacts for mojefedora.cz.

My talk was right in the morning and didn’t start very well. First we couldn’t get the projector up. When it was finally projecting something I couldn’t get any output to it (through USB-C->HDMI adapter). In the end I had to use a Windows 7 computer that was part of the room equipment. And even that didn’t work very well because the HDMI connector was aparently loose and the projector lost signal every time I touch the computer. Otherwise the talk went well and I got a fairly big audience in the room. Because we started 10 minutes late I didn’t have any time for questions and had to tell people to come to our booth if they want to ask me anything.

The only dark spot on otherwise a really good day was that someone scratched my car with another car. I still quite can’t imagine how he/she could manage it because the parking lot was almost empty.

Advertisements
Fedora, GNOME, Linux

Why I use Flatpak for 3rd party apps

flatpak-logo

There are more reasons why to run applications as flatpaks. Someone wants to have the latest versions as soon as possible. For me as a user of Fedora which provides up-to-date versions of apps this is not a big motivation. Someone wants to run apps more securely. Again I usually trust software provided by Fedora and Flatpak sandbox is still not as strictly enforced as it should ideally be.

But where I really prefer using Flatpak to RPM packages are 3rd party applications. I’m usually running development versions of Fedora. Pre-releases on my work machine and Rawhide on my home laptop. They have been pretty stable for me, including applications in Fedora repositories. Unfortunately it’s not the case for 3rd party applications. Their authors usually don’t follow distro development closely and although many of them bundle as much as possible to avoid problems with changing dependencies, things break.

I used to use the Spotify client as a package from Negativo17 repos. But when I upgraded to F27, something broke and it stopped working. I’m pretty sure it was fixed later on after people started reporting it, but I didn’t want to stop using Spotify for the time being and didn’t have time to debug and report the issue. So I switched to Spotify flatpak and it has worked for me ever since.

The problem I had with very early stages of pre-released Fedora and Rawhide is that dependecies of GStreamer plugins in RPMFusion were usually broken. So I ended up without system multimedia codecs. It was often the case for VLC from the same repository, too. Then I switched to VLC and GNOME MPV flatpaks. Problem solved.

The last example is Telegram. Until recently I was using the official version. It’s not even provided as an RPM package. You have to download an archive, unpack its content to your home, run the binary which creates a desktop file… not very elegant in 2018, but once you do it, it just works. Well… until it doesn’t. I upgraded to F28 and Telegram suddenly took a lot of time to start up. It hung on some font config error until it timeouted and finally started. It easily took 1 minute. So I switched to Telegram flatpak as well. Works like a charm.

So what I really appreciate about Flatpak is that the apps don’t rely on the underlying system, so if the system changes e.g. due to upgrade to a newer major version apps don’t break. As I said it’s not such a major issue for distro-provided apps, but it’s certainly an issue for 3rd apps and Flatpak solved it for me.

Fedora, GNOME, Linux

Flathub Experience: Adding an App

Flathub is a new distribution channel for Linux desktop apps. Truly distro-agnostic, unifying across abundance of Linux distributions. I was planning for a long time to add an application to Flathub and see what the experience is, especially compared to traditional distro packaging (I’m a Fedora packager). And I finally got to it this last week.

flathub

In Fedora I maintain PhotoQt, a very fast image viewer with very unorthodox UI. Its developer is very responsive and open to feedback. Already back in 2016 I suggested he provides PhotoQt as a flatpak. He did so and found making a flatpak really easy. However it was in the time before Flathub, so he had to host its own repo.

Last week I was notified about a new release of PhotoQt, so I prepared updates for Fedora and noticed that the Flatpak support became “Coming soon” again. So I was like “hey, let’s get it back and to Flathub”. I picked up the two-year-old flatpak manifest, and started rewriting it to successfully build with the latest Flatpak and meet Flathub requirements.

First I updated dependencies. You add dependencies to the manifest in a pretty elegant way, but what’s really time consuming is getting checksums of official archives. Most projects don’t offer them at all, so you have to download the archive and generate it yourself. And you have to do it with every update of that dependency. I’d love to see some repository of modules. Many apps share the same dependencies, so why to do the same work again and again with every manifest?

Need to bundle the latest LibRaw? Go to the repository and pick the module info for your manifest:

{
"name": "libraw",
"cmake": false,
"builddir": true,
"sources": [ { "type": "archive", "url": "https://www.libraw.org/data/LibRaw-0.18.8.tar.gz", "sha256":"56aca4fd97038923d57d2d17d90aa11d827f1f3d3f1d97e9f5a0d52ff87420e2" } ]
}

And on the top of such a repo you can actually build a really nice tooling. You can let the authors of apps add dependencies simply by picking them from the list and you can generate the starting manifest for them. And you could also check for dependency updates for them. LibRaw has a new version, wanna bundle it, and see how your app builds with it? And the LibRaw module section of your manifest would be replaced by the new one and a build triggered.

Of course such a repo of modules would have to be curated because one could easily sneak in a malicious module. But it would make writing manifests even easier.

Besides updating dependencies I also had to change the required runtime. Back in 2016 KDE only had a testing runtime without any versioning. Flathub now includes KDE runtime 5.10, so I used it. PhotoQt also uses “photoqt” in all file names and Flatpak/Flathub now requires it in the reverse-DNS format: org.qt.photoqt. Fortunately flatpak-builder can rename it for you, you just need to state it in the manifest:

"rename-desktop-file": "photoqt.desktop",
"rename-appdata-file": "photoqt.appdata.xml",
"rename-icon": "photoqt",

Once I was done with the manifest, I looked at the appdata file. PhotoQt has it in a pretty good shape. It was submitted by me when I packaged it for Fedora. But there were still a couple of things missing which are required by Flathub: OASR and release info. So I added it.

I proposed all the changes upstream and at this point PhotoQt was pretty much ready for submitting to Flathub. I never intended to maintain PhotoQt in Flathub myself. There should be a direct line between the app author and users, so apps should be maintained by app authors if possible. I knew that upstream was interested in adding PhotoQt to Flathub, so I contacted the upstream maintainer and asked him whether he wanted to pick it up and go through the Flathub review process himself or whether I should do it and then hand over the maintainership to him. He preferred the former.

The review was pretty quick and it only took 2 days between submitting the app and accepting it to Flathub. There were three minor issues: 1. the reviewer asked if it’s really necessary to give the app access to the whole host, 2. app-id didn’t match the app name in the manifest (case sensitivity), 3. by copy-pasting I added some spaces which broke the appdata file and of course I was too lazy to run validation before submitting it.

And that was it. Now PhotoQt is available in Flathub. I don’t remember how much time exactly it took me to get PhotoQt to Fedora, but I think it was definitely more and also the spec file is more complex than the flatpak manifest although I prefer the format of spec files to json.

Is not your favorite app available in Flathub? Just go ahead, flatpak it, and then talk to upstream, and try to hand the maintainership over to them.

Uncategorized

Nextcloud Talk: video conferencing the open way

For instant messaging I’ve been primarily using Telegram. I think it’s a good compromise between openness and features and mass adoption. It can also do encrypted audio calls, but it can’t do video calls and audio/video conferences of multiple people.

nextcloud

That’s why I was looking for some tool for video calling and conferencing. I didn’t want something completely closed (Skype, Hangouts,…) and ideally something I can run on my server.

I’ve been a big fan of Nextcloud and running it on my Fedora VPS for 1,5 year. In my opinion it’s a great open platform for online services. They used to offer SpreedMe service which was pretty clumsy and difficult to install and I never fell for it. Fortunately they recently announced Nextcloud Talk, a complete rewrite, open source and based on WebRTC. Is it what I was looking for?

It requires Nextcloud 13, so I had to wait until this version was out this week. (I actually find it quite strange to announce and do a big PR for an app that requires a version of Nextcloud that hasn’t been released yet.) The installation is super-simple now. You just go to the application store, click “Enable”, and that’s it.

I’ve been using it for several days, so what is my experience with it? You can make calls with other users in your Nextcloud instance (it also supports federation, so you can extend it to users of other connected instances), but you can create a conference room to which you can invite other people via a link (can be protected by a password).

Besides basic audio and video calls it allows you to share a screen and there is a text chat available to participants which is handy e.g. for sharing links. It just works in modern browsers. You send someone a link, they open it, and you can start talking. Nextcloud Talk also have apps for Android and iOS, so you can join calls from your phone. But they can only do video and audio, they don’t support text chat yet and you can create a new call room in them.

Feature-wise Nextcloud Talk is already fairly close to Bluejeans, the enterprise solution we use for video conferencing in Red Hat.

call-in-action

Are there any problems? It’s the first release, there definitely are. One-to-one calls between registered users work reliably. I can’t say the same about conference calls with unregistered users. I tested it with two colleagues of mine who I invited via a link. I could only see video of one of them, he could see me, but couldn’t see the other person… Also connecting all participants is not always reliable.

Nextcloud offers its own STUN server. In settings you can add more STUN servers or even TURN server (but it’s not very desirable because all traffic then goes through your TURN server). I wonder if that would help.

There are also some problems in the UI. You can close the panel with the chat, but the icon for getting it back is black and it’s placed in the black corner of the video output of the other person, so it’s invisible. The UI of the mobile app sometimes sort of freezes, so it’s impossible to hang up.

But overall Nextcloud Talk looks very promising as a solution for those who want to easily deploy a video conferencing system on their premise. As I said one-to-one calls already work well for me and I hope the video conferences of multiple people will improve with future releases or I will find settings that fix the problems I’m having.

Fedora, Linux

Flathub, Snap, Fedora: what is more up-to-date?

Yesterday I wondered how Flathub and Snap are doing in terms of proving up-to-date applications and how they compare to Fedora, a traditional and quite progressive Linux distribution.

The comparison is not extremely scientific. I picked (pretty much randomly) 16 apps which are in all three sources, looked up the available version and when it was updated. This subset is not very large. Flathub tends to have popular open source applications well known from Linux distributions. Snap lacks many of these, but has quite a few apps outside the traditional Linux desktop world. And at last Fedora doesn’t have many multimedia apps which include patent-protected codecs (VLC, Kdenlive, MPV,…).

To find out the app version and last update date I relied on Github repositories for Flathub, on uApp explorer for Snap, and on Fedora packages app for Fedora (27).

Looking at the table, you can see that the differences are not big. Flathub generally offers the most up-to-date apps having the latest versions of apps in the list except for missing one minor update for Eye of GNOME, it was also usually the first one to offer it.

The results of Fedora are pretty surprising to me. One of the biggest advantages of Flatpak and Snap they claim they have over traditional Linux distributions is that they ship the latest and greatest, but apparently at least in desktop apps Fedora is not behind and offers the latest versions as well (with two exceptions in this list) and often very close behind or sometimes even before the two competitors.

Of course a distribution model like Flatpak still keeps other advantages (and also disadvantages): sandboxing, you can run it on older distributions (e.g. RHEL 7) etc., but if you’re only after the latest versions Flathub and Snap don’t give you a big advantage over Fedora repositories. And if the Fedora Project offers a Flatpak repository built from Fedora packages as we plan, it can actually be a hit because it will be able to offer up-to-date applications and in a much larger number than current Flathub or Snap Store.

App Flathub Snap Fedora
Darktable 2.4.0, Dec 24 2.2.5, Oct 25 2.4.0, Jan 1
Blender 2.79, Sept 26 2.79, Sept 11 2.79, Sept 30
Corebird 1.7.3, Nov 19 1.7.3, Nov 20 1.7.3, Nov 28
GnuCach 2.6.19, Jan 5 2.6.19, Dec 18 2.6.18, Oct 30
Inkscape 0.92.2, Aug 9 0.92.2, Aug 19 0.92.2, Oct 1
LibreOffice 5.4.4, Dec 20 5.4.3.2, Dec 1 5.4.4.2, Dec 19
Nextcloud client 2.3.3, Nov 24 2.3.3, Dec 11 2.3.3, Oct 5
Picard 1.4.2, Sept 27 1.4.2, Oct 7 1.3.2, Jul 14
GNOME Calendar 3.26.2, Oct 5 3.26.0, Sept 22 3.26.2, Oct 11
Evince 3.26.0, Nov 9 3.26.0, Nov 29 3.26.0, Sept 18
Eye of GNOME 3.26.1, Nov 7 3.26.2, Nov 29 3.26.2, Nov 15
gedit 3.22.1, Jul 31 3.22.1, Nov 29 3.22.1, Aug 3
Glade 3.20.2, Dec 15 3.20.0, Nov 29 3.20.2, Dec 10
GNOME Characters 3.26.2, Nov 7 3.26.2, Nov 29 3.26.2, Nov 11
GIMP 2.8.22, Oct 17 2.8.22, Dec 11 2.8.22, Nov 11
HexChat 2.2.14, Apr 12 2.2.14, Feb 5 2.2.14, Dec 12 2016
Fedora, Linux

Fedora Media Writer Available in Flathub

Fedora Media Writer is the tool to create live USB flash drives with Fedora. You can also use dd or GNOME Disks, but Fedora Media Writer is the only graphical tool that is tested with Fedora ISOs (please don’t use UNetbootin and such because they really cause faulty Fedora installations).

Fedora Media Writer is available as an RPM package in Fedora repositories and we provide installation files for Windows and macOS. Those are actually offered to users with Windows and macOS as the default download options at getfedora.org. We’ve provided users of other Linux distributions with a flatpak, but it was hosted in its own repo. Recently we managed to get the flatpak to Flathub which many users have already enabled, so now it’s even easier and faster to install.

Snímek z 2017-11-29 13-12-31