call_end

    • Pl chevron_right

      Jordan Petridis: The Flatpak Runtime drops the 32-bit compatibility extension

      news.movim.eu / PlanetGnome • 13 October • 2 minutes

    Last month GNOME 49 was released , very smooth overall, especially given the amount of changes across the entire stack that we shipped.

    One thing that is missing and that flew under the radar however, is that 32 bit Compatibility extension (org.gnome.Platform.i386.Compat) of the GNOME Flatpak Runtime is now gone. We were planning on making an announcement earlier but life got in the way.

    That extension is a 32-bit version of the Runtime that applications could request to use. This is mostly helpful so Wine can use a 32 bit environment to run against. However your wine or legacy applications most likely don’t require a 32 bit build of GTK 4, libadwaita or WebkitGTK.

    We rebuild all of GNOME from the latest commits in git in each module, at least twice a day. This includes 2 builds of WebkitGTK, a build of mozjs and a couple of rust libraries and applications. Multiplied for each architecture we support. This is no small task for our CI machines to handle. There were also a couple of updates that were blocked on 32-bit specific build failures, as projects rarely test for that before merging the code. Suffice to say that supporting builds that almost nobody used or needed was a universal annoyance across developers and projects.

    When we lost our main pool of donated CI machines and builders, the first thing in the chopping block was the 32-bit build of the runtime. It affected no applications, as none are relying on the Nightly version of the extension but it would affect some applications on Flathub once released.

    In order to keep the applications working, and to avoid having to overload our runners again, we thought about another approach. In theory it would be possible to make the runtime compatible with the org.Freedesktop.i386.Compat extension point instead. We already use freedesktop-sdk as the base for the runtime so we did not expect many issues.

    There were exactly 4 applications that made use of the gnome specific extension, 2 in Flathub, 1 in Flathub Beta and 1 archived.

    Abderrahim and I worked on porting all the application to the GNOME 49 runtime and have Pull Requests open. The developers of Bottles were great help in our testing and the subsequent PR is almost ready to be merged. Lutris and Minigalaxy need some extra work to upgrade the runtime but its for unrelated reasons.

    Since everything was working we never re-published the i386 GNOME compatibility extension again in Nightly, and thus we also didn’t for GNOME 49. As a result, the GNOME Runtime is only available for x86_64 and AArch64.

    Couple years ago we dropped the normal armv7 and i386 build as of the Runtime. With the i386 compatibility extension also gone, it means that we no longer have any 32 bit targets we QA before releasing GNOME as a whole. Previously, all modules we released would be guaranteed to at least compile for i386/x86 but going forward that will not be the case.

    Some projects, for example glib, have their own CI specifically for 32 bit architectures. What was a project-wide guarantee before, is now a per-project opt-in. While many maintainers will no longer go out of their way to fix 32 bit specific issues anymore, they will most likely still review and merge any patches sent their way.

    If you are a distributor, relying on 32 bit builds of GNOME, you will now be expected to debug and fix issues on your own for the majority of the projects. Alternatively you could also get involved upstream and help avoid further bit rot of 32 bit builds.

    Free Palestine ✊

    • Pl chevron_right

      Hubert Figuière: Dev Log September 2025

      news.movim.eu / PlanetGnome • 11 October • 1 minute

    Not as much as I wanted to do was done in September.

    libopenraw

    Extracting more of the calibration values for colour correction on DNG. Currently work on fixing the purple colour cast.

    Added Nikon ZR and EOS C50.

    ExifTool

    Submitted some metadata updates to ExifTool. Because it nice to have, and also because libopenraw uses some of these autogenerated: I have a Perl script to generate Rust code from it (it used to do C++).

    Niepce

    Finally merged the develop branch with all the import dialog work after having requested that it be removed from Damned Lies to not strain the translator is there is a long way to go before we can freeze the strings.

    Supporting cast

    Among the number of packages I maintain / update on flathub, LightZone is a digital photo editing application written in Java 1 . Updating to the latest runtime 25.08 cause it to ignore the HiDPI setting. It will honour GDK_SCALE environment but this isn't set. So I wrote the small command line too gdk-scale to output the value. See gdk-scale on gitlab . And another patch in the wrapper script.

    HiDPI support remains a mess across the board. Fltk just recently gained support for it (it's used by a few audio plugins).

    1

    Don't try this at home.

    • Pl chevron_right

      Sebastian Wick: SO_PEERPIDFD Gets More Useful

      news.movim.eu / PlanetGnome • 10 October • 2 minutes

    A while ago I wrote about the limited usefulness of SO_PEERPIDFD . for authenticating sandboxed applications. The core problem was simple: while pidfds gave us a race-free way to identify a process, we still had no standardized way to figure out what that process actually was - which sandbox it ran in, what application it represented, or what permissions it should have.

    The situation has improved considerably since then.

    cgroup xattrs

    Cgroups now support user extended attributes. This feature allows arbitrary metadata to be attached to cgroup inodes using standard xattr calls.

    We can change flatpak (or snap, or any other container engine) to create a cgroup for application instances it launches, and attach metadata to it using xattrs. This metadata can include the sandboxing engine, application ID, instance ID, and any other information the compositor or D-Bus service might need.

    Every process belongs to a cgroup, and you can query which cgroup a process belongs to through its pidfd - completely race-free.

    Standardized Authentication

    Remember the complexity from the original post? Services had to implement different lookup mechanisms for different sandbox technologies:

    • For flatpak: look in /proc/$PID/root/.flatpak-info
    • For snap: shell out to snap routine portal-info
    • For firejail: no solution

    All of this goes away. Now there’s a single path:

    1. Accept a connection on a socket
    2. Use SO_PEERPIDFD to get a pidfd for the client
    3. Query the client’s cgroup using the pidfd
    4. Read the cgroup’s user xattrs to get the sandbox metadata

    This works the same way regardless of which sandbox engine launched the application.

    A Kernel Feature, Not a systemd One

    It’s worth emphasizing: cgroups are a Linux kernel feature. They have no dependency on systemd or any other userspace component. Any process can manage cgroups and attach xattrs to them. The process only needs appropriate permissions and is restricted to a subtree determined by the cgroup namespace it is in. This makes the approach universally applicable across different init systems and distributions.

    To support non-Linux systems, we might even be able to abstract away the cgroup details, by providing a varlink service to register and query running applications. On Linux, this service would use cgroups and xattrs internally.

    Replacing Socket-Per-App

    The old approach - creating dedicated wayland, D-Bus, etc. sockets for each app instance and attaching metadata to the service which gets mapped to connections on that socket - can now be retired. The pidfd + cgroup xattr approach is simpler: one standardized lookup path instead of mounting special sockets. It works everywhere: any service can authenticate any client without special socket setup. And it’s more flexible: metadata can be updated after process creation if needed.

    For compositor and D-Bus service developers, this means you can finally implement proper sandboxed client authentication without needing to understand the internals of every container engine. For sandbox developers, it means you have a standardized way to communicate application identity without implementing custom socket mounting schemes.

    • Pl chevron_right

      Michael Meeks: 2025-10-08 Wednesday

      news.movim.eu / PlanetGnome • 8 October

    • Mail chew, patch bits, sync with Dave.
    • Re-arranged the lounge to bring the Windows build machine back into action for VM-based build acceleration & office testing after its main role (and ethernet cable) got replaced by a cheap Android-TV box.
    • Published the next strip exploring whether maintenance should be free:
    • Chased a weird hanging in a Loading phase issue through reams of logs.
    • Pl chevron_right

      Michael Meeks: 2025-10-07 Tuesday

      news.movim.eu / PlanetGnome • 7 October

    • Mail chew, patch review, planning call, lunch.
    • Disabled Vaultwarden's browser plugin - after the performance horrors of re-scanning the DOM every keystroke - to seeing if that helps with my wayland/x11 clipboard issues.
    • Plugged away at a contract, still suffering from poor contrast between selected and un-selected window titles in GNOME in light-mode too on large-screen, tried highlight focus for my keyboard only flow.
    • Date night with J. lovely to spend some time with just her and eat out too, been a while.
    • Pl chevron_right

      Jiri Eischmann: Fedora & CentOS at LinuxDays 2025

      news.movim.eu / PlanetGnome • 7 October • 1 minute

    Another edition of LinuxDays took place in Prague last weekend – the country’s largest Linux event drawing more than 1200 attendees and as every yearm we had a Fedora booth there – this time we also representing CentOS.

    I was really glad that Tomáš Hrčka helped me staff the booth. I’m focused on the desktop part of Fedora and don’t follow the rest of the project in such detail. As a member of FESCo and Fedora infra team he has a great overview of what is going on in the project and our knowledge complemented each other very well when answering visitors’ questions. I’d also like to thank Adellaide Mikova who helped us tremendously despite not being a technical person.

    This year I took our heavy 4K HDR display and showcased HDR support in Fedora Linux whose implementation was a multi-year effort for our team. I played HDR videos in two different video players (one that supports HDR and one that doesn’t), so that people could see a difference, and explained what needed to be implemented to make it work.

    Another highlight of our booth were the laptops that run Fedora exceptionally well: Slimbook and especially Framework Laptop. Visitors were checking them out and we spoke about how the Fedora community works with the vendors to make sure Fedora Linux runs flawlessly on their laptops.

    We also got a lot of questions about CentOS. We met quite a few people who were surprised that CentOS still exists. We explained to them that it lives on in the form of CentOS Stream and tried to dispel some of common misconceptions surrounding it.

    Exhausting as it is, I really enjoy going to LinuxDays, but it’s also a great opportunity to explain things and get direct feedback from the community.

    • Pl chevron_right

      Allan Day: GNOME Foundation Update, 2025-10-03

      news.movim.eu / PlanetGnome • 3 October • 2 minutes

    It’s a wet and windy October afternoon here in the UK, and it’s time for another GNOME Foundation update. As ever, there is plenty going on behind the scenes which hasn’t made it into this post, such as planning discussions and routine operations. However, there are some notable things from this week that are easier to sum up.

    Sovereign Tech Resilience

    The GNOME Project was recently fortunate to receive support from the Sovereign Tech Agency through their Sovereign Tech Resilience program . This program works by contracting out assistance for open source projects, and has resulted in a firm called Neighbourhood.ie Software doing some work on the Blueprint markup language, including implementing a new linter.

    Neighbourhood.ie’s Blueprint work is now almost complete, and the new capabilities they have implemented will help to make GNOME maintainers and developers more efficient, and will also help to reduce bugs.

    It is obviously fantastic to receive support like this, and I’d like to offer thanks to STA for the funding, to Neighbourhood.ie for being a great partner, and to Sonny Piers for developing the original work outline for this initiative.

    With the Blueprint work being wrapped up, we are now in conversation with Neighbourhood.ie about other work that they might undertake. For this we’re drawing on a list of possible work areas that Adrian Vovk and I recently worked up in conversation with GNOME community members.

    Black Python Devs

    I had a great conversation today with Jay Miller from Black Python Devs. The GNOME Foundation is proud to provide fiscal hosting for Black Python Devs, and it was great to hear about how their work is having a major positive impact. If you haven’t already, I’d recommend that you check out their website .

    Legal adventures

    My quest to find answers to some of our pending corporate governance questions finally ended in success this week, with a successful call with a lawyer who specialises in this area. We’ll be working through the advice we got very soon.

    Policy development

    Policies are part and parcel of running a non-profit like the GNOME Foundation, and I’ve recently been working on a number of policy updates that will hopefully come into effect in coming months. This is mostly about tightening up procedures, and will hopefully help with budgeting and smoother operations in the future.

    Message ends

    Thanks for reading and see you next week!

    • Pl chevron_right

      Michael Meeks: 2025-10-01 Wednesday

      news.movim.eu / PlanetGnome • 1 October

    • Mail, admin, deeper copy-paste training & discussion with Miklos and the QA team for special focus - there is a thousands-wide potential test matrix there.
    • Sync with Italo on marketing, lunch, catch up with Pedro.
    • Published the next strip on the joy of win-wins, and mutual benefits:
    • Plugged away at the Product Management backlog.
    • Pl chevron_right

      Ignacio Casal Quinteiro: Servo GTK

      news.movim.eu / PlanetGnome • 1 October • 1 minute

    I just checked and it seems that it has been 9 years since my last post in this blog :O

    As part of my job at Amazon I started working in a GTK widget which will allow embedding a Servo Webview inside a GTK application. This was mostly a research project just to understand the current state of Servo and whether it was at a good enough state to migrate from WebkitGTK to it. I have to admit that it is always a pleasure to work with Rust and the great gtk-rs bindings. Instead, Servo while it is not yet ready for production, or at least not for what we need in our product, it was simple to embed and to get something running in just a few days. The community is also amazing, I had some problems along the way and they were providing good suggestions to get me unblocked in no time.

    This project can be found in the following git repo: https://github.com/nacho/servo-gtk

    I also created some Issues with some tasks that can be done to improve the project in case that anyone is interested.

    Finally I leave you here a the usual mandatory screenshot: