The release of Ubuntu 25.10 (Questing Quokka) is approaching really fast now - it’s just 2 weeks away!

It is always easier to include disruptive and ambitious changes in an interim release as it gives us more time to stabilize and refine them before the LTS. Questing Quokka is no exception to that rule, and we’ve had quite a few exciting changes.

In this post, I cover the highlights of what the Foundations team did this cycle and maybe have a few spoilers for the next cycle…

Foundations System

The Foundations System team is dedicated to maintaining and delivering the base components of Ubuntu as well as everything surrounding package management (apt, dpkg).

Part of the Modernization effort highlighted by @jnsgruk in the Oxidizing Ubuntu initiative post earlier this year, we have targeted to switch two historic base components with Rust alternatives: sudo.ws to sudo-rs and gnu-coreutils to rust-coreutils.

sudo-rs

sudo is now provided by the sudo-rs package. While sudo-rs is not 100% compatible with sudo-ws, the majority of common use cases are supported, and the change should be invisible to most users.

A list of key differences is maintained as a reference.

The original sudo utility (maintained by Todd C. Miller), sudo.ws, remains supported in 25.10 and the subsequent 26.04 LTS. You will find these utilities installed with the .ws suffix (for example, sudo.ws, visudo.ws, etc.). Switching the default back to sudo.ws is not recommended, but if you need to do so, follow these steps:

Interactive:

$ update-alternatives --config sudo

Non-interactive:

$ update-alternatives --set sudo /usr/bin/sudo.ws

You can always switch back to sudo-rs using:

$ update-alternatives --set sudo /usr/lib/cargo/bin/sudo

Learn more about the motivation for this change in Adopting sudo-rs By Default in Ubuntu 25.10.

rust-coreutils

The core utilities of the operating system are now provided by the rust-coreutils package. We just updated to the latest version of it: 0.2.2, which features incredible performance improvements to base64 amongst other things.

As rust-coreutils are not necessarily fully compatible yet, we are providing the old utilities by the side, so you can switch back and forth between them.

To switch back from the Rust-based coreutils to the previous GNU variant, run:

apt install --allow-remove-essential coreutils-from-gnu coreutils-from-uutils

To switch from the GNU variant to the default Rust-based versions, run:

apt install coreutils-from-uutils

This is especially useful if you installed prior to the Beta, in which case you are still running the GNU version.

Don’t be alarmed that this prints a lot of output about diversions; for safety reasons, we prevent actually removing the coreutils binaries by the use of ephemeral protective diversions. If you are interested in the technical details, you can find further information in the Migration to rust-coreutils in 25.10 post.

Foundations Toolchains

The Foundations Toolchains team is responsible for advancing each supported toolchain “up the value chain”, making Ubuntu the best platform to develop and deploy from cloud to edge.

This is LTS time in toolchain land. OpenJDK 25 is the latest LTS of Java released on September 16th, and it has made it into Ubuntu 25.10. Similarly, .NET 10 is the upcoming LTS that will be released in November, and you have the latest release candidate of .NET 10 available in 25.10.

Under the new and shiny tag, you will get a preview of the new Zig language compiler in this release. Zig 0.14.1 is available for amd64 and arm64. We hope to add support to the remaining architectures in future releases, as the upstream project extends support for native builds to these.

A zig-defaults package, currently pointing to zig 0.14.1, is also published. Here are simple steps to install and get started with Zig on Questing Quokka:

Install Zig and check version:

$ sudo apt update && sudo apt install zig
$ zig version

Create a starter project and build it:

$ zig init && zig build

Run the starter:

$ ./zig-out/bin/root

Continuing to advance the developer experience

As we gear up for the next Ubuntu LTS 26.04, we continue to level up the developer experience for application development with these toolchains.

.NET: We have enhanced the .NET Snapcraft plugin to improve support for monorepo setups, delivering better developer experience with MSBuild through custom flag attributes. The popular tools from Powershell on Windows, which we brought to amd64 earlier, are now also available on the arm64, ppc64el, and s390x platforms through the Powershell snap.

GraalVM: Similarly, the GraalVM CE snap is also made available on arm64 on the latest (v25) and v21 channels.

Spring: The devpack-for-spring snap is getting a new setup command to install and configure your development environment using a curated set of tools.

In case you missed it, read our Leveling up Ubuntu for Developers series of posts, for Java and for .NET. Start building your apps with your favorite frameworks and toolchains on Ubuntu. The Ubuntu for Developers documentation will help you with tutorials and how-to guides.

Also, visit our new homepage at ubuntu.com/toolchains - this landing page mostly points to the developer docs, but more updates will come in the future

Foundations Architectures

The Foundations Architectures team is responsible for advancing Ubuntu and its ecosystem support across all architectures, especially RISC-V, Raspberry PI, and ARM.

RISC-V

Upcoming hardware for RISC-V targets the RVA23S64 ISA profile which brings a lot of new exciting features to RISC-V. The mandatory set includes for instance scalable vector support and pointer masking which will both help to bring the architecture to an execution speed comparable to ARM and x86. Optional extensions include control flow integrity and vector crypto support.

We therefore raised the baseline for the 25.10 to RVA23 release at the start of the month. A rebuild of main showed only a very low number of issues coming up. Two bugs in GCC were fixed by upstream maintainers. QEMU emulation on s390x still has an endian issue. We plan for a whole archive rebuild in the 26.04 cycle.

How to enable RVA23 support for compiled languages other than C and C++ is under investigation.

