|
|
Log in / Subscribe / Register

LWN.net Weekly Edition for June 4, 2026

Welcome to the LWN.net Weekly Edition for June 4, 2026

This edition contains the following feature content:

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.

Comments (none posted)

A trademark dispute over MeshCore

By Daroc Alden
May 29, 2026

MeshCore is a relatively new project, started in January 2025, that aims to build a scalable mesh network using low-power long-distance radios. While many other projects of the same general nature have been tried before, MeshCore grew quickly because of its more efficient message routing and enthusiastic community. In early 2026, an early proponent of the project made a sudden shift that left the rest of the community stunned and embroiled in a trademark dispute.

MeshCore is a MIT-licensed portable C++ library that has been adapted to a range of long-range radio (LoRa) devices. The project also provides a web-based flasher to load pre-made firmware onto supported devices, Home Assistant integration, and bindings for other languages. Unlike Meshtastic (another LoRa mesh-networking project that LWN covered in 2025), it uses an actual distributed routing protocol, rather than relying on a gossip protocol. Unlike Reticulum, it aims to be simple and usable on low-power embedded devices. There are more than 40,000 users all across the world identified by the MeshCore node map, many of whom use the project for reliable radio communication while hiking, to collect data from remote sensors, or simply because they're interested in radio mesh networks.

Many of those enthusiasts found their way to the project via Andy Kirby's YouTube channel. He is (or was) a MeshCore enthusiast who produced engaging videos about the project, encouraging people to try it and explaining what it can do. He also ran the project's web site and a Discord server popular among users of the project, acting as a community organizer and promoter. (The project got a separate, official Discord server in the summer of 2025.) While not a developer, Kirby has certainly contributed to the rapid growth of the project.

In March, he released a proprietary companion app for MeshCore, called MeshOS, that helps with managing devices running MeshCore firmware from a smartphone. It quickly became clear that Kirby was using large language models (LLMs) to work on the app, without disclosing this: he released six new versions with new features in just 15 days. While the MeshCore community is strongly against incorporating LLM-written work (according to a poll the core contributors to the project performed on April 11), it was also upset about the lack of disclosure. MeshCore did accept one LLM-assisted pull request, which included a disclosure of that fact, in early March.

MeshCore's existing app (named, with great creativity, "MeshCore") is developed by Liam Cottle, who is a human. The application is free to use, although it does not appear to be open source. Other open-source software that can communicate with MeshCore devices over Bluetooth exists as well, and the project publishes documentation on how to connect to a device running its firmware. Kirby's application, which provides many of the same features as the official app, requires purchasing a license in order to operate it.

Around the same time, the MeshCore web site that Kirby maintained was updated to make it look as though MeshOS was required to use MeshCore, redirecting links from the official MeshCore application to refer to MeshOS. Options to donate to the MeshCore project or buy a pre-flashed device were removed from the web site's store page, leaving licenses (including ones for MeshOS) the only products one could buy there. Then, on March 29, a law firm working on his behalf filed a trademark application with the UK's Intellectual Property office asserting that Kirby owns the "MeshCore" trademark. That application is still pending at time of writing.

Kirby had not discussed these plans with the core developers ahead of time. The project's developers swiftly created a new web site with a different design to set itself apart from Kirby's web site, and shared a blog post explaining their side of the story. Shortly thereafter, Kirby's web site was updated with a similar design, despite requests from the core team members that he not do that. Today, the two web sites look similar, and it would be fairly easy for a user who was not in the know to become confused about which one is official — although the project's GitHub organization does link to the new web site.

The UK Trade Marks Act of 1994 (as amended) that governs the registration of trademarks in the UK does prohibit, among other things, trademarks likely to deceive the public. It's possible that, given Kirby's split with the rest of the MeshCore community, the UK government will choose to deny his application. But it's far from certain, and is sure to prove a tedious legal process either way. When I reached out to Kirby, he said:

The intention behind the application is to provide clarity and consistency around the platform and the supported ecosystem as it grows.

... which does not really address why he would file an application over the objections of the people contributing code to the project.

While unfortunate, this story is nothing new. There are always people trying to figure out ways to use open-source projects for personal gain. In this case it is not the open-source software being used, but rather the community that has built itself up around that software. The open-source community has had to deal with trademark disputes before, including blatant attempts to make a profit off of an existing community. This has led to complicated systems to protect trademarks, and public conflicts when those systems are challenged.

What may be a bit different in this case is the ease with which a single individual, not supported by a for-profit company, could make a professional-looking web site and companion app to compete with the community versions. It certainly didn't help that Kirby was previously the maintainer of the project's web site, but even had that not been the case he could have registered a similar domain. Previous trademark disputes over open-source software have largely involved direct forks of software, entire companies with legal teams, or attempts to cash in on a tangential association. In the future, we may see more attempts to challenge open-source projects' trademarks more directly, if only because that is now within the reach of individuals.

Comments (6 posted)

Reconsidering x32 — again

By Jonathan Corbet
June 1, 2026
The x32 ABI was meant to be the best of both worlds, providing the expanded registers and instruction set of the x86-64 architecture while preserving the lower memory use of 32-bit systems. The Linux kernel has supported x32 since the 3.4 release in 2012. The initial excitement around x32 did not last, though, and kernel developers are considering removing that support — and not for the first time. Even the most unloved features tend to have a few users, though, making removal hard.

The 64-bit x86 CPU architecture brought a number of long-desired features, including more registers, better system-call support and, of course, the ability to support larger virtual address spaces. There is a cost to that last feature, though; the size of addresses (and, thus, pointers) doubled from four to eight bytes. That change inevitably increases the amount of memory used by a program and, importantly, the amount of cache required to hold the pointed-to values. Since cache utilization has a huge effect on the performance of many programs, that extra cache footprint hurts.

The idea behind x32 is to provide all of the x86-64 features, but to use 32-bit addresses and data types, bringing the memory and cache footprint back down. Supporting this ABI required work in the kernel, but also at the toolchain level; the result was expected to be the fastest x86 ABI available. Evidence for that speedup was scarce when x32 kernel support was under development in 2011 but, by 2013, some realistic benchmark results were being posted, and some distributors were beginning to work on support.

Despite its apparent advantages, though, x32 never really took off. One can speculate on the reasons why that happened. Perhaps processor speed and cache sizes increased enough to mitigate the cost of 64-bit pointers. Most applications are not so performance sensitive that it is worth the trouble to support another ABI. The applications that broke with 64-bit pointers were quickly fixed. Memory use has grown to the point that it is challenging to shoehorn even a basic "hello world" app into the 2-3GB of virtual address space that 32-bit pointers afford. Other possible explanations surely exist as well.

Also noteworthy is that many distributions never supported this ABI, making it unavailable to a lot of users. Having to build one's own kernel (and possibly toolchain as well) can be a strong impediment to experimenting with an alternative ABI. Debian and Gentoo did add x32 support; Ubuntu also supported x32, but dropped it in 2023, citing a lack of demand and concerns about the additional attack surface created by enabling that ABI (which has had vulnerabilities in the past). Modern Debian kernels retain x32 support, but it is only enabled when the syscall.x32=y boot option is provided.

In 2018, Andy Lutomirski proposed removing support for the x32 architecture, saying that it was largely unused and the necessary system-call interface added a lot of complexity to the kernel. An extensive discussion ensued. Linus Torvalds remarked that the main use of x32 was "extreme benchmarking", and said he would not be opposed to removing support if there were no complaints.

But, naturally, there were complaints. Thorsten Glaser was reluctant to lose his x32 Debian desktop. Richard Purdie pointed out that the Yocto Project supported x32 and occasionally got bug reports. Rich Felker said that GCC performance benefits from an x32 build and that the ABI is useful for catching portability problems. Others expressed an interest in preserving the ABI as well. In the end, while the groundswell of support for x32 was not huge (and John Paul Adrian Glaubitz, the maintainer of the Debian x32 port, even stated his non-opposition to the change), the idea of removing it was dropped, and that support remains in current kernels.

On May 23, though, Sebastian Andrzej Siewior reopened the discussion around removing it. There is, he said, "practically no real use for x32" and that the performance benefits it offers are not compelling enough to cause users to adopt it. He suggested removing the configuration symbol that must be set to build x32 support into the kernel. If enough time passes without complaint, then all of the code implementing that support could be removed as well.

The reaction this time around has been more subdued — so far, at least. H. Peter Anvin did not oppose phasing out the x32 ABI, noting that it "happened too late to actually be able to become useful". He mostly took issue with Siewior's suggestion that the x32-specific system-call numbers could be reused, which is not a huge concern in any case, since system-call numbers are not in short supply. The x32 ABI still does not appear to be entirely unused, though. Sam James said that Gentoo still has some x32 users and Neal Gompa pointed out that PLD Linux has an actively supported port: "So it isn't broadly used indeed, but it's used enough that it's probably worth being slightly more careful about deciding to remove it". Glaubitz said that the Debian port is still maintained; "even Rust works there".

Those comments notwithstanding, the response to Siewior's proposal has seemingly been one of overwhelming indifference. The people most aware of x32 support in the kernel are the ones who have to maintain it, and there has been a distinct lack of developers offering to help with that task. The returns from maintaining this ABI would appear to be diminishing. Even so, kernel developers are generally reluctant to remove support for features that are actively in use. So, even though almost nobody wants it (and many actively want it gone), x32 support may yet live on in the kernel.

Comments (33 posted)

Open-source security is not a solo activity

By Joe Brockmeier
June 3, 2026

OSSNA

Over time, many open-source maintainers face the same problem: they lack the time to do all of the work that their project needs, and no one else is stepping up to provide adequate help. Maintainers, though, are often reluctant to throw in the towel. The result is suboptimal all around; the maintainer is stressed out, project quality suffers, and users face security risks that they may not be fully aware of. At the 2026 Open Source Summit North America, Robin Bender Ginn spoke about this problem, when it might be time for maintainers to pass the torch, and the responsibilities of users.

Ginn is the executive director of the OpenJS Foundation, which promotes adoption and development of JavaScript technologies. As a result, her talk was in large part focused on maintainers of JavaScript-related projects. She began with the scale of that ecosystem; more than 98% of web sites include JavaScript code, she said, and there were more than two billion downloads of Node.js in the last year.

That scale means that there is a lot of pressure on maintainers. They may see the use of their projects grow from thousands of users to millions of users to "oh my gosh, I'm like maintaining global infrastructure". When that happens, burnout can follow. That leads to the question, Ginn said, "when does continuing to maintain that project increase the [security] risk instead of reduce it?" It might be more harmful than helpful to continue to maintain a project.

Signals of decline

There are two types of signals to look for when it comes to the security of open-source projects, she said: technical and human. The technical signals include things like CVEs taking longer to be fixed, the release cadence slips, or the continuous-integration (CI) pipeline breaks without any response. The human signals, Ginn said, may be harder to see; a maintainer may stop replying, pull requests go unreviewed, or the tone shifts in some of the reviews. "People get a little grumpy." From the outside, it might appear that maintainers are simply disengaged. From the inside, "it's often like a sign of survival because, you know, human capacity is finite".

[Robin Bender Ginn]

If a package has not been patched or hasn't received commits in 12 months, for example, "that is a good indication you should migrate now". If a project has a single maintainer, no governance documentation, and no SECURITY.md file stating its security policy, "you may want to engage and sponsor" it, she suggested. If a project has a single maintainer, "particularly in the JavaScript world", it doesn't mean the project isn't healthy. But it is a good idea to support those folks, she said.

Many of the libraries that are relied upon today, she said, exist because JavaScript was missing important features such as async/await and standardized browser APIs. It is possible to deprecate some of those libraries because the platform has caught up, Ginn said. For example, Ecma International's TC39 committee on ECMAScript (JavaScript) standards work has brought a number of features to the language specification. Having features built into JavaScript, rather than implemented as separate libraries that are pulled in as dependencies, means a smaller attack surface, she said. Native implementations tend to be patched more quickly, and there is less polyfill code.

Investment, not heroics

Next, Ginn moved to talking about the importance of funding security work for open-source projects. It is difficult to find security folks to work on projects, and security improvements do not come from heroics: "They come from structure and they come from funding."

As an example, she was surprised to find that the Node.js project did not have a security working group four years ago. It became the first project to receive funding from Alpha-Omega, and also received money from the German government through the Sovereign Tech Agency to provide budget for dedicated security engineering. The result is that Node.js now has "a dedicated security group that's thriving". The project has a threat model, predictable CVE processes, secure defaults, and a clear end-of-life process for releases. "They went from 26 steps for a security release to, like, one or two". Nothing about the code changed, Ginn said, but it reduced stress on the maintainers.

Ginn said that end users also have a responsibility in keeping a project healthy. "When you depend on a healthy project like Node, your role isn't just to consume it, it's to help sustain it." She encouraged people to ensure that they are staying current with releases to help prevent vulnerabilities, and to keep up-to-date with news from the projects such as the fact that Node.js is changing its release schedule. Ginn also asked for responsible disclosure through official security channels, rather than reporting security vulnerabilities in public tickets.

"Healthy projects do not stay healthy by accident", she said, and called for people to participate in security working groups and help fund projects and maintainers they depend on.

Reducing scope

Another path to better security is reducing the scope of a project. Ginn brought up the jQuery JavaScript library; she said that about 78% of the top one million web sites use jQuery, and that its content-delivery network serves 78 billion requests per month.

Its popularity is due to the fact that it solved many problems that, early on, JavaScript did not. Since then, the jQuery maintainers decided to start deprecating parts of the project that had been replicated in the JavaScript platform. For example, the maintainers deprecated the jQuery Mobile project in 2021.

From the outside, Ginn said, deprecation may look like abandonment—but it is not. "Many times it's just the maintainers doing the responsible thing. It's making the project smaller, safer, and more sustainable." How the larger ecosystem reacts to deprecation matters, she said. Healthy communities follow maintainers' communications, including their blogs, social-media presence, and so forth. She advised that those using open-source projects "contribute before complaining", such as by helping with documentation, or assisting with migration.

Stability through governance

Sometimes a project does not need to reduce scope, it just needs better structure. Ginn used the Express project as an example. It is a web framework for Node.js that has more than 52 billion downloads per year. It was managed by two maintainers, until one stopped and the other became overburdened. The pressure became overwhelming, she said, and updates stopped.

Eventually, in 2024, the community stepped up to provide a plan called Express Forward to move the project out of maintenance mode and replace the single-maintainer model. It started with the "boring" work of release automation, cleaning up the issue tracker, and so forth.

Another project, the Lodash utility library for JavaScript, also had a single maintainer. John-David Dalton had a long streak of committing code every day for years, until he had "a really difficult period in his life" that caused a lot of stress and led to burnout. "This is, again, what he does in his free time, not his full-time job." This is an uncomfortable truth about open-source software, she said, "one person's life events can slow down [development of] software used by millions of applications" and create a supply-chain risk.

Ultimately, the OpenJS Foundation stepped in to help, and the project received funding from the Sovereign Tech Agency. The community formed a technical committee and worked to simplify the project. "They treated it as feature complete and focused on making it sustainable." That included deprecating APIs that now had native JavaScript equivalents, reducing support for obsolete runtimes, and making the library smaller.

Ginn noted that a single maintainer burning out can affect millions of applications. The responsibility for security updates falls on too few people. When someone burns out the question becomes who can realistically carry the responsibility of a project moving forward?

She talked a bit about the Linux Foundation's LFX Insights project, which analyzes open-source projects and attempts to measure the health of their communities. "So now your security teams can also look at the code, and then they can look at the community health".

