Ubuntu Foundations 25.04 - Plucky Puffin progress

Ubuntu Foundations 25.04 - Plucky Puffin progress

Hello there :wave:

As we recently passed the midpoint of the Ubuntu 25.04 cycle, it’s a moment to reflect on the challenges, status and the progress since my last update last December. And a lot has happened since…

First of all, I want to take a moment to acknowledge the loss of our dear friend and colleague, Steve Langasek (vorlon), who passed away earlier this year. Steve was a pillar of the Ubuntu and Debian community and a long time member of the Foundations team, someone whose dedication, insight and generous mentorship shaped the way we work and collaborate. Steve set for us a standard of excellence, clarity and passion for open source software, and we will continue to honor his legacy through our contribution to Ubuntu, Debian and all other upstream projects. Thanks for everything, Steve. :heart:

:rocket: New beginning

Amidst this difficult start to 2025, @jnsgruk was named the VP of Ubuntu Engineering and shared with us some of his ideas for the future of Ubuntu. I couldn’t be more excited to embark on this new journey with @jibel and @paelzer who respectively shared some exciting updates for the Ubuntu Desktop and Ubuntu Server Roadmap for 25.04.

Speaking of roadmap, what have we been up to with the Foundations team?

:date: Milestones

LTS update

As usual, the middle of the cycle is the time for us to refresh our LTS release, and that’s what we did!

Ubuntu 24.04.2 LTS was released February 20th! We had to delay the release slightly due to an unforeseen error that would have prevented non-Canonical Ubuntu Desktop flavors from getting the HWE kernel by default in 24.04.2 LTS. Thanks to the Release Team, our Community leads and everyone who helped to provide this additional round of ISO testing.

Feature Freeze

We also recently passed a key milestone on February 21st with the 25.04 Feature Freeze. This means the Debian import has been frozen, and it should only be bug fixes moving forward (or Feature freeze exceptions :slight_smile: ). Special shootout to @tsimonq2 who put together a very detailed and informative post about Plucky Feature Freeze in the numbers. Thanks, Simon!

:hammer_and_wrench: Component updates

While hundreds of packages are updated in each Ubuntu release, some receive special care or require special hand-holding to land in our release pocket on time. So far, we are on track with our commitments and have these packages ready for 25.04:

package version comment LaunchPad
glibc 2.41 Special Thanks to @schopin ! glibc/2.41-1ubuntu1
systemd 257.2 Special Thanks to @enr0n ! systemd/257.2-3ubuntu1
openssl 3.4.1-1 Special Thanks for @adrien ! openssl/3.4.1-1ubuntu1

Toolchains updates

We’ve updated several key toolchains to ensure Ubuntu stays at the cutting edge. Here’s what’s new:

Toolchain Default version Other available versions
GCC 14 15, 13, 12, 11
Python 3.13 NA
Java 21 25ea, 24ea, 17, 11, 8
Golang 1.24 1.23
Rust 1.84 1.83, 1.82, 1.81
.NET 9 8
LLVM 20 19, 18, 17, 16, 15, 14

Toolchains for which the default versions were updated are Python 3.13, Go 1.24, Rust 1.84 and LLVM 20. Other toolchains maintain their existing defaults .NET 9, OpenJDK 21 and GCC 14. Additionally, early access versions have been added for some toolchains, including OpenJDK 24ea, OpenJDK 25ea and GCC 15.

:fire: What’s new?

Every Ubuntu release, especially the interim ones, is an opportunity to bring new features and new experiences to our users. Here are some of the specific changes coming up with Plucky:

Dracut

@bdrung has been hard at work making sure that Dracut could be used as an alternative to initramfs-tools. According to the success of his recent post and the great feedback received, it looks like everything is ready to have Dracut by default the next cycle! Well done, Benjamin!
You can also start using Dracut in Ubuntu 25.04 (plucky) following this new fresh post.

crypto-config

crypto-config makes it possible to select a system-wide configuration profile for cryptography. It is now in Plucky’s archive, meaning it can be installed without additional setup, and even in a couple lines through cloud-init in order to set the system profile very early on.

Give it a spin today and let us know what you think

mclemenceau@x13s  $> lxc launch ubuntu-daily:plucky plucky-daily
mclemenceau@x13s  $> lxc  exec plucky-daily bash
root@plucky-daily:~# apt update
root@plucky-daily:~# apt install crypto-config

Since we are in the early days of crypto-config, profiles and their contents are still being designed. Now is the time to chime in! How should the default, legacy and future profiles look like? Can non-PFS be enabled outside of legacy profiles? Which other profiles should be created? Does post-quantum cryptography warrant a dedicated one?

These are just some of the questions that need to be answered and where wide
feedback is important and welcome. Reach out on crypto-config’s Github
page
or on ubuntu-devel-discuss@!

ARM64 desktop

With Ubuntu 25.04 coming up on the horizon we are looking back at a incredibly successful Ubuntu 24.10 Concept for Qualcomm Snapdragon X Elite) to see how we can improve the arm64 desktop experience for the coming releases.

With our ubuntu-x1e-settings meta package promoted to main and qcom-firmware-extract uploaded to universe just in time for the Ubuntu Plucky Puffin Feature Freeze, our focus now shifts to our Linux kernel package and our installer to make sure this new hardware platform works out of the box in 25.04.