As RVA23 hardware is not yet on the market currently QEMU is the only supported platform in the 25.10 release. Existing hardware will continue to be supported in the 24.04 LTS release.

Raspberry PI

A new layout of the boot partition (A/B boot) is introduced to enhance the reliability of the boot process. This will automatically “test” new boot assets written to the boot partition before committing them as the current “known good” set. See the call for testing for more information.

ARM64

Thanks to Stubble, a device tree loading EFI stub, Ubuntu 25.10 will enable Secure Boot on Qualcomm Snapdragon Laptops. You can learn more about it in this post: [Spec] stubble: A secure-boot friendly device-tree loading EFI stub.

Ubuntu Release

Also known as the Release Management team, it is responsible for providing our release infrastructure and driving all our release activities

Ubuntu Snapshot Releases

@jnsgruk announced back in May (Supercharging Ubuntu Releases: Monthly Snapshots & Automation) that we would supercharge Ubuntu releases and introduce monthly snapshots. While this was a bold proposal, @utkarsh and his team did a great job following through and producing 4 snapshots

And that is all the snapshots we need for a cycle since snapshots 5 timing was not necessary since we had Ubuntu 25.10 Beta last week and snapshots 6 would be the actual release.

But these 4 snapshots allowed us to exercise the process and identify improvement opportunities. There will be snapshots for 26.04 and we will continue to improve the process and produce them with more automation and more content.

Dangerous Ubuntu Desktop images

Seeking thrills? Blindly re-install your system with an ISO with all snaps from edge, completely untested!

These images were created, so that during development spikes, developers would have access to daily ISOs with all of their recent changes, without having to mess with the regular daily images.

Read more about it in the blog post: Daily dangerous desktop images have landed!

Documentation

During the 25.10 cycle, the Foundations team focused mostly on two documentation sets: Ubuntu for Developers and Ubuntu Project. While the former is a full-fledged docs set with tutorial and how-to guidance for the toolchains Foundations supports on Ubuntu, the latter is a completely new effort to consolidate docs on how Ubuntu is made.

In Ubuntu for Developers, we have two new Java-related tutorials (thanks to @pushkarnk):

In Ubuntu Project docs, we are working with all of Ubuntu Engineering to consolidate and bring up-to-date all the existing documentation that explains how the distribution is created and maintained. This includes the description of various processes (think merges, sponsoring, freezes, etc.), as well as guidance for contributors and maintainers (think bug triaging, packaging, but also project governance and similar). See our fortnightly updates for more on our progress.

Looking Ahead

All teams are hard at work finishing Ubuntu 25.10 and planning for Ubuntu 26.04 LTS. Our next LTS development will start in about 3 weeks and we will have to support it for a long time. So we will put extra effort in stabilizing everything that was done this cycle.

Stabilization

There has been some media coverage regarding some of the performance issues discovered by the team about rust-coreutils. While these raised concerns and alarms, it also showed how quickly problems like this could be turned around and even made into an opportunity.

The base64 performance issue was raised quickly upstream and made it to the latest rust-coreutils 0.2 with now massive performance gains over gnu-coreutils.

Ubuntu 26.04 Archive opening will increase the test coverage for rust-coreutils in the distro dramatically and while we anticipate some problems, we have dedicated time next cycle to closely follow its integration in Ubuntu and we’ll continue to work very closely with the rust-coreutils team upstream.

Packaging Experience Improvement

We are also planning a few exciting new features to enhance the packaging experience with apt. The apt history-list and apt history-info will be bringing very useful new capabilities to apt providing greater control to the user on the state of their system packages. And we’ll bring these improvements to both Debian and Ubuntu.

Here is a quick look at the history-list feature:

history-info allows you to inspect what each of these commands did to your system:

We might even allow undoing a past packaging action but more on this later :wink:

If you want to follow the development see the Merge Request on Salsa.

What about the Rust and Go developer edition?

As you’ve seen in these previous posts [1][2], we’ve made great progress on our .NET and Java ecosystem and advanced the developer experience on Ubuntu for each toolchain, but what about Go and Rust?

And before our friends from the Rust and Golang communities start complaining, let us assure them that we are not ignoring them. Keep watching this space, as we will soon talk about what we have done and are planning to do for Rust and Go application developers.

A devpack for Golang with a curated set of developer tools is on its way and so is better cadence of Rust and Cargo deliveries.

—

And that’s just a glimpse of what’s coming in Questing Quokka. Download the beta, kick the tires, and share your feedback — your input helps shape 26.04 LTS.

Thanks

14 Likes

Please note, the URL for that is pointing to “snapshot-1”.

Should that be “snapshot-4” ?

Thanks you @ericmarceau, it should be fixed now.

2 Likes

@mclemenceau Do we have any plans to adopt diffutils and findutils, other tools ported to Rust by uutils team? And how about using dracut in the server edition? The last update I saw was dracut being added just to desktop image, not the server one.

Hey @mhalano ,

Yes, we have plan to investigate and assess uutils version of diffutils and findutils but we don’t have a timeline yet as to a possible integration in Ubuntu.
As far as dracut, you are correct we were able to integrate it in the Desktop image but will wait for next cycle to get it in the Server image hopefully.

Thanks!

3 Likes

To revert to GNU Coreutils, use the command (prefixed with sudo if necessary):

apt install --allow-remove-essential coreutils-from-gnu coreutils-from-uutils-

The article contains a typo: the trailing - denoting which package to remove is omitted, therefore apt wants to install both packages.