Tumbleweed – Review of the week 2026/28
Dear Tumbleweed users and hackers,
This past week brought a few heart-stopping moments for both our users and the release engineering team!
For our users, the massive size of snapshot 0703 likely came as a surprise. However, the sheer size didn’t actually reflect a massive number of source changes. Instead, it was the result of reconfiguring Tumbleweed to stop building Python 3.11 modules. This shift required us to hand control of the rebuild strategy over to OBS (similar to how we handle full rebuilds for new compilers) and rely on build-compare to filter out unchanged packages.
For the release engineers, the Python change was straightforward. What actually tripped us up was an unfortunate combination of submissions in snapshot 0706, which ultimately had to be discarded. (As a quick aside: snapshots 0704 and 0705 were never built, as that was the weekend the full rebuild without python-3.11 was in progress.) We thought we had pinpointed the issue and reverted the suspected package, only to discover we had only solved half the puzzle.
The real culprits were selinux-policy—which initially looked like the perfect suspect after openQA failed dozens of SELinux tests—combined with an rpm packaging change that split its plugins into optional subpackages. Specifically, the plugin responsible for SELinux labeling became so optional that it was no longer installed by default. In retrospect, it was an easy bug to squash once we understood the root cause. For the technically curious: we simply added Requires: (rpm-plugin-selinux if selinux-policy) to the rpm package. This finally cleared our openQA tests, though it did force us to discard a few snapshots along the way.
Despite the turbulence, we successfully published 4 snapshots (0702, 0703, 0707, and 0708) this past week, delivering the following updates:
-
Removal of
python311-*module packages: We are still shipping the Python 3.11 interpreter alongside base modules likepipandsetuptools. This ensures you can still usepip/venvto install any necessary modules, though they will now be managed outside the control of openSUSE andzypper. - KDE Gear 26.04.3
- KDE Plasma 6.7.2
- SDL 3.4.12
- fwupd 2.1.6
- Linux kernel 7.1.2 & 7.1.3
- setools 4.7.0
- systemd 260.3
- Mesa 26.1.4
- GNOME Shell & Mutter 50.3
- Mozilla Firefox 152.0.4
- gpg 2.5.21 & gpgme 2.1.2
Let’s take a look at what we can expect in the coming days and weeks.
For starters, we will definitely be putting selinux-policy back into the queue after leaving it reverted for the time being. This will provide the final proof of whether the issue was indeed that tricky combination of submissions, or if rpm was acting up all by itself.
Peeking at the staging projects, integration tests are currently underway for several notable updates:
- GStreamer 1.28.5
- SELinux toolchain 3.11, together with selinux-policy
- linux-glibc-devel 7.1: fix for llvm versions needed; llvm21 in ring as mandatory before we can move on
- Qemu 11.0.0: 32-bit host support has been dropped. kiwi itself was fixed to no longer depend on the obsolete tools, but the current submission of kiwi introduced a regression, switching Grub2 on our built images from graphical to text mode
- Podman 6.0.0
- GCC 16 as the default system compiler
Planet News Roundup
This is a roundup of articles from the openSUSE community listed on planet.opensuse.org.
The community blog feed aggregator lists the featured highlights below from July 3 to 9.
Blogs this week cover usability and printer improvements in Plasma 6.7, a sixth bugfix update for Plasma 6.6, and openSUSE’s support for the XBOOTLDR partition to ease systemd-boot migration. Posts also include a GSoC update on SVG build badges, a new Meteoclimatic plasmoid, a Tellico collection manager update, the July Krita drawing challenge, a retro LCD clock plasmoid, a critique of traditional AI benchmarks, a gVim Wayland guide, Tumbleweed snapshots for week 27, KDE Gear 26.04.3, animation improvements in Plasma, and the Linux Saloon podcast.
Here is a summary and links for each post:
Syslog-ng Java Destination Disabled
Peter Czanik’s Blog announces that Java support is being disabled in all of his syslog-ng packages as a “scream test.” Native C libraries now cover Elasticsearch and Kafka, HDFS has practically disappeared, and the Java drivers were removed from the source code years ago without complaint. The change has already landed in the official openSUSE package, with Fedora Rawhide and git snapshot packages next, and users relying on their own Java driver code are asked to speak up.
Kdenlive 26.04.3 Released
The KDE Blog covers the release of Kdenlive 26.04.3, the final maintenance update of the 26.04 series. The update fixes crashes when undoing sequence creation and when recording audio without an audio device. It also continues the cycle’s security hardening by preventing unwanted command execution on MLT versions older than 7.40.
Thunderbird Listens to Its Community to Improve the Desktop Application
Victorhck translates Thunderbird’s summary of hour-long interviews with ten users about how they manage preferences and settings in the desktop client. Findings include a “set and forget” configuration habit, a desire to cut clutter and cognitive noise from dense settings menus, and confusion caused by overly technical terminology.
SCM/CI: Project Links and Better Handling of Disconnected Branches
The Open Build Service Blog announces an extension to the SCM/CI integration with a new link project step, letting users create project links directly in their workflows. This fills a missing piece needed to allow full project rebuilds for PR/MR sources such as stagings. The update also improves how OBS handles Git branches that do not contain a workflow definition file.
Usability Improvements in Plasma 6.7
The KDE Blog covers the usability enhancements in Plasma 6.7, including drag-and-drop favorites management, a more intuitive Discover software center, and faster virtual desktop switching in the Overview effect. The update also introduces an autocomplete mode for desktop file selection and easier time zone comparison in the Digital Clock widget.
The Illusion of Benchmarks: Traditional KPIs Don’t Make Sense for Measuring LLMs
Alessandro’s Blog argues that traditional benchmarks and KPIs are misleading when applied to large language models. Unlike conventional software, LLMs behave probabilistically and may ace academic tests while failing at real-world business tasks. The post warns that benchmark scores have increasingly become marketing tools rather than meaningful measures of actual capability.
Sixth Bugfix Update for Plasma 6.6
The KDE Blog announces the sixth bugfix release for Plasma 6.6, arriving nearly two months after the initial release. The update continues KDE’s regular maintenance cycle with stability improvements, better translations, and error resolution across the desktop environment.
Support of XBOOTLDR in openSUSE
openSUSE News explains how the XBOOTLDR partition provides an escape hatch for systems with insufficient ESP space when migrating to systemd-boot. The new partition can live anywhere on the disk and frees the ESP from storing kernel and initrd files. The post includes practical steps for creating the partition, configuring mount points, and migrating boot entries.
Meteoclimatic Plasmoid for the KDE Plasma Desktop
Victorhck introduces his first KDE Plasma 6 plasmoid, which displays real-time weather data from Meteoclimatic amateur weather stations directly on the desktop. The widget supports configurable font size, color, opacity, and background visibility. The code is hosted on Codeberg for easy installation and customization.
Printer Improvements in Plasma 6.7
The KDE Blog highlights the printing enhancements in Plasma 6.7, including a system tray printer icon that now shows active job counts. A new print queue management tool offers advanced multi-printer administration while remaining accessible for home use, and connecting to shared printers on Windows networks has been simplified.
Krita July 2026 Drawing Challenge #KritaChallenge
The KDE Blog promotes the monthly Krita drawing challenge for July 2026 with the theme “An Imaginary Friend.” Entries must be at least 90% created in Krita with no AI-generated content allowed. The winner earns the right to choose the next month’s theme and receives a featured spot on the site.
New Tellico Update
The KDE Blog announces Tellico 4.2.1, the latest release of KDE’s collection manager. The update refreshes data sources for Google Books, Google Scholar, and Colnect, and adds support for multiple ISBN values and a user-defined data fetch argument. The release continues the application’s migration to Qt6 and KDE Frameworks 6.
The Machinist
Jakub Steiner shares a brief personal reflection prompted by a recovered memory during a run, recommending Christian Bale’s film “The Machinist.” The post praises the movie’s mood, acting, and the director’s use of industrial imagery without revealing plot details.
GSoC Update 1: Can SVG Build Badges Update Themselves?
Mario’s GSoC Blog explores whether SVG build badges generated by obs-status-service can self-update in Gitea. Testing reveals that JavaScript inside SVG runs when embedded as an <object> or <iframe>, but not as an <img>, which is how Markdown renders images by default. The post concludes that live-updating badges are possible if Gitea serves them as objects, with a fallback to static server-side rendering for img contexts.
Retro LCD 7-Segment Clock – Plasmoids for Plasma 6 (34)
The KDE Blog presents the 34th installment in its plasmoid series, featuring a retro LCD 7-segment clock widget for Plasma 6. Created by corral76, the minimalist widget offers customizable colors, font, time format, blinking colon, shadow toggle, date display, and an alarm feature.
Linux Saloon 208 | News Flight Early Edition
Nathan Wolf’s Blog covers the latest Linux and technology news, including hardware builds like the Warthunder Sim Rig, font management in Linux, and Firefox updates. The episode also discusses the Steam Machine launch, Fedora governance changes, and the retirement of the “Father of the Internet.”
Improving Animations – This Week in Plasma
The KDE Blog translates Nate Graham’s weekly Plasma report, highlighting animation improvements coming in Plasma 6.8 with better physics models and smoother notification sliding. The post also covers bugfixes across Plasma 6.6.6, 6.7.2, and 6.7.3, including KWin crash fixes, display corrections, and security hardening for task manager widgets.
Make gVim clientserver work with Wayland
FreeAptitude’s Blog provides a guide for getting gVim’s clientserver functionality working under Wayland, building on a previous Dolphin service menu for opening files in gVim tabs. The post addresses the compatibility challenges between the X11-based clientserver protocol and Wayland’s security model.
Tumbleweed – Review of the Week 2026/27
Victorhck and Dominique Leuenberger report on three published Tumbleweed snapshots (0627, 0628, 0630) with updates to libzio 1.15, Mozilla Firefox 152.0.3, gpgme 2.1.1, and Pango 1.58.0. In-progress staging includes KDE Gear 26.04.3, KDE Plasma 6.7.2, Linux kernel 7.1.2, Mesa 26.1.4, Podman 6.0.0, and Qemu 11.0.0 dropping 32-bit host support.
Third Update of KDE Gear 26.04
The KDE Blog announces KDE Gear 26.04.3, the third bugfix update for the KDE applications suite. Notable fixes include Elisa properly switching audio output devices when the global output changes, KDE Connect resolving file transfer issues when notification sending is enabled, and Kdenlive fixing the playback head disappearing during preview.
View more blogs or learn to publish your own on planet.opensuse.org.
Syslog-ng Java destination disabled
For many years, syslog-ng used Java, where C libraries were unavailable. However, over the years native C libraries became available for Elasticsearch and Kafka, and HDFS practically disappeared. As a “scream test”, I am going to disable Java support in all of my syslog-ng packages.
Once upon a time, Java support was added to syslog-ng to be able to load Elasticsearch Java drivers. Later, Kafka, HDFS, and a generic HTTP destination were also added. Unfortunately, using Java was a major pain. Loading libraries required some manual configuration. Packaging the Java destination in official Linux distribution packages was possible, however, packaging the actual drivers written in Java was impossible. For a while, I maintained unofficial packaging for these drivers, but as C alternatives appeared, I removed these components. Nobody complained. Recently all drivers, except for HDFS, have been removed from the source code as well. Again: nobody complained.
Right now, we still have HDFS support in the source code, but not for long. I have been posting about it for years now, and nobody asked us to keep it. This is the last driver making use of the Java destination of syslog-ng. We will delete it soon, too.
We do not delete code related to Java right now. However, as a “scream test” I am going to disable the Java destination in all my packages. I have done it already in the official openSUSE syslog-ng package. Fedora Rawhide is next. I will also remove it from my git snapshot packages.
If you use Java with your own driver code, let us know! Otherwise, the Java destination will be not just disabled in packages but removed from code as well.

