call_end

    • chevron_right

      Richard Hughes: fwupd 2.0.4 and DBXUpdate-20241101

      news.movim.eu / PlanetGnome • 20 January • 1 minute

    I’ve just tagged fwupd 2.0.4 — with lots of nice new features, and most importantly with new protocol support to allow applying the latest dbx security update.

    The big change to the uefi-dbx plugin is the switch to an ISO date as a dbx version number for the Microsoft KEK .

    The original trick of ‘ count the number of Microsoft-owned hashes ‘ worked really well, just until Microsoft started removing hashes in the distributed signed dbx file. In 2023 we started ‘ fixing up ‘ the version based on the last-added checksum to make the device have an artificially lower version than in reality. This fails with the latest DBXUpdate-20241101 update, where frustratingly, more hashes were removed than added. We can’t allow fwupd to update to a version that’s lower than what we’ve got already, and it somewhat gave counting hashes idea the death blow.

    Instead of trying to map the hash into a low-integer version, we now use the last-listed hash in the EFI signature list to map directly to an ISO date, e.g. 20250117. We’re providing the mapping in a local quirk file so that the offline machine still shows something sensible, but are mainly relying on the remote metadata from the LVFS that’s always up to date. There’s even more detail in the plugin README for the curious.

    We also changed the update protocol from org.uefi.dbx to org.uefi.dbx2 to simplify the testing matrix — and because we never want version 371 upgrading to 20230314 automatically — as that would actually be a downgrade and difficult to explain.

    If we see lots of dbx updates going out with 2.0.4 in the next few hours I’ll also backport the new protocol into 1_9_X for the soon-to-be-released 1.9.27 too.

    • wifi_tethering open_in_new

      This post is public

      blogs.gnome.org /hughsie/2025/01/20/fwupd-2-0-4-and-dbxupdate-20241101/

    • chevron_right

      Michael Meeks: 2025-01-17 Friday

      news.movim.eu / PlanetGnome • 17 January

    • Up early, sync with Dave, Anuj, lunch with Julia, worked away at contractuals. Onto mail catch-up, and slides.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-01-17.html

    • chevron_right

      Michael Meeks: 2025-01-16 Thursday

      news.movim.eu / PlanetGnome • 16 January

    • Up too early; train - with Christian, sky-train, some data analysis on the plane, heathrow-express.
    • Home, read minutes of calls I missed: seems I should miss more calls; text review, dinner with the family. Worked after dinner, missed bible-stidy group, bed early.
    • wifi_tethering open_in_new

      This post is public

      meeksfamily.uk /~michael/blog/2025-01-16.html

    • chevron_right

      Luis Villa: non-profit social networks: benchmarking responsibilities and costs

      news.movim.eu / PlanetGnome • 15 January • 4 minutes

    I’m trying to blog quicker this year. I’m also sick with the flu. Forgive any mistakes caused by speed, brevity, or fever.

    Monday brought two big announcements in the non-traditional (open? open-ish?) social network space, with Mastodon moving towards non-profit governance (asking for $5M in donations this year), and Free Our Feeds launching to do things around ATProto/Bluesky (asking for $30+M in donations).

    It’s a little too early to fully understand what either group will do, and this post is not an endorsement of specifics of either group—people, strategies, etc.

    Instead, I just want to say: they should be asking for millions.

    There’s a lot of commentary like this one floating around:

    I don’t mean this post as a critique of Jan or others. (I deliberately haven’t linked to the source, please don’t pile on Jan!) Their implicit question is very well-intentioned. People are used to very scrappy open source projects , so millions of dollars just feels wrong. But yes, millions is what this will take.

    What could they do?

    I saw a lot of comments this morning that boiled down to “well, people run Mastodon servers for free, what does anyone need millions for”? Putting aside that this ignores that any decently-sized Mastodon server has actual server costs (and great servers like botsin.space shut down regularly in part because of those), and treats the time and emotional trauma of moderation as free… what else could these orgs be doing?

    Just off the top of my head:

    • Moderation, moderation, moderation, including:
      • moderation tools, which by all accounts are brutally badly needed in Masto and would need to be rebuilt from scratch by FoF. (Donate to IFTAS !)
      • multi-lingual and multi-cultural, so you avoid the Meta trap of having 80% of users outside the US/EU but 80% of moderation in the US/EU.
    • Jurisdictionally-distributed servers and staff
      • so that when US VP Musk comes after you, there’s still infrastructure and staff elsewhere
      • and lawyers for this scenario
    • Good governance
      • which, yes, again, lawyers, but also management, coordination, etc.
      • (the ongoing WordPress meltdown should be a great reminder that good governance is both important and not free)
    • Privacy compliance
      • Mention “GDPR compliance” and “Mastodon” in the same paragraph and lots of lawyers go pale; doing this well would be a fun project for a creative lawyer and motivated engineers, but a very time-consuming one.
      • Bluesky has similar challenges, which get even harder as soon as meaningfully mirrored.

    And all that’s just to have the same level of service as currently.

    If you actually want to improve the software in any way, well, congratulations: that’s hard for any open source software, and it’s really hard when you are doing open source software with millions of users. You need product managers, UX designers, etc. And those aren’t free. You can get some people at a slight discount if you’re selling them on a vision (especially a pro-democracy, anti-harassment one), but in the long run you either need to pay near-market or you get hammered badly by turnover, lack of relevant experience, etc.

    What could that cost, $10?

    So with all that in mind, some benchmarks to help frame the discussion. Again, this is not to say that an ATProto- or ActivityPub-based service aimed at achieving Twitter or Instagram-levels of users should necessarily cost exactly this much, but it’s helpful to have some numbers for comparison.

    • Wikipedia: ( source )
      • legal: $10.8M in 2023-2024 (and Wikipedia plays legal on easy mode in many respects relative to a social network—no DMs, deliberately factual content, sterling global brand)
      • hosting: $3.4M in 2023-2024 (that’s just hardware/bandwidth, doesn’t include operations personnel)
    • Python Package Index
      • $20M/year in bandwidth from Fastly in 2021 ( source ) (packages are big, but so is social media video, which is table stakes for a wide-reaching modern social network)
    • Twitter
      • operating expenses, not including staff , of around $2B/year in 2022 ( source )
    • Signal
    • Content moderation
      • Hard to get useful information on this on a per company basis without a lot more work than I want to do right now, but the overall market is in the billions ( source ).
      • Worth noting that lots of the people leaving Meta properties right now are doing so in part because tens of thousands of content moderators, paid unconscionably low wages , are not enough .

    You can handwave all you want about how you don’t like a given non-profit CEO’s salary, or you think you could reduce hosting costs by self-hosting, or what have you. Or you can pushing the high costs onto “volunteers”.

    But the bottom line is that if you want there to be a large-scale social network, even “do it as cheap as humanly possible” is millions of costs borne by someone .

    What this isn’t

    This doesn’t mean “give the proposed new organizations a blank check”. As with any non-profit, there’s danger of over-paying execs, boards being too cozy with execs and not moving them on fast enough, etc. ( Ask me about founder syndrome sometime !) Good governance is important.

    This also doesn’t mean I endorse Bluesky’s VC funding; I understand why they feel they need money, but taking that money before the techno-social safeguards they say they want are in place is begging for problems. (And in fact it’s exactly because of that money that I think Free Our Feeds is intriguing—it potentially provides a non-VC source of money to build those safeguards.)

    But we have to start with a realistic appraisal of the problem space. That is going to mean some high salaries to bring in talented people to devote themselves to tackling hard, long-term, often thankless problems, and lots of data storage and bandwidth.

    And that means, yes, millions of dollars.

    • wifi_tethering open_in_new

      This post is public

      lu.is /2025/01/social-network-costs/

    • chevron_right

      Hans de Goede: IPU6 camera support status update

      news.movim.eu / PlanetGnome • 14 January • 1 minute

    The initial IPU6 camera support landed in Fedora 41 only works on a limited set of laptops. The reason for this is that with MIPI cameras every different sensor and glue-chip like IO-expanders needs to be supported separately.

    I have been working on making the camera work on more laptop models. After receiving and sending many emails and blog post comments about this I have started filing Fedora bugzilla issues on a per sensor and/or laptop-model basis to be able to properly keep track of all the work.

    Currently the following issues are being either actively being worked on, or are being tracked to be fixed in the future.

    Issues which have fixes pending (review) upstream:


    Open issues with various states of progress:

    See all the individual bugs for more details. I plan to post semi-regular status updates on this on my blog.

    This above list of issues can also be found on my Fedora 42 change proposal tracking this and I intent to keep an updated complete list of all x86 MIPI camera issues (including closed ones) there.



    comment count unavailable comments
    • chevron_right

      Jussi Pakkanen: Measuring code size and performance

      news.movim.eu / PlanetGnome • 14 January • 2 minutes

    Are exceptions faster and/or bloatier than using error codes? Well...

    The traditional wisdom is that exceptions are faster when not taken, slower when taken and lead to more bloated code. On the other hand there are cases where using exceptions makes code a lot smaller . In embedded development, even, where code size is often the limiting factor.

    Artificial benchmarks aside, measuring the effect on real world code is fairly difficult. Basically you'd need to implement the exact same, nontrivial piece of code twice. One implementation would use exceptions, the other would use error codes but they should be otherwise identical. No-one is going to do that for fun or even idle curiosity.

    CapyPDF has been written exclusively using C++ 23's new expected object for error handling. As every Go programmer knows, typing error checks over and over again is super annoying. Very early on I wrote macros to autopropagate errors. That props up an interesting question, namely could you commit horrible macro crimes to make the error handling either use error objects or exceptions?

    It tuns out that yes you can . After a thorough scrubbing of the ensuring shame from your body and soul you can start doing measurements. To get started I built and ran CapyPDF's benchmark application with the following option combinations:

    • Optimization -O1, -O2, -O3, -Os
    • LTO enabled and disabled
    • Exceptions enabled and disabled
    • RTTI enabled and disabled
    • NDEBUG enabled and disabled
    The measurements are the stripped size of the resulting shared library and runtime of the test executable. The code and full measurement data can be found in this repo . The code size breakdown looks like this:

    Performance goes like this:

    Some interesting things to note:

    • The fastest runtime of 0.92 seconds with O3-lto-rtti-noexc-ndbg
    • The slowest is 1.2s with Os-noltto-rtti-noexc-ndbg
    • If we ignore Os the slowes is 1.07s O1-noltto-rtti-noexc-ndbg
    • The largest code is 724 kb with O3-nolto-nortt-exc-nondbg
    • The smallest is 335 kB with Os-lto-nortti-noexc-ndbg
    • Ignoring Os the smallest is 470 kB with O1-lto-nortti-noexc-ndbg
    Things noticed via eyeballing

    • Os leads to noticeably smaller binaries at the cost of performance
    • O3 makes binaries a lot bigger in exchange for a fairly modest performance gain
    • NDEBUG makes programs both smaller and faster, as one would expect
    • LTO typically improves both speed and code size
    • The fastest times for O1, O2 and O3 are within a few percent points of each other with 0.95, 094 and 0.92 seconds, respectively

    Caveats

    At the time of writing the upstream code uses error objects even when exceptions are enabled. To replicate these results you need to edit the source code.

    The benchmark does not actually raise any errors. This test only measures the golden path.

    The tests were run on GCC 14.2 on x86_64 Ubuntu 10/24.

    • wifi_tethering open_in_new

      This post is public

      nibblestew.blogspot.com /2025/01/measuring-code-size-and-performance.html

    • chevron_right

      Georges Basile Stavracas Neto: Flatpak 1.16 is out!

      news.movim.eu / PlanetGnome • 14 January • 5 minutes

    Last week I published the Flatpak 1.16.0 release This marks the beginning of the 1.16 stable series.

    This release comes after more than two years since Flatpak 1.14, so it’s pretty packed with new features, bug fixes, and improvements. Let’s have a look at some of the highlights!

    USB & Input Devices

    Two new features are present in Flatpak 1.16 that improve the handling of devices:

    • The new input device permission
    • Support for USB listing

    The first, while technically still a sandbox hole that should be treated with caution, allows some apps to replace --device=all with --device=input , which has a far smaller surface. This is interesting in particular for apps and games that use joysticks and controllers, as these are usually exported by the kernel under /dev/input .

    The second is likely the biggest new feature in the Flatpak release! It allows Flatpak apps to list which USB devices they intend to use. This is stored as static metadata in the app, which is then used by XDG Desktop Portal to notify the app about plugs and unplugs, and eventually request the user for permission.

    Using the USB portal, Flatpak apps are able to list the USB devices that they have permission to list (and only them). Actually accessing these USB devices triggers a permission request where the user can allow or deny the app from having access to the device.

    Finally, it is possible to forcefully override these USB permissions locally with the --usb and --nousb command-line arguments.

    This should make the USB access story fairly complete. App stores like Flathub are able to review the USB permissions ahead of time, before the app is published, and see if they make sense. The portal usage prevents apps from accessing devices behind the user’s back. And users are able to control these permissions locally even further.

    Better Wayland integration

    Flatpak 1.16 brings a handful of new features and improvements that should deepen its integration with Wayland.

    Flatpak now creates a private Wayland socket with the security-context-v1 extension if available. This allows the Wayland compositor to properly identify connections from sandboxed apps as belonging to the sandbox.

    Specifically, with this protocol, Flatpak is able to securely tell the Wayland compositor that (1) the app is a Flatpak-sandboxed app, (2) an immutable app id, and (3) the instance id of the app. None of these bits of information can be modified by apps themselves.

    With this information, compositors can implement unique policies and have tight control over security.

    Accessibility

    Flatpak already exposes enough of the accessibility stack for most apps to be able to report their accessible contents. However, not all apps are equal, and some require rather challenging setups with the accessibility stack.

    One big example here is the WebKit web engine. It basically pushes Flatpak and portals to their limit, since each tab is a separate process. Until now, apps that use WebKit – such as GNOME Web and Newsflash – were not able to have the contents of the web pages properly exposed to the accessibility stack. That means things like screen readers wouldn’t work there, which is pretty disappointing.

    Fortunately a lot of work was put on this front, and now Flatpak has all the pieces of the puzzle to make such apps accessible. These improvements also allow apps to detect when screen readers are active, and optimize for that.

    WebKit is already adapted to use these new features when they’re available. I’ll be writing about this in more details in a future series of blog posts.

    Progress Reporting

    When installing Flatpak apps through the command-line utility, it already shows a nice fancy progress bar with block characters. It looks nice and gets the job done.

    However terminals may have support for an OSC escape sequence to report progress. Christian Hergert wrote about it here . Christian also went ahead and introduced support to emitting the progress escape sequence in Flatpak. Here’s an example:

    Screenshot of the terminal app Ptyxis with a progress bar

    Unfortunately, right before the release, it was reported that this new feature was spamming some terminal emulators with notifications. These terminals (kitty and foot) have since been patched, but older LTS distributions probably won’t upgrade. That forced us to make it opt-in for now, through the FLATPAK_TTY_PROGRESS environment variable.

    Ptyxis (the terminal app above) automatically sets this environment variable so it should work out of the box. Users can set this variable on their session to enable the feature. For the next stable release (Flatpak 1.18), assuming terminals cooperate on supporting this feature, the plan is to enable it by default and use the variable for opting out.

    Honorable Mentions

    I simply cannot overstate how many bugs were fixed in Flatpak in all these releases.

    We had 13 unstable releases (the 1.15.X series) until we finally released 1.16 as a stable release. A variety of small memory leaks and build warnings were fixed.

    The gssproxy socket is now shared with apps, which acts like a portal for Kerberos authentication. This lets apps use Kerberos authentication without needing a sandbox hole.

    Flatpak now tries to pick languages from the AccountsService service, making it easier to configure extra languages.

    Obsolete driver versions and other autopruned refs are now automatically removed, which should help keeping things tight and clean, and reducing the installed size.

    If the timezone is set through the TZDIR environment variable, Flatpak takes timezone information from there. This should fix apps with the wrong timezone in NixOS systems.

    More environment variables are now documented in the man pages.

    This is the first stable release of Flatpak that can only be built with Meson. Autotools served us honorably for the past decades, but it was time to move to something more modern. Meson has been a great option for a long time now. Flatpak 1.16 limits itself to require a fairly old version of Meson, which should make it easy to distribute on old LTS distributions.

    Finally, the 1.10 and 1.12 series have now reached their end of life, and users and distributions are encouraged to upgrade to 1.16 as soon as possible. During this development cycle, four CVEs were found and fixed, all of these fixes were backported to the 1.14 series, but not all were backported to versions older than that. So if you’re using Flatpak 1.10 or 1.12, be aware that you’re on your own risk.

    Future

    The next milestone for the platform is a stable XDG Desktop Portal release. This will ship with the aforementioned USB portal, as well as other niceties for apps. Once that’s done, and after a period of receiving bug reports and fixing them, we can start thinking about the next goals for these projects.

    These are important parts of the platform, and are always in need of contributors. If you’re interested in helping out with development, issue management, coordination, developer outreach, and/or translations, please reach out to us in the following Matrix rooms:

    Acknowledgements

    Thanks to all contributors, volunteers, issue reporters, and translators that helped make this release a reality. In particular, I’d like to thank Simon McVittie for all the continuous maintenance, housekeeping, reviews, and coordination done on Flatpak and adjacent projects.

    • wifi_tethering open_in_new

      This post is public

      feaneron.com /2025/01/14/flatpak-1-16-is-out/

    • chevron_right

      Andy Wingo: an annoying failure mode of copying nurseries

      news.movim.eu / PlanetGnome • 13 January • 1 minute

    I just found a funny failure mode in the Whippet garbage collector and thought readers might be amused.

    Say you have a semi-space nursery and a semi-space old generation. Both are block-structured. You are allocating live data, say, a long linked list. Allocation fills the nursery, which triggers a minor GC, which decides to keep everything in the nursery another round, because that’s policy: Whippet gives new objects another cycle in which to potentially become unreachable.

    This causes a funny situation!

    Consider that the first minor GC doesn’t actually free anything. But, like, nothing : it’s impossible to allocate anything in the nursery after collection, so you run another minor GC, which promotes everything, and you’re back to the initial situation, wash rinse repeat. Copying generational GC is strictly a pessimization in this case, with the additional insult that it doesn’t preserve object allocation order.

    Consider also that because copying collectors with block-structured heaps are unreliable , any one of your minor GCs might require more blocks after GC than before. Unlike in the case of a major GC in which this essentially indicates out-of-memory, either because of a mutator bug or because the user didn’t give the program enough heap, for minor GC this is just what we expect when allocating a long linked list.

    Therefore we either need to allow a minor GC to allocate fresh blocks – very annoying, and we have to give them back at some point to prevent the nursery from growing over time – or we need to maintain some kind of margin, corresponding to the maximum amount of fragmentation. Or, or, we allow evacuation to fail in a minor GC, in which case we fall back to promotion.

    Anyway, I am annoyed and amused and I thought others might share in one or the other of these feelings. Good day and happy hacking!

    • wifi_tethering open_in_new

      This post is public

      wingolog.org /archives/2025/01/13/an-annoying-failure-mode-of-copying-nurseries

    • chevron_right

      This Week in GNOME: #182 Updated Crypto

      news.movim.eu / PlanetGnome • 10 January • 3 minutes

    Update on what happened across the GNOME project in the week from January 03 to January 10.

    GNOME Core Apps and Libraries

    nielsdg reports

    gcr , a core library that provides a GObject-oriented interface to several crypto APIs, is preparing for the new 4.4 version with the alpha release 4.3.90. It contains some new APIs for GcrCertificate , such as the new GcrCertificateExtension class that allows you to inspect certificate extensions. 🕵️

    nielsdg says

    GNOME Keyring has now finally moved to Meson and has dropped support for building with autotools. This will be part of the upcoming 48.alpha release.

    Vala

    An object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.

    lorenzw says

    Many people might have seen it already, but a while ago we finally officailly moved our documentation from the old GNOME wiki to a new website: https://docs.vala.dev ! This has been a long-standing task completed by Colin Kiama. The pages are hosted on https://github.com/vala-lang/vala-docs and everyone is welcome to contribute and improve them, we have already started to file tickets in the issue tracker and assign labels, especially for newcomers, so its easy to start helping out! We want to port a lot more docs and code examples from other locations to this new website, and thats not difficult at all! The website is built similar to all other new GNOME documentation websites using sphinx, so you don’t even need to learn a new markup language. Happy docs reading and hacking! :D

    Image Viewer (Loupe)

    Browse through images and inspect their metadata.

    Sophie 🏳️‍🌈 🏳️‍⚧️ (she/her) says

    Image Viewer (Loupe) 48.alpha is now available .

    This new release adds image editing support for PNGs and JPEGs. Images can be cropped ( tracking issue ), rotated, and flipped. New zoom controls allow setting a specific zoom level and feature a more compact style. Support for additional metadata formats like XMP and new image information fields have been added as well.

    Libadwaita

    Building blocks for modern GNOME apps using GTK4.

    Alice (she/her) reports

    adaptive preview has received a bunch of updates since the last time: for example it now shows device bezels and allows to take screenshot of the app along with the shell panels and bezels

    GNOME Circle Apps and Libraries

    Shortwave

    Internet radio player with over 30000 stations.

    Felix announces

    At the end of the festive season I was able to implement one more feature: Shortwave now supports background playback , and interacts with the background portal to display the current status in the system menu!

    Third Party Projects

    Fabrix announces

    Confy 0.8.0 has been released. Confy is a conference schedule companion. This release brings updated UI design, some quality of life improvements like recent opened schedules list, and fixes to schedule parsing. https://confy.kirgroup.net/

    Parabolic

    Download web video and audio.

    Nick announces

    Parabolic V2025.1.0 is here! This update contains various bug fixes for issues users were experiencing, as well as a new format selection system.

    Here’s the full changelog:

    • Parabolic will now display all available video and audio formats for selection by the user when downloading a single media
    • Fixed an issue where some video downloads contained no audio
    • Fixed an issue where progress was incorrectly reported for some downloads
    • Fixed an issue where downloads would not stop on Windows
    • Fixed an issue where paths with accent marks were not handled correctly on Windows
    • Fixed an issue where the bundled ffmpeg did not work correctly on some Windows systems

    That’s all for this week!

    See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!