Security incidents show how fragile the ecosystem is, she said. Ginn pointed to the Leftpad incident, Log4j vulnerability, and phishing attacks that are plaguing the npm ecosystem that is used to deploy packaged software for Node.js. These are not just coding problems, they are sustainability problems:

In open source, we like to celebrate the hero maintainer, the person who keeps that project alive forever and forever and forever. But, you know, the expectation of maintaining it forever is actually a security risk because deprecation actually isn't abandonment. Sustainable ecosystems require funding, governance, shared responsibility, and a lot of help from friends in the community. So letting go, when done responsibly with notice, migration paths, [and] community support, we don't consider it failure. We consider it leadership because the most secure projects are the ones that know when to merge, when to maintain, and when to move on.

It should not all fall on the shoulders of maintainers, though. Governments are relying more on open-source projects, she said, and she hoped that more of them would follow Germany's lead in funding projects. Companies that rely on open source should be assigning people to work on it; she named a few companies, such as Bloomberg, Netflix, and Target that are dedicating people's time to work on open source. "We recommend that you take an audit of the top 20 open-source projects you may use and just pick one and engage" by helping to review bugs, triage security issues, or test pull requests. "Anything that we can do to help those maintainers would be amazing".

Questions

Ginn had a bit of time left for questions; the first attendee who spoke up wanted to know about the effects of agentic AI on projects, and the flood of pull requests that it was enabling. How was that going to affect things? Was it going to improve things or burn more people out?

"All of the above", Ginn said. Right now it is super painful. The Node.js project had just instituted a policy that any pull request should be less than 5,000 lines of code, and large pull requests must be done by a core contributor. "So hopefully that will mitigate it some". Alpha-Omega had funded a new security engineer for the foundation, but that had barely made a dent in what they were facing, she said.

Another attendee wondered if a community forks a deprecated project, does the original developer have a responsibility to help with it, or is it solely up to the new maintainers? Ginn said that it was the latter and mentioned that some companies are forking projects and then selling support as a business model.

Ginn's talk provided some interesting case studies in stabilizing important open-source projects. Of course, the presence of a foundation and help finding funding were key ingredients in the success of those efforts. Those are, unfortunately, resources that are not readily available to many maintainers outside of ecosystems with support infrastructure, like that of the OpenJS Foundation.

