“Boiling the Ocean” is a sprint/hack days event series from GNOME with varying subjects, which I and a few others from KDE have been joining recently to discuss and collaborate on overlapping topics.

Banner image advertizing Boiling the Ocean 12 on Aug 22-23.
Boiling the Ocean 12 (source)

NFC

I have written about the state of NFC support for Plasma Mobile back in August, and a lot of this is common infrastructure for all Linux platforms, and it has to be to avoid making things messy as hardware access tends to be exclusive.

Together with the GNOME team we looked at our options for the Linux NFC stack. Beyond the ones mentioned in the above linked post there’s an additional one from Tizen. We agreed however that for now we’d try to make neard work first. My fixes for neard have meanwhile been integrated, which gives me some hope that might actually be viable.

The next steps would then be:

  • Expose ATS responses from ISO 14443-4 tags (sometimes also called “historical bytes”), which is needed for identifying the type of a tag.
  • Implement exclusive access to tags.
  • Implement a raw command interface for tags.

With that we should be able to support e.g. the AusweisApp use-case or reading FIDO2 tokens.

I hit a wall on the first item already unfortunately. There’s an attribute in the kernel API (NFC_ATTR_TARGET_ATS) to retrieve this information from tag discovery information, which however always returns an empty result, as this only becomes available later, during tag activation. And at that point there is no way to read it out anymore as far as I can tell.

All this is just a start though, there’s much more to do:

  • Implement Host Card Emulation (HCE) support in neard.
  • Implement NFC pass-through in Waydroid.
  • Figure out how to align/unify the Linux kernel NFC API and the PC/SC API.
  • Expose NFC and/or PC/SC APIs via XDG portals.
  • Make neard work without requiring root permissions.

See also the Boiling the Ocean 12 notes for more details.

Intents

Another topic to collaborate on are XDG Intents, which brings an important and powerful piece of infrastructure to Linux.

Besides the spec itself, there’s common tools such as the desktop-file-utils, which meanwhile have support for generating indexes of all available Intents.

On top of that we can then build the integration into KDE:

The first standardized Intent is the Terminal Intent, for which there’s also all required pieces in review meanwhile:

I don’t have the same level of insight on the implementation on the GNOME side, but with Glib support merged and terminal intents implemented this also looks well under way.

Emancipatory Computing

It’s not all about technical implementation details though. There’s also overlap in more fundamental questions on the vision of what we actually want to achieve and why we are doing all of this, in particular for those of us who have different ambitions than just being a random part of a software supply chain.

Digitalzwang

We went through a similar discussion about 10 years ago in KDE, resulting in the vision of a world in which everyone has control over their digital life and enjoys freedom and privacy. That’s still valid today I think, but one aspect is starting to show its age as the world has been changing since then.

The distinction between the digital life and the “real” life have been disappearing as more and more aspects of life involve some kind of digital interaction nowadays, such as mobility and travel, handling money, accessing your health records, or for setting up a new appliance. There’s the German term Digitalzwang describing this, which unfortunately doesn’t have a similarly compact English equivalent, meaning being forced to use (proprietary) digital means to use a service or participate in a certain aspect of society.

Rejecting that and asking for a right to participate in all of that entirely without digital means is a valid approach, but doesn’t address this entirely IMHO. I can travel with a paper ticket, but I wont be able to benefit from accurate up-to-date information in case of disruptions then. I don’t want to miss that and I don’t want to be forced to make a decision between a fully offline approach and using a proprietary app on a proprietary platform.

While there are technical aspects to addressing this, the bigger and harder part is actually political. We need guaranteed and fair access to the necessary interfaces, standards and procedures to interact with the “real” life things in order to provide free and open alternatives.

Self-hosting

Related to this is the topic of dependencies on cloud services. The GNOME team is doing interesting work with peer-to-peer networking, which could address parts of this, e.g. when it comes to collaboration tools and sharing your own data.

The ability to self-host is another part, and a necessary prerequisite. It’s not a solution in itself though, as hosting services yourself isn’t really accessible for most people.

There’s also services where wide-spread self-hosting isn’t viable for other reasons, Transitous is such an example. While that’s not even particularly complicated to set up for what it does, it only scales in very large increments. This means you can’t start with something small like the stereotypical Raspberry Pi but need a rather big server, and that’ll then be to handle way more requests than you likely need.

So we also need to figure out how can we run services as a community in a way that’s sustainable in the long run, and how can we design fair usage rules for those.

Permacomputing

Another aspect is looking at the negative impact our work causes, and minimizing this, like KDE Eco has done and is doing.

While ideas like permacomputing and hardware longevity were initially motivated by considering the climate and human rights impact of buying new devices, in the current situation it has become a simple necessity given the very limited availability of (affordable) hardware.

In the light of this it is even more painful to have to take decisions like dropping support for older Android platforms.

None of the above is something that anyone of us can solve on our own, this needs much bigger coalitions than just GNOME and KDE even. But with the distinction between the “digital life” and the “real life” fading away and rampant enshitification there’s also many more people affected and interested in these topics now.

Outlook

That’s just picking three topics from three different events, there are many more things that have been discussed and which benefit from coordination and collaboration, such as XDG portal APIs for contact and calendaring data, or scalability issues we observe with the current push notifications design, so there’s more to come.