Robotic Tendencies
The personal blog of Robert McQueen

July 29, 2017

Welcome, Flathub!

Alex Larsson talks about Flathub at GUADEC 2017At the Gtk+ hackfest in London earlier this year, we stole an afternoon from the toolkit folks (sorry!) to talk about Flatpak, and how we could establish a “critical mass” behind the Flatpak format. Bringing Linux container and sandboxing technology together with ostree, we’ve got a technology that solves real world distribution, technical and security problems that have arguably held back the Linux desktop space and frustrated ISVs and app developers for nearly 20 years. The problem we need to solve, like any ecosystem, is one of users and developers – without stuff you can easily get in Flatpak format, there won’t be many users, and without many users, we won’t have a strong or compelling incentive for developers to take their precious time to understand a new format and a new technology.

As Alex Larsson said in his GUADEC talk yesterday: Decentralisation is good. Flatpak is a tool that is totally agnostic of who is publishing the software and where it comes from. For software freedom, that’s an important thing because we want technology to empower users, rather than tell them what they can or can’t do. Unfortunately, decentralisation makes for a terrible user experience. At present, the Flatpak webpage has a manually curated list of links to 10s of places where you can find different Flatpaks and add them to your system. You can’t easily search and browse to find apps to try out – so it’s clear that if the current situation remains we’re not going to be able to get a critical mass of users and developers around Flatpak.

Enter Flathub. The idea is that by creating an obvious “center of gravity” for the Flatpak community to contribute and build their apps, users will have one place to go and find the best that the Linux app ecosystem has to offer. We can take care of the boring stuff like running a build service and empower Linux application developers to choose how and when their app gets out to their users. After the London hackfest we sketched out a minimum viable system – Github, Buildbot and a few workers – and got it going over the past few months, culminating in a mini-fundraiser to pay for the hosting of a production-ready setup. Thanks to the 20 individuals who supported our fundraiser, to Mythic Beasts who provided a server along with management, monitoring and heaps of bandwidth, and to Codethink and Scaleway who provide our ARM and Intel workers respectively.

We inherit our core principles from the Flatpak project – we want the Flatpak technology to succeed at alleviating the issues faced by app developers in targeting a diverse set of Linux platforms. None of this stops you from building and hosting your own Flatpak repos and we look forward to this being a wide and open playing field. We care about the success of the Linux desktop as a platform, so we are open to proprietary applications through Flatpak’s “extra data” feature where the client machine downloads 3rd party binaries. They are correctly labeled as such in the AppStream, so will only be shown if you or your OS has configured GNOME Software to show you apps with proprietary licenses, respecting the user’s preference.

The new infrastructure is up and running and I put it into production on Thursday. We rebuilt the whole repository on the new system over the course of the week, signing everything with our new 4096-bit key stored on a Yubikey smartcard USB key. We have 66 apps at the moment, although Alex is working on bringing in the GNOME apps at present – we hope those will be joined soon by the KDE apps, and Endless is planning to move over as many of our 3rd party Flatpaks as possible over the coming months.

So, thanks again to Alex and the whole Flatpak community, and the individuals and the companies who supported making this a reality. You can add the repository and get downloading right away. Welcome to Flathub! Go forth and flatten… 🙂

Flathub logo

posted by ramcq @ 4:24 pm
Comments (14) .:. Trackback .:. Permalink

14 responses to “Welcome, Flathub!”

  1. David says:

    “if you or your OS has configured GNOME Software to show you apps with proprietary licenses” How would one do this? I have looked everywhere, but can’t find any settings for this.

    • @David, actually it turns out I was mistaken – this is planned but not yet implemented. All of the backend support is there to filter the apps by the license field in the appstream, but this isn’t exposed in the UI yet – the proprietary choice is made per repo at the moment. But Richard Hughes says it’s planned for GNOME Software.

  2. […] the travel sponsorship, to my employer Endless for paying for some of this work, and especially to Rob MacQueen for the last-minute loan of a USB-C video […]

  3. skierpage says:

    Will Flathub.org ever have a list of Flatpaks available from the site? It’s weird having a web site whose content is only machine-readable. “You can then browse … applications in the normal manner” – that would be using a browser 🙂

    Flatpak is a great idea.

  4. […] "creating an obvious “center of gravity” for the #Flatpak community to contribute and build their apps" http://ramcq.net/2017/07/29/welcome-flathub/ […]

  5. John C. says:

    Nice bit of 90s web design here.

  6. John C. says:

    “we’ve got a technology which solves real world distribution, technical and security problems which have arguably held back the Linux desktop space”

    we’ve got a technology *THAT* solves real world distribution, technical and security problems *THAT* have arguably held back the Linux desktop space

    Please, for heavens sake, learn the difference between “which” and “that”. Using them interchangeably (i.e. incorrectly) is so west coast American. Are you even Scottish bro?

    • ramcq says:

      Good point, I’ll correct those. (I was born in Wales to Scottish parents, but have lived in England for 15 years. Probably safer to leave it at “British” at this point.)

  7. Mike says:

    “To request flathub hosting for an application, submit a pull request against the flathub/requests module for the new-pr branch. The pull request should include a json manifest for the application and any auxiliary files it needs, such as patches or scripts.”

    Is this supposed to be the final workflow for developers? This reintroduces the problem that someone other than me, the developer, needs to maintain a build script for my software, namely a packager. Sorry, this sucks big time.

    You could have a look at what the guys at elementary OS did with their AppCenter. You connect your Github repo and their build system pulls in stuff from there. No out-of-tree build script that someone needs to maintain in addition to the real one in-tree.

    • ramcq says:

      That’s a great idea! The intention of the Flathub process was that the app developer can also take responsibility for their build recipe even if it is hosted on Flathub. Christian Hegert (of Builder fame) was also concerned about keeping recipes out of tree because it breaks the awesome flow of having a one-click build-and-run-in-Flatpak inside the IDE. Maybe we need to revisit this. I’ll post on the mailing list.

  8. […] es Flathub, un centro de distribución todavía por perfeccionar, pero que ya incluye unas cuantas aplicaciones interesantes y se integra bastante bien con GNOME […]

Leave a Reply

Your email address will not be published. Required fields are marked *