[Thanks to the Linux Foundation, LWN's travel sponsor, for funding my travel to Minneapolis to attend the Open Source Summit.]

Comments (3 posted)

Trying to make sense of package-manager metadata

By Joe Brockmeier
June 2, 2026

OSSNA

Package managers for operating systems and programming languages have been around for decades. Each package manager, and its accompanying packaging format, has been shaped by the needs of its respective ecosystem, but there is a growing need to make use of package metadata for more than software management: for example, in vulnerability scans, software bills of materials (SBOMs), and more. On May 19, Damián Vicino spoke at the Open Source Summit North America 2026 about his experiences in the past year trying to make sense of the varied metadata provided by more than 20 package managers.

Metadata mess

[Damián Vicino]

Vicino said that he has been using package managers for more than 20 years, and that he has been happy with them for most of that time. Two years ago, though, he started working in the open-source program office at Datadog; he needed to gather package metadata—such as the name, version, license, and dependencies of the software—as part of his duties there. For instance, he wanted to be able to grab the name and version of a package to see if there were any CVEs that applied to it; he also wanted to check licenses to ensure compliance.

This is information needed for all kinds of analysis, Vicino said: dependency updates, supply-chain security, vulnerability management, SBOM generation, and more. "If everyone needs to map that data together because you need to read it, why do we have one of the implementations in each of these tools independently?" He explained that there is no shared reference framework, and that it was much harder than he expected to try to get all of the data he needed from each package manager—much less all of them.

He thought that there might be "magical tools" to grab all of the data that he needed to do the analysis he wanted to do, but he could not find any. "So I started writing my own. I saw that was a really, really difficult thing." He showed example metadata (reproduced below from his slides) for Python and Node.js packages, as well as a FreeBSD port Makefile, to illustrate how similar information was expressed differently across package ecosystems.

[Package managers' metadata]

Real projects today, he said, tend to be a combination of software from multiple sources; a Python project has C dependencies, or a Debian package contains a Python library. If, for instance, a developer is trying to create an SBOM for a project that combines artifacts from various package managers, then "you want the same representation for everything", but that does not exist.

Package manager chaos

Vicino said that there are, of course, reasons why each package manager does things differently: each one had evolved separately because it has its own purpose. Some are designed for operating systems, others are for programming languages; some package managers were created decades ago, others were created just a few years ago. A package manager may be designed around the assumption of a centralized registry, or expect distributed repositories of packages. There is a difference in how they are developed and extended; he pointed out that Python has the PEP specification process, while in other cases "some developer started something, and people started picking it up" without rigorous planning.

Package-manager developers set the rules for how everything works, "but they set different rules than every other package management developer in other ecosystems". Users of those package managers can't easily find the data they want because it isn't available. Maintainers of packages may want to publish specific information, but not know how to do so (if it is possible at all).

Developers want to provide information about all of the varied components in a project, but there is no good way to get all of that information in a unified format. "So who is paying the cost of this? Everyone is paying the cost, it's so confusing." Multi-platform, mixed ecosystem projects are broken, he said.

Not a project that doesn't build: they build, but you don't have the ability to respond to incidents because you don't know that you have an incident. You cannot go into that data and see that there is a CVE seven dependencies down the tree.

Package managers have existed since 1992, Vicino said, so why would the problem be solved now? (The exact date the first package manager was created or published is up for debate. Nevertheless, 1992 was the date he cited.) He believed that external pressure in the form of legal requirements would be the catalyst to push for solutions to the metadata mess. He pointed out that the Cyber Resilience Act (CRA) in the European Union has mandates for SBOMs, "and if you are going to make an SBOM, you need the data. It's going to be a legal requirement. That's real pressure."

CHAOSS working group

That said, after 30-plus years of package-manager development, he did not believe that package managers were going to change to be SBOM-compliant. When Vicino had been trying to find solutions for managing information from disparate package managers, he had asked around to see if anyone else had found the answers he was seeking. He didn't find the answers, but he did find other people asking similar questions. That, in part, led to the creation of the package metadata working group as part of the Community Health Analytics in Open Source Software (CHAOSS) project.

The working group's first meeting was in September 2025, Vicino said. The group wants to help different communities talk to one another and try to document practices across package managers and bridge the gaps between them. He emphasized that the working group is not trying to write new standards; there are already good standards for representing package metadata, such as the System Package Data Exchange (SPDX), CycloneDX, and OpenChain. "We just want to understand for each package manager what's the gap to be able to use that standard."

We thought it'd be easy

The plan is to work on one attribute at a time, he said. The group has a queue of 11 attributes it wants to analyze, beginning with license metadata. The group started with analyzing license metadata because "it was going to be easy and allow us to check how our process works". It turned out, he said, that "our assumptions were completely wrong". The group examined package managers for a number of language ecosystems, operating systems, and also looked at Dockerfiles. That involved looking at documentation, standards, and implementations to see how package managers expose license information.

The license-analysis research focused on the field name, whether the package managers validate license information, the structure for expressing the license, and how many attributes are supported. The group found little agreement on the field name for licenses: "there is 'license', 'licenses', 'licensing info', 'license file', 'license URL'. That's something we can work with, it's just mapping."

Package managers were grouped by how license information was declared in the package metadata. Eight ecosystems use unambiguous declarations, such as SPDX identifiers and expressions (AND, OR, WITH); Cargo, Homebrew, npm, and RPM all fall into that category. Unambiguous means "if you're a maintainer and you want to write the SPDX expression or equivalent, you can. That's the only requirement." It does not mean that the use of such identifiers is required or enforced.

Twelve of the ecosystems have a field for license declaration but use non-standard ways of expressing the license (e.g., free-form text); Debian packages, FreeBSD ports, Maven Central, and Ruby Gems are all in the ambiguous category. Three of the ecosystems do not include a field for license at all; Dockerfiles, for example, do not have a required license field. In addition, some of the package managers validate whether the license information exists, while others do not.

The group used data from the ecosyste.ms project that tracks open-source data to study the license declarations "in the wild" to see how many had valid SPDX data. There were 36,224 packages in the top 1% by popularity, he said, and 60% of those had valid SPDX data. In the top 10%, more than 2.3 million packages, only 47% had valid data. The CSV files used for the project's analysis are on GitHub, as are the scripts for processing and analyzing the data.

Vicino showed examples of good and bad license expressions. Maven Central provided a good example of what not to do with several different ways of expressing the Apache 2.0 license including (but not limited to) "Apache-2.0", "Apache License, Version 2.0", and "APACHE-2". He showed a slide with an example of what "good" would look like, a mandatory SPDX expression with optional escape hatch. SPDX has standard strings for many licenses, such as "Apache-2.0", but the "escape hatch" is needed for those licenses that the standard does not cover. For those, it offers the LicenseRef value, which can take a link to the custom license.

Recommendations

Vicino said it was easy to decide what the group would recommend to package-manager ecosystems: full SPDX expressions, including its operators, that are validated somehow. Currently most attributes, such as dependencies, are validated but "except for very few, nobody validates the license". It is not trivial to do, he said, but there are packages to do license validation for most languages: "so it should be something that can be introduced into package managers".

Where the validation step happens is another question. Some ecosystems have centralized registries; they could make validating the license a part of the publishing process. For distributed ecosystems, he said, it's harder. Validation should be enforced by the publishing tools for packages with a check by the "consumer" tools, but the group does not recommend enforcing a valid license expression by consumer tools "because they don't have a way to fix it" if the expression is invalid.

Of course, a package ecosystem cannot re-declare all of its license metadata overnight. He recommended a five-stage process to transition to valid SPDX identifiers, beginning with parallel support of valid and non-valid identifiers, then requiring new packages to have valid SPDX, updating existing packages, and ultimately deprecating the old format. Unfortunately, he did not mention the work Fedora has been doing to transition from its old short-license-name format to SPDX identifiers, which has followed a similar process. The project kicked off a multi-stage process in 2022, and has made significant progress in becoming SPDX-compliant.

Vicino said that every tool that depends on package metadata could benefit from the work that the group is doing. For example, it would make it easier to examine different ecosystems for known vulnerabilities. The idea is to reduce duplicated work and make better tools: users need not have "insider knowledge" about each package ecosystem to find information.

He said that the group is still looking for people to connect with for some of the package ecosystems, and encouraged interested people to get in touch. Licensing is only one of the attributes the group wants to tackle, though; he said there is also work ongoing related to metadata for source-code URLs, lock files, binary dependencies, funding links, and more. He pointed to information on the last slide of his presentation for links to the group's Slack channel and meeting schedule.

Questions

There was a little time left over for questions. I asked whether the group had looked at the Flatpak or Snap package formats; he said that they had not. I also asked if they had considered grouping the package managers by function: for example, looking at language package managers and operating system package managers separately to see how they were alike or different.

Vicino said that they had considered that at the start of the project, but the things that were most telling was whether an ecosystem used a centralized registry or not, and the age of the ecosystem. Perl's package manager and Debian's are not that different, he said, because they depend on a centralized registry. Older ecosystems have a more copyright- and attribution-centric approach, while newer ecosystems focus more on dependencies or enforcing version numbers. "But we don't see a big difference between how [an] OS-centric package manager works compared to how a language-specific one does."

At that point, the audience had run out of questions just as the session had run out of time.

[Thanks to the Linux Foundation, LWN's travel sponsor, for funding my travel to Minneapolis to attend the Open Source Summit.]

Comments (2 posted)

Policies for merging new filesystems

By Jake Edge
May 28, 2026

LSFMM+BPF

In a filesystem-track session at the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, Amir Goldstein wanted to discuss his proposed documentation on adding new filesystems to the kernel. There are a number of unmaintained and untestable filesystems already in the kernel, which are a burden to VFS-layer developers who are trying to make sweeping changes, such as switching to folios and the "new" mount API. Goldstein's document is an attempt to head off the addition of filesystems that may increase that burden down the road.

The idea behind the document is to provide prospective filesystem projects a bit of a checklist for what is needed in order to be considered for inclusion. Two new filesystems, VMUFAT and FTRFS, were posted in the same week that he had proposed the document. Both of those projects needed to be asked the usual questions (such as "why not FUSE?"), pointed toward the need for adding fstests, and so on. Getting all of that down in one place that developers of new filesystems can be referred to will help.

Criteria

[Amir Goldstein]

The filesystem developers need to decide what message they want to send to prospective new filesystems; he noted that the rejection of ZUFS sent a message, but he wondered if the community's message had changed since then. Christian Brauner said that for a few years there were multiple different container filesystems that were proposed, but that he never believed a single filesystem would work for all of the different kinds of containers the kernel supports. Pushing back under those circumstances makes sense, but there may come a time when there is a real need to add another filesystem to the kernel. "I just think the bar should be quite high to do that."

The community has seen the pain of bringing a filesystem in and needing to reverse course, Brauner said. There is a balance that needs to be found and criteria for new filesystems can help with that. Part of the problem, though, is that new filesystems are generally sent to Linus Torvalds for a decision; the filesystem community does not necessarily get a veto.

Ted Ts'o pointed out that the interest in using FUSE for filesystems has increased over the last 12-18 months. Much of that was driven by the security concerns with in-kernel filesystems. He pointed to the work that Darrick Wong has been doing on implementing ext4 as a FUSE filesystem that can still perform at close to native speed; that was aimed at providing better security for container workloads. Ts'o does not consider containers to provide a security boundary, but some who do are interested in accessing ext4 filesystems that way.

He does not think that the filesystem community should be pushing new filesystems to use FUSE, however. The bar should be set high enough for a new filesystem "so that it is long-term maintainable by the community". The new filesystem developers can then decide what approach they want to take.

An attendee suggested having a list that described the reasons why a filesystem should be in the kernel, as well as why it should not be. There are some existing in-kernel filesystems that do not need to be there, he said. The problem with that is that "someone has to write it", Jeff Layton said to laughter.

Damien Le Moal agreed with all of the criteria, such as needing tests and maintainers, calling it "a no brainer" for any proposed feature. In the special case of a filesystem, though, he said that the first question that the project needs to answer is "why?": "what is the exact thing you cannot do" with the existing choices? "What problems is it solving?" Without answers to those, there is no point in accepting a filesystem, no matter how good the code is or how committed the maintainers are.

Removal

It is extremely difficult to remove a filesystem once it has been merged, Josef Bacik said; addressing that is where the group should spend its time. The criteria for inclusion is reasonably well-known, but the process to deprecate and remove one is not. So it is not just criteria for merging that needs to be documented, but filesystem projects also need to continue with a certain maintenance level and keep up with the rest of the community, which should be described. If a filesystem falls behind, "this is how we are going to get rid of your filesystem".

Brauner said that there had been pushback from Greg Kroah-Hartman and others at a Maintainers Summit about leaving obsolete filesystems in the tree, as is done with drivers. There are drivers that "just sit and rot", perhaps filesystems should be treated the same way, they suggested. Jan Kara wondered if it made sense to simply implement a FUSE version of some of these unwanted filesystems as a way to be rid of them, though regressions might get in the way of the final step.

Brauner noted that he had put out a policy statement that bugs from corrupted filesystem images were not considered security problems. If that were not the case, there would be an unending stream of CVEs that would need to be addressed, particularly for older filesystems. He said that the flood of bug reports coming from LLMs has led to pulling out some kernel code from the networking subsystem, so "removal, suddenly, is something that can be done, apparently, without much objection".

Ts'o said that historically, "really simple" filesystems that do not use "any of the advanced interfaces" can remain in the tree and "rot" without causing much in the way of problems. There are certainly bugs lurking in some of those, which could be found by fuzzing or LLMs, "but nobody cares". The community could be explicit about that and simply list legacy filesystems with disclaimers like "no one cares about them from a security perspective, if you're a distro, we strongly recommend you don't build the suckers".

It makes sense to send a strong signal that some are second-class filesystems, he said. "The only reason why we haven't just simply created a FUSE driver and then ejected the in-kernel version is that it's not even worth the effort to do that." The list may be the lowest energy fix to the problem while allowing the few users of those filesystems to keep doing so. It is similar to support for the PA-RISC architecture in the kernel, which almost certainly has security problems of various sorts, but the kernel community seems unconcerned.

There was some fast-moving discussion around marking filesystems as deprecated or listing them as Ts'o suggested, though no real conclusion was reached. Meanwhile, Goldstein wondered if new filesystems should be required to be maintained out of the tree for a while as a proving ground for the code as well to show that there are interested users. That has been a successful path for some filesystems in the past.

Famfs

Goldstein raised the discussion about merging famfs. He said that there was never any real pushback against merging famfs in some form, it largely came down to whether it should use FUSE or not. Those questions allowed its developer, John Groves, to try both to see which made more sense; it was a kind of extended "design review", Goldstein thought, which was valuable as part of the process.

Groves did not disagree, though he hoped it would not be another year before famfs was merged in some form. There is a bit of an impedance mismatch since famfs uses memory, not storage, so data is not really persistent. But famfs is also low risk as a new kernel filesystem, since it cannot be used as a general-purpose filesystem. It is aimed as a solution to a new problem that comes about with a, say, multi-TB memory appliance.

Goldstein agreed, but noted that the process was meant to see if something more generalized could come out of it, which would make it a better fit for the upstream kernel. Groves said that two years ago he had presented the filesystem at LSFMM+BPF and switching to FUSE was suggested; he was resistant at first, but returned to the summit in 2025 with a FUSE-based implementation. He maintains both versions and is leaning toward suggesting a return to the standalone filesystem for merging.

Many of the requirements that are being suggested for new filesystems, such as working tests in fstests, only really apply to filesystems that have a persistent on-disk format, Ts'o said. That's important because there need to be different standards for, say, a new read-only or network filesystem. For example, EROFS is being used in ways that are "beyond its original use case, which is a sign that the people who did it got it right". It is unlikely that anyone will take on the pain of creating a new read-only or network filesystem unless there is truly a need; "it's just not worth the effort". The criteria for those, if they were to appear, are sure to be different than those in the document, which are geared toward regular, persistent on-disk filesystems.

[I would like to apologize for any errors here. The acoustics in the room were problematic for both hearing and recording. Misunderstanding and misidentification may have resulted.]

Comments (27 posted)

Separating memory descriptors from struct page

By Jonathan Corbet
May 28, 2026

LSFMM+BPF
The kernel's memory-management subsystem is currently partway through a multi-year project to replace the page structure (which represents a page of physical memory) with memory descriptors. At the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, Vishal Moola ran a fast-paced session in the memory-management track to describe the current state of that work and what is likely to happen next.

[Vishal Moola] The page structure has been at the core of the kernel's memory-management subsystem since the 1.3.50 development release in late 1995, but it has a number of problems. It must be able to describe any type of page in the system, which limits how small the structure can be. These structures currently occupy a significant portion of the memory they represent. The size constraint has led to a lot of complexity as developers have used every trick they could to shoehorn more information into the structure. Use of struct page has leaked far beyond the memory-management code, making the structure harder for memory-management developers to change. These structures also contain a lot of redundant data in cases where pages are grouped into larger structures; a PMD-size folio can be described with a single folio structure, but requires 512 page structures.

The memory descriptors that will replace struct page are, eventually, intended to only occupy eight bytes. For many page types, that descriptor will contain a pointer to a type-specific structure — struct folio for folios, for example. Some other page types can be fully described with the eight bytes available. This descriptor-based future will be cleaner and more memory-efficient, but getting there is not a small task.

A number of descriptor types have been defined so far, Moola said, starting with the folio type. For pages used by the slab allocator, slab descriptors were added in 2021. There is struct ptdesc for page-table pages, and descriptor types for zsmalloc and netmem as well. Each of those descriptor types is currently carefully designed to overlay struct page but, when the switch is made, it will become possible to remove unneeded fields from each, making them smaller.

One concern he has with switching to descriptors is the double-allocation cost. When a page is needed for some purpose, kernel code will need to allocate that page, but it will also have to allocate the descriptor to manage it. With the existing system memory map, instead, the page structures are set up at boot time and are always present. He also wondered about how the change would be managed in general; he suggested adding a new configuration option (CONFIG_MEMDESC) that would provide access to all of the disruptive changes. It would be disabled by default. A participant said that folios will be the biggest user of descriptors in general; he asked whether it might make sense to convert all of the other types first as a relatively small change before making the big leap.

Matthew Wilcox said, though, that moving to the eight-byte descriptor is still a distant goal. There is "a long-tail problem" of code throughout the kernel using random fields in struct page for its own purposes. This code has worked so far, but all of it will have to be located and fixed before the change can be made. That said, he liked the idea of doing folios last. He suggested the creation of a "developer preview" configuration that would simply "disable ¾ of the kernel"; it would support the XFS filesystem but no networking. This configuration could be used initially to test out changes and run benchmarks. Converting page-table descriptors first, he said, might be a good start.

Moola said that he has tried moving to descriptors for a few types; it allowed him to shrink struct page to 32 bytes. One of the biggest challenges turns out to be page migration, which forces some fields to be kept in struct page, and also requires the allocation of a new descriptor during the operation. There was a detailed description of how migration uses struct page fields, and a conclusion that, initially, enabling descriptors would force migration to be disabled.

Moola's slides contain a number of examples of what descriptors might look like once they are separated from struct page; most of those details were not discussed in the session in any detail, though. The session concluded with a statement that this work appears to be making progress.

Comments (none posted)

Representing the true signatures of kernel functions

By Daroc Alden
June 1, 2026

LSFMM+BPF

Optimizing compilers can, under some circumstances, infer when a parameter to a function is not needed, and remove it. This is all well and good until the kernel's tracing or BPF subsystems need information on how to call the function or where its arguments are stored. Alan Maguire and Yonghong Song spoke at the 2026 Linux Storage, Filesystem, Memory-Management, and BPF Summit about their work on recording information regarding changed function signatures in the kernel's BTF debugging information, to better support tracing such functions.

Song opened with three examples of ways that an optimizing compiler can transform a function's signature, each taken from the actual kernel. Here are simplified versions; the full examples can be seen in the slides. Firstly, an argument can simply be removed in its entirety:

    int something(int flags);
    // becomes
    int something();

Alternatively, if a function takes a structure as an argument, but only uses some of its fields, those fields can be extracted from the structure and passed on their own:

    typedef struct {
        int field1;
        int field2; // Not used
    } structure;

    void something(structure foo);
    // becomes
    void something(int field1);

Finally, if a function takes a pointer to a structure but does not mutate the structure, it can be passed by value instead. This can be worthwhile on its own merits if the structure is small (avoiding an extra load from memory), but it can also enable opportunities for the previous optimization to apply.

    void something(structure *flags);
    // becomes
    void something(structure flags);

Any code that is intended to accurately capture how optimized functions in the kernel are called needs to be able to handle these three cases. Together, they cover a large portion of the functions present in the kernel for which signature changes occur. The remaining functions are outliers in terms of complexity, and best addressed by follow-up work.

[Yonghong Song]

The DWARF debugging information format already has a way to represent these kinds of transformations, so when Song and Maguire started on this work in 2025, they thought of reusing that encoding. DWARF is intended to play a subtly different role, however: it represents the signatures of functions as they are in the source code, not as they are after optimization. Specifically, the DWARF data for a function argument describes how to find its value at run time. The tracing subsystem needs a different piece of information: what the type of an argument is at run time, so that it can reconstruct a representation of it for printing, or so that tracepoints can refer to and change arguments by name in a safe way. The DWARF maintainers rejected an extension to DWARF for that purpose on the grounds that the format is only intended for debugging information, however.

The necessary information on an optimized function's "true" signature (as Song calls it) is technically present in DWARF, but not in a usable way. Thus his current approach: teach the poke-a-hole (pahole) utility to reverse engineer the kernel's DWARF data and extract the true function signatures.

The core idea is to take the architecture's ABI, figure out how function arguments defined in the source code would be passed without optimization, and then check the DWARF information for discrepancies. The DW_AT_calling_convention annotation records what calling convention a given function uses; when Clang changes a function's signature during optimization, it sets the annotation to DW_CC_nocall to indicate that the function is called with a non-standard calling convention. Then, pahole walks through the DWARF information to find arguments that are passed in different registers than expected (or that are not passed at all) in order to reconstruct the changes to the signature. By focusing pahole's attention on functions that have the appropriate annotation, the process of reverse engineering the kernel's DWARF information can be made faster.

Out of 69,103 total kernel functions, 875 currently have their signatures changed by optimization. 532 of those are not currently represented in the kernel's BTF information at all, and 343 are represented incorrectly, Song said. With Song and Maguire's patches, only 18 total functions won't be able to be represented. Unfortunately, DWARF doesn't record whether function return values are changed in the same way as arguments, and there are problems with handling arguments passed on the stack, so there could still be problems with return values or functions with more than six arguments. Future work should be able to address both of those.

[Alan Maguire]

At that point, Maguire stepped up to speak about the GCC side of things. GCC indicates functions that have had their signatures changed by generating a new symbol name, but the same broad approach works for binaries it creates as well. José Marchesi warned that the symbol name is not a reliable indicator — some transformed functions do not receive a changed name, according to one of the other GCC maintainers. Marchesi didn't know the details, however, and encouraged Maguire to reach out to them to ask.

Another complication that Maguire has run into with GCC is functions that are inlined differently in separate call locations. Partially inlined functions have long been a source of complication for the kernel's BTF. Maguire went into more detail about the particulars of the problem and his potential solution in a session later in the conference.

Song raised the idea that, in the future, compilers could generate appropriate BTF information directly, without going via DWARF. The advantage is that compilers know exactly how they are changing function signatures, so there would be no risk of information lost in translation. Alexei Starovoitov liked the idea, since it would mean that the kernel community would not need to fight the DWARF standards, but wasn't sure how realistic it was. Ideally, a change to BTF would also work for Rust code (which implies it should work for link-time-optimized kernels as well, since CONFIG_RUST implies CONFIG_LTO). Starovoitov worried about the complexity, especially of deduplicating BTF declarations, but did think that extending BTF to handle more of the complexity was important. As the session wound down, the audience broke into scattered discussion about the particulars.

Comments (none posted)

Caching for extended attributes

By Jake Edge
June 2, 2026

LSFMM+BPF

Extended attributes (xattrs) provide a way to attach key/value metadata to inodes—files, directories, and the like—in a filesystem. As with many Linux filesystems, the FUSE filesystem supports xattrs. In a filesystem-track session at the 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit, FUSE maintainer Miklos Szeredi led a discussion about caching xattrs in kernel memory; he would like to create some common infrastructure that could be used by FUSE and shared with other filesystems.

He began by listing the existing xattr-cache implementations in the kernel. There is a simple_xattr cache that is used by tmpfs, pidfs, and kernfs; it uses a hash table to store the data but it does not allow any shrinking. The nfs4_xattr_cache also uses a hash table to store the xattrs; it does allow shrinking. The mb_cache is used by ext2 and ext4 to deduplicate xattrs and is not a general-use xattr cache. Meanwhile, the EA inode feature is used by ext4 to store large xattrs that do not fit into the inode. Ted Ts'o cautioned that the EA inode was not intended as a cache at all, just as a way to store large xattrs, though it could perhaps be used as one. Amir Goldstein pointed out that the XFS buffer cache effectively acts as an xattr cache, which Szeredi acknowledged.

[Miklos Szeredi]

If there is to be a common implementation of the cache, it should probably use a hash table, Szeredi said. The basic idea of consolidating the two main xattr-cache implementations (simple_xattr and nfs4_xattr_cache) into a common code base that could then be used for FUSE seemed good to attendees. Currently FUSE requires a round-trip through user space to retrieve xattrs, so caching those that are used frequently will help its performance.

He went through some of the requirements for the shared xattr cache, including having low overhead for storing only a few xattrs and even lower overhead when not storing any. There is a need to be able to reclaim memory, especially that taken up by large xattr values; the NFS xattr cache has a complicated mechanism to do so already, he said.

Brauner asked about access-control list (ACL) caching, which is already done for filesystems. The i_acl field in the inode structure is used for that, he said, and wondered if that caching would also be part of this new shared scheme. Szeredi pointed out that i_acl is not a cache, it is simply an entry for the ACL for the inode; its use would be unaffected by the shared xattr cache.

Continuing on, Szeredi said that the xattr cache might globally deduplicate the keys and values in order to save memory. One use case for that, Ts'o said, is ACLs for Windows that are stored as xattrs; they can be "gargantuan", and are generally shared by every file in a directory. Deduplicating those would save substantial amounts of memory; that is also true for POSIX ACLs, he said.

Brauner asked what was meant by "global" and wondered if Szeredi meant per superblock. Szeredi said he was not yet sure about the granularity of the deduplication. Ts'o recommended doing it on a per-superblock basis in part because that would ease memory accounting for control groups; the xattr-cache use for a particular control group could be charged correctly.

There are some policy questions that go along with the cache, Ts'o said. Administrators may want to limit the size of xattrs that are added to the cache. For example, caching large xattrs, rather than more important ones like the security.* xattrs, may not be desired. Szeredi thought that restricting the cache to only store certain types of xattrs might be a way to do that.

There was also some hard-to-follow discussion on the implementation, but the overall feeling in the room was positive toward the idea. There were no objections to trying to find some common ground, rather than adding yet another xattr cache specifically for FUSE.

[I would like to apologize for any errors here. The acoustics in the room were problematic for both hearing and recording. Misunderstanding and misidentification may have resulted.]

Comments (3 posted)

BPF in the agentic era

By Daroc Alden
June 3, 2026

LSFMM+BPF

Alexei Starovoitov gave "less of a presentation, more of a scream of realization" at the BPF track of the 2026 Linux Storage, Filesystem, Memory-Management, and BPF Summit. He shared a set of ideas for how BPF could change to avoid being swept away by the sea-change in programming represented by modern large language models (LLMs) and the coding agents based on them. In a follow-up session, the discussion covered more problems with how coding agents use tools like bpftrace, and the current deluge of patches in need of review in the BPF subsystem.

He wanted to be clear that these ideas were not something he was unilaterally deciding on, they were "just looking at how the world has to be". Coding agents do their best work when given tight feedback loops, he said. They write code, see errors, and make fixes. This makes them good at handling tedious jobs such as large refactoring operations. That feedback loop doesn't work well in the BPF ecosystem, especially when one has to boot a virtual machine in order to properly test a change.

[Alexei Starovoitov]

Even when a BPF programmer has attempted to load their program into the kernel, errors from the verifier "are insane" — huge dumps of data that obscure the actual source of the problem. In Starovoitov's experience, writing BPF code is the only case he has observed where LLMs will give up rather than producing something.

BPF can never crash the kernel. "That's what BPF stands for." That is the one thing that makes the ecosystem unique. So, the BPF verifier isn't going away, and it needs to run in the kernel because user space is untrustworthy. This adds a certain amount of unavoidable latency and complexity between writing a BPF program and getting feedback on it. Given that constraint, how can BPF developers shorten the feedback loops between writing a BPF program and getting a useful error message?

Right now, the verifier essentially has two roles: finding places where the programmer made a mistake, and acting as a security boundary. The first part doesn't need to be done in the kernel; languages such as Rust do a great job of confronting programmers with their mistakes in user space. The BPF developers should be working to make BPF easy to use with Rust, so that simple mistakes can be caught quickly, Starovoitov said. Any program that does pass the Rust compiler — and doesn't do anything obnoxious with unsafe code or inline assembly — should pass the verifier as well. Obviously programmers will still be able to cause verifier errors if they try, but well-intentioned, normal BPF programs written in Rust should not cause verifier errors, he said.

Making this happen may require further work on the verifier, or the careful addition of run-time checks to BPF. But it's a goal that Starovoitov believes is possible and worthwhile. There are other ways to shorten the feedback loop for BPF programmers, of course. If BPF could be made to work in user-mode Linux, for example, there would be no more need to test BPF code in virtual machines.

This confused one member of the audience, who objected that Starovoitov had previously soundly rejected the idea of moving the BPF verifier to user space. The real kernel can't trust user space, Starovoitov said, but it should be possible to run the verifier in user-mode Linux in order to shorten the time it takes to receive a verifier error if one is forthcoming.

All of these changes are coming quickly. In a few months, "there will be no fighting the verifier anymore," Starovoitov promised, as long as one writes BPF programs in Rust. The verifier will use run-time checks where necessary to make everything work. José Marchesi asked whether that change was currently in development. Starovoitov confirmed that it was.

Daniel Borkmann asked how the output from the verifier would change. Current verifier errors are far too opaque, Starovoitov said. They say things like "register is not init" — what is a programmer supposed to do with that? The verifier needs error messages that say what happened and how to fix it. This is another area where Starovoitov wants to take inspiration from Rust, and, in particular, the formatting of its error messages. "You guys are all dinosaurs; Rust won as a language," he said, at least in part because of the quality of its error messages.

In the end, he wants there to be almost no verifier errors. The ones that remain should include details about what went wrong and how to fix it. This change isn't going to happen overnight, he said, but "it is where we have to go".

There was some discussion about even bolder proposals, such as integrating WebAssembly into the kernel. Starovoitov was supportive of the idea if it could be made to work, but didn't think that was likely. When I spoke to him after the session, he said that he thought previous attempts to bring WebAssembly to the kernel were too slow for serious use, but that if someone was willing to do the work to bring it up to par with the existing BPF JIT implementation, they should do so.

At that point, Starovoitov dove into the details of how his suggested transformation could be achieved. There are a number of limitations of the verifier that must be removed, he said. These include the inability to handle functions with more than six arguments, indirect function calls, returning structures by value, support for 128-bit integers, larger BPF program stacks, deeper call chains, removing the one-million-instruction limit, and long jumps in BPF programs. Also, the BPF developers will need to remove the discrepancies between the verification of static and global functions. "Of course, this helps humans too."

Some of these things, such as larger program stacks, have already had the groundwork laid by previous improvements to BPF. For the rest, Starovoitov hopes to move more data into BPF arenas, which have one flat address space. Once that is done, a "global" memory allocator (really one per arena) makes many of the other problems significantly simpler. That plan does pose problems for Rust code that uses virtual dispatch tables; currently, the Rust compiler emits these tables intermixed with the code, which BPF is not set up to handle. Starovoitov suggested that changing the compiler to emit the tables differently might be the simplest solution.

In fact, changing existing tools may be the only way to remain "in distribution" (within the area that LLMs have been trained on), he said. LLMs are not as good at handling tooling that isn't in their training sets; ensuring that BPF objects can be built and linked with existing tools is important to letting coding agents take advantage of the improvements.

Amery Hung asked whether that extended to introducing new concepts, such as new kinds of BPF maps. Starovoitov thought that it did. When it was added, he had thought that BPF arenas would be the last map type needed. Since then the BPF subsystem has also added rhashtable-based maps, but he doesn't envision the need for any more.

The biggest change that will be required in the verifier is improved handling of loops, Starovoitov continued. There have been lots of struggles with BPF loops over the years; their handling has improved, but some loops are still too much for the verifier. Currently, the verifier will go through a loop multiple times until it proves one of three things: that the loop will exit after a number of iterations, that the loop returns to (a subset of) a previously analyzed state, or that the program will hit the maximum number of verified instructions and trigger an error. Starovoitov's proposed solution, called widening, would make it so that when verifying a loop takes more than a small number of iterations, the verifier state is generalized to consider larger numbers of loop-variable values at once ("widening" the state). The downside is that widened states are less precise, and potentially require more explicit run-time checks. This change could let the verifier handle all loops with a fixed maximum number of iterations, at the cost of requiring run-time checks for the loops that require widening.

The early results of this approach are "really great", Starovoitov said, but there is a lot more work to do to make it usable. Still, he hopes to have something together in relatively short order. At that point, the scheduled session was coming to a close, but he had enough still to cover that the talk was extended to a second session the next day.

Tracing and code review

The bpftrace and DTrace tools use domain-specific languages for configuring tracepoints; this makes them good for humans, but bad for LLMs, Starovoitov said. LLMs struggle with the syntax of niche languages. He thinks that the future of tracing looks like having documentation for coding agents that explains how to use standard tools, with explicit examples. That could help bpftrace and DTrace remain usable, but would be even better for tools like drgn that use a standard language's syntax, just with extra capabilities. Ultimately, he wants to be able to tell a coding agent to "find a performance issue on this kernel" and have it use BPF and drgn to identify and debug the problem.

One audience member thought that more examples in the documentation would be a good thing, but didn't think that using the kernel's tracing infrastructure with coding agents was viable unless one does not care about crashing the machine on which they are running. Starovoitov thought that this was ultimately solvable by encoding information about the kernel's functions and types in a format that can be checked automatically by existing tools, such as providing a "vmlinux.rs" set of Rust bindings.

Starovoitov also wanted to discuss code reviews. The BPF subsystem is swamped with low-quality patches that look, on first impression, really good. At this point, he is ignoring the commit log on the assumption that it is written by LLMs and just looking directly at the patches themselves. But, in general, "maintainers don't scale". Starovoitov called on everyone who submitted patches to the BPF subsystem to also perform code reviews.

There is no official number or scoring system, but contributing to BPF does require a fair and honest effort to review code. Cupertino Miranda asked whether he could invite people to come review code in GCC as well, since he is contributing to the kernel as part of his GCC BPF work. Starovoitov said that if he had a patch for GCC, he would certainly do some code review there as well, but "I last touched GCC 20 years ago". He did suggest that perhaps people could consider using LLMs to review their patches, in GCC and elsewhere.

Steven Rostedt complained that not everyone has access to an infinite number of tokens, and that a dependency on cloud-hosted LLMs isn't sustainable. Starovoitov agreed that it was a dependency that needed to be managed, but didn't think that could be avoided: "We are done with coding manually. It will all be agents in the future." He then called it more of a way of life than a dependency.

Rostedt objected that LLM companies don't have a proven business model, and so they're giving things away for free that they will not be able to afford to continue providing to kernel developers in the long term. Starovoitov did not think that LLMs were going to go away, even if prices rose in the future. Another audience member proposed that these companies should put together a fund for open-source developers, and let programmers pick which model to use, so that they would not be locked into one model that could disappear. Someone else pointed out that the Cloud Native Computing Foundation already does give out licenses for things like this to the maintainers of their projects. Starovoitov pointed out that open-source models also exist, and predicted that "coding will be possible on a laptop, once the technology advances". Rostedt agreed that things will become cheaper, but that didn't entirely ameliorate his concern.

Borkmann said that the assembled BPF developers need to think about new people coming to the community. They should be able to review code, eventually, but there is a learning curve. How can they learn to do that when simple code review is done by LLMs? Starovoitov claimed that "all of the newcomers, they're all skilled in agentic coding". All of the patches that they are sending are written by coding agents, he said. It lowers the bar to kernel contribution.

Rostedt didn't think this was a good thing — if ten times as many people are contributing, but the same quantity are sending good code, "that's not a plus". Starovoitov said that this is why more code review is needed. Sashiko has been helpful for that; he doesn't review patches until they've had an LLM comment.

At that point, discussion broke up into a series of increasingly outré proposals for how to improve the review situation, such as asking LLMs to regenerate commit logs based on what is in the patches. Starovoitov gave one final announcement that BPF office hours (regular video meetings where one can discuss problems with the BPF maintainers) are now ad hoc, not regularly scheduled. People interested in attending one should send an email to the mailing list to find a time that works.

Comments (22 posted)

A loadable crypto module for FIPS certification

May 29, 2026

This article was contributed by Jay Wang

Many organizations require US Federal Information Processing Standard (FIPS) certification of the crypto code they are running. The certification process is lengthy, but the bigger problem is that the way the crypto subsystem is built into the kernel makes the result unable to be reused across kernel updates. I have proposed a patch series that decouples the crypto subsystem into a standalone loadable module, allowing a certified crypto module to be reused with multiple kernels and, thus, requiring fewer lengthy recertification delays.

The problem with FIPS

FIPS certification is granted at the binary level by the National Institute of Standards and Technology (NIST), and the validation process typically takes 12 to 18 months. In current kernels, much of the crypto subsystem is built directly into the main kernel image. That means even a non-crypto kernel update, say a scheduler fix or a driver addition, produces a new binary and invalidates the existing certification. Distributions are then forced through the full validation cycle again, making it difficult to deliver timely kernel updates while maintaining FIPS compliance.

A solution is to decouple the crypto subsystem from the main kernel and build it as a separate loadable module. The module, rather than the entire kernel, becomes the unit of certification. A subsequent kernel update that does not touch the module leaves the existing certification intact, and loading that certified module onto the updated kernel makes it FIPS-compliant automatically. When the crypto code itself needs updating, a new module can be submitted for certification while users continue running the previously certified one on newer kernels; the old module acts as a bridge, so users never have to choose between an updated kernel and FIPS compliance.

While the idea is attractive, a natural question is why the existing kernel's module system cannot simply be used here, since it already allows code to live outside the main kernel. Three obstacles stand in the way.

First, the crypto subsystem spans hundreds of source files across multiple directories, each with its own configuration-dependent rules. The existing module build system has no mechanism to collect built-in objects from across those directories and redirect them into a module. One might try collecting them in a dedicated module Makefile, but maintaining a separate Makefile alongside the original does not scale well. Replacing the original Makefiles outright is not viable either, since that would break normal builds where crypto algorithms are expected to be configurable as built-in or modular when the feature is not enabled.

Second, the kernel's symbol resolution for loadable modules is one-way: it supports symbols defined in the main kernel and referenced by modules, but not the reverse. Many parts of the main kernel call into the crypto subsystem, so moving that code into a module means the main kernel would reference symbols that no longer exist at link time. The build would simply fail.

Third, the crypto subsystem is needed early in the boot process, before the root filesystem is mounted, so a module that lives on disk cannot be loaded in time. On top of that, crypto algorithms register their initialization functions through the kernel's initcall mechanism, which coordinates their execution order during boot. A regular loadable module has no equivalent; simply calling all the init functions at module-load time could violate dependencies and panic the kernel.

These three obstacles translate into three problems that the patch series must solve: build integration, reverse symbol resolution, and early loading with correct initialization.

Building the module

Rather than maintaining a separate Makefile or replacing the original ones outright, the patch series introduces a new rule, crypto-objs-y, that replaces the standard obj-y in existing crypto Makefiles:

    // in crypto/asymmetric_keys/Makefile
    - obj-$(CONFIG_ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o
    + crypto-objs-$(CONFIG_ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o

When the feature is enabled, any crypto algorithm marked with this rule and configured as built-in (CONFIG_CRYPTO_*=y) is automatically collected into a single module, fips140.ko, rather than being linked into vmlinux. Since the rule works within the existing build infrastructure, each file keeps its original compilation flags, header paths, and Kconfig-dependent logic, with no duplication needed. When the feature is disabled, the rule falls back to the standard obj-y behavior, so normal kernel builds are unaffected. When the feature is enabled, the generated module is embedded into the kernel image as a data blob in a dedicated ELF section, preparing it for early-boot loading. The entire process is integrated into the normal make vmlinux build, so the module is built alongside the main kernel automatically.

Reverse symbol resolution

To allow the main kernel to reference crypto functions and variables that now live in the module, the patch series introduces a reverse symbol resolution mechanism. For each crypto symbol that the main kernel references, an address placeholder is created: a trampoline backed by a function pointer for functions, or a pointer indirection for variables, initially set to NULL. At link time the kernel references these placeholders, so the build succeeds. At run time, once the module is loaded, the placeholders are updated to point to the actual implementations and then marked __ro_after_init to prevent modification after boot.

With the placeholders in place, the remaining problem is directing the main kernel to use them rather than the original symbols. For exported functions, which make up the majority, this is automated using the linker's --wrap option; it renames all references in vmlinux to point at the generated trampolines without touching any source files. A smaller set of exported variables is handled with explicit macro wrappers in the relevant headers that redirect accesses through the placeholder pointers.

Early loading and initialization

Because the module binary is embedded in the kernel image, a dedicated loader maps it directly from memory at early boot, bypassing the filesystem entirely. After loading, the address placeholders are updated to the real crypto entry points. The crypto algorithms must then be initialized, and the ordering matters: algorithms register their init functions through mechanisms such as subsys_initcall() and module_init(), and these must execute in the same order as if the code were still built-in.

The patch series handles this by collecting the module's init functions into dedicated ELF sections and spawning a coordinator thread that executes them in lockstep with the main kernel's boot sequence. Synchronization barriers at each initcall level keep the module and the kernel in phase.

Reusing a certified module

With the crypto subsystem packaged as a loadable module, a previously certified module can be carried forward to newer kernels. One might worry that this would require a stable kernel ABI, effectively freezing crypto development, as was raised in the discussion of an earlier version of the patch series. That is not the intent; rather, distributions would periodically recertify updated modules instead of preserving a fixed interface indefinitely. The reuse of an already-certified module simply bridges the gap until the new certification arrives. How much to reuse, however, involves a tradeoff.

The most conservative option is no reuse at all: submit the updated module for a full FIPS certification, gaining access to the latest crypto improvements at the cost of the full 12-to-18-month wait. At the opposite end, a distribution can reuse the fips140.ko module binary unchanged on a newer kernel, achieving day-one validation.

To support this, the patch series provides a CONFIG_CRYPTO_FIPS140_EXTMOD_SOURCE option that alters the kernel build: given a previously certified binary, the build system embeds it into the kernel image rather than the module that would otherwise be compiled from the current crypto source code. The full procedure is documented in the technical documentation patch. The cost of this option is that engineers must maintain ABI compatibility between the module and the updated kernel.

A middle ground is to freeze the certified module's source code and recompile it against the new kernel. Because the source is unchanged, the module qualifies for a Non-Security Relevant (NSRL) recertification, which typically takes three to four months rather than 12 to 18. This path requires only source-level API compatibility, which distributions can maintain by patching the main kernel if internal interfaces change.

Going forward

The feature has already shipped with kernel 6.18 in Amazon Linux 2023. Other downstreams have pursued similar modularization efforts: Android's Generic Kernel Image (GKI) was the earliest to modularize kernel crypto for FIPS, and Oracle Linux developed its approach concurrently with this one. My patch series cover letter includes a detailed comparison of the three approaches. In short, the key differences are that the approach this patch series takes is more seamlessly integrated with the upstream Linux kernel, is less intrusive to the source tree, and can be more easily generalized across different kernel configurations and choices of which crypto algorithms to certify. This patch series is positioned as a unified upstream foundation that distributions can customize for their own certification and maintenance strategies to deliver timely kernel updates without disrupting FIPS compliance.

Comments (17 posted)

Page editor: Joe Brockmeier

Brief items

Security

IBM's "Project Lightwell"

IBM has sent out a press release touting a claimed $5 billion investment into an operation called Project Lightwell:

Project Lightwell will establish a trusted enterprise clearinghouse combined with a global force of engineers to identify and fix vulnerabilities at scale. The clearinghouse will serve as a security coordination layer, using advanced AI capabilities to validate and test fixes across an unprecedented volume of open source code. These capabilities will be offered through commercial subscriptions, allowing enterprises to integrate secure patches directly into their existing software supply chains with enterprise-grade validation and lifecycle management.

Toward the bottom, it does also mention sharing vulnerability information with upstream projects.

Comments (9 posted)

Nesbitt: Protestware for coding agents

Andrew Nesbitt has written a blog post detailing a recent incident with the jqwik library for property-based testing in Java. On May 25, the 1.10.0 release of jqwik included a change that attempts to instruct coding agents to disregard previous instructions and delete jqwik tests and code.

I think this is a new class of supply-chain input worth keeping an eye on, mostly because of how little of the existing tooling has any opinion about it. A System.out.print of sixty-eight bytes of plain ASCII isn't the kind of thing scanners are looking for, since those watch for install hooks, network calls, filesystem writes, obfuscated strings and the like. The jar makes the same syscalls it made in 1.9, and because the change was committed and released by the legitimate maintainer through the normal build, it's clean from a SLSA point of view too: the provenance is what it should be. Anyone who reads the diff can see what it does, but a patch bump of a test-scoped dependency is not where most projects spend their review time.

Comments (106 posted)

Multiple redhat-cloud-services npm packages compromised (StepSecurity Blog)

StepSecurity is reporting that a number of npm packages in the @redhat-cloud-services scope include malware that runs automatically on every npm install:

The payload is a multi-stage credential harvester that sweeps GitHub Actions secrets along with AWS, GCP, Azure, Kubernetes, HashiCorp Vault, npm, and CircleCI tokens, and it is purpose-built to evade detection, including an explicit attempt to bypass StepSecurity Harden-Runner.

StepSecurity analyzed @redhat-cloud-services/host-inventory-client@5.0.3 in full. Its index.js, executed at install time, is 4.2 MB, a file that should weigh a few kilobytes, with the real payload buried under three separate layers of obfuscation. The malware is also a self-propagating worm: using stolen npm tokens and npm's bypass_2fa parameter, it republishes backdoored versions of other packages on its own, even against accounts protected by two-factor authentication, so every infected machine can seed the next wave with no attacker involvement. All affected packages were published via GitHub Actions OIDC from the RedHatInsights/javascript-clients repository, indicating the upstream CI/CD pipeline itself was compromised. Analysis of the remaining packages is ongoing.

A blog post from SafeDep has additional analysis about the incident. We did not find an advisory from Red Hat on this yet.

Comments (13 posted)

Kernel development

Kernel release status

The current development kernel is 7.1-rc6, released on June 1. Linus said: "Well, I wouldn't call this 'small', but it is certainly smaller than rc5 was. And I don't think there's anything particularly scary here, so maybe we're still on track for a normal release cycle. Let's see."

This release has seen 15,352 non-merge changesets from 2,388 developers, 495 of whom were first-time kernel contributors. The release history looks like:

RCDateCommits
v7.1-rc1 2026-04-2613963 13963
v7.1-rc2 2026-05-03475 475
v7.1-rc3 2026-05-10584 584
v7.1-rc4 2026-05-17428 428
v7.1-rc5 2026-05-24748 748
v7.1-rc6 2026-05-31473 473

See the LWN KSDB v7.1 page for a lot more details.

Stable updates: 7.0.11, 6.18.34, 6.12.92, 6.6.142, 6.1.175, 5.15.209, and 5.10.258 were released on June 1.

Comments (none posted)

Distributions

DistroWatch turns 25

The DistroWatch site is celebrating its 25th anniversary. "All in all, it has been an incredible ride. Many of you who read these pages regularly know that downloading and testing distributions is a highly addictive pastime. I have been an avid distro-hopper for the last 25 years and I don't see myself abandoning this activity for many more years to come." Congratulations to Ladislav Bodnar and all the others who have kept that resource going for so long.

Comments (1 posted)

Fedora F44 election interviews published

The Fedora Project has published interviews with candidates running for the open seats on the Fedora Council, Fedora Engineering Steering Committee, Fedora Mindshare Committee, and EPEL Steering Committee. Voting is open through Friday, June 12 at 23:59 UTC.

Comments (none posted)

Górny: why Gentoo?

Gentoo developer Michał Górny has written a lengthy article explaining the philosophy and purpose of the Gentoo Linux distribution, in response to a thread on Mastodon:

Gentoo is a source-first distribution, which means the primary method of installing software is to build it from source. Of course, that doesn't mean manually building stuff, following some kind of how-to: finding all the dependencies, installing them manually, going through a series of magical incantations, and eventually ending up no better than if we were installing a binary package. The package manager takes care of all the necessary steps and more, making package installs easy; well, at least unless something fails. But I'm digressing...

[...] We try to build a friendly and welcoming community around Gentoo, and we truly want using Gentoo be an enjoyable experience. We want it to be a system that doesn't betray you.

Comments (12 posted)

Development

Rust 1.96.0 released

Version 1.96.0 of the Rust programming language has been released. Changes include a new set of Copy-implementing Range types, assertions with pattern matching, a number of stabilized APIs, and two Cargo vulnerability fixes.

Comments (1 posted)

Ombredanne: An AI agent ported our codebase from Python to Rust

Over on the AboutCode blog, lead maintainer Philippe Ombredanne writes about an agentic LLM system porting the ScanCode Toolkit to Rust. In the process, the LLM (or the people behind it) infringed the ScanCode trademark, stripped copyright and license notices, "and started an outreach campaign, without ever engaging the AboutCode community". Ironically, the toolkit is used to scan source code and binaries in order to figure out licensing and copyright information; it also reports on package dependencies, vulnerabilities, and more.
This is worth repeating: A comprehensive test suite, decent documentation, and curated datasets is what makes automated porting possible. It is also what makes a codebase easier to replicate without understanding it.

The agent's initial approach, using an existing Rust license-detection library, failed to match ScanCode's output quality. The agent then did what any translator would do when a loose paraphrase fails: it copied the original more closely. The final port reproduces ScanCode's core algorithms, code organization, and data-driven architecture in Rust, not because the agent understood them, but because it had enough training data and test feedback to converge on equivalent code.

Comments (31 posted)

Vim Classic 8.3 released

Version 8.3 of Vim Classic has been released. This is the first release of the Vim fork since the project was announced in March.

This release is based on Vim 8.2.0148, with a number of bug fixes and patches conservatively backported from future versions of Vim upstream. We elected to clean up this version of Vim, prepare it for a release, and imagine an alternate history where Vim 8.3 was released without Vim9 script. The result is Vim Classic 8.3. We chose to take this approach in order to reduce the long-term maintenance burden of Vim Classic, acknowledging that our fork lacks the resources and institutional knowledge available to Vim upstream. However, a consequence is that there are some Vim plugins which are not compatible with Vim Classic.

We have made a special effort to assess patches from Vim upstream which mitigate some of the many CVEs affecting Vim which were discovered and fixed between versions 8.2 and modern-day Vim, but we can't be sure we've got all of the security patches which are applicable to Vim Classic (and practically exploitable). This version of Vim Classic is therefore recommended for early adopters who are comfortable adopting a security posture which accounts for the fact that we may have overlooked some bugs.

LWN covered Vim Classic and another Vim fork, EVi, in April.

Comments (none posted)

Tridgell: rsync and outrage

Andrew Tridgell has written a blog post responding to complaints that he has begun using LLM tools in his work maintaining rsync:

Like many developers of open source packages I've been hit by a flood of security reports lately in my role as the rsync maintainer. Many of those reports are AI generated (not all though, there are some notable ones with very careful and high quality manual analysis).

As this flood started to get more intense I realised I needed to raise the defences on rsync a lot — we needed much more thorough test suites, code coverage analysis, CI testing on a lot more platforms, deliberate and thorough scanning for possible security issues (so I find at least some of them before other people!) and the addition of a whole lot of defence-in-depth hardening techniques.

[...] Now to the future, because we're not done yet by a long shot. The security reports keep rolling in. I'm working on a bunch of CVEs right now. Luckily I've been joined by some other very good developers with great systems development skills and security knowledge. Some of these people came to my attention partly because of all the rage happening at the moment, so I get some rage storm clouds have silver linings. Watch out for some credits for some great new rsync developers in the next release.

Comments (40 posted)

Development quotes of the week

Please, drive-by commenters... please, read the commit log yourself, audit the commits yourself, investigate what changes are being made and why, and only complain reply to this topic further if you actually understand the work since the beginning of March. Don't fall into the trap of "Every mention of AI is vibe-slop" because social media told you it must be so.

Are you truly arguing that rsync shouldn't receive fixes for a large number of bugs and identified security flaws? Are you arguing against defence-in-depth hardening aimed at reducing the viable attack surface for bugs not found yet? Are you petitioning to keep a test and release engineering setup that apparently wasn't fit for purpose if these bugs have evaded notice for so long and regressions have slipped through, as mentioned?

— "kaithar" (Worth reading in full)

Last month, on the "xml-dev" mailing list, Elliotte Rusty Harold remarked, on the subject of XML generally: "Count me as one of the people who thinks it's mostly obsolete and ultimately a failed experiment. People don't want or need markup that's designed to make documents easier for computers to read but harder for humans to write."

I replied and here's an expanded version of what I wrote:

Irrespective of the current uptake, and seen as an experiment, XML has been a success. It proved that:

  1. You can have a data interchange format that is radically independent of your computer architecture, operating system, programming language, and application.
  2. The only sane text standard for modern computing is Unicode, which in practice is affordable and reasonably straightforward to use.

Prior to 1996, neither of these things were widely believed. The only "interoperable" data format was ASN.1, which is horrible and lacked quality software support. The resistance to Unicode was significant and widespread, and adoption was disappointing. Today, #1 and #2 above are the (low) bar to entry for any data packaging technology.

Tim Bray

Comments (9 posted)

Page editor: Daroc Alden

Announcements

Newsletters

Distributions and system administration

Development

Meeting minutes

Miscellaneous

Calls for Presentations

CFP Deadlines: June 4, 2026 to August 3, 2026

The following listing of CFP deadlines is taken from the LWN.net CFP Calendar.

DeadlineEvent Dates EventLocation
June 5 July 18 AlmaLinux Day: Los Angeles Los Angeles, CA, US
June 14 October 20
October 23
The Matrix Conference Malmö, Sweden
June 14 June 14 Neocypherpunk Summit Berlin, Germany
June 14 September 30
October 1
All Systems Go! 2026 Berlin, Germany
June 24 October 7
October 9
Embedded Linux Conference Europe Prague, Czech Republic
June 24 October 7
October 9
Open Source Summit Europe Prague, Czech Republic
June 28 October 8 Linux Security Summit Europe Prague, Czechia
June 30 November 17
November 19
Open Source Monitoring Conference Nuremberg, Germany
July 1 October 3
October 4
openSUSE.Asia Summit 2026 Yogyakarta, Indonesia
July 3 September 28
September 30
X.Org Developers Conference Toronto, Canada
July 15 July 15
July 22
BornHack 2026 Funen, Denmark
July 31 October 14
October 17
PyCon South Africa Cape Town, South Africa
August 1 August 25
August 30
MiniDebConf and MiniDebCamp Winterthur 2026 Winterthur, Switzerland

If the CFP deadline for your event does not appear here, please tell us about it.

Upcoming Events

Events: June 4, 2026 to August 3, 2026

The following event listing is taken from the LWN.net Calendar.

Date(s)EventLocation
June 6
June 7
Technical Dutch Open Source Event Geldrop (near Eindhoven), Netherlands
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
June 16
June 17
Open Source Summit India Mumbai, India
June 18
June 20
Linux Audio Conference Maynooth, Ireland
July 13
July 19
DebCamp 26 Santa Fe, Argentina
July 13
July 16
Netdev Rome, Italy
July 13
July 19
EuroPython Kraków, Poland
July 15
July 22
BornHack 2026 Funen, Denmark
July 16
July 19
Electromagnetic Field Eastnor, UK
July 18 AlmaLinux Day: Los Angeles Los Angeles, CA, US
July 20
July 25
DebConf 26 Santa Fe, Argentina

If your event does not appear here, please tell us about it.

Security updates

Alert summary May 28, 2026 to June 3, 2026

Dist. ID Release Package Date
AlmaLinux ALSA-2026:21295 8 .NET 10.0 2026-05-29
AlmaLinux ALSA-2026:21297 9 .NET 10.0 2026-05-29
AlmaLinux ALSA-2026:21286 10 .NET 8.0 2026-05-28
AlmaLinux ALSA-2026:21291 8 .NET 8.0 2026-05-28
AlmaLinux ALSA-2026:21293 9 .NET 8.0 2026-05-28
AlmaLinux ALSA-2026:21754 10 .NET 9.0 2026-05-29
AlmaLinux ALSA-2026:21294 8 .NET 9.0 2026-05-29
AlmaLinux ALSA-2026:21296 9 .NET 9.0 2026-05-29
AlmaLinux ALSA-2026:21676 10 cockpit 2026-05-29
AlmaLinux ALSA-2026:21700 8 cockpit 2026-05-28
AlmaLinux ALSA-2026:21468 9 cockpit 2026-05-28
AlmaLinux ALSA-2026:21380 10 firefox 2026-05-29
AlmaLinux ALSA-2026:20566 8 firefox 2026-05-27
AlmaLinux ALSA-2026:21382 8 firefox 2026-05-29
AlmaLinux ALSA-2026:21378 9 firefox 2026-05-29
AlmaLinux ALSA-2026:21757 10 flatpak 2026-05-29
AlmaLinux ALSA-2026:21756 8 flatpak 2026-05-28
AlmaLinux ALSA-2026:21755 9 flatpak 2026-05-29
AlmaLinux ALSA-2026:19127 10 gdk-pixbuf2 2026-05-27
AlmaLinux ALSA-2026:20594 10 glibc 2026-05-27
AlmaLinux ALSA-2026:19061 10 glibc 2026-05-27
AlmaLinux ALSA-2026:20587 8 glibc 2026-05-27
AlmaLinux ALSA-2026:20611 8 gnutls 2026-05-27
AlmaLinux ALSA-2026:21433 10 httpd 2026-05-28
AlmaLinux ALSA-2026:21391 9 httpd 2026-05-29
AlmaLinux ALSA-2026:19074 10 kernel 2026-05-27
AlmaLinux ALSA-2026:21706 8 kernel 2026-05-28
AlmaLinux ALSA-2026:21745 8 kernel-rt 2026-05-28
AlmaLinux ALSA-2026:20929 8 libexif 2026-05-27
AlmaLinux ALSA-2026:20693 10 mysql8.4 2026-05-27
AlmaLinux ALSA-2026:22305 8 php:8.2 2026-06-01
AlmaLinux ALSA-2026:22143 9 php:8.2 2026-06-01
AlmaLinux ALSA-2026:22142 9 php:8.3 2026-06-01
AlmaLinux ALSA-2026:19010 10 postgresql16 2026-05-27
AlmaLinux ALSA-2026:19009 10 postgresql18 2026-05-27
AlmaLinux ALSA-2026:19019 10 python3.14 2026-05-27
AlmaLinux ALSA-2026:19019 10 python3.14 2026-05-27
AlmaLinux ALSA-2026:20614 8 ruby:3.3 2026-05-27
AlmaLinux ALSA-2026:20596 9 ruby:4.0 2026-05-27
AlmaLinux ALSA-2026:21381 9 thunderbird 2026-05-29
Debian DSA-6316-1 stable chromium 2026-06-01
Debian DLA-4608-1 LTS corosync 2026-05-30
Debian DSA-6315-1 stable cyborg 2026-05-31
Debian DSA-6313-1 stable dovecot 2026-05-31
Debian DSA-6309-1 stable exim4 2026-05-29
Debian DLA-4610-1 LTS git-lfs 2026-05-31
Debian DSA-6318-1 stable gst-plugins-good1.0 2026-06-01
Debian DLA-4609-1 LTS imagemagick 2026-05-30
Debian DSA-6310-1 stable imagemagick 2026-05-29
Debian DLA-4606-1 LTS kernel 2026-05-29
Debian DSA-6305-1 stable kernel 2026-05-28
Debian DSA-6306-1 stable kernel 2026-05-28
Debian DLA-4611-1 LTS keystone 2026-05-31
Debian DSA-6307-1 stable kitty 2026-05-28
Debian DLA-4603-1 LTS krb5 2026-05-28
Debian DLA-4602-1 LTS lemonldap-ng 2026-05-28
Debian DLA-4607-1 LTS linux-6.1 2026-05-29
Debian DSA-6308-1 stable nagios4 2026-05-28
Debian DSA-6311-1 stable php-twig 2026-05-29
Debian DSA-6320-1 stable php-twig 2026-06-02
Debian DLA-4613-1 LTS python-aiohttp 2026-06-01
Debian DLA-4605-1 LTS python-flask-httpauth 2026-05-28
Debian DLA-4604-1 LTS roundcube 2026-05-28
Debian DSA-6301-1 stable roundcube 2026-05-27
Debian DLA-4612-1 LTS sentry-python 2026-05-31
Debian DSA-6302-1 stable starlette 2026-05-27
Debian DSA-6314-1 stable swift 2026-05-31
Debian DSA-6312-1 stable symfony 2026-05-31
Debian DSA-6317-1 stable symfony 2026-06-01
Debian DSA-6304-1 stable unbound 2026-05-27
Debian DSA-6303-1 stable varnish 2026-05-27
Debian DSA-6319-1 stable yelp 2026-06-02
Fedora FEDORA-2026-86596f9cbc F43 CImg 2026-05-29
Fedora FEDORA-2026-c004108bb8 F43 chromium 2026-06-01
Fedora FEDORA-2026-a688180654 F44 chromium 2026-06-01
Fedora FEDORA-2026-bfa185dbb3 F43 djvulibre 2026-05-30
Fedora FEDORA-2026-956f05a733 F44 djvulibre 2026-05-30
Fedora FEDORA-2026-951a6725b8 F43 docker-compose 2026-05-30
Fedora FEDORA-2026-3316f97296 F44 docker-compose 2026-05-30
Fedora FEDORA-2026-693373747f F43 dovecot 2026-06-02
Fedora FEDORA-2026-96eeb03b88 F44 dovecot 2026-06-02
Fedora FEDORA-2026-7567819345 F44 freeipa 2026-06-02
Fedora FEDORA-2026-0be1222520 F44 giflib 2026-05-30
Fedora FEDORA-2026-86596f9cbc F43 gmic 2026-05-29
Fedora FEDORA-2026-5d9b0e2c17 F43 haveged 2026-05-30
Fedora FEDORA-2026-12643837bd F44 haveged 2026-05-29
Fedora FEDORA-2026-28afc9a105 F43 hplip 2026-06-03
Fedora FEDORA-2026-df2e96fe77 F44 hplip 2026-06-02
Fedora FEDORA-2026-aa2e960a9f F44 jpegxl 2026-05-29
Fedora FEDORA-2026-146d86eefc F43 kernel 2026-05-29
Fedora FEDORA-2026-bc20b091a8 F44 kernel 2026-05-28
Fedora FEDORA-2026-a109a9ac2c F43 libpng 2026-06-02
Fedora FEDORA-2026-67c1138ed2 F44 libpng 2026-05-29
Fedora FEDORA-2026-ce6cab40ac F44 libsoup3 2026-06-01
Fedora FEDORA-2026-f87ac8187c F44 libssh2 2026-05-30
Fedora FEDORA-2026-1aa6743d40 F43 mapserver 2026-05-29
Fedora FEDORA-2026-67762cee82 F43 mingw-objfw 2026-06-01
Fedora FEDORA-2026-59c21cd48b F44 mingw-objfw 2026-06-01
Fedora FEDORA-2026-b63645cad6 F43 mingw-qt6-qtsvg 2026-05-29
Fedora FEDORA-2026-9fd50b2ff1 F43 netatalk 2026-05-31
Fedora FEDORA-2026-e7e7bb2417 F44 netatalk 2026-05-31
Fedora FEDORA-2026-dd9cd16b18 F43 nginx 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-brotli 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-brotli 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-fancyindex 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-fancyindex 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-headers-more 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-headers-more 2026-05-28
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-js-challenge 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-modsecurity 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-modsecurity 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-naxsi 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-naxsi 2026-05-28
Fedora FEDORA-2026-dd9cd16b18 F43 nginx-mod-vts 2026-06-01
Fedora FEDORA-2026-da68d7bf53 F44 nginx-mod-vts 2026-05-28
Fedora FEDORA-2026-dd875b58bb F43 objfw 2026-06-01
Fedora FEDORA-2026-f9938a84c7 F44 objfw 2026-06-01
Fedora FEDORA-2026-d4e8f0a731 F43 openbao 2026-05-29
Fedora FEDORA-2026-bf7889aec6 F44 openbao 2026-05-29
Fedora FEDORA-2026-6458693037 F43 pdns 2026-05-30
Fedora FEDORA-2026-a6e5b1263b F44 pdns 2026-05-30
Fedora FEDORA-2026-af4f5feae8 F43 perl-Catalyst-Plugin-Authentication 2026-06-02
Fedora FEDORA-2026-26666575ae F44 perl-Catalyst-Plugin-Authentication 2026-06-02
Fedora FEDORA-2026-96c8ae7dbe F43 perl-Crypt-PasswdMD5 2026-06-01
Fedora FEDORA-2026-30d86fe986 F44 perl-Crypt-PasswdMD5 2026-06-01
Fedora FEDORA-2026-63ab4e8283 F44 perl-Imager 2026-05-28
Fedora FEDORA-2026-49c4be8260 F43 perl-Sereal-Decoder 2026-05-29
Fedora FEDORA-2026-26bb3fe2c6 F44 perl-Sereal-Decoder 2026-05-29
Fedora FEDORA-2026-49c4be8260 F43 perl-Sereal-Encoder 2026-05-29
Fedora FEDORA-2026-26bb3fe2c6 F44 perl-Sereal-Encoder 2026-05-29
Fedora FEDORA-2026-49c4be8260 F43 perl-Sereal 2026-05-29
Fedora FEDORA-2026-26bb3fe2c6 F44 perl-Sereal 2026-05-29
Fedora FEDORA-2026-8d1333fb52 F44 perl-libwww-perl 2026-05-31
Fedora FEDORA-2026-19873e3fac F43 podofo 2026-05-29
Fedora FEDORA-2026-5c81faa7bf F44 podofo 2026-05-29
Fedora FEDORA-2026-2a9d57ce6b F43 poppler 2026-05-28
Fedora FEDORA-2026-e9fc21d7e2 F43 postfix 2026-06-02
Fedora FEDORA-2026-5cf8cc5f32 F44 postfix 2026-06-02
Fedora FEDORA-2026-6dde06a6e9 F43 python-urllib3 2026-05-31
Fedora FEDORA-2026-f8487121bd F43 python-uv-build 2026-05-28
Fedora FEDORA-2026-0b1aaac651 F44 python-uv-build 2026-05-28
Fedora FEDORA-2026-7d942b469f F43 python-wsgidav 2026-06-03
Fedora FEDORA-2026-b2212b4742 F44 python-wsgidav 2026-06-03
Fedora FEDORA-2026-2b956d89d3 F44 roundcubemail 2026-06-03
Fedora FEDORA-2026-93281f2f96 F42 rrdtool 2026-05-27
Fedora FEDORA-2026-111ad9560f F43 rrdtool 2026-05-28
Fedora FEDORA-2026-87a8048005 F44 rrdtool 2026-05-28
Fedora FEDORA-2026-f8487121bd F43 rust-astral-tokio-tar 2026-05-28
Fedora FEDORA-2026-0b1aaac651 F44 rust-astral-tokio-tar 2026-05-28
Fedora FEDORA-2026-f8487121bd F43 rust-astral_async_http_range_reader 2026-05-28
Fedora FEDORA-2026-0b1aaac651 F44 rust-astral_async_http_range_reader 2026-05-28
Fedora FEDORA-2026-f8487121bd F43 rust-astral_async_zip 2026-05-28
Fedora FEDORA-2026-0b1aaac651 F44 rust-astral_async_zip 2026-05-28
Fedora FEDORA-2026-7567819345 F44 samba 2026-06-02
Fedora FEDORA-2026-4ec2ec78d6 F43 suricata 2026-06-01
Fedora FEDORA-2026-53a00bb643 F44 suricata 2026-06-01
Fedora FEDORA-2026-3223ded15e F43 unbound 2026-06-02
Fedora FEDORA-2026-f8487121bd F43 uv 2026-05-28
Fedora FEDORA-2026-0b1aaac651 F44 uv 2026-05-28
Fedora FEDORA-2026-75b5ddf8c3 F43 vim 2026-06-02
Fedora FEDORA-2026-7b2b7837b6 F43 xen 2026-05-28
Fedora FEDORA-2026-8b2957222f F44 xen 2026-05-28
Fedora FEDORA-2026-7e38f57cef F44 xorg-x11-server 2026-06-03
Fedora FEDORA-2026-8aeca78af9 F43 xrdp 2026-05-30
Fedora FEDORA-2026-9a3a98bc24 F44 xrdp 2026-05-30
Mageia MGASA-2026-0170 9 assimp 2026-06-02
Mageia MGASA-2026-0163 9 bind 2026-05-29
Mageia MGASA-2026-0162 9 graphicsmagick 2026-05-29
Mageia MGASA-2026-0171 9 libcaca 2026-06-02
Mageia MGASA-2026-0161 9 microcode 2026-05-29
Mageia MGASA-2026-0159 9 nginx 2026-05-29
Mageia MGASA-2026-0165 9 packages 2026-05-29
Mageia MGASA-2026-0160 9 perl-Catalyst-Plugin-Authentication 2026-05-29
Mageia MGASA-2026-0157 9 perl-HTTP-Daemon 2026-05-29
Mageia MGASA-2026-0158 9 perl-IO-Compress 2026-05-29
Mageia MGASA-2026-0166 9 perl-Template-Toolkit 2026-05-30
Mageia MGASA-2026-0169 9 sdl2_sound 2026-06-02
Mageia MGASA-2026-0168 9 tar 2026-06-02
Mageia MGASA-2026-0164 9 thunderbird(-l10n) 2026-05-29
Mageia MGASA-2026-0167 9 vim 2026-05-30
Oracle ELSA-2026-21295 OL8 .NET 10.0 2026-05-28
Oracle ELSA-2026-21291 OL8 .NET 8.0 2026-05-29
Oracle ELSA-2026-21294 OL8 .NET 9.0 2026-05-28
Oracle ELSA-2026-21700 OL8 cockpit 2026-05-29
Oracle ELSA-2026-22315 OL8 compat-openssl10 2026-06-03
Oracle ELSA-2026-21382 OL8 firefox 2026-05-29
Oracle ELSA-2026-21756 OL8 flatpak 2026-05-29
Oracle ELSA-2026-7292 OL7 freerdp 2026-05-29
Oracle ELSA-2026-20587 OL8 glibc 2026-05-28
Oracle ELSA-2026-22140 OL8 httpd:2.4 2026-06-03
Oracle ELSA-2026-50275 OL8 kernel 2026-05-29
Oracle ELSA-2026-21706 OL8 kernel 2026-06-03
Oracle ELSA-2026-50275 OL9 kernel 2026-05-29
Oracle ELSA-2026-50275 OL9 kernel 2026-05-29
Oracle ELSA-2026-20929 OL8 libexif 2026-05-29
Oracle ELSA-2026-20614 OL8 ruby:3.3 2026-05-28
Oracle ELSA-2026-20586 OL8 thunderbird 2026-05-28
Red Hat RHSA-2026:21295-01 EL8 .NET 10.0 2026-05-27
Red Hat RHSA-2026:21297-01 EL9 .NET 10.0 2026-05-27
Red Hat RHSA-2026:21286-01 EL10 .NET 8.0 2026-05-27
Red Hat RHSA-2026:21291-01 EL8 .NET 8.0 2026-05-27
Red Hat RHSA-2026:21293-01 EL9 .NET 8.0 2026-05-27
Red Hat RHSA-2026:21294-01 EL8 .NET 9.0 2026-05-27
Red Hat RHSA-2026:21296-01 EL9 .NET 9.0 2026-05-27
Red Hat RHSA-2026:12032-01 EL9.4 containernetworking-plugins 2026-05-28
Red Hat RHSA-2026:20608-01 EL9.6 containernetworking-plugins 2026-06-01
Red Hat RHSA-2026:12033-01 EL9.4 gvisor-tap-vsock 2026-05-28
Red Hat RHSA-2026:14087-01 EL8 libsoup 2026-06-01
Red Hat RHSA-2026:19356-01 EL9 libsoup 2026-06-01
Red Hat RHSA-2026:13978-01 EL9 libsoup 2026-06-01
Red Hat RHSA-2026:21686-01 EL9.0 libsoup 2026-06-01
Red Hat RHSA-2026:22316-01 EL9.2 libsoup 2026-06-01
Red Hat RHSA-2026:19143-01 EL10 libsoup3 2026-06-01
Red Hat RHSA-2026:15968-01 EL10 libsoup3 2026-06-01
Red Hat RHSA-2026:17482-01 EL10.0 libsoup3 2026-06-01
Red Hat RHSA-2026:22141-01 EL10 multiple packages 2026-06-01
Red Hat RHSA-2026:22450-01 EL10 osbuild-composer 2026-06-03
Red Hat RHSA-2026:22714-01 EL9 osbuild-composer 2026-06-03
Red Hat RHSA-2026:22305-01 EL8 php:8.2 2026-06-01
Red Hat RHSA-2026:22143-01 EL9 php:8.2 2026-06-01
Red Hat RHSA-2026:22142-01 EL9 php:8.3 2026-06-01
Red Hat RHSA-2026:20570-01 EL10.0 podman 2026-06-01
Red Hat RHSA-2026:12028-01 EL9.4 podman 2026-05-28
Red Hat RHSA-2026:22130-01 EL10 rhc 2026-06-01
Red Hat RHSA-2026:22309-01 EL9 rhc 2026-06-01
Red Hat RHSA-2026:12031-01 EL9.4 runc 2026-05-28
Red Hat RHSA-2026:20571-01 EL10.0 skopeo 2026-06-01
Red Hat RHSA-2026:12029-01 EL9.4 skopeo 2026-05-28
Slackware SSA:2026-152-01 kernel 2026-06-01
SUSE openSUSE-SU-2026:10905-1 TW LibVNCServer-devel 2026-06-02
SUSE SUSE-SU-2026:21794-1 SLE16.0 agama 2026-05-27
SUSE SUSE-SU-2026:21793-1 SLE16.0 alloy 2026-05-27
SUSE SUSE-SU-2026:21852-1 SLE16.0 alloy 2026-06-01
SUSE openSUSE-SU-2026:20816-1 oS16.0 alloy 2026-05-28
SUSE openSUSE-SU-2026:10871-1 TW amazon-ecs-init 2026-05-29
SUSE openSUSE-SU-2026:10872-1 TW amazon-ssm-agent 2026-05-29
SUSE openSUSE-SU-2026:20841-1 oS16.0 apache-commons-lang3, apache-commons-text, 2026-06-01
SUSE SUSE-SU-2026:2104-1 SLE15 apache2 2026-05-28
SUSE SUSE-SU-2026:2103-1 SLE15 oS15.6 apache2 2026-05-28
SUSE SUSE-SU-2026:21846-1 SLE16.0 apache2 2026-06-01
SUSE openSUSE-SU-2026:20810-1 oS16.0 apache2 2026-05-28
SUSE openSUSE-SU-2026:10887-1 TW apptainer 2026-05-30
SUSE openSUSE-SU-2026:20834-1 oS16.0 apptainer 2026-05-29
SUSE openSUSE-SU-2026:10873-1 TW azure-storage-azcopy 2026-05-29
SUSE openSUSE-SU-2026:10865-1 TW beets 2026-05-28
SUSE openSUSE-SU-2026:10874-1 TW bind 2026-05-29
SUSE SUSE-SU-2026:2094-1 SLE15 oS15.5 bubblewrap 2026-05-27
SUSE SUSE-SU-2026:21847-1 SLE16.0 bubblewrap 2026-06-01
SUSE openSUSE-SU-2026:20811-1 oS16.0 bubblewrap 2026-05-28
SUSE SUSE-SU-2026:21943-1 SLE-m6.0 busybox 2026-06-02
SUSE SUSE-SU-2026:2204-1 SLE15 oS15.4 busybox 2026-06-01
SUSE openSUSE-SU-2026:20849-1 oS16.0 chromium 2026-06-01
SUSE openSUSE-SU-2026:0179-1 osB15 chromium 2026-05-29
SUSE openSUSE-SU-2026:10908-1 TW cloudflared 2026-06-02
SUSE SUSE-SU-2026:21785-1 SLE-m6.0 cockpit 2026-05-27
SUSE SUSE-SU-2026:21872-1 SLE-m6.1 cockpit 2026-06-02
SUSE SUSE-SU-2026:2116-1 MP4.3 SLE15 oS15.3 csync2 2026-05-29
SUSE SUSE-SU-2026:21787-1 SLE-m6.0 cups 2026-05-27
SUSE SUSE-SU-2026:21871-1 SLE-m6.1 cups 2026-06-02
SUSE SUSE-SU-2026:21836-1 SLE-m6.2 cups 2026-05-29
SUSE SUSE-SU-2026:21850-1 SLE16.0 cups 2026-06-01
SUSE openSUSE-SU-2026:20812-1 oS16.0 cups 2026-05-28
SUSE SUSE-SU-2026:21788-1 SLE16.0 dnsmasq 2026-05-27
SUSE SUSE-SU-2026:2120-1 SLE15 docker-stable 2026-05-29
SUSE SUSE-SU-2026:21851-1 SLE16.0 docker-stable 2026-06-01
SUSE openSUSE-SU-2026:20814-1 oS16.0 docker-stable 2026-05-28
SUSE SUSE-SU-2026:21801-1 SLE16.0 emacs 2026-05-27
SUSE openSUSE-SU-2026:10866-1 TW ffmpeg-4 2026-05-28
SUSE openSUSE-SU-2026:20855-1 oS16.0 ffmpeg-4 2026-06-02
SUSE openSUSE-SU-2026:10867-1 TW ffmpeg-7 2026-05-28
SUSE openSUSE-SU-2026:10890-1 TW ffmpeg-8 2026-06-01
SUSE SUSE-SU-2026:2109-1 SLE15 firefox 2026-05-29
SUSE openSUSE-SU-2026:10863-1 TW firefox 2026-05-28
SUSE SUSE-SU-2026:2121-1 oS15.3 frr 2026-05-29
SUSE openSUSE-SU-2026:10878-1 TW gdk-pixbuf-loader-libheif 2026-05-29
SUSE SUSE-SU-2026:21807-1 SLE16.0 glibc 2026-05-27
SUSE SUSE-SU-2026:21784-1 SLE-m6.0 gnutls 2026-05-27
SUSE SUSE-SU-2026:21867-1 SLE-m6.0 SLE-m6.1 gnutls 2026-06-02
SUSE SUSE-SU-2026:2087-1 SLE15 SLE5.4 SLE5.5 SLE-m5.4 SLE-m5.5 oS15.4 gnutls 2026-05-27
SUSE SUSE-SU-2026:2115-1 SLE15 oS15.6 gnutls 2026-05-29
SUSE SUSE-SU-2026:21815-1 SLE16.0 gnutls 2026-05-27
SUSE SUSE-SU-2026:21805-1 SLE16.0 go1.25 2026-05-27
SUSE SUSE-SU-2026:2093-1 SLE15 go1.25-openssl 2026-05-27
SUSE SUSE-SU-2026:21804-1 SLE16.0 go1.26 2026-05-27
SUSE SUSE-SU-2026:2092-1 SLE15 go1.26-openssl 2026-05-27
SUSE SUSE-SU-2026:2101-1 SLE12 google-guest-agent 2026-05-27
SUSE SUSE-SU-2026:21803-1 SLE16.0 google-guest-agent 2026-05-27
SUSE SUSE-SU-2026:21870-1 SLE-m6.1 google-osconfig-agent 2026-06-02
SUSE SUSE-SU-2026:21849-1 SLE16.0 google-osconfig-agent 2026-06-01
SUSE openSUSE-SU-2026:20815-1 oS16.0 google-osconfig-agent 2026-05-28
SUSE openSUSE-SU-2026:10891-1 TW gsasl 2026-06-01
SUSE openSUSE-SU-2026:10875-1 TW hauler 2026-05-29
SUSE openSUSE-SU-2026:20838-1 oS16.0 hauler 2026-05-29
SUSE SUSE-SU-2026:21915-1 SLE-m6.0 helm 2026-06-02
SUSE SUSE-SU-2026:21881-1 SLE-m6.1 helm 2026-06-02
SUSE openSUSE-SU-2026:10876-1 TW helm 2026-05-29
SUSE openSUSE-SU-2026:10877-1 TW helm3 2026-05-29
SUSE SUSE-SU-2026:2222-1 SLE15 oS15.6 hplip 2026-06-02
SUSE openSUSE-SU-2026:10860-1 TW hplip 2026-05-27
SUSE openSUSE-SU-2026:20858-1 oS16.0 hplip 2026-06-02
SUSE SUSE-SU-2026:21790-1 SLE16.0 ibus-rime, librime 2026-05-27
SUSE SUSE-SU-2026:2194-1 SLE5.3 SLE-m5.3 ignition 2026-06-01
SUSE SUSE-SU-2026:2193-1 SLE5.4 SLE-m5.4 ignition 2026-06-01
SUSE SUSE-SU-2026:2192-1 SLE5.5 SLE-m5.5 ignition 2026-06-01
SUSE openSUSE-SU-2026:10892-1 TW ignition 2026-06-01
SUSE SUSE-SU-2026:2110-1 SLE15 java-1_8_0-ibm 2026-05-29
SUSE openSUSE-SU-2026:10893-1 TW java-26-openjdk 2026-06-01
SUSE SUSE-SU-2026:2202-1 MP4.3 SLE15 SLE5.3 SLE5.4 SLE-m5.3 SLE-m5.4 oS15.4 kernel 2026-06-01
SUSE SUSE-SU-2026:2217-1 SLE15 kernel 2026-06-02
SUSE SUSE-SU-2026:2111-1 SLE15 SLE5.3 SLE5.4 SLE-m5.3 SLE-m5.4 kernel 2026-05-29
SUSE SUSE-SU-2026:2216-1 SLE15 SLE5.5 SLE-m5.5 oS15.5 kernel 2026-06-02
SUSE SUSE-SU-2026:2215-1 SLE15 SLE5.5 SLE-m5.5 oS15.5 kernel 2026-06-02
SUSE SUSE-SU-2026:2195-1 SLE15 oS15.6 kernel 2026-06-01
SUSE SUSE-SU-2026:21782-1 SLE16.0 kernel 2026-05-27
SUSE SUSE-SU-2026:21800-1 SLE16.0 kernel 2026-05-27
SUSE SUSE-SU-2026:21845-1 SLE16.0 kernel 2026-06-01
SUSE SUSE-SU-2026:21860-1 SLE16.0 kernel 2026-06-01
SUSE SUSE-SU-2026:21834-1 SLE16.0 SLE-m6.2 kernel 2026-05-29
SUSE SUSE-SU-2026:21841-1 SLE16.0 SLE-m6.2 kernel 2026-05-29
SUSE openSUSE-SU-2026:20826-1 SLE16.0 oS16.0 kernel 2026-05-29
SUSE SUSE-SU-2026:21868-1 SLE6.0 SLE-m6.0 kernel 2026-06-02
SUSE SUSE-SU-2026:21866-1 SLE6.0 SLE-m6.0 kernel 2026-06-02
SUSE SUSE-SU-2026:21916-1 SLE6.0 SLE-m6.0 kernel 2026-06-02
SUSE SUSE-SU-2026:21919-1 SLE6.0 SLE-m6.0 kernel 2026-06-02
SUSE SUSE-SU-2026:21876-1 SLE6.0 SLE-m6.0 SLE-m6.1 kernel 2026-06-02
SUSE SUSE-SU-2026:21877-1 SLE6.0 SLE-m6.0 SLE-m6.1 kernel 2026-06-02
SUSE SUSE-SU-2026:21947-1 SLE6.0 SLE-m6.0 SLE-m6.1 kernel 2026-06-02
SUSE openSUSE-SU-2026:10909-1 TW kubelogin 2026-06-02
SUSE openSUSE-SU-2026:10881-1 TW libBasicUsageEnvironment2 2026-05-30
SUSE openSUSE-SU-2026:20797-1 oS16.0 libarchive 2026-05-27
SUSE openSUSE-SU-2026:0182-1 osB15 libjxl 2026-06-02
SUSE openSUSE-SU-2026:10879-1 TW libredwg-devel 2026-05-29
SUSE openSUSE-SU-2026:10895-1 TW libsolv-demo 2026-06-01
SUSE SUSE-SU-2026:21946-1 SLE-m6.0 libsoup 2026-06-02
SUSE SUSE-SU-2026:21879-1 SLE-m6.1 libsoup 2026-06-02
SUSE openSUSE-SU-2026:20845-1 oS16.0 libsoup 2026-06-01
SUSE openSUSE-SU-2026:10903-1 TW libunbound8 2026-06-02
SUSE SUSE-SU-2026:21786-1 SLE-m6.0 libzypp 2026-05-27
SUSE openSUSE-SU-2026:10896-1 TW libzypp 2026-06-01
SUSE SUSE-SU-2026:21854-1 SLE16.0 localsearch 2026-06-01
SUSE openSUSE-SU-2026:20821-1 oS16.0 localsearch 2026-05-29
SUSE openSUSE-SU-2026:20857-1 oS16.0 mapserver 2026-06-02
SUSE openSUSE-SU-2026:10882-1 TW memcached 2026-05-30
SUSE openSUSE-SU-2026:20796-1 oS16.0 nginx 2026-05-27
SUSE SUSE-SU-2026:21945-1 SLE-m6.0 nvidia-open-driver-G06-signed 2026-06-02
SUSE SUSE-SU-2026:21882-1 SLE-m6.1 nvidia-open-driver-G06-signed 2026-06-02
SUSE SUSE-SU-2026:21920-1 SLE-m6.0 nvidia-open-driver-G07-signed 2026-06-02
SUSE SUSE-SU-2026:21878-1 SLE-m6.1 nvidia-open-driver-G07-signed 2026-06-02
SUSE SUSE-SU-2026:2114-1 SLE15 openexr 2026-05-29
SUSE SUSE-SU-2026:21796-1 SLE16.0 openexr 2026-05-27
SUSE openSUSE-SU-2026:20842-1 oS16.0 openjpeg2 2026-06-01
SUSE SUSE-SU-2026:21875-1 SLE-m6.1 openssh 2026-06-02
SUSE SUSE-SU-2026:21798-1 SLE16.0 openssh 2026-05-27
SUSE openSUSE-SU-2026:20803-1 oS16.0 patterns-glibc-hwcaps 2026-05-28
SUSE SUSE-SU-2026:2113-1 SLE15 perl-Net-CIDR-Lite 2026-05-29
SUSE openSUSE-SU-2026:0180-1 osB15 perl-YAML-Syck 2026-05-30
SUSE SUSE-SU-2026:2091-1 SLE15 oS15.4 php7 2026-05-27
SUSE SUSE-SU-2026:2107-1 SLE15 SLE5.3 SLE5.4 SLE-m5.3 SLE-m5.4 oS15.4 podman 2026-05-29
SUSE openSUSE-SU-2026:20847-1 oS16.0 postgresql-jdbc 2026-06-01
SUSE SUSE-SU-2026:2086-1 SLE12 postgresql14 2026-05-27
SUSE SUSE-SU-2026:2117-1 SLE15 oS15.6 postgresql14 2026-05-29
SUSE SUSE-SU-2026:2085-1 SLE12 postgresql15 2026-05-27
SUSE SUSE-SU-2026:2084-1 SLE12 postgresql16 2026-05-27
SUSE openSUSE-SU-2026:20851-1 oS16.0 putty 2026-06-01
SUSE SUSE-SU-2026:21861-1 SLE16.0 python-Pillow 2026-06-01
SUSE SUSE-SU-2026:2219-1 MP4.3 SLE15 oS15.4 python-Twisted 2026-06-02
SUSE SUSE-SU-2026:21914-1 SLE-m6.0 python-idna 2026-06-02
SUSE SUSE-SU-2026:21873-1 SLE-m6.1 python-idna 2026-06-02
SUSE SUSE-SU-2026:21858-1 SLE16.0 python-mistune 2026-06-01
SUSE openSUSE-SU-2026:20827-1 oS16.0 python-mistune 2026-05-29
SUSE openSUSE-SU-2026:20831-1 oS16.0 python-pillow 2026-05-29
SUSE openSUSE-SU-2026:20839-1 oS16.0 python-pytest-html 2026-05-29
SUSE openSUSE-SU-2026:20846-1 oS16.0 python-python-multipart 2026-06-01
SUSE SUSE-SU-2026:2119-1 SLE15 SLE5.3 SLE5.4 SLE5.5 SLE-m5.3 SLE-m5.4 SLE-m5.5 oS15.3 python-urllib3 2026-05-29
SUSE SUSE-SU-2026:2218-1 SLE15 oS15.4 python3-Twisted 2026-06-02
SUSE openSUSE-SU-2026:10883-1 TW python311-Authlib 2026-05-30
SUSE openSUSE-SU-2026:10861-1 TW python311-pytest-html 2026-05-27
SUSE SUSE-SU-2026:21912-1 SLE-m6.0 qemu 2026-06-02
SUSE SUSE-SU-2026:21883-1 SLE-m6.1 qemu 2026-06-02
SUSE openSUSE-SU-2026:0181-1 osB15 re 2026-06-01
SUSE SUSE-SU-2026:2098-1 SLE15 oS15.4 redis 2026-05-27
SUSE SUSE-SU-2026:2099-1 SLE15 oS15.6 redis 2026-05-27
SUSE SUSE-SU-2026:2097-1 SLE15 oS15.5 redis7 2026-05-27
SUSE SUSE-SU-2026:2100-1 SLE15 oS15.6 redis7 2026-05-27
SUSE openSUSE-SU-2026:20852-1 oS16.0 roundcubemail 2026-06-01
SUSE openSUSE-SU-2026:20854-1 oS16.0 rqlite 2026-06-02
SUSE SUSE-SU-2026:21795-1 SLE16.0 rsync 2026-05-27
SUSE SUSE-SU-2026:2108-1 MP4.3 SLE15 SLE5.3 SLE5.4 SLE-m5.3 SLE-m5.4 oS15.4 samba 2026-05-29
SUSE openSUSE-SU-2026:20856-1 oS16.0 shadowsocks-v2ray-plugin 2026-06-02
SUSE SUSE-SU-2026:2197-1 SLE15 oS15.6 strongswan 2026-06-01
SUSE openSUSE-SU-2026:10864-1 TW thunderbird 2026-05-28
SUSE SUSE-SU-2026:21789-1 SLE16.0 tree-sitter 2026-05-27
SUSE openSUSE-SU-2026:20798-1 oS16.0 trivy 2026-05-28
SUSE openSUSE-SU-2026:20809-1 oS16.0 trivy 2026-05-28
SUSE openSUSE-SU-2026:20833-1 oS16.0 trivy 2026-05-29
SUSE SUSE-SU-2026:21897-1 SLE-m6.1 ucode-intel 2026-06-02
SUSE SUSE-SU-2026:21913-1 SLE-m6.0 unbound 2026-06-02
SUSE SUSE-SU-2026:21874-1 SLE-m6.1 unbound 2026-06-02
SUSE SUSE-SU-2026:21814-1 SLE16.0 valkey 2026-05-27
SUSE SUSE-SU-2026:21944-1 SLE-m6.0 vim 2026-06-02
SUSE SUSE-SU-2026:21880-1 SLE-m6.1 vim 2026-06-02
SUSE SUSE-SU-2026:21948-1 SLE-m6.1 vim 2026-06-02
SUSE SUSE-SU-2026:21833-1 SLE-m6.2 vim 2026-05-29
SUSE SUSE-SU-2026:21840-1 SLE-m6.2 vim 2026-05-29
SUSE SUSE-SU-2026:21859-1 SLE16.0 vim 2026-06-01
SUSE openSUSE-SU-2026:20828-1 oS16.0 vim 2026-05-29
SUSE openSUSE-SU-2026:10904-1 TW vorbis-tools 2026-06-02
SUSE SUSE-SU-2026:2203-1 SLE15 wireshark 2026-06-01
SUSE SUSE-SU-2026:2105-1 oS15.4 xdg-desktop-portal 2026-05-29
SUSE SUSE-SU-2026:2102-1 SLE15 oS15.6 xen 2026-05-28
SUSE SUSE-SU-2026:2221-1 SLE12 xorg-x11-server 2026-06-02
SUSE SUSE-SU-2026:2225-1 SLE15 xorg-x11-server 2026-06-02
SUSE SUSE-SU-2026:2223-1 SLE15 oS15.4 xorg-x11-server 2026-06-02
SUSE SUSE-SU-2026:2224-1 SLE15 oS15.5 xorg-x11-server 2026-06-02
SUSE SUSE-SU-2026:2226-1 SLE15 oS15.6 xorg-x11-server 2026-06-02
SUSE SUSE-SU-2026:21835-1 SLE-m6.2 xz 2026-05-29
SUSE SUSE-SU-2026:2118-1 SLE15 SLE5.3 SLE5.4 SLE5.5 SLE-m5.3 SLE-m5.4 SLE-m5.5 xz 2026-05-29
SUSE SUSE-SU-2026:21848-1 SLE16.0 xz 2026-06-01
SUSE openSUSE-SU-2026:20813-1 oS16.0 xz 2026-05-28
SUSE SUSE-SU-2026:2096-1 SLE15 oS15.5 yq 2026-05-27
SUSE openSUSE-SU-2026:10862-1 TW yq 2026-05-27
Ubuntu USN-8372-1 24.04 age 2026-06-02
Ubuntu USN-8338-1 14.04 16.04 18.04 20.04 apache2 2026-05-28
Ubuntu USN-8338-2 18.04 apache2 2026-05-29
Ubuntu USN-8316-1 16.04 cableswig 2026-05-28
Ubuntu USN-8322-1 14.04 16.04 18.04 20.04 22.04 24.04 commons-beanutils 2026-05-27
Ubuntu USN-8311-1 14.04 dnsmasq 2026-05-27
Ubuntu USN-8365-1 22.04 24.04 25.10 26.04 dovecot 2026-06-02
Ubuntu USN-8238-2 16.04 18.04 20.04 22.04 editorconfig-core 2026-06-02
Ubuntu USN-8055-2 18.04 20.04 evolution-data-server 2026-06-01
Ubuntu USN-8353-1 22.04 24.04 25.10 26.04 exim4 2026-06-01
Ubuntu USN-8329-1 24.04 ffmpeg 2026-05-28
Ubuntu USN-8326-1 24.04 25.10 foomuuri 2026-05-27
Ubuntu USN-8345-1 14.04 16.04 gdal 2026-05-29
Ubuntu USN-8348-1 18.04 20.04 22.04 24.04 26.04 gobgp 2026-06-03
Ubuntu USN-8356-1 24.04 25.10 26.04 gsasl 2026-06-01
Ubuntu USN-8317-1 22.04 24.04 25.10 gst-plugins-good1.0 2026-05-27
Ubuntu USN-8358-1 22.04 24.04 25.10 26.04 haveged 2026-06-01
Ubuntu USN-8209-2 14.04 16.04 18.04 20.04 lcms2 2026-06-01
Ubuntu USN-8369-1 16.04 18.04 20.04 22.04 24.04 libapache-mod-jk 2026-06-02
Ubuntu USN-8318-1 22.04 24.04 25.10 26.04 libcaca 2026-05-27
Ubuntu USN-8364-1 14.04 16.04 18.04 20.04 22.04 24.04 libcommons-lang-java, libcommons-lang3-java 2026-06-02
Ubuntu USN-8368-1 22.04 libeconf 2026-06-02
Ubuntu USN-8319-1 22.04 24.04 25.10 26.04 libgcrypt20 2026-05-27
Ubuntu USN-8340-1 22.04 24.04 libreoffice 2026-05-28
Ubuntu USN-8352-1 25.10 26.04 libreoffice 2026-06-01
Ubuntu USN-8373-1 22.04 24.04 linux, linux-aws, linux-aws-6.8, linux-aws-fips, linux-azure, linux-fips, linux-gcp, linux-gcp-6.8, linux-gcp-fips, linux-gke, linux-gkeop, linux-hwe-6.8, linux-ibm, linux-ibm-6.8, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency, linux-nvidia-tegra, linux-oracle, linux-oracle-6.8, linux-raspi, linux-raspi-realtime, linux-realtime, linux-realtime-6.8 2026-06-02
Ubuntu USN-8371-1 24.04 25.10 linux, linux-aws, linux-azure, linux-azure-6.17, linux-hwe-6.17, linux-nvidia-6.17, linux-oem-6.17, linux-oracle, linux-oracle-6.17, linux-raspi, linux-realtime, linux-realtime-6.17 2026-06-02
Ubuntu USN-8370-1 26.04 linux, linux-aws, linux-gcp, linux-ibm, linux-nvidia, linux-oracle, linux-raspi, linux-realtime 2026-06-02
Ubuntu USN-8361-1 14.04 linux-aws, linux-lts-xenial 2026-06-01
Ubuntu USN-8374-1 24.04 25.10 linux-aws-6.17, linux-gcp, linux-gcp-6.17 2026-06-02
Ubuntu USN-8351-1 22.04 linux-lowlatency 2026-06-01
Ubuntu USN-8350-1 24.04 linux-nvidia-tegra 2026-06-01
Ubuntu USN-8366-1 25.10 26.04 luanti 2026-06-02
Ubuntu USN-8315-1 20.04 22.04 24.04 mediawiki 2026-05-27
Ubuntu USN-8320-1 22.04 24.04 25.10 26.04 memcached 2026-05-27
Ubuntu USN-8343-1 25.10 26.04 multipart 2026-05-28
Ubuntu USN-8363-1 22.04 24.04 25.10 26.04 mysql-8.0, mysql-8.4 2026-06-02
Ubuntu USN-8354-1 22.04 24.04 25.10 26.04 nginx 2026-06-01
Ubuntu USN-8359-1 22.04 24.04 25.10 nncp 2026-06-01
Ubuntu USN-8367-1 22.04 24.04 25.10 node-tar-fs 2026-06-02
Ubuntu USN-8327-1 18.04 20.04 22.04 24.04 25.10 26.04 openjdk-17 2026-05-28
Ubuntu USN-8332-1 25.10 26.04 openjdk-17-crac 2026-05-28
Ubuntu USN-8328-1 20.04 22.04 24.04 25.10 26.04 openjdk-21 2026-05-28
Ubuntu USN-8333-1 25.10 26.04 openjdk-21-crac 2026-05-28
Ubuntu USN-8339-1 22.04 24.04 25.10 26.04 openjdk-25 2026-05-28
Ubuntu USN-8334-1 25.10 26.04 openjdk-25-crac 2026-05-28
Ubuntu USN-8341-1 25.10 26.04 openjdk-26 2026-05-28
Ubuntu USN-8330-1 16.04 18.04 20.04 22.04 24.04 25.10 26.04 openjdk-8 2026-05-28
Ubuntu USN-8331-1 18.04 20.04 22.04 24.04 25.10 26.04 openjdk-lts 2026-05-28
Ubuntu USN-8321-1 25.10 26.04 papers 2026-05-27
Ubuntu USN-8336-1 22.04 24.04 25.10 26.04 php8.1, php8.3, php8.4, php8.5 2026-05-28
Ubuntu USN-8323-1 18.04 20.04 22.04 24.04 25.10 26.04 postorius 2026-05-27
Ubuntu USN-8335-1 16.04 18.04 20.04 pyopenssl 2026-05-28
Ubuntu USN-8344-1 22.04 24.04 26.04 python-pip 2026-05-28
Ubuntu USN-8344-2 22.04 24.04 26.04 python-pip 2026-05-29
Ubuntu USN-8357-1 20.04 22.04 24.04 qtdeclarative-opensource-src 2026-06-01
Ubuntu USN-8337-1 16.04 18.04 20.04 22.04 qtsvg-opensource-src 2026-05-28
Ubuntu USN-8347-1 18.04 20.04 22.04 24.04 26.04 qtwebengine-opensource-src 2026-05-29
Ubuntu USN-8349-1 14.04 16.04 18.04 20.04 rsync 2026-06-01
Ubuntu USN-8229-2 18.04 20.04 sed 2026-05-28
Ubuntu USN-8360-1 16.04 18.04 20.04 22.04 24.04 25.10 26.04 sslh 2026-06-01
Ubuntu USN-8355-1 24.04 25.10 26.04 sssd 2026-06-01
Ubuntu USN-8346-1 18.04 20.04 22.04 24.04 texmaker 2026-05-29
Ubuntu USN-8325-1 14.04 16.04 18.04 22.04 24.04 tgt 2026-05-27
Ubuntu USN-8324-1 20.04 22.04 tika 2026-05-27
Ubuntu USN-8282-2 14.04 16.04 18.04 20.04 unbound 2026-06-02
Ubuntu USN-8342-1 14.04 16.04 18.04 20.04 vim 2026-05-28
Ubuntu USN-8362-1 14.04 16.04 18.04 20.04 22.04 24.04 25.10 xz-utils 2026-06-02
Full Story (comments: none)

Kernel patches of interest

Kernel releases

Linus Torvalds Linux 7.1-rc6 May 31
Greg Kroah-Hartman Linux 7.0.11 Jun 01
Greg Kroah-Hartman Linux 6.18.34 Jun 01
Greg Kroah-Hartman Linux 6.12.92 Jun 01
Greg Kroah-Hartman Linux 6.6.142 Jun 01
Greg Kroah-Hartman Linux 6.1.175 Jun 01
Greg Kroah-Hartman Linux 5.15.209 Jun 01
Greg Kroah-Hartman Linux 5.10.258 Jun 01
Luis Claudio R. Goncalves 5.10.257-rt153 Jun 01

Architecture-specific

Build system

Core kernel

Development tools

Device drivers

Cedric Jehasse via B4 Relay net: dsa: mv88e6xxx: add support for credit based shaper May 27
Rafael J. Wysocki ACPI: ACPICA 20260408 May 27
Karan Tilak Kumar Introduce functionality for NVMe initiator May 27
Derek J. Clark Add MSI Claw HID Configuration Driver May 27
Rudraksha Gupta via B4 Relay Samsung Expressatt: Camera Flash May 27
Nicolin Chen iommu/arm-smmu-v3: Add PRI support May 28
Alexander Koskovich Add support for Adreno 810 GPU May 28
Miguel Vadillo media: i2c: cvs: Add Intel CVS driver May 27
Christian Marangi ASoC: Add support for Airoha AN7581 May 28
Christian Marangi clk: add support for Airoha AN7583 clock May 28
Stefan Dösinger ZTE zx297520v3 clock bindings and driver May 29
Mikko Perttunen Tegra264 PWM support May 29
Damon Ding Add eDP lane mapping support May 29
Jack Wu via B4 Relay net: wwan: t9xx: Add MediaTek T9XX WWAN driver May 29
Alexander Koskovich Add support for the Iris codec on Milos May 29
Herman van Hazendonk clk: qcom: add MSM8x60 LPASS Clock Controller May 30
Chris Morgan Add Invensense ICM42607 May 29
Markus Probst via B4 Relay Introduce Synology Microp driver May 31
Rodrigo Alencar via B4 Relay ADF41513/ADF41510 PLL frequency synthesizers May 31
Yassine Oudjana via B4 Relay MediaTek MT6735+MT6328 SoC/PMIC pair base support May 31
Angelo Dureghello add mcf54415 DAC driver May 31
Ratheesh Kannoth octeontx2-af: npc: Enhancements. Jun 01
illusion.wang nbl driver for Nebulamatrix NICs Jun 01
Cristian Ciocaltea YUV support for VOP2 background color Jun 01
Cristian Ciocaltea Add HDMI 2.0 support to DW HDMI QP TX Jun 02
wei.fang@oss.nxp.com net: dsa: netc: add bridge mode support Jun 02
Khristine Andreea Barbulescu gpio: siul2-s32g2: add initial GPIO driver Jun 02
Dimitri Fedrau via B4 Relay phy: add basic support for NXPs TJA1145 CAN transceiver Jun 02
Thierry Reding PCI: tegra: Add Tegra264 support Jun 02
Roman Vivchar via B4 Relay AUXADC driver for the MediaTek mt6323 PMIC Jun 02
Dongdong Hao scsi: Add LeapRAID driver support Jun 02
Rodrigo Alencar via B4 Relay New features for the AD5686 IIO driver Jun 02
Abhinaba Rakshit Enable ICE clock scaling Jun 03
Herman van Hazendonk mfd: lm8502: add core MFD driver for TI LM8502 Jun 03
Changhuang Liang Add basic pinctrl drivers for JHB100 SoC Jun 02
Chris Morgan Add Anbernic RG Vita-Pro Jun 02

Device-driver infrastructure

Documentation

Filesystems and block layer

Memory management

Networking

Security-related

Virtualization and containers

Miscellaneous

Page editor: Joe Brockmeier


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds