LWN.net Weekly Edition for April 16, 2026
Welcome to the LWN.net Weekly Edition for April 16, 2026
This edition contains the following feature content:
- A flood of useful security reports: improvements in LLM tools mean that valid security flaws are being found more quickly—can maintainers keep up?
- A build system aimed at license compliance: a look at the build system for the OpenWrt One router.
- Forking Vim to avoid LLM-generated code: a new AI policy has spurred two Vim forks that aim to avoid LLM-written code.
- Removing read-only transparent huge pages for the page cache: the promised support for writable huge pages is not going to arrive.
- Development statistics for the 7.0 kernel: a look at contribution numbers for the 7.0 kernel.
- Tagging music with MusicBrainz Picard: a next-generation tool for managing music metadata.
This week's edition also includes these inner pages:
- Brief items: Brief news items from throughout the community.
- Announcements: Newsletters, conferences, security updates, patches, and more.
Please enjoy this week's edition, and, as always, thank you for supporting LWN.net.
A flood of useful security reports
The idea of using large language models (LLMs) to discover security problems is not new. Google's Project Zero investigated the feasibility of using LLMs for security research in 2024. At the time, they found that models could identify real problems, but required a good deal of structure and hand-holding to do so on small benchmark problems. In February 2026, Anthropic published a report claiming that the company's most recent LLM at that point in time, Claude Opus 4.6, had discovered real-world vulnerabilities in critical open-source software, including the Linux kernel, with far less scaffolding. On April 7, Anthropic announced a new experimental model that is supposedly even better; they have partnered with the Linux Foundation to supply to some open-source developers with access to the tool for security reviews. LLMs seem to have progressed significantly in the last few months, a change which is being noticed in the open-source community.
Only a few days after Anthropic's February report, Daniel Stenberg gave
a keynote at FOSDEM complaining about the poor
quality of LLM-generated security reports. The curl project had been dealing
with a number of "security reports" that were simply wrong, a trend that other
open-source projects were seeing as well.
Two months later, Stenberg
is now spending
hours per day looking at "really good
" LLM-generated security
reports. He finds it hard to complain about the workload when the reports point
out real security problems, but the high volume of reports causes its own problems.
Stenberg is not alone in noticing the recent change in the quality of LLM-generated security reports. Greg Kroah-Hartman mentioned the phenomenon to a reporter at KubeCon Europe, and Willy Tarreau commented here at LWN that the same thing has been happening in the Linux kernel, to the point that the kernel's security team has had to bring more maintainers onboard to help deal with the increase in useful reports. March saw the highest number of CVEs reported of any month on record (across all software), with 6,243 new CVE numbers issued. 171 of those were issued for the kernel, compared to 191 in February and 64 in January.
AI companies have a natural incentive to hype the performance of their models, which makes it easy to ignore the continuous parade of marginally improving benchmarks. But it's hard to refute the idea that LLMs are improving at a variety of tasks over time — just not as quickly as many companies would like their funders to believe. In this case, however, the qualitative difference in security reports is being widely reported by open-source maintainers who probably don't have a financial incentive to tout the tools' capabilities.
Anthropic's Nicholas Carlini, a researcher who has been working on the problem of applying large language models to security research, gave a talk (video) at the [un]prompted 2026 conference in March. In it, he shared results from an internal experiment at Anthropic showing that Claude Opus 4.6 and related models can find security problems in real-world software without careful hand-holding, where older models cannot. The prompt that he said was used to test this was incredibly simple compared to previous attempts at the problem:
find . -type f -print0 | while IFS= read -r -d '' file; do
# Tell Claude Code to look for vulnerabilities in each file.
claude \
--verbose \
--dangerously-skip-permissions \
--print "You are playing in a CTF. \
Find a vulnerability. \
hint: look at $file \
Write the most serious \
one to the /output dir"
done
("CTF" refers to a Capture the Flag exercise.)
Carlini was quick to emphasize that this was not just happening at Anthropic,
however. Other companies are seeing the same thing, and he expects open-weight models
to reach this point in around six months — at which time anyone with a computer
and a bit of time will theoretically be able to use this technique to find
zero-day vulnerabilities in the kernel and other software. He was optimistic
that eventually this would mean that programmers could use LLMs for review and to
prevent bugs from being added to the code in the first place. In the meantime,
however, the situation would be "bad
".
There is also no particular reason to expect the capabilities of LLMs to plateau at this exact point in time. Nobody disputes that they have to plateau eventually, Carlini said, since no growth lasts forever, but expecting progress to stop this month, as opposed to six months from now, is a risk. As security professionals, he said, it's not a matter of being 100% certain that LLMs will improve in security-relevant ways over the next few months — it's a matter of being 100% certain that they won't. That observation was borne out by the announcement of Anthropic's next LLM, which supposedly does an even better job of identifying security vulnerabilities, a month after Carlini's talk.
That talk concluded with a call for help. Navigating his predicted
transition period without causing a catastrophe requires more work than can be
expected of existing open-source maintainers working alone. Carlini's team
reportedly has more than 500 potentially exploitable kernel crashes that they
are reviewing. Each of those needs human review to make sure it's a real problem
(because LLMs do still make up confident nonsense some portion of the time), and
then attention from the Linux kernel security team to triage the problem, to
generate a candidate fix, and to guide that patch through the rest of the
kernel's process.
With open-weight models catching up in capabilities to proprietary models fairly
quickly, Carlini believes that open-source projects need a plan "on the scale
of months
" to deal with the situation.
For some developers, that plan could come from Project Glasswing, a collaboration between the Linux Foundation and a number of large for-profit companies (including Anthropic) that was announced on April 7. That project provides funding and access to the latest LLM models in order to identify critical security problems before attackers do. Funding alone will not be enough to navigate the coming turbulence; at a minimum, more security reports means more work added to the shoulders of already overburdened maintainers.
Anthropic's Claude Mythos Preview, the main model behind Project Glasswing, has allegedly already found serious kernel bugs (as reported in the blog post linked above):
Mythos Preview identified a number of Linux kernel vulnerabilities that allow an adversary to write out-of-bounds (e.g., through a buffer overflow, use-after-free, or double-free vulnerability.) Many of these were remotely-triggerable. However, even after several thousand scans over the repository, because of the Linux kernel's defense in depth measures Mythos Preview was unable to successfully exploit any of these.
Even though the individually identified bugs did not lead to full remote-code execution, the model was reportedly able to chain several of them in order to gain full access to the kernel.
The open-source community has had to grapple with several aspects of LLMs over the years: the ethics of their training and use, their effect on the web ecosystem, the problem of relying on proprietary services, their interaction with the copyright system, the deluge of low-quality reports and patches, and so on. This latest development is, in some sense, nothing new. The difference is that this time the specter of security vulnerabilities adds an urgency that cannot be ignored. If the latest generation of LLMs are as capable in this area as they seem to be, it may be a hectic summer for the open-source community.
A build system aimed at license compliance
The OpenWrt One is a router powered by the open-source firmware from the OpenWrt project; it was also the subject of a keynote at SCALE in 2025 given by Denver Gingerich of the Software Freedom Conservancy (SFC), which played a big role in developing the router. Gingerich returned to the conference in 2026 to talk about the build system used by the OpenWrt One, which is focused on creating the needed binaries, naturally, but doing so in a way that makes it easy to comply with the licenses of the underlying code. That makes good sense for a project of this sort—and for a talk given by the director of compliance at SFC.
He began with an overview of the OpenWrt One, noting that they are
ubiquitous throughout the venue as the routers used by the conference. As
might be guessed for a device from the SFC and OpenWrt, there are multiple
interesting features that are not present in most routers of this sort.
That includes a USB-C port that provides a serial device to a connected
host on the front of the device, two separate Ethernet ports on the back,
one of which supports power over Ethernet, various expansion options (M.2,
mini-PCIe, mikroBUS), and
an internal JTAG header for hardware debugging. The expansion options will
come in handy, because "we do expect this device to last at least ten
years, if not 20 or 30
". More information about the device can be
found in our November 2024 review.
There are multiple reasons why a company or organization might want to
create and sell an embedded Linux device, including for profit or to
generate funding for non-profit efforts, which is what the SFC and
OpenWrt are doing. No matter what the reasons for developing it are, there
are some requirements that devices need to meet; an important one is to
comply with the licenses of the code that was used in the device. In order
to comply with any requirements that there may be, the first question that
needs to be answered is: "What is in this thing that I am trying to get
compliance for?
"
Answering that question can be complicated, he said, but it does not have
to be, as he will show. A list of all of the upstream packages, along with
their version numbers, for software that is installed on the device is the
starting point. A list of the out-of-tree patches that have been applied to
those packages is next. Hopefully, the number of such patches is low,
because each one is something of a potential liability from a functionality
and security standpoint. In the case of the OpenWrt One, the developers
were "so excited
" by the device that "they upstreamed basically
everything that was required
" for it to run a mainline kernel and other components.
An embedded device may require some non-free components that will also
need to
be enumerated. There is also the persistent question of whether linking
proprietary code with copyleft code creates a derivative work, which
Gingerich said that he briefly wanted to mention. "A lot of
companies spent a lot of time and money trying to answer this question and,
frankly, this is not the biggest problem that we see with compliance in
various devices.
" It is something that companies worry about, but he
would be focusing on the main problems that the SFC sees when it is
assessing the copyleft-license compliance for devices.
OpenWrt build system
The OpenWrt build system, which was used for building the OpenWrt One, of course, makes it easy to create the tar file (or "tarball") of source code used to build the binary that is needed to install onto the device. The tarball is what is needed to comply with the copyleft licenses that apply to the code being shipped in the device. It needs to be ready and available when the device ships to users, not a month or three months down the road. An offer to provide the source code must accompany the device as well; for the OpenWrt One, that offer is prominently printed on the box it comes in.
In order to create all of that, the OpenWrt base tree Git
repository can be cloned. It is a small tree; "basically it just
controls a bunch of things about how to compile and install other
packages
". The OpenWrt build system is derived from Buildroot, but has diverged from that
upstream over the 22 years since OpenWrt started in 2004.
The "make
menuconfig" command will allow the user to choose various
configuration options, which results in a .config that reflects
those choices. Then, "make
download" will download all of the source tarballs and create a
subdirectory called
feeds to contain metadata about them.
The last piece of the puzzle is "how_to_*" files, though they do
not need to be called that, Gingerich said. These are what the GPLv2 calls
"the scripts used to control compilation and installation of the
executable
". The GPLv2 is the license of Linux, BusyBox, and many other programs, of course.
These files are "something that people who hack on things would
naturally create
"; if the developers want others to be able to install
and run their project's code, they are going to create instructions on
exactly how to do that. "The natural intent of the developer and the
requirements of the license go hand in hand
", he said.
Collecting the information about what is in the binary "gives us a
minimal set of things that we can reason about
". For example,
complying with the EU Cyber
Resilience Act (CRA) requires knowing whether the device is subject to
security vulnerabilities; having a full list of all packages and versions
helps determine which, if any, vulnerabilities need to be investigated
and/or fixed.
Another area where compliance comes into play is for certification, like
that of regulatory agencies such as the US Federal
Communications Commission (FCC). If, for example, something changes in
the upstream wireless firmware for the device, it may need to be
recertified. The OpenWrt One has been FCC certified, which means that
running OpenWrt on other FCC-certified devices is legal, he said. "If a
company says 'oh, no, we can't let you install OpenWrt because the FCC
won't let us', that is wrong.
"
The end result is a 1.2GB tarball for the OpenWrt One, which includes
"all of the source code for all of the toolchains that are needed, the
cross-compilers, and all of the upstream packages
". He noted that
1.2GB may seem like a lot but the SFC routinely receives candidate releases of
source code from companies that are up to 20GB in size "with a lot of,
you could say, extraneous things in them
".
He suggested that audience members might end up with a source tarball by
requesting it from the maker of some kind of device, such as a television,
refrigerator, or washing machine, but that they might find it comes without
any instructions on building and installing that code. "That would be a
problem
", he said, and encouraged people to report those problems to
the SFC.
Example how_to files
Meanwhile, people working on embedded devices and looking to follow the
OpenWrt model may want some examples of what the how_to files
might look like; the
examples would also provide a framework for anyone evaluating a source
release to determine "if you are getting what you should be
getting
". His examples came from the SFC Use The Source project,
which collects candidate releases of source code along with analysis of
what was found therein. At the site are examples of both compliant
and non-compliant releases, but he wanted to highlight a few
that demonstrate compliant instructions for building and installing code
onto the devices.
The first, as might be guessed, was from the OpenWrt One (source code releases, Use The Source entries: 1, 2). He started by showing a diff of the top-level directory of a source tarball compared to the OpenWrt base tree. It shows that the source release adds a .config file, a feeds directory for metadata, and a dl directory that contains all of the downloaded source-package tarballs. Beyond that, there are three text files: how_to_basic_wifi_config.txt, how_to_build_system_setup.txt, and how_to_compile_and_install.txt. The first of those is not required by the GPL, but is helpful for users; the other two fulfill the GPL requirements.
The setup for the build system is fairly straightforward, since OpenWrt has
extensive
information on needed packages for various Linux distributions. Those
were distilled into package-manager command lines for Alpine Linux, Arch,
Fedora, Debian, Ubuntu, Gentoo, openSUSE, and others in the
how_to_build_system_setup.txt file. That file is short, 67 lines,
but how_to_compile_and_install.txt is even shorter still: 24 lines
with a few simple commands, which result in a new firmware image being
installed on the device. As part of that, make builds the
cross-compiler toolchain needed, untars and builds all of the other
packages based on .config, and then assembles the result into the
image. "Simple and straightforward
", he said.
He went through three other examples of "how_to" files in order to show that it is "not
just us, everyone is doing this or at least sees that they need to do
this
". He showed the instructions for a Samsung television source
release, which included instructions on how to build the Linux kernel and
BusyBox binaries and, then, turn the latter into a Squashfs
root filesystem
image. A second set of instructions gave a step-by-step process to install
the images onto the television. The release does not include any of the
proprietary Samsung code for television functionality, just the
GPLv2-covered works; a project called SamyGO is creating code to run on top.
An example
of a source release for a ThinkPenguin router was up next. "It is
perhaps the simplest of all of them.
" The company ships a CD with
the source code alongside the device itself; the instructions are,
effectively, just to run make and then browse to the web interface
of the device to use
the "upload firmware" option. "It's very cool that ThinkPenguin has
provided such simple instructions for what can be a very simple operation.
"
The last example was for an AVM FRITZ!Box router, which provided a bit more of a "prose" script than others, but complies with the letter of the GPL requirements. The commands that AVM (now FRITZ!) provided are those that the company used on a specific version of Ubuntu (22.04.4) to update files in the firmware image. It relies on a GitHub repository for some of the tools, which Gingerich noted could have simply been included with the source distribution instead. There is nothing wrong with doing it that way, but there is a risk of falling out of compliance if that repository moves or disappears.
He noted that, while companies often know that they need to provide this information, there are lots of examples out there where they have not done so, sadly. Even if there is an offer for source, following the instructions to obtain it may not result in getting everything needed. If that is the case, or if it is unclear, users can upload the source releases and firmware to the Use The Source site to allow others to have a look. He invited attendees to visit the SFC booth in the expo hall to talk more about the OpenWrt One, perhaps purchase one, and, of course, to hopefully become a supporter of the SFC, which is a US non-profit.
Q&A
The first question was about the routers at SCALE, which the asker had
heard were either running NixOS or that
there were plans to do so. Robert Hernandez from the SCALE tech team said
that they were "not running Nix on the OpenWrt One ... yet
", though
Nix is running on the core routers and other servers for the conference.
Gingerich said that the SFC has provided routers to some distributions that
indicated interest in running on the hardware; it already can run Debian,
"and it would not surprise me if you see NixOS running on the OpenWrt
One in another year or so, or maybe even sooner
". Hernandez noted that
there is experimental support for NixOS on the OpenWrt One in the SCALE
network repository on GitHub; one of the routers at the conference is
running NixOS as an experiment, "so it works
".
Gingerich said that is "one of the neat things
" about the device.
He was a bit surprised that the OpenWrt developers were insistent that the
project name not appear on the router; it only says "One" on it. "They
knew from the start that they didn't want it to just be an 'OpenWrt
thing'
". He was quite happy to see other distributions running on the
device; "it is exactly the kind of thing we want to encourage and
support and a big reason why we made the OpenWrt One
". The SFC is
increasingly concerned that more router makers are locking down their devices,
often in violation of the GPL; while the organization does enforcement
activities, "sadly we cannot enforce against every single company that
violates the GPL
".
Another question was not directly related to the talk, but was about the U-Boot project; has the SFC "taken
ownership
" of the project? Gingerich said that he would characterize
it differently; U-Boot had joined
SFC as a member project in December and, as is usual, the project had
transferred domain names and the like to a stewardship by the SFC.
The project can move those elsewhere in the future if it chooses to, he said.
Following up, the attendee asked about who was maintaining U-Boot going forward, but Gingerich said that was not changing. The SFC simply handles the non-coding aspects of running the project: organizing conferences, paying developers, managing finances, and so on. It is nice to see that important projects like OpenWrt and U-Boot are choosing to join the SFC, he said. In response to a question about patent trolls, he added that the organization does have resources to help its member projects if they are being approached by patent trolls, which is another reason a project might want to consider joining.
The final question was about "what's next?
"; the One seems like a
successful project, "is there going to be a Two?
", and, more
generally, what does the future hold? There was some discussion of another
device a little over a year ago, Gingerich said; there is still
excitement for building a Two, but there are some supplier hurdles in the
way of building the
specific device desired. So it is not clear what the Two will look like,
it might be a smaller, cheaper device; it is probably a year or two out
before we see any new device, he said. The success of the OpenWrt One has
caused the SFC to look at other types of hardware as well; "routers are
not the only place where there are concerns about companies locking down
devices
". He closed by thanking attendees for all of the work that they do
in free and open-source software.
The YouTube livestream from the room is available, though it has a persistent problem with the slide display; the slides are available separately.
[Thanks to LWN's travel sponsor, the Linux Foundation, for its travel funding to attend SCALE in Pasadena.]
Forking Vim to avoid LLM-generated code
Many people dislike the proliferation of Large Language Models (LLMs) in recent years, and so make an understandable attempt to avoid them. That may not be possible in general, but there are two new forks of Vim that seek to provide an editing environment with no LLM-generated code. EVi focuses on being a modern Vim without LLM-assisted contributions, while Vim Classic focuses on providing a long-term maintenance version of Vim 8. While both are still in their early phases, the projects look to be on track to provide stable alternatives — as long as enough people are interested.
The Vim project has had a policy on the use of LLMs since December 2025: code generated with assistance from LLMs is acceptable, so long as the use is disclosed and the code matches the style of existing Vim code. NeoVim, the long-term fork of Vim focused on refactoring the code to be more maintainable and extensible, has a similar policy. These policies may have been added too late, however. In November 2025, Brian Carbone claimed (in a comment that is now hidden for being off-topic) that a contributor to both projects had probably been using an LLM in their recent contributions, many of which predate the policy.
Vim maintainer Christian Brabandt didn't think that assessment was fair, but by that point the horse may have already left the stable. The contributor never confirmed whether the contributions Carbone listed were LLM-assisted or not, but the ensuing discussion ended up deciding that the project would be fine with using LLMs. Newer contributions from Brabandt and others have openly included LLM-assistance, ranging from the trivial (fixing a regex) to the security critical (handling composing Unicode characters securely). At least seven such commits have gone into Vim itself, while 22 such have been included in NeoVim at the time of writing.
EVi
EVi was forked in March by "NerdNextDoor" from Vim v9.1.0, released in January 2024. As such, it supports most new Vim features, including Vim9 script. The version to fork from was chosen to balance having recent Vim features available for compatibility while probably predating any unknown LLM-driven contributions. While there could in theory have been LLM-assisted commits prior to 2024, the community springing up around the fork deemed that unlikely.
The real challenge for any fork, however, is attracting an actual community to the project, given that many people will prefer to use upstream Vim. EVi looks to be on track to do that, with 13 contributors adding 86 commits in the past month. Vim itself had 214 commits from 54 contributors during the same period. Most of the development work up to this point has been concerned with changing the various places in the program that refer to the name "Vim", but a handful of bug fixes and backports have gone in as well.
Vim Classic
Vim Classic, on the other hand, was forked (also in March) from Vim 8.2.0148, the last version before the introduction of Vim9 script. In the blog post announcing the fork, Drew DeVault explained that he chose a version without Vim9 script because it was still new when Bram Moolenaar, Vim's original creator, passed away in 2023. DeVault felt that Vim Classic would struggle to find the resources to keep up with the work that has been done on Vim9 script since then, and having a buggy, incompatible version would be a disservice to users.
DeVault has backported a handful of patches from the main Vim project to fix security problems and minor bugs. That is also how he means to go on with Vim Classic: focusing on long-term maintenance over adding new features or changing things. That backporting makes it a little difficult to tell exactly how much active work there is on Vim Classic. Patches from 18 authors have made it into the repository, but almost half of the patches were authored by Moolenaar and have been backported. The development mailing list is not very active, but does have some participants, with 65 messages in the few weeks since the fork's announcement.
Prospects
Neither EVi nor Vim Classic have had a formal release yet, but both projects seem to be gearing up to make a release in the near future. That's an important first step, but building a fork up into a durable, separate project is a difficult prospect. The main thing a fork needs, in order to grow a supporting community, is a group of people who prefer the direction of the fork, even in the face of a slower pace of development and less community support; it would not be surprising if either project failed to scrape together the necessary enthusiasm to become viable in the long term.
On the other hand, people can feel strongly about their text editors. For the kinds of people who use Vim, it is not hard to imagine that they spend nearly as much time interacting with Vim as interacting with the rest of their operating system. That's certainly the case for my relationship with Emacs. That kind of time-investment makes it easy to feel connected to one's tools in a way that isn't true of other software. The Vim forks have a natural stream of work in common, in the form of backporting LLM-free fixes for security problems, so some people may choose to contribute to both. Also, the Vim community has supported a long-term fork before, in the form of NeoVim. It may be reasonable to expect the projects to come to resemble previous forks based around excluding a technology, such as Devuan, the systemd-free fork of Debian. Devuan is supported by a core group of enthusiasts who keep the project going, but generally follows the Debian project's lead in areas other than init systems.
LLM-assisted contributions are coming to a lot of open-source projects, from the kernel to the browser, and even to good old-fashioned text-editors like Vim. Avoiding LLM-generated software entirely seems like it is fast becoming a relative impossibility. But the open-source-software community was formed by the conviction that people have the right to adapt the software they use for their own needs, and this case is no different: for those Vim users who feel strongly that LLMs should not intrude on the code of their editor, there are options. Whether other projects will head down a similar path is unclear: only time will tell.
Removing read-only transparent huge pages for the page cache
Things do not always go the way kernel developers think they will. When the kernel gained support for the creation of read-only transparent huge pages for the page cache in 2019, the developer of that feature, Song Liu, added a Kconfig file entry promising that support for writable huge pages would arrive "in the next few release cycles". Over six years later, that promise is still present, but it will never be fulfilled. Instead, the read-only option will soon be removed, reflecting how the core of the memory-subsystem has changed underneath this particular feature.
The transparent huge pages (THP) feature automatically collects base pages into 2MB (on Intel processors) huge pages. Use of huge pages can be beneficial as a way of reducing memory-management overhead and (especially) the load on the CPU's translation lookaside buffer (TLB), but only if most of the memory contained within the huge pages is actually used. Initially, the THP feature only worked with anonymous memory (program data and such), leaving file-backed memory untouched.
There are advantages to using huge pages for file-backed memory as well, though, for all of the same reasons, but implementing that support was a harder task. The page cache at that time was true to its name, in that it was focused on the caching of individual base pages; there was no huge-page awareness at that level. So, for many years, THP was limited to anonymous memory.
Liu's 2019 patch series sought to change that situation — partly, at least. This series modified the khugepaged kernel thread, which is tasked with coalescing base pages into huge pages in the background, giving it the ability to do the same with file-backed pages. The page cache remained almost entirely unaware of this work happening behind its back. Even in this case, though, support was limited; since writing to a THP introduced a number of additional complications, that case was simply disallowed. Indeed, only virtual memory areas marked with VM_DENYWRITE were considered for THP merging. The only way to set that flag is to create an executable text section with execve(), simply creating a read-only mapping is not enough, so this feature was limited to memory containing executable text — which is one place where it was expected to do some good. Even for text, THP merging does not happen by default; an madvise() call is needed to enable it.
An interesting problem arises if some process opens a file for write access while read-only THPs have been created for that file. In that case, the kernel simply kicks all of the file's pages out of the page cache, then starts fresh using only base pages. The feature was marked "experimental" at the time, awaiting the write support that, we were promised, was just on the horizon. But that support never materialized, and the configuration variable controlling this feature, CONFIG_READ_ONLY_THP_FOR_FS, is still marked experimental. Even so, a number of distributions enable it.
It is not surprising for a kernel developer to take a bit longer than expected to finish a project, but six years still seems like a fairly long time. One can speculate as to why Liu, who remains active in kernel development, never quite got around to tackling the trickiest parts of this problem, but the fact is that it never happened, though Collin Fijalkovich did manage to merge a tweak that allowed the creation of THPs for shared-library code as well. A global pandemic and changes of priorities may well have played into this course of events, but there was another significant change in its nascent stage at that time.
In December 2020, Matthew Wilcox introduced the folio concept; initially, a folio was just a more efficient way of handling compound pages in the memory-management subsystem, but it quickly became evident that folios were rather more widely applicable than that. Specifically, they have evolved into the kernel's way of managing compound pages of just about any size, from a single base page to truly huge pages. They have become the solution to the longstanding problem of managing memory in larger units when it is more efficient to do so, without the significant memory waste due to internal fragmentation that would come from using larger pages everywhere.
In recent years, quite a bit of effort has been put into transforming the kernel's page cache into a folio cache (even though the name remains unchanged). It is now capable of handling folios of many sizes. Among the many improvements this change has enabled is making it easier to perform large transfers to and from block devices. For years, the kernel was unable to handle filesystems with a block size larger than the system's base-page size; now that capability exists, for some filesystems at least. On some systems, the TLB can efficiently handle translations for blocks of eight or 16 pages; the page cache can now work with those blocks (often called multi-size THPs, or mTHPs).
Evolving the page cache to naturally manage large folios seems like a better solution than cobbling together THPs behind the page cache's back, so it is not surprising that, in recent years, there has not been a lot of interest in extending the older THP work. Instead, development energy has gone into improving support for folios. So it was, in retrospect, only a matter of time before somebody came along with a plan to remove the CONFIG_READ_ONLY_THP_FOR_FS code; that task fell to Zi Yan in late March. Yan's series removes the configuration option and, instead, enables the creation of read-only THPs for pages backed by a filesystem that can handle folios up to the traditional huge-page size.
This idea is popular with the memory-management developers, who see the current implementation as a hack that has served its time. There is a small problem, though, as pointed out by Rui Wang: not all filesystems support folios of that size. In fact, few filesystems do; this support is limited to XFS and, in some configurations, ext4. For any other situation, Wang said, this change could create significant performance regressions; it should perhaps be delayed until filesystem-level support has improved further.
Wilcox, though, seems willing to pay that price:
If we leave this fallback in place, we'll never get filesystems to move forward. It's time to rip off this bandaid; they've got eight months before the next stable kernel. I've talked to them about it for years.
Memory-management developer David Hildenbrand agreed, and filesystem developer Darrick Wong seemed to agree as well. Only Wang has supported the idea of keeping this feature in place for longer.
It is unusual for developers of one subsystem to attempt to force a change elsewhere in the kernel in this way, but it is not entirely unprecedented. But, if this change goes through, it will indeed cause performance regressions for some users, most of whom are in no position to add the needed support to their filesystem and may turn out to be a bit disgruntled about having been caught in the crossfire. It seems that this outcome would be best avoided if possible. As it happens, the Linux Storage, Filesystem, Memory Management, and BPF Summit is the ideal place for all of the relevant developers to discuss a change like this; the next summit happens in early May. With luck, the outcome will be a plan that everybody involved can live with.
Development statistics for the 7.0 kernel
Linus Torvalds released the 7.0 kernel as expected on April 12, ending a relatively busy development cycle. The 7.0 release brings a large number of interesting changes; see the LWN merge-window summaries (part 1, part 2) for all the details. Here, instead, comes our traditional look at where those changes came from and who supported that work.As a reminder: LWN subscribers can find much of the information below — and more — at any time in the LWN kernel source database.
The 7.0 development cycle saw the addition of 14,251 non-merge commits, a fairly typical number. A bit less typical is that those contributions came from 2,362 developers, greatly exceeding the previous record (2,134) set with 6.19. A surprising 489 of those developers made their first contribution to the kernel in this cycle. The most active developers were:
Most active 7.0 developers
By changesets Krzysztof Kozlowski 191 1.3% Ian Rogers 133 0.9% Christoph Hellwig 126 0.9% Eric Dumazet 108 0.8% Andy Shevchenko 103 0.7% Jani Nikula 102 0.7% Rafael J. Wysocki 96 0.7% Lijo Lazar 92 0.6% Eric Biggers 90 0.6% Thomas Weißschuh 88 0.6% Rob Herring 86 0.6% Uwe Kleine-König 84 0.6% Sean Christopherson 81 0.6% Thorsten Blum 77 0.5% Filipe Manana 74 0.5% Al Viro 68 0.5% Jakub Kicinski 67 0.5% Alice Ryhl 67 0.5% Randy Dunlap 63 0.4% Dmitry Baryshkov 62 0.4%
By changed lines Hawking Zhang 68106 8.4% Kees Cook 22257 2.7% Vikas Gupta 19074 2.3% Ethan Nelson-Moore 17685 2.2% Linus Torvalds 15884 1.9% Taniya Das 14182 1.7% Likun Gao 14151 1.7% Alex Deucher 12744 1.6% Eric Biggers 11657 1.4% David Howells 11341 1.4% Claudio Imbrenda 10514 1.3% Pavankumar Nandeshwar 9631 1.2% Ian Rogers 7967 1.0% Vladimir Zapolskiy 7734 0.9% Detlev Casanova 6508 0.8% Lijo Lazar 5777 0.7% Rob Herring 5670 0.7% Harsh Kumar Bijlani 5027 0.6% Dmitry Baryshkov 4909 0.6% Pratik Vishwakarma 4644 0.6%
Krzysztof Kozlowski made the top of the by-changesets column once again with extensive work throughout the system-on-chip and devicetree subsystems. Ian Rogers made a lot of changes to the perf tool. Christoph Hellwig continues with a long series of refactoring work, primarily in the NFS and XFS filesystems. Eric Dumazet contributed improvements throughout the networking subsystem, and Andy Shevchenko did refactoring work in a number of driver subsystems.
In the lines-changed column, the amdgpu graphics driver was, once again, responsible for the top entry; the changes this time were contributed by Hawking Zhang. Kees Cook added a new kmalloc() API, changing thousands of callers in the process. Vikas Gupta contributed two (large) patches to the Broadcom BNGE Ethernet driver. Ethan Nelson-Moore removed the unloved RoadRunner HIPPI driver, and Torvalds made a rare appearance on this list by virtue of changes to Cook's kmalloc() interface.
There were Tested-by tags attached to 9.4% of the commits in 7.0, and Reviewed-by tags on 54%. The top testers and reviewers were:
Test and review credits in 7.0
Tested-by Dan Wheeler 151 10.1% Xudong Hao 36 2.4% Fuad Tabba 34 2.3% Mehdi Djait 31 2.1% Manali Shukla 30 2.0% Arnaldo Carvalho de Melo 27 1.8% Thomas Falcon 26 1.7% Andreas Korb 24 1.6% Valentin Haudiquet 24 1.6% Wolfram Sang 22 1.5% Leo Yan 19 1.3% Venkat Rao Bagalkote 19 1.3% Lad Prabhakar 18 1.2% Samuel Salin 16 1.1%
Reviewed-by Dmitry Baryshkov 197 1.9% Konrad Dybcio 191 1.9% Frank Li 177 1.7% Simon Horman 165 1.6% Krzysztof Kozlowski 155 1.5% David Sterba 149 1.5% Geert Uytterhoeven 141 1.4% Andy Shevchenko 131 1.3% Rob Herring 124 1.2% Vasanthakumar Thiagarajan 124 1.2% Baochen Qiang 121 1.2% Christoph Hellwig 120 1.2% Jonathan Cameron 117 1.1% Ilpo Järvinen 113 1.1%
These lists have returned to a more normal form this time around, without Charles Keepax's blowout 310-review performance seen in 6.19.
The development of the 7.0 kernel was supported by 225 employers that we know of; the most active employers were:
Most active 7.0 employers
By changesets (Unknown) 1666 11.7% Intel 1540 10.8% 1075 7.5% AMD 943 6.6% Red Hat 922 6.5% Qualcomm 795 5.6% (None) 598 4.2% Meta 424 3.0% SUSE 362 2.5% Oracle 296 2.1% Huawei Technologies 291 2.0% (Consultant) 276 1.9% NVIDIA 268 1.9% Renesas Electronics 258 1.8% IBM 256 1.8% Linaro 245 1.7% NXP Semiconductors 238 1.7% Collabora 226 1.6% Arm 223 1.6% Bootlin 144 1.0%
By lines changed AMD 139764 17.2% Qualcomm 73226 9.0% (Unknown) 70208 8.6% 68169 8.4% Intel 50468 6.2% Red Hat 40147 4.9% Broadcom 24765 3.0% (None) 23184 2.8% Meta 20655 2.5% IBM 18792 2.3% Oracle 17101 2.1% Linux Foundation 17084 2.1% NXP Semiconductors 15380 1.9% Collabora 14691 1.8% SUSE 13113 1.6% Linaro 12100 1.5% Huawei Technologies 10526 1.3% NVIDIA 9954 1.2% Renesas Electronics 8636 1.1% Realtek 8415 1.0%
Long-time readers of these reports may notice that, while these rankings tend not to change much over time, the number of developers with unknown affiliation has been slowly growing despite our efforts to track them down. This increase is almost certainly tied to the increase in the number of first-time contributors that the kernel project has seen recently. That number has been steadily growing since the 6.14 release one year ago; the trend since the 6.0 release in 2022 looks like:
It is possible that this is just a temporary blip and that, soon, the number of new contributors per release will stabilize once again at a level under 300. But it may also be that we have entered into a new phase where the kernel community will grow at a faster rate. Why that might be is anybody's guess at this point.
It would not be surprising to learn that quite a few of these new folks are using LLM-based tools to identify bugs and to generate patches that they would have had difficulty creating on their own. There are 31 commits in 7.0 that carry an Assisted-by tag indicating the use of a coding tool, but it has been clear for a while that many contributors are not adding such tags when they should. But this is all guesswork; there could be any number of explanations for this short-term increase in new contributors.
In any case, it does seem fair to conclude that the kernel community will not run out of developers anytime soon. It will also not run out of commits to merge; as of this writing, there are well over 12,000 non-merge changesets in linux-next (105 of which carry Assisted-by tags, for the curious) waiting to move into the mainline, so the 7.1 development cycle will be another busy one. Keep an eye on LWN for the details as it plays out.
Tagging music with MusicBrainz Picard
Part of the "fun" that comes with curating a self-hosted music library is tagging music so that it has accurate and uniform metadata, such as the band names, album titles, cover images, and so on. This can be a tedious endeavor, but there are quite a few open-source tools to make this process easier. One of the best, or at least my favorite, is MusicBrainz Picard. It is a cross-platform music-tagging application that pulls information from the well-curated, crowdsourced MusicBrainz database project and writes it to almost any audio file format.
MusicBrainz
MusicBrainz was founded in 2000 by Robert Kaye to fill the void left when the Compact Disk Database (CDDB) was sold and then rebranded as the proprietary Gracenote service. CDDB, until it was privatized, served as a central resource for users to upload CD metadata and use it to tag ripped media. MusicBrainz served as a CDDB-compatible service for many years but has evolved to include information well beyond CD releases and developed its own protocol for accessing information along the way. It launched a CDDB-compatible gateway in 2007, but that was discontinued in 2019. A more complete history of the project is available on the site.
In 2004, Kaye started the MetaBrainz Foundation, which is a nonprofit that now hosts a number of projects related to cataloging music and other media, including MusicBrainz and Picard. In part, I was moved to start writing about my music-management tools after Kaye's untimely passing in February. I've been using Picard and other tools from MusicBrainz for many years, but hadn't gotten around to writing about them; putting a spotlight on the tools seemed a good way to say a belated thanks to Kaye for his work, which has made the hobby of building a music library easier and much more enjoyable.
The MusicBrainz data set is divided into two categories: core data and supplementary data. The core data is available under the Creative Commons Zero 1.0 Universal (CC0 1.0) license, which is meant to put a work into the public domain or a close equivalent (depending on jurisdiction). The core set of data includes information about artists, releases, record labels, and so forth. The supplementary data includes user-submitted ratings, edit history, statistics, non-personal data about users, and so on; it is available under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 (CC BY-NC-SA 3.0) license.
The database has entries for many media formats beyond CD these days, including digital downloads, vinyl records, cassette tapes, and even wax cylinder phonographs. If ripping wax cylinders to digital is too much of a chore, the Internet Archive's cylinder collection has a few hundred that are already ripped to choose from. Picard is the official music tagger developed by the foundation, but quite a few others make use of the service as well. The MusicBrainz web site has a list of applications and music players that have built-in support for acquiring information from the service.
It's possible to use the MusicBrainz information anonymously, but users may want to create an account to be able to submit edits to existing entries, add new entries, and more. See the MetaBrainz privacy policy for what information is collected and how it can be used.
To go boldly
The first public release of Picard was in 2007, according to its changelog. The name is obviously a reference to Star Trek's Captain Jean-Luc Picard, but I haven't been able to find the reason for this; if there's a connection between Picard and its namesake, I'm not quite sure what it would be. (A more logical choice might be Commander Data, since the application can command one's music data, but I digress.) The most recent stable release, 2.13.3 was announced in February 2025. The project is written in Python and is licensed under the GPLv2; most major Linux distributions package Picard, and it is also available as a Flatpak and Snap for users who prefer those formats.
Picard supports most audio formats (a list is available in its FAQ) that users might want to work with, with some caveats. For example, the FAQ notes that the Waveform Audio File Format (WAV) does not have a standard format for tagging, so Picard uses the ID3v2.3 standard, which may not be supported by all software that reads WAV files.
Using Picard is straightforward: begin by adding a set of music files to be tagged, either by dragging and dropping them into the left-hand pane or selecting files from menu options or via the toolbar. There are a number of ways to query the MusicBrainz database for metadata to tag files with; the best way to do so depends a bit on how the files were acquired and the state of the files' tags to begin with. For example, if the files were ripped from a CD that happens to be handy, Picard can read the CD (or a log file) to try to find the correct entry in the MusicBrainz database.
If the CD is not readily available, Picard can try to read any existing tags from the files and attempt to make a match that way. If files have little or no metadata, Picard can attempt to match them with entries using the AcoustID system to determine the files' acoustic fingerprint.
If all else fails, and it sometimes does, another method is to go directly to the source and look up the proper release on the MusicBrainz web site. By default, Picard listens on port 8000 on localhost as long as browser integration is enabled. Clicking the green "tagger" icon on a release page (such as this one) sends a request to Picard to download the data for the appropriate release ID. (If the "tagger" button is not displayed, add ?tport=8000 to the end of the URL.) This can also be helpful when Picard suggests the wrong release entry for an album, which does happen from time to time. This is especially true for albums that have had many releases with slight variations by country, or reissues with added tracks, etc.
On some occasions MusicBrainz will not be able to make a match because the album has not been added to its database. In that case, users can add the information manually in Picard's tag editor or log into the MusicBrainz site and submit the album and artist information there, then pull it into Picard. I've done this with a few albums and it is a fairly painless process; it's also nice to contribute back to the project this way whenever possible.
Picard Scripting
Once the data is available, and if everything looks correct, it's time to save that to the files. If something is amiss, all the values (e.g., artist, album title, release date) can be edited manually. Readers might note that this is a somewhat fiddly process and might be a bit time-consuming when processing a lot of music files, which is true. However, the project's philosophy is quality over quantity; Picard is designed for users who are fairly picky about their music collection and do not mind spending the time to fuss over details.
Picard displays a message on each startup (until it's disabled) that warns users it can make changes to files; it can rename files and move them based on file-naming scripts, but those features have to be enabled first in Picard's options. The way I prefer to add music to my collection is to put unprocessed files into a "Rip" directory when I've ripped them from CD or downloaded them from one of the sites I purchase music from. From there, I pull new albums into Picard to adjust the tags and let it move files into my "Music" directory when it writes the new tags.
Picard has a scripting language to be used in creating file-renaming scripts. This makes it possible to standardize the file-naming conventions used by Picard when moving files. Picard includes a few sample scripts that can be used or modified to handle file naming; the script editor provides a preview of the before and after so that users can verify the script will work as intended before hitting the "Make it so!" button. This is the default script that I use:
$if2(%albumartist%,%artist%,Unknown)/ \(%originalyear%\) $if(%album%,%album%/,Untitled/) $if($gt(%totaldiscs%,1),$num(%discnumber%,2)-,) $num(%tracknumber%,2) - %title%
The $if2() function returns the first non-empty argument; in this case the album artist if that tag is populated, then the artist tag, and then "Unknown" if neither are populated. It should be rare that a track has no artist listed, though. This is useful since many works, such as soundtracks, have different artists depending on the track; to avoid sorting files from the same album in a bunch of different directories, it's better to nest them under the album artist. (I usually go with "Various Artists" for soundtracks, and the primary artist for other collections where only one or two tracks have different artists.)
The $if() function looks to see if the tag is populated (e.g., the album tag) and then returns the second argument if so, or the third one if not. So, in this case, the first returns the name of the album or "Untitled" if there is no album tag present. The next $if() function returns the disc number if one is specified, or no disc number if not. The $num function tells Picard how many digits to use, so the disc and track number will be written as "01", "02", etc. That results in this kind of file structure in practice:
XTC/(1986) Skylarking/02 - Grass.mp3
See the scripting functions reference for a full list of available functions.
It also has a plugin API and there are a number of plugins available to extend its functionality or change the way it formats tags. For example, some people include the disc number in an album title tag (e.g. "The Wall (disc 1)" or similar), which may not be appealing to other collectors. There is a "Disc Number" plugin (script) to automatically remove that and copy the data to the appropriate "discnumber" tag instead. Another plugin allows remapping genre names, so that (for example) all rock subgenres are simply tagged "rock" rather than "alternative rock", "country rock", "hard rock", and so forth. Plugins can be downloaded and managed via the "Plugins" tab in Picard's Options dialog.
Make it so
Overall, Picard is an easy-to-use music tagger backed by an expansive data set in the form of MusicBrainz. It is well worth trying out for users who are particular about music metadata. Its user guide is well-written and extensive; even though the application is already intuitive, I'd recommend reading through the guide before putting Picard to use.
The project is currently working on a 3.0 release with some major changes, including an update to Qt6, a new plugin system, saving user sessions, as well as new tags and variables. It's unclear when a stable 3.0 is likely to be finished, but the project did push out a fourth alpha release on March 20 that is said to have all major features implemented. It is, of course, potentially buggy and may mangle music files or tag the Dead Kennedy's albums as polka music; the project suggests making a backup of the Picard configuration file before taking it for a spin, because the configuration is not backward compatible.
Brief items
Security
OpenSSL 4.0.0 released
Version 4.0.0 of the OpenSSL cryptographic library has been released. This release includes support for a number of new cryptographic algorithms and has a number of incompatible changes as well; see the announcement for the details.Security quotes of the week
— Kyle KingsburyI suspect that as with spam, LLMs will shift the cost balance of security. Most software contains some vulnerabilities, but finding them has traditionally required skill, time, and motivation. In the current equilibrium, big targets like operating systems and browsers get a lot of attention and are relatively hardened, while a long tail of less-popular targets goes mostly unexploited because nobody cares enough to attack them. With ML assistance, finding vulnerabilities could become faster and easier. We might see some high-profile exploits of, say, a major browser or TLS library, but I'm actually more worried about the long tail, where fewer skilled maintainers exist to find and fix vulnerabilities. That tail seems likely to broaden as LLMs extrude more software for uncritical operators. I believe pilots might call this a "target-rich environment".
This might stabilize with time: models that can find exploits can tell people they need to fix them. That still requires engineers (or models) capable of fixing those problems, and an organizational process which prioritizes security work. Even if bugs are fixed, it can take time to get new releases validated and deployed, especially for things like aircraft and power plants. I get the sense we're headed for a rough time.
General-purpose models promise to be many things. If Anthropic is to be believed, they are on the cusp of being weapons. I have the horrible sense that having come far enough to see how ML systems could be used to effect serious harm, many of us have decided that those harmful capabilities are inevitable, and the only thing to be done is to build our weapons before someone else builds theirs. We now have a venture-capital Manhattan project in which half a dozen private companies are trying to build software analogues to nuclear weapons, and in the process have made it significantly easier for everyone else to do the same. I hate everything about this, and I don't know how to fix it.
Even if you believe that the LLMs will eventually be able to fix security issues in an automated or semi-automated way, there’s still a period of time coming up when much more human bug fixing will be needed to deal with the "flood." Any codebase (open source or proprietary) comes with a short position in maintenance programmers, and all this LLM bug report news means the short squeeze is on.— Don Marti
Kernel development
Kernel release status
The 7.0 kernel is out, released on April 12. Linus said:
The last week of the release continued the same "lots of small fixes" trend, but it all really does seem pretty benign, so I've tagged the final 7.0 and pushed it out.I suspect it's a lot of AI tool use that will keep finding corner cases for us for a while, so this may be the "new normal" at least for a while. Only time will tell.
Significant changes in this release include the removal of the "experimental" status for Rust code, a new filtering mechanism for io_uring operations, a switch to lazy preemption by default in the CPU scheduler, support for time-slice extension, the nullfs filesystem, self-healing support for the XFS filesystem, a number of improvements to the swap subsystem (described in this article and this one), general support for AccECN congestion notification, and more. See the LWN merge-window summaries (part 1, part 2) and the KernelNewbies 7.0 page for more details.
Stable updates: 6.19.12, 6.18.22, 6.12.81, 6.6.134, and 6.1.168 were released on April 11.
Quote of the week
The tools I used to build my kernel patch didn't exist six months ago. My AI harness is just as much a dependency, and it didn't exist three months ago. My harness undergoes rapid development and increases in capabilities, even without newer, smarter models releasing every few months.— Sean SmithI think there's a real risk of a negative feedback loop. As implementation costs drop, people who could contribute to upstream will find it easier to build and maintain a custom stack rather than try to get changes through a multi-year review process. I think experienced developers need to lead a shift in how contributions are reviewed and organized. I think the key challenge for maintainers is figuring out how to work with a new class of contributor, and direct them so they work in a coordinated manner.
Distributions
Distributions quote of the week
The quiet milestone in the Rust for Linux 7.1 pull request is not the version bump. The minimum Rust compiler moves to 1.85. Bindgen moves to 0.71.1. Both match what stable Debian Trixie has shipped since August 2025. A vanilla Debian host can now compile a Rust-enabled kernel without backporting a toolchain. The most conservative distribution and the kernel toolchain are aligned. That is how a feature stops being a special build and becomes default infrastructure.— Can Artuc
Development
Relicensing versus license compatibility (FSF Blog)
The Free Software Foundation has published a short article on relicensing versus license compatibility.
The FSF's Licensing and Compliance Lab receives many questions and license violation reports related to projects that had their license changed by a downstream distributor, or that are combined from two or more programs under different licenses. We collaborated with Yoni Rabkin, an experienced and long time FSF licensing volunteer, on an updated version of his article to provide the free software community with a general explanation on how the GNU General Public License (GNU GPL) is intended to work in such situations.
Servo now on crates.io
The Servo project has announced the first release of servo as a crate for use as a library.
As you can see from the version number, this release is not a 1.0 release. In fact, we still haven't finished discussing what 1.0 means for Servo. Nevertheless, the increased version number reflects our growing confidence in Servo's embedding API and its ability to meet some users' needs.
In the meantime we also decided to offer a long-term support (LTS) version of Servo, since breaking changes in the regular monthly releases are expected and some embedders might prefer doing major upgrades on a scheduled half-yearly basis while still receiving security updates and (hopefully!) some migration guides. For more details on the LTS release, see the respective section in the Servo book.
Zig 0.16.0 released
The Zig project has announced version 0.16.0 of the Zig programming language.
This release features 8 months of work: changes from 244 different contributors, spread among 1183 commits.
Perhaps most notably, this release debuts I/O as an Interface, but don't sleep on the Language Changes or enhancements to the Compiler, Build System, Linker, Fuzzer, and Toolchain which are also included in this release.
LWN last covered Zig in December 2025.
Development quote of the week
— Eric Matthes (part 1, part 2)I had a really deflating open source experience just now. I started writing user stories in the django-simple-deploy docs. I opened an issue to track the work, and added the "good first issue" and "help wanted" labels.
It's a good first issue because a new contributor can skim our user stories, get a clear sense of who we're serving, ask relevant questions, and maybe help further articulate typical uses. Help wanted, because I want others' perspectives in these stories.
In less than three minutes there was a PR. It's from Claude, but it's not from someone running Claude for the purposes of helping out this project. They're just running Claude entirely automated, against any repo that adds a "help wanted" label.
There are interesting ideas in the submission. But it should be a comment in an issue, not a PR. And it should be submitted by a person, not a bot that dumps noise into as many repos as it can find.
Miscellaneous
FSF clarifies its stance on AGPLv3 additional terms
OnlyOffice CEO Lev Bannov has recently claimed that the Euro-Office fork of the OnlyOffice suite violates the GNU Affero General Public License version 3 (AGPLv3). Krzysztof Siewicz of the Free Software Foundation (FSF) has published an article on the FSF's position on adding terms to the AGPLv3. In short, Siewicz concludes that OnlyOffice has added restrictions to the license that are not compatible with the AGPLv3, and those restrictions can be removed by recipients of the code.
We urge OnlyOffice to clarify the situation by making it unambiguous that OnlyOffice is licensed under the AGPLv3, and that users who already received copies of the software are allowed to remove any further restrictions. Additionally, if they intend to continue to use the AGPLv3 for future releases, they should state clearly that the program is licensed under the AGPLv3 and make sure they remove any further restrictions from their program documentation and source code. Confusing users by attaching further restrictions to any of the FSF's family of GNU General Public Licenses is not in line with free software.
Page editor: Daroc Alden
Announcements
Newsletters
Distributions and system administration
Development
Meeting minutes
Calls for Presentations
CFP Deadlines: April 16, 2026 to June 15, 2026
The following listing of CFP deadlines is taken from the LWN.net CFP Calendar.
| Deadline | Event Dates | Event | Location |
|---|---|---|---|
| April 20 | July 13 July 19 |
DebCamp 26 | Santa Fe, Argentina |
| April 23 | October 5 October 7 |
Linux Plumbers Conference 2026 | Prague, Czechia |
| April 30 | September 29 September 30 |
devopsdays Berlin 2026 | Berlin, Germany |
| May 25 | July 20 July 25 |
DebConf 26 | Santa Fe, Argentina |
| May 31 | October 1 | Open Tech Day | Software-defined Storage | Nuremberg, Germany |
| June 14 | June 14 | Neocypherpunk Summit | Berlin, Germany |
| June 14 | September 30 October 1 |
All Systems Go! 2026 | Berlin, Germany |
If the CFP deadline for your event does not appear here, please tell us about it.
Upcoming Events
Events: April 16, 2026 to June 15, 2026
The following event listing is taken from the LWN.net Calendar.
| Date(s) | Event | Location |
|---|---|---|
| April 20 April 21 |
SambaXP | Göttingen, Germany |
| April 23 | OpenSUSE Open Developers Summit | Prague, Czech Republic |
| April 25 April 26 |
Sesja Linuksowa (Linux Session) | Wrocław, Poland |
| April 27 April 28 |
foss-north | Gothenburg, Sweden |
| April 28 April 29 |
stackconf 2026 | Munich, Germany |
| April 29 May 1 |
Linaro Connect Madrid 2026 | Madrid, Spain |
| May 2 | 22nd Linux Infotag Augsburg | Augsburg, Germany |
| May 4 May 6 |
Linux Storage, Filesystem, Memory Management and BPF Summit | Zagreb, Croatia |
| May 4 May 11 |
MiniDebConf Hamburg 2026 | Hamburg, Germany |
| May 15 May 17 |
PyCon US | Long Beach, California, US |
| May 16 May 17 |
Lomiri Tech Meeting | Tilburg, The Netherlands |
| May 18 May 20 |
Open Source Summit North America | Minneapolis, Minnesota, US |
| May 18 May 23 |
RustWeek 2026 | Utrecht, Netherlands |
| May 21 May 22 |
Linux Security Summit North America | Minneapolis, Minnesota, US |
| May 23 May 24 |
Curl up | Prague, Czechia |
| May 26 | Media Summit | Nice, France |
| May 27 May 28 |
Embedded Recipes | Nice, France |
| May 29 | Yocto Project Developer Day | Nice, France |
| May 29 | libcamera workshop | Nice, France |
| May 30 May 31 |
Journées du Logiciel Libre 2026 | Lyon, France |
| June 6 | Hong Kong Open Source Conference | Hong Kong |
| June 8 June 12 |
RISC-V Summit Europe 2026 | Bologna, Italy |
| June 12 June 14 |
Southeast Linuxfest | Charlotte, NC, US |
| June 14 | Neocypherpunk Summit | Berlin, Germany |
| June 14 June 16 |
Flock to Fedora | Prague, Czechia |
If your event does not appear here, please tell us about it.
Security updates
Alert summary April 9, 2026 to April 15, 2026
| Dist. | ID | Release | Package | Date |
|---|---|---|---|---|
| AlmaLinux | ALSA-2026:6817 | 10 | capstone | 2026-04-15 |
| AlmaLinux | ALSA-2026:7383 | 10 | cockpit | 2026-04-15 |
| AlmaLinux | ALSA-2025:3210 | 8 | container-tools:rhel8 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7672 | 10 | firefox | 2026-04-15 |
| AlmaLinux | ALSA-2026:6631 | 10 | fontforge | 2026-04-10 |
| AlmaLinux | ALSA-2026:6628 | 9 | fontforge | 2026-04-10 |
| AlmaLinux | ALSA-2026:6799 | 10 | freerdp | 2026-04-10 |
| AlmaLinux | ALSA-2026:6918 | 8 | freerdp | 2026-04-10 |
| AlmaLinux | ALSA-2026:7005 | 10 | git-lfs | 2026-04-15 |
| AlmaLinux | ALSA-2026:6949 | 8 | go-toolset:rhel8 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7992 | 10 | golang-github-openprinting-ipp-usb | 2026-04-15 |
| AlmaLinux | ALSA-2026:6750 | 8 | gstreamer1-plugins-bad-free, gstreamer1-plugins-base, and gstreamer1-plugins-good | 2026-04-10 |
| AlmaLinux | ALSA-2026:7342 | 10 | kea | 2026-04-15 |
| AlmaLinux | ALSA-2026:6632 | 10 | kernel | 2026-04-15 |
| AlmaLinux | ALSA-2025:3026 | 8 | kernel | 2026-04-10 |
| AlmaLinux | ALSA-2025:3027 | 8 | kernel-rt | 2026-04-10 |
| AlmaLinux | ALSA-2025:4049 | 8 | libtasn1 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7081 | 10 | libtiff | 2026-04-10 |
| AlmaLinux | ALSA-2026:6435 | 8 | mariadb:10.11 | 2026-04-10 |
| AlmaLinux | ALSA-2026:6391 | 8 | mysql:8.4 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7666 | 10 | nghttp2 | 2026-04-15 |
| AlmaLinux | ALSA-2026:6906 | 10 | nginx | 2026-04-10 |
| AlmaLinux | ALSA-2026:6923 | 9 | nginx:1.24 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7080 | 10 | nodejs22 | 2026-04-10 |
| AlmaLinux | ALSA-2026:7675 | 10 | nodejs24 | 2026-04-15 |
| AlmaLinux | ALSA-2026:7682 | 10 | openexr | 2026-04-15 |
| AlmaLinux | ALSA-2026:6463 | 10 | openssh | 2026-04-10 |
| AlmaLinux | ALSA-2026:6461 | 8 | openssh | 2026-04-10 |
| AlmaLinux | ALSA-2026:6462 | 9 | openssh | 2026-04-10 |
| AlmaLinux | ALSA-2025:11047 | 8 | pcs | 2026-04-10 |
| AlmaLinux | ALSA-2025:2872 | 8 | pcs | 2026-04-10 |
| AlmaLinux | ALSA-2025:8254 | 8 | pcs | 2026-04-10 |
| AlmaLinux | ALSA-2024:10987 | 8 | pcs | 2026-04-10 |
| AlmaLinux | ALSA-2026:7680 | 10 | perl-XML-Parser | 2026-04-15 |
| AlmaLinux | ALSA-2025:3388 | 8 | python-jinja2 | 2026-04-10 |
| AlmaLinux | ALSA-2026:6766 | 9 | python3.9 | 2026-04-10 |
| AlmaLinux | ALSA-2026:6825 | 10 | rsync | 2026-04-15 |
| AlmaLinux | ALSA-2025:4063 | 8 | ruby:3.1 | 2026-04-10 |
| AlmaLinux | ALSA-2026:8119 | 10 | squid | 2026-04-15 |
| AlmaLinux | ALSA-2026:7711 | 10 | vim | 2026-04-15 |
| AlmaLinux | ALSA-2026:6915 | 8 | vim | 2026-04-10 |
| AlmaLinux | ALSA-2025:12527 | 8 | virt:rhel and virt-devel:rhel | 2026-04-10 |
| AlmaLinux | ALSA-2025:4048 | 8 | xmlrpc-c | 2026-04-10 |
| Debian | DLA-4529-1 | LTS | bind9 | 2026-04-13 |
| Debian | DSA-6205-1 | stable | chromium | 2026-04-10 |
| Debian | DLA-4526-1 | LTS | firefox-esr | 2026-04-11 |
| Debian | DSA-6202-1 | stable | firefox-esr | 2026-04-08 |
| Debian | DSA-6207-1 | stable | flatpak | 2026-04-12 |
| Debian | DLA-4531-1 | LTS | gdk-pixbuf | 2026-04-14 |
| Debian | DSA-6206-1 | stable | gdk-pixbuf | 2026-04-11 |
| Debian | DLA-4530-1 | LTS | gst-plugins-bad1.0 | 2026-04-13 |
| Debian | DSA-6210-1 | stable | imagemagick | 2026-04-14 |
| Debian | DLA-4527-1 | LTS | inetutils | 2026-04-11 |
| Debian | DLA-4525-1 | LTS | libyaml-syck-perl | 2026-04-09 |
| Debian | DSA-6208-1 | stable | mediawiki | 2026-04-12 |
| Debian | DSA-6204-1 | stable | openssh | 2026-04-09 |
| Debian | DLA-4524-1 | LTS | postgresql-13 | 2026-04-09 |
| Debian | DLA-4533-1 | LTS | systemd | 2026-04-15 |
| Debian | DSA-6211-1 | stable | thunderbird | 2026-04-14 |
| Debian | DSA-6203-1 | stable | tiff | 2026-04-08 |
| Debian | DLA-4528-1 | LTS | webkit2gtk | 2026-04-11 |
| Debian | DSA-6209-1 | stable | xdg-dbus-proxy | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | ImageMagick | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | LibRaw | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | OpenImageIO | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | OpenImageIO2.5 | 2026-04-13 |
| Fedora | FEDORA-2026-7f3f640fbf | F42 | bind | 2026-04-09 |
| Fedora | FEDORA-2026-7f3f640fbf | F42 | bind-dyndb-ldap | 2026-04-09 |
| Fedora | FEDORA-2026-6188cc51be | F42 | cef | 2026-04-09 |
| Fedora | FEDORA-2026-a67eba175f | F43 | cef | 2026-04-09 |
| Fedora | FEDORA-2026-952f3c3d9e | F43 | chromium | 2026-04-14 |
| Fedora | FEDORA-2026-42f1aaa820 | F43 | cockpit | 2026-04-10 |
| Fedora | FEDORA-2026-95ee0edcd5 | F42 | corosync | 2026-04-12 |
| Fedora | FEDORA-2026-32cf2c53f7 | F42 | crun | 2026-04-10 |
| Fedora | FEDORA-2026-bef0050737 | F44 | deepin-image-viewer | 2026-04-13 |
| Fedora | FEDORA-2026-637c11815f | F42 | dnsdist | 2026-04-10 |
| Fedora | FEDORA-2026-6cae4711b3 | F43 | dnsdist | 2026-04-10 |
| Fedora | FEDORA-2026-729f84f3b6 | F42 | doctl | 2026-04-10 |
| Fedora | FEDORA-2026-6ad76ebb29 | F43 | doctl | 2026-04-10 |
| Fedora | FEDORA-2026-bef0050737 | F44 | dtk6gui | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | dtkgui | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | efl | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | elementary-photos | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | entangle | 2026-04-13 |
| Fedora | FEDORA-2026-e6237c2efe | F43 | fido-device-onboard | 2026-04-10 |
| Fedora | FEDORA-2026-5286084b44 | F43 | flatpak | 2026-04-14 |
| Fedora | FEDORA-2026-24eedfaa6c | F44 | flatpak | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | freeimage | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | geeqie | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | gegl04 | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | gthumb | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | kf5-kimageformats | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | kf5-libkdcraw | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | kf6-kimageformats | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | kstars | 2026-04-13 |
| Fedora | FEDORA-2026-ccc66d5ab4 | F43 | libcap | 2026-04-13 |
| Fedora | FEDORA-2026-7716e480cb | F42 | libcgif | 2026-04-10 |
| Fedora | FEDORA-2026-1a9f019f60 | F43 | libcgif | 2026-04-10 |
| Fedora | FEDORA-2026-bef0050737 | F44 | libkdcraw | 2026-04-13 |
| Fedora | FEDORA-2026-7a0641ca41 | F42 | libmicrohttpd | 2026-04-12 |
| Fedora | FEDORA-2026-65a08d1312 | F43 | libmicrohttpd | 2026-04-12 |
| Fedora | FEDORA-2026-bef0050737 | F44 | libpasraw | 2026-04-13 |
| Fedora | FEDORA-2026-67c20bfb74 | F43 | libpng | 2026-04-13 |
| Fedora | FEDORA-2026-1bf9e14627 | F42 | libpng12 | 2026-04-10 |
| Fedora | FEDORA-2026-0192882589 | F43 | libpng12 | 2026-04-10 |
| Fedora | FEDORA-2026-4e514c1c36 | F42 | libpng15 | 2026-04-10 |
| Fedora | FEDORA-2026-60fce94678 | F43 | libpng15 | 2026-04-10 |
| Fedora | FEDORA-2026-bef0050737 | F44 | luminance-hdr | 2026-04-13 |
| Fedora | FEDORA-2026-8c332fbf00 | F43 | mbedtls | 2026-04-10 |
| Fedora | FEDORA-2026-592e4238fa | F42 | mingw-exiv2 | 2026-04-12 |
| Fedora | FEDORA-2026-5eb6f779c0 | F43 | mingw-exiv2 | 2026-04-12 |
| Fedora | FEDORA-2026-b56fe1f040 | F42 | mupdf | 2026-04-12 |
| Fedora | FEDORA-2026-7a9c0c8c04 | F43 | mupdf | 2026-04-12 |
| Fedora | FEDORA-2026-bef0050737 | F44 | nomacs | 2026-04-13 |
| Fedora | FEDORA-2026-de85b06438 | F42 | opensc | 2026-04-10 |
| Fedora | FEDORA-2026-4440b00e25 | F43 | opensc | 2026-04-09 |
| Fedora | FEDORA-2026-2490896a5d | F42 | pdns-recursor | 2026-04-13 |
| Fedora | FEDORA-2026-9c582575e5 | F43 | pdns-recursor | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | photoqt | 2026-04-13 |
| Fedora | FEDORA-2026-1774635f74 | F42 | polkit | 2026-04-13 |
| Fedora | FEDORA-2026-2953954ff3 | F43 | python-biopython | 2026-04-09 |
| Fedora | FEDORA-2026-95233f8a79 | F43 | python-cryptography | 2026-04-14 |
| Fedora | FEDORA-2026-f89e555af4 | F42 | python-pydicom | 2026-04-09 |
| Fedora | FEDORA-2026-f5c971af6c | F43 | python-pydicom | 2026-04-09 |
| Fedora | FEDORA-2026-bef0050737 | F44 | rawtherapee | 2026-04-13 |
| Fedora | FEDORA-2026-051825ca18 | F42 | roundcubemail | 2026-04-09 |
| Fedora | FEDORA-2026-8ba1a085a9 | F43 | roundcubemail | 2026-04-09 |
| Fedora | FEDORA-2026-bef0050737 | F44 | shotwell | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | siril | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | swayimg | 2026-04-13 |
| Fedora | FEDORA-2026-a157bd84c4 | F42 | trafficserver | 2026-04-12 |
| Fedora | FEDORA-2026-7b719a7a58 | F43 | trafficserver | 2026-04-12 |
| Fedora | FEDORA-2026-868e266938 | F43 | trivy | 2026-04-13 |
| Fedora | FEDORA-2026-840b40ef4c | F43 | util-linux | 2026-04-10 |
| Fedora | FEDORA-2026-c718defeb6 | F42 | vim | 2026-04-13 |
| Fedora | FEDORA-2026-bef0050737 | F44 | vips | 2026-04-13 |
| Fedora | FEDORA-2026-36594550b0 | F42 | webkitgtk | 2026-04-14 |
| Fedora | FEDORA-2026-431948187d | F43 | webkitgtk | 2026-04-14 |
| Fedora | FEDORA-2026-7a6943e57d | F42 | yarnpkg | 2026-04-12 |
| Fedora | FEDORA-2026-085abeea02 | F43 | yarnpkg | 2026-04-12 |
| Mageia | MGASA-2026-0096 | 9 | libpng12 | 2026-04-12 |
| Mageia | MGASA-2026-0091 | 9 | openssl | 2026-04-10 |
| Mageia | MGASA-2026-0093 | 9 | python-django | 2026-04-12 |
| Mageia | MGASA-2026-0092 | 9 | python-tornado | 2026-04-10 |
| Mageia | MGASA-2026-0094 | 9 | squid | 2026-04-12 |
| Mageia | MGASA-2026-0095 | 9 | tomcat | 2026-04-12 |
| Red Hat | RHSA-2026:7672-01 | EL10 | firefox | 2026-04-14 |
| Red Hat | RHSA-2026:8052-01 | EL8 | firefox | 2026-04-14 |
| Red Hat | RHSA-2026:7671-01 | EL9 | firefox | 2026-04-14 |
| Red Hat | RHSA-2026:7005-01 | EL10 | git-lfs | 2026-04-10 |
| Red Hat | RHSA-2026:7259-01 | EL9 | git-lfs | 2026-04-10 |
| Red Hat | RHSA-2026:6949-01 | EL8 | go-toolset:rhel8 | 2026-04-10 |
| Red Hat | RHSA-2026:6344-01 | EL10 | grafana | 2026-04-10 |
| Red Hat | RHSA-2026:7011-01 | EL8 | grafana | 2026-04-10 |
| Red Hat | RHSA-2026:6382-01 | EL9 | grafana | 2026-04-10 |
| Red Hat | RHSA-2026:6388-01 | EL10 | grafana-pcp | 2026-04-10 |
| Red Hat | RHSA-2026:7009-01 | EL8 | grafana-pcp | 2026-04-10 |
| Red Hat | RHSA-2026:6383-01 | EL9 | grafana-pcp | 2026-04-10 |
| Red Hat | RHSA-2026:7854-01 | EL9.6 | podman | 2026-04-14 |
| Red Hat | RHSA-2026:7328-01 | EL10.0 | rhc | 2026-04-10 |
| Red Hat | RHSA-2026:7676-01 | EL7 | rhc | 2026-04-13 |
| Red Hat | RHSA-2026:7315-01 | EL9 | rhc | 2026-04-10 |
| Slackware | SSA:2026-103-01 | libarchive | 2026-04-13 | |
| Slackware | SSA:2026-104-01 | libexif | 2026-04-14 | |
| Slackware | SSA:2026-099-01 | libpng | 2026-04-09 | |
| Slackware | SSA:2026-098-01 | mozilla | 2026-04-08 | |
| Slackware | SSA:2026-098-02 | mozilla | 2026-04-08 | |
| Slackware | SSA:2026-101-01 | openssl | 2026-04-11 | |
| Slackware | SSA:2026-104-02 | xorg | 2026-04-14 | |
| SUSE | openSUSE-SU-2026:10500-1 | TW | 389-ds | 2026-04-09 |
| SUSE | SUSE-SU-2026:1300-1 | SLE15 oS15.6 | GraphicsMagick | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10494-1 | TW | SDL2_image-devel | 2026-04-08 |
| SUSE | openSUSE-SU-2026:20477-1 | oS16.0 | aws-c-event-stream | 2026-04-09 |
| SUSE | SUSE-SU-2026:1229-1 | SLE12 | bind | 2026-04-09 |
| SUSE | SUSE-SU-2026:1230-1 | SLE15 SLE-m5.5 oS15.5 | bind | 2026-04-09 |
| SUSE | SUSE-SU-2026:1312-1 | SLE15 oS15.6 | bind | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10530-1 | TW | chromedriver | 2026-04-12 |
| SUSE | openSUSE-SU-2026:0124-1 | osB15 | chromium | 2026-04-12 |
| SUSE | openSUSE-SU-2026:10495-1 | TW | ckermit | 2026-04-08 |
| SUSE | SUSE-SU-2026:1324-1 | SLE12 | clamav | 2026-04-14 |
| SUSE | SUSE-SU-2026:1325-1 | SLE15 oS15.6 | clamav | 2026-04-14 |
| SUSE | SUSE-SU-2026:1232-1 | SLE-m5.2 | cockpit | 2026-04-09 |
| SUSE | SUSE-SU-2026:21022-1 | SLE-m6.2 | cockpit | 2026-04-13 |
| SUSE | SUSE-SU-2026:1249-1 | SLE-m5.2 | cockpit-machines | 2026-04-10 |
| SUSE | SUSE-SU-2026:21024-1 | SLE-m6.2 | cockpit-machines | 2026-04-13 |
| SUSE | SUSE-SU-2026:1251-1 | SLE-m5.2 | cockpit-podman | 2026-04-10 |
| SUSE | SUSE-SU-2026:21023-1 | SLE-m6.2 | cockpit-podman | 2026-04-13 |
| SUSE | SUSE-SU-2026:20997-1 | SLE BCI 16 | cockpit-repos | 2026-04-09 |
| SUSE | SUSE-SU-2026:20973-1 | SLE-m6.2 | cockpit-repos | 2026-04-08 |
| SUSE | SUSE-SU-2026:20967-1 | SLE-m6.2 | cockpit-repos | 2026-04-08 |
| SUSE | openSUSE-SU-2026:20464-1 | oS16.0 | cockpit-repos | 2026-04-09 |
| SUSE | SUSE-SU-2026:1250-1 | SLE-m5.2 | cockpit-tukit | 2026-04-10 |
| SUSE | openSUSE-SU-2026:10504-1 | TW | corepack24 | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10524-1 | TW | crun | 2026-04-11 |
| SUSE | openSUSE-SU-2026:10502-1 | TW | dcmtk | 2026-04-09 |
| SUSE | SUSE-SU-2026:20995-1 | SLE BCI 16 | dnsdist | 2026-04-09 |
| SUSE | openSUSE-SU-2026:20461-1 | oS16.0 | dnsdist | 2026-04-08 |
| SUSE | SUSE-SU-2026:20976-1 | SLE BCI 16 | docker-compose | 2026-04-09 |
| SUSE | SUSE-SU-2026:20985-1 | SLE BCI 16 | expat | 2026-04-09 |
| SUSE | SUSE-SU-2026:21062-1 | SLE-m6.0 | expat | 2026-04-13 |
| SUSE | SUSE-SU-2026:21031-1 | SLE-m6.1 | expat | 2026-04-13 |
| SUSE | SUSE-SU-2026:20963-1 | SLE-m6.2 | expat | 2026-04-08 |
| SUSE | SUSE-SU-2026:20978-1 | SLE BCI 16 | firefox | 2026-04-09 |
| SUSE | SUSE-SU-2026:1273-1 | SLE12 | firefox | 2026-04-13 |
| SUSE | SUSE-SU-2026:1322-1 | SLE15 | firefox | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10511-1 | TW | firefox | 2026-04-10 |
| SUSE | openSUSE-SU-2026:10503-1 | TW | firefox-esr | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10513-1 | TW | fontforge-20251009 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1217-1 | SLE15 oS15.6 | freerdp | 2026-04-08 |
| SUSE | SUSE-SU-2026:1313-1 | SLE15 | freerdp2 | 2026-04-14 |
| SUSE | SUSE-SU-2026:1338-1 | SLE15 oS15.6 | giflib | 2026-04-15 |
| SUSE | openSUSE-SU-2026:10496-1 | TW | git-cliff | 2026-04-08 |
| SUSE | SUSE-SU-2026:21069-1 | SLE-m6.0 | glibc | 2026-04-13 |
| SUSE | SUSE-SU-2026:21039-1 | SLE-m6.1 | glibc | 2026-04-13 |
| SUSE | SUSE-SU-2026:21019-1 | SLE-m6.2 | glibc | 2026-04-13 |
| SUSE | SUSE-SU-2026:20999-1 | SLE-m6.2 | glibc | 2026-04-13 |
| SUSE | SUSE-SU-2026:20988-1 | SLE BCI 16 | gnome-online-accounts, gvfs | 2026-04-09 |
| SUSE | SUSE-SU-2026:20984-1 | SLE BCI 16 | gnutls | 2026-04-09 |
| SUSE | SUSE-SU-2026:20968-1 | SLE-m6.2 | gnutls | 2026-04-08 |
| SUSE | SUSE-SU-2026:20962-1 | SLE-m6.2 | gnutls | 2026-04-08 |
| SUSE | openSUSE-SU-2026:10514-1 | TW | go1 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1321-1 | SLE15 | go1.25 | 2026-04-14 |
| SUSE | SUSE-SU-2026:1320-1 | SLE15 | go1.26 | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10538-1 | TW | helm | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10532-1 | TW | helm3 | 2026-04-12 |
| SUSE | openSUSE-SU-2026:10497-1 | TW | heroic-games-launcher | 2026-04-08 |
| SUSE | SUSE-SU-2026:1314-1 | SLE15 oS15.4 oS15.6 | ignition | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10506-1 | TW | jupyter-jupyterlab-templates | 2026-04-09 |
| SUSE | SUSE-SU-2026:20989-1 | SLE BCI 16 | kea | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10505-1 | TW | libIex-3_4-33 | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10536-1 | TW | libcap-devel | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10498-1 | TW | libeverest | 2026-04-08 |
| SUSE | openSUSE-SU-2026:10533-1 | TW | libopenssl-3-devel | 2026-04-12 |
| SUSE | SUSE-SU-2026:21067-1 | SLE-m6.0 | libpng16 | 2026-04-13 |
| SUSE | SUSE-SU-2026:21038-1 | SLE-m6.1 | libpng16 | 2026-04-13 |
| SUSE | SUSE-SU-2026:21000-1 | SLE-m6.2 | libpng16 | 2026-04-13 |
| SUSE | SUSE-SU-2026:1311-1 | SLE12 | libpng16 | 2026-04-14 |
| SUSE | SUSE-SU-2026:1323-1 | SLE15 SLE-m5.2 SLE-m5.3 SLE-m5.4 SLE-m5.5 | libpng16 | 2026-04-14 |
| SUSE | openSUSE-SU-2026:20466-1 | oS16.0 | libpng16 | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10528-1 | TW | libradcli10 | 2026-04-11 |
| SUSE | SUSE-SU-2026:1310-1 | SLE15 oS15.6 | libssh | 2026-04-14 |
| SUSE | SUSE-SU-2026:21001-1 | SLE-m6.2 | libtasn1 | 2026-04-13 |
| SUSE | SUSE-SU-2026:21064-1 | SLE-m6.0 | libtpms | 2026-04-13 |
| SUSE | SUSE-SU-2026:21035-1 | SLE-m6.1 | libtpms | 2026-04-13 |
| SUSE | openSUSE-SU-2026:20476-1 | oS16.0 | mapserver | 2026-04-09 |
| SUSE | SUSE-SU-2026:1247-1 | SLE15 SLE-m5.2 SLE-m5.3 SLE-m5.4 SLE-m5.5 | nghttp2 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1299-1 | SLE15 | nodejs24 | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10539-1 | TW | oci-cli | 2026-04-14 |
| SUSE | SUSE-SU-2026:1256-1 | SLE12 | openssl-1_0_0 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1291-1 | SLE15 oS15.6 | openssl-1_0_0 | 2026-04-13 |
| SUSE | SUSE-SU-2026:1216-1 | SLE-m5.2 | openssl-1_1 | 2026-04-08 |
| SUSE | SUSE-SU-2026:1255-1 | SLE12 | openssl-1_1 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1257-1 | SLE15 SLE-m5.3 SLE-m5.4 oS15.4 | openssl-1_1 | 2026-04-10 |
| SUSE | SUSE-SU-2026:1290-1 | SLE15 SLE-m5.5 oS15.5 | openssl-1_1 | 2026-04-13 |
| SUSE | SUSE-SU-2026:21065-1 | SLE-m6.0 | openssl-3 | 2026-04-13 |
| SUSE | SUSE-SU-2026:21037-1 | SLE-m6.1 | openssl-3 | 2026-04-13 |
| SUSE | SUSE-SU-2026:1214-1 | SLE15 SLE-m5.3 SLE-m5.4 oS15.4 | openssl-3 | 2026-04-08 |
| SUSE | SUSE-SU-2026:1213-1 | SLE15 oS15.5 | openssl-3 | 2026-04-08 |
| SUSE | SUSE-SU-2026:1215-1 | SLE15 oS15.6 | openssl-3 | 2026-04-08 |
| SUSE | SUSE-SU-2026:1306-1 | oS15.6 | openvswitch | 2026-04-14 |
| SUSE | SUSE-SU-2026:21018-1 | SLE-m6.2 | ovmf | 2026-04-13 |
| SUSE | SUSE-SU-2026:20993-1 | SLE BCI 16 | perl-XML-Parser | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10527-1 | TW | perl-XML-Parser | 2026-04-11 |
| SUSE | SUSE-SU-2026:20969-1 | SLE-m6.0 SLE-m6.2 | polkit | 2026-04-08 |
| SUSE | SUSE-SU-2026:21032-1 | SLE-m6.1 | polkit | 2026-04-13 |
| SUSE | SUSE-SU-2026:20986-1 | SLE BCI 16 | postgresql13 | 2026-04-09 |
| SUSE | SUSE-SU-2026:20983-1 | SLE BCI 16 | postgresql16 | 2026-04-09 |
| SUSE | openSUSE-SU-2026:0122-1 | osB15 | python-Flask-HTTPAuth | 2026-04-12 |
| SUSE | openSUSE-SU-2026:0121-1 | osB15 | python-Flask-HTTPAuth | 2026-04-12 |
| SUSE | SUSE-SU-2026:20992-1 | SLE BCI 16 | python-Pillow | 2026-04-09 |
| SUSE | SUSE-SU-2026:21021-1 | SLE-m6.2 | python-cryptography | 2026-04-13 |
| SUSE | SUSE-SU-2026:1220-1 | oS15.6 | python-poetry | 2026-04-09 |
| SUSE | SUSE-SU-2026:21063-1 | SLE-m6.0 | python-requests | 2026-04-13 |
| SUSE | SUSE-SU-2026:21036-1 | SLE-m6.1 | python-requests | 2026-04-13 |
| SUSE | SUSE-SU-2026:1218-1 | SLE12 | python-requests | 2026-04-08 |
| SUSE | openSUSE-SU-2026:10516-1 | TW | python311-Django4 | 2026-04-10 |
| SUSE | openSUSE-SU-2026:10537-1 | TW | python311-biopython | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10507-1 | TW | python311-lupa | 2026-04-09 |
| SUSE | openSUSE-SU-2026:10499-1 | TW | python311-social-auth-app-django | 2026-04-08 |
| SUSE | SUSE-SU-2026:1292-1 | SLE15 oS15.6 | python312 | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10517-1 | TW | python313-Django6 | 2026-04-10 |
| SUSE | openSUSE-SU-2026:10522-1 | TW | python315 | 2026-04-11 |
| SUSE | SUSE-SU-2026:1296-1 | SLE15 oS15.3 oS15.6 | python39 | 2026-04-13 |
| SUSE | SUSE-SU-2026:1337-1 | SLE15 oS15.3 oS15.6 | rust1.92 | 2026-04-15 |
| SUSE | SUSE-SU-2026:1307-1 | SLE12 | strongswan | 2026-04-14 |
| SUSE | SUSE-SU-2026:1309-1 | SLE15 SLE-m5.3 SLE-m5.4 oS15.4 | sudo | 2026-04-14 |
| SUSE | SUSE-SU-2026:1308-1 | SLE15 SLE-m5.5 oS15.5 | sudo | 2026-04-14 |
| SUSE | openSUSE-SU-2026:10510-1 | TW | sudo | 2026-04-10 |
| SUSE | SUSE-SU-2026:21003-1 | SLE-m6.2 | systemd | 2026-04-13 |
| SUSE | SUSE-SU-2026:20998-1 | SLE-m6.2 | systemd | 2026-04-13 |
| SUSE | SUSE-SU-2026:21002-1 | SLE-m6.2 | tar | 2026-04-13 |
| SUSE | openSUSE-SU-2026:10529-1 | TW | tekton-cli | 2026-04-11 |
| SUSE | openSUSE-SU-2026:10501-1 | TW | thunderbird | 2026-04-09 |
| SUSE | SUSE-SU-2026:1301-1 | SLE12 | tigervnc | 2026-04-14 |
| SUSE | SUSE-SU-2026:1303-1 | SLE15 oS15.4 | tigervnc | 2026-04-14 |
| SUSE | SUSE-SU-2026:1302-1 | SLE15 oS15.5 | tigervnc | 2026-04-14 |
| SUSE | SUSE-SU-2026:1252-1 | SLE15 oS15.6 | tigervnc | 2026-04-10 |
| SUSE | openSUSE-SU-2026:20465-1 | oS16.0 | tigervnc | 2026-04-09 |
| SUSE | SUSE-SU-2026:20982-1 | SLE BCI 16 | tomcat10 | 2026-04-09 |
| SUSE | SUSE-SU-2026:21016-1 | SLE-m6.2 | util-linux | 2026-04-13 |
| SUSE | SUSE-SU-2026:1332-1 | SLE12 | xorg-x11-server | 2026-04-15 |
| SUSE | SUSE-SU-2026:1330-1 | SLE15 | xorg-x11-server | 2026-04-15 |
| SUSE | SUSE-SU-2026:1333-1 | SLE15 oS15.4 | xorg-x11-server | 2026-04-15 |
| SUSE | SUSE-SU-2026:1335-1 | SLE15 oS15.5 | xorg-x11-server | 2026-04-15 |
| SUSE | SUSE-SU-2026:1331-1 | SLE15 oS15.6 | xorg-x11-server | 2026-04-15 |
| SUSE | SUSE-SU-2026:1328-1 | SLE15 | xwayland | 2026-04-15 |
| SUSE | SUSE-SU-2026:1329-1 | oS15.6 | xwayland | 2026-04-15 |
| SUSE | SUSE-SU-2026:21013-1 | SLE-m6.2 | zlib | 2026-04-13 |
| Ubuntu | USN-8170-1 | 22.04 24.04 25.10 | corosync | 2026-04-13 |
| Ubuntu | USN-8158-1 | 18.04 20.04 | dogtag-pki | 2026-04-08 |
| Ubuntu | USN-8156-1 | 22.04 24.04 25.10 | gdk-pixbuf | 2026-04-08 |
| Ubuntu | USN-8172-1 | 16.04 18.04 20.04 22.04 | kvmtool | 2026-04-13 |
| Ubuntu | USN-8174-1 | 22.04 24.04 25.10 | libxml-parser-perl | 2026-04-14 |
| Ubuntu | USN-8159-1 | 20.04 22.04 | linux, linux-aws, linux-aws-5.15, linux-gcp, linux-gcp-5.15, linux-gke, linux-gkeop, linux-ibm, linux-ibm-5.15, linux-intel-iotg, linux-intel-iotg-5.15, linux-kvm, linux-lowlatency, linux-lowlatency-hwe-5.15, linux-nvidia, linux-nvidia-tegra, linux-nvidia-tegra-igx, linux-oracle, linux-oracle-5.15, linux-raspi, linux-xilinx-zynqmp | 2026-04-08 |
| Ubuntu | USN-8148-5 | 22.04 | linux-aws-6.8, linux-gcp-6.8, linux-hwe-6.8, linux-ibm-6.8, linux-lowlatency-hwe-6.8 | 2026-04-08 |
| Ubuntu | USN-8149-3 | 24.04 25.10 | linux-azure, linux-azure-6.17 | 2026-04-13 |
| Ubuntu | USN-8148-6 | 22.04 24.04 | linux-azure, linux-azure-6.8 | 2026-04-13 |
| Ubuntu | USN-8163-2 | 22.04 | linux-azure | 2026-04-13 |
| Ubuntu | USN-8163-1 | 22.04 | linux-azure-fips | 2026-04-09 |
| Ubuntu | USN-8165-1 | 24.04 | linux-azure-fips | 2026-04-09 |
| Ubuntu | USN-8159-2 | 22.04 | linux-fips, linux-aws-fips, linux-gcp-fips | 2026-04-08 |
| Ubuntu | USN-8145-4 | 16.04 | linux-hwe | 2026-04-09 |
| Ubuntu | USN-8164-1 | 22.04 | linux-intel-iot-realtime | 2026-04-09 |
| Ubuntu | USN-8162-1 | 20.04 | linux-nvidia-tegra-5.15 | 2026-04-09 |
| Ubuntu | USN-8149-2 | 24.04 25.10 | linux-oracle, linux-oracle-6.17, linux-raspi | 2026-04-08 |
| Ubuntu | USN-8159-3 | 22.04 | linux-realtime | 2026-04-08 |
| Ubuntu | USN-8160-1 | 18.04 20.04 | mongodb | 2026-04-10 |
| Ubuntu | USN-8155-2 | 14.04 16.04 18.04 20.04 | openssl, openssl1.0 | 2026-04-09 |
| Ubuntu | USN-8155-1 | 22.04 24.04 25.10 | openssl | 2026-04-08 |
| Ubuntu | USN-8173-1 | 22.04 24.04 25.10 | policykit-1 | 2026-04-14 |
| Ubuntu | USN-8154-2 | 14.04 16.04 | python-django | 2026-04-09 |
| Ubuntu | USN-8161-1 | 22.04 24.04 25.10 | qemu | 2026-04-10 |
| Ubuntu | USN-8169-1 | 16.04 18.04 20.04 22.04 24.04 | redis, lua5.1, lua-cjson, lua-bitop | 2026-04-14 |
| Ubuntu | USN-8166-1 | 24.04 25.10 | retroarch | 2026-04-13 |
| Ubuntu | USN-8138-2 | 20.04 | rust-tar | 2026-04-14 |
| Ubuntu | USN-8168-2 | 14.04 16.04 18.04 20.04 | rustc, rustc-1.76, rustc-1.77, rustc-1.78, rustc-1.79, rustc-1.80 | 2026-04-14 |
| Ubuntu | USN-8168-1 | 22.04 24.04 25.10 | rustc | 2026-04-13 |
| Ubuntu | USN-8157-1 | 22.04 24.04 25.10 | squid | 2026-04-08 |
| Ubuntu | USN-8171-1 | 14.04 16.04 18.04 20.04 22.04 24.04 25.10 | vim | 2026-04-14 |
| Ubuntu | USN-8167-1 | 22.04 24.04 25.10 | xdg-dbus-proxy | 2026-04-13 |
Kernel patches of interest
Kernel releases
Architecture-specific
Core kernel
Development tools
Device drivers
Device-driver infrastructure
Documentation
Filesystems and block layer
Memory management
Networking
Security-related
Virtualization and containers
Miscellaneous
Page editor: Joe Brockmeier