syslog-ng logo
SCM/CI: Project Links and Better Handling of Disconnected Branches
Support of XBOOTLDR in openSUSE
More Space
openSUSE moved to BLS some time ago using the bootloaders systemd-boot and GRUB2-BLS that nowadays is mostly a repackaging of the traditional GRUB2, as the main patches are already merged since 2.16.
This decision also required more space in the ESP partition, as now the kernel and initrds of all snapshots are stored in /boot/efi/$TOKEN, where $TOKEN can be the machine-id, opensuse-tumbleweed or opensuse-microos, depending on the installation. For new installations, this is not a problem since the installer (YaST or Agama) will recommend a large (1 GB) partition; for older installations, the migration can be problematic, to the extreme that if the partition cannot be resized. It is advisable to keep the old GRUB2-EFI bootloader.
But if we decide to use systemd-boot, there is a escape hatch: XBOOTLDR
A New Partition
XBOOTLDR is a new partition that can live anywhere in the disk. The ESP has some limitations in that regard, and usually is the first partition in the system. If present, systemd-boot will look for the menu entries and the kernel / initrds in there, freeing the ESP of that responsibility.
The file system of this partition needs to be also FAT32, like the ESP as this is a limitation of the UEFI, and during the creation needs have a specific GPT identifier (GUID). With fsdisk, we can create a new partition and assign the type 142 or xbootldr; this will assign the correct GUID into the partition table and systemd-boot will recognize it.
Mount Points
Because of this new partition, the mount points needs to change too. As commented, the traditional place where openSUSE put the ESP is in /boot/efi but now we have two places. The UAPI recommendation is to have always the boot entries and the kernel in /boot, and only if there is a separated partition for the boot loader, then this will be placed in /efi. Because this is the case now, we will need to update out /etc/fstab:
UUID=4165-E891 /efi vfat utf8,dmask=0077,noexec,nodev,nosuid,nosymfollow 0 2
UUID=414C-528C /boot vfat utf8,dmask=0077,noexec,nodev,nosuid,nosymfollow 0 2
Change the UUID to point to the correct device.
sdbootutil can find both partitions and write in the correct place now, depending if we are updating the bootloader or adding new entries.
Now we can move the boot entries and the kernel directories, both placed in the old /boot/efi/loader path. We can manually move it into the new partition, just keep loader/random-seed and loader/loader.conf in the old place, but the rest of the loader/ directory can be moved.
More information about a more detailed description can be found in the following section:
Further Documentation
The Machinist
I couldn't remember something for weeks. It popped into my head during a run — a relief, even though the memory itself was not pleasant. This episode of my flaky mind reminded me of this movie.
I won't give you even a hint of what the movie is about. The strength of it is not the premise, but the mood, the superb acting and Christian Bale's physical dedication to the role impressed me, alongside a cast of wonderfully weird characters and ominous presence of giant spinning machines. If you somehow missed the movie, give it a go. It's one of those that keep coming back to you.
GSoC Update 1: Can SVG Build Badges Update Themselves?
One of the initial goals of the project was to explore whether the SVG build
results generated by obs-status-service could become interactive and update
in real time. In particular, I wanted to determine whether an SVG embedded in a
Gitea README or comment in a PR could use JavaScript to request fresh OBS
results without requiring the user to reload the page.
Testing JavaScript Inside SVG
To verify the browser behavior, I created a small test repository containing an SVG clock. The file includes a JavaScript timer that updates the displayed date and time every second, making it immediately clear whether the script has been executed.
I tested the same SVG in several embedding contexts:
| Context | JavaScript |
|---|---|
| SVG opened directly | Runs |
SVG embedded with <object>
|
Runs |
SVG embedded with <iframe>
|
Runs |
SVG embedded with <img>
|
Does not run |
SVG included with Markdown and rendered as <img>
|
Does not run |
SVG included with Markdown and rendered as <object>
|
Runs |
The important distinction is not whether SVG supports JavaScript, because it does. The restriction depends on how the browser loads the file.
When SVG is used as an image, browsers apply a restricted processing mode for security and privacy reasons. In this context, scripts and external resources are disabled. This behavior is documented by MDN’s guide to SVG as an image and by the SVG 2 conformance rules, which describe the secure image processing modes.
Gitea’s Rendering Makes the Difference
The CommonMark image specification
defines Markdown images as HTML img elements. My first test used an SVG stored
in the same repository, and Gitea kept it as img, so the script did not run.
Daniel later observed a different case on src.opensuse.org: an HTTPS SVG
badge served from the openSUSE infrastructure was embedded as an object and
did update after its 30-second timer. That distinction matters because scripts
are disabled in img, but can run when the SVG is loaded as an object.
The live
obs-git-explorer badge
confirms the second case. It is served as image/svg+xml, contains a
setInterval that runs every 30 seconds, fetches fresh results from the same
gitexplorer.opensuse.org origin, and updates its text and colors.
This also limits theme integration. An SVG image may use
prefers-color-scheme to follow the browser or operating-system preference, but
an externally loaded SVG still cannot directly reuse Gitea’s page CSS.
Implications for obs-status-service
This means live updates may be possible for obs-status-service, but only if
Gitea embeds the generated badge as object.
The practical approach would be simple:
- Serve the visible badge as SVG.
- Let the SVG JavaScript fetch the equivalent
.jsonURL. - Update the badge text and colors from that JSON response.
If Gitea keeps the badge as img, the SVG remains static and server-side
rendering is still the fallback. The key conclusion is that Markdown syntax is
not enough to decide this; the final DOM matters: img is static, while
object can support a self-updating SVG.
Linux Saloon 208 | News Flight Early Edition
Make gVim clientserver work with Wayland
Tumbleweed – Review of the week 2026/27
Dear Tumbleweed users and hackers,
This week, the various maintainers have been busy like usual, but the number of snapshots we managed to publish was slightly lower than in ‘normal’ weeks. Of the 5 snapshots built, we could only release 3 (0627, 0628, and 0630). The main issue causing discarded snapshots is the update to podman 6.0, which requires a few other modules to remain in sync. Things like buildah, skopeo, netavark – and it so happens that some slipped through in a snapshot but were then detected by openQA as not working as intended. That stack is still taking some time to ‘get right’.
The three published snapshots brought you these changes:
- libzio 1.15
- Mozilla Firefox 152.0.3
- gpgme 2.1.1
- Pango 1.58.0
The list of what’s being worked on reads a bit more spectacular than the changes of last week, namely:
- KDE Gear 26.04.3
- KDE Plasma 6.7.2
- SDL 3.4.12
- fwupd 2.1.6
- Linux kernel 7.1.2
- Mesa 26.1.4
- linux-glibc-devel 7.1: fix for llvm versions needed
- systemd 260.3
- Qemu 11.0.0: 32-bit host support has been dropped. Only kiwi is currently blocking this update
- Python 3.11 modules will be removed; The interpreter itself will remain a bit longer
- Podman 6.0.0