We remain committed to our goal to keep Ubuntu beginner friendly and accessible for everyone so we are breaking with today’s arm64 default of device-specific installers and images. Instead we will provide a single official Ubuntu arm64 desktop ISO that just works, be it on an Ampere powered workstation a Snapdragon Laptop or even in a virtual machine on your Apple Silicon Mac.

Autopkgtest with RISC-V are available!

The autopkgtest infrastructure now supports riscv64. Tests can be manually requested for Ubuntu releases starting from Noble and are automatically queued as usual for packages in main. Other components are excluded for the moment to reduce the load on the infrastructure, but tests for packages in universe can be requested manually.
Test results are not blocking migrations for the moment (we default to force-badtest), as the quality of the test results is still under evaluation. For more information, see riscv64 available on autopkgtest.ubuntu.com.

Raspberry Pi camera stack is back

The camera stack now works on Raspberry Pi running Ubuntu, which will be released with Plucky. The main changes are the addition of a new PiSP driver to libcamera and the uploading of rpicam-apps (userspace apps) and picamera2 (Python API for camera) and their dependencies.

This is an image taken after making changes to libcamera using qcam
image

It works the same way it does on Raspberry Pi OS, so end users don’t have to jump through hoops to move their work to Ubuntu.

You can try them out using @r41k0u’s pisp-libcamera and python3-simplejpeg PPAs (upload to archive is pending approvals). (Important: You might have to make /dev/dma_heap/linux,cma r/w accessible to libcamera, though this will be resolved with the Plucky release)

We also tried to get the Raspberry Pi AI camera features in Ubuntu. While we could get it to work, some licensing issues prevent us from distributing it for now and we are trying to resolve them. You can expect a discourse post on the camera stack shortly.

.NET 9

We continued our efforts to bring the latest and greatest toolchains to Ubuntu!
The latests releases of .NET 9 are included in Ubuntu 24.10 (Oracular Oriole) and 25.04 (Plucky Puffin).

.NET 9 has been part of Ubuntu 24.10 since its development phase, but the final release of .NET 9 came out after the release of Ubuntu 24.10, therefore we haven’t highlighted it until now.

Just like with .NET 8, we provide .NET 9 for multiple architectures, including amd64 (x64), arm64, s390x (IBM System Z), and ppc64el (POWER).

Via the .NET backports PPA we also provide builds for Ubuntu 22.04 LTS (Jammy Jellyfish) and Ubuntu 24.04 LTS (Noble Numbat).

See what’s new in .NET 9

.NET Snap

The new and improved .NET Snap is here!

This Snap features a powerful installer tool designed to enhance the .NET installation experience. It allows you to easily manage your .NET setup – install multiple versions side by side, and receive monthly security and feature updates as they become available.

During this cycle, we focused on refining the Snap and collaborated with Microsoft, incorporating their valuable feedback to make further improvements.

devpack-for-spring snap

devpack-for-spring is in the early stage of development. The plan is to provide Spring CLI - a command line productivity tool for Spring® applications with Ubuntu-specific commands that allow to set up the development environment and the project. At the moment, the snap provides access to Spring CLI, has snap install|list|remove commands to install snaps with rebuilt sources of Spring® Boot and Spring® Framework and update user configuration of Gradle and Maven to use them in the build process.

The work in progress for the next couple of weeks:

  • Implement a feature in java-rockcraft-plugins to export rock image for building the application.
  • Configure the projects using devpack-for-spring to produce application runtime container images and build application images using java-rockcraft-plugins.

:microscope: Experiments

Ubuntu interim releases are also a great opportunity to make some experiments and share the results with the community along the way for possible future roadmap consideration.

LLVM build report

Just before Christmas we set up a test rebuild which had clang as the default C compiler (in fact more than that, it uses some hacks to redirect calls to binaries like gcc or even something as specific as x86_64-linux-gnu-gcc-14 to clang).

Although performance of the compiled code is one reason people promote the use of clang, at this point we are just trying to find out if making clang the default is even remotely feasible .

The rebuild was just of the “main” component of Ubuntu, which contained 2379 packages at the time of the rebuild. Comparing to a rebuild we did at the same time with default flags, an additional 284 packages (about 12% of those attempted) failed to build on at least one architecture. Over the next few weeks we will look into the cause of these failures to see if there is anything systematic to fix (for example, it seems a good number of packages fail on armhf because clang does not understand the -fno-stack-clash-protection flag on this architecture).

It’s probably too early to make any reasonable claims about how much effort making clang the default C compiler would be, but it clearly would not be trivial (which is not a surprise!).

-O3 by default

Earlier in this cycle, we announced plans to enable the O3 optimization level for all Ubuntu packages by default. As part of this effort, we conducted extensive benchmarking, which revealed that while some workloads saw improvements, overall system performance slightly declined, and binary sizes increased. Given these results, we are likely to revert this change soon. Stay tuned for a detailed post on our findings in the next few week!

Looking ahead

We are now gearing toward 25.04 Beta on March 27th. At the same time the 25.10 Roadmap is taking shape and I hope we should be able to share a little more about it in our next post later this month.

That was a lot to cover, thanks for reading to the end :wink: . Trust me, there is still more to share but let’s keep some for next time!

That’s all folks!

…

17 Likes