Ubuntu 25.04

25.04Linux
Added 15
  • Linux kernel 6.14 with sched_ext scheduling system enabling eBPF-based scheduling policies
  • NTSYNC driver emulating WinNT sync primitives for improved Windows games performance on Wine and Proton
  • bpftools and linux-perf tools decoupled from kernel version and shipped in separate packages
  • Netplan v1.1.2 support for wpa-psk-sha256 WiFis
  • Netplan v1.1.2 support for routing-policy configuration on NetworkManager backend
  • systemd-networkd-wait-online functionality to wait for DNS servers to be configured and reachable
Changed 4
  • systemd updated to v257.4
  • systemd no longer built with utmp support
  • linux-lowlatency binary package retired in favour of linux-generic with lowlatency-kernel userspace package
  • powershell-preview snap updated to build from source
Deprecated 2
  • System V service scripts support deprecated and scheduled for removal in systemd v258
  • cgroup v1 support scheduled for complete removal in systemd v258

Ubuntu 25.04 release notes

These release notes for Ubuntu 25.04 (Plucky Puffin) provide an overview of the release and document the known issues with Ubuntu and its flavors.

Dedication

Subscribers to the ubuntu-{devel-}announce mailing list and long term participants in the Ubuntu community will have come across Steve Langasek’s work. Steve, known in the community as vorlon, was a long-term member of the Release team (along with being a member of Archive Admin, Techboard, SRU team, and so on) and a colleague to many of us at Canonical. As a member of the Release team, Steve was responsible for devising many of the processes, policies, and tools which we use today, and teaching his fellow members the ropes. Steve passed away on 1st January 2025 after being unwell for quite some time. The Ubuntu Release Team dedicates 25.04 “Plucky Puffin” to our colleague and friend, Steve Langasek. He is missed and will live in our hearts forever. Thank you for everything, Steve.

Upgrades

We’ve identified two issues in the ubuntu-release-upgrader affecting upgrades to Ubuntu 25.04 “Plucky Puffin”:

  • Handling of Qt dependencies
  • Removal of foreign packages from disabled sources As a result, upgrades to Ubuntu 25.04 have been temporarily suspended while these issues are being addressed. The necessary updates are already in the pipeline, and we expect to re-enable upgrades very soon. Thank you for your patience.
Support lifespan

Ubuntu 25.04 will be supported for 9 months until January 2026. If you need long term support, we recommend you use Ubuntu 24.04.2 LTS which is supported until at least 2029.

Upgrades
  • Upgrades to to Ubuntu 25.04 will refresh seeded snaps to the appropriate snap channels, regardless of what was being tracked before. Snaps that are newly-seeded will be installed during the upgrade. In particular, the following snaps will be installed or refreshed on upgrade: Early upgrades may wish to perform these updates manually.
New features in 25.04
Updated Packages
Linux kernel 6.14🐧

This release delivers the latest Linux kernel, following Canonical’s new policy. Kernel developers can now make use of a new scheduling system, “sched_ext”, which provides a mechanism to implement scheduling policies as eBPF programs. This enables developers to defer scheduling decisions to standard user-space programs and implement fully functional hot-swappable Linux schedulers, using any language, tool, library, or resource accessible in user-space. A new NTSYNC driver that emulates WinNT sync primitives is also available, delivering better performance potential for Windows games running on Wine and Proton (Steam Play). The “bpftools” and linux-perf tools have been decoupled from the kernel version, making dependency management easier for developers working with containers. These tools are now shipped in their own packages. Other features can be found in the Linux 6.14 upstream changelog. After the generic kernel grew the ability to tune responsiveness at boot time, the linux-lowlatency binary package has been retired in favour of a combination of linux-generic and a new userspace lowlatency-kernel package, responsible of tuning the grub cmdline.

systemd v257.4

The init system was updated to systemd v257.4. See the upstream changelog for more information about individual features. To highlight a few things:

  • In Ubuntu, systemd is no longer built with utmp support. Among other things, this means that systemd’s default /usr/lib/tmpfiles.d/systemd.conf no longer creates /run/utmp. There is currently this known bug (LP: #2103489) in Ubuntu 25.04, that prevents ‘who’ from properly working and requires a coreutils rebuild.
  • The complete removal of support for cgroup v1 (‘legacy’ and ‘hybrid’ hierarchies) is scheduled for v258.
  • Support for System V service scripts is deprecated and will be removed in v258. Please make sure to update your software now to include a native systemd unit file instead of a legacy System V script to retain compatibility with future systemd releases.
Netplan v1.1.2 🌐

Adding support for wpa-psk-sha256 WiFis and allowing to configure routing-policy on the NetworkManager backend (LP: #2086544). Additionally, the version shipped in Ubuntu enables new functionality in systemd-networkd-wait-online to wait for DNS servers to be configured and reachable, before considering an interface to be online.

Toolchain Upgrades 🛠️
  • GCC 🐄 a snapshot of the upcoming GCC 15, binutils updated to 2.44, and glibc to 2.41.
  • Python 🐍 is updated to 3.13.3
  • LLVM 🐉 now defaults to version 20
  • Rust 🦀 toolchain defaults to version 1.84
  • Golang 🐀 is updated to 1.24
  • OpenJDK ☕ versions 24 GA and 25 early access snapshot are now available
OpenJDK

OpenJDK 21 is still the default. OpenJDK 24 is included as an optional OpenJDK. An early access snapshot of OpenJDK 25 is also included. Support for OpenJDK LTS versions 17, 11 and 8 is being maintained. OpenJDK with CRaC versions 17 and 21 also continue to be supported. We are excited to announce the devpack-for-spring snap and a set of Spring® content snaps that will serve as development tools for Spring® projects. Developers can now quickly build Ubuntu ROCK images for their Java applications using the Gradle and Maven plugins for Rockcraft. Additionally, GraalVM Community Edition for JDK versions 21, 24 and 25ea is now available as a snap. Java developers now have a choice to build and deploy their applications with standard OpenJDK, with OpenJDK-CRaC or as a GraalVM native image.

.NET

.NET versions 8 and 9 continue to be supported. The dotnet snap is updated to include .NET version 9. The powershell-preview snap has been updated to build from source.

Default configuration changes ⚙️
AppArmor profiles
AppArmor profile writing effort

As part of a profile writing effort to improve overall system security, the AppArmor package now includes many new profiles for applications. This improved sandboxing can help mitigate the impact of any exploit in the confined applications. However, these profiles may cause breakage for unanticipated uses of those applications, and we encourage users to file a bug on Launchpad for AppArmor-induced breakage in common use cases. When AppArmor denies an action, it usually generates a log entry describing the denial, which will help us investigate the bug, but which can also be used to add additional rules for customization or to work around the denials. AppArmor log entries can be read in the auditd logs, if auditd is installed, or in the syslog otherwise. This page describes how the information contained in the denial log can be used to update a local override.

AppArmor profile for bwrap

AppArmor now comes with a bwrap profile (bwrap-userns-restrict) that allows it to create user namespaces and set up sandboxing, before transitioning to a tighter profile that denies capabilities for the processes running inside the bwrap sandbox. The addition of this profile should unblock more use cases for bwrap while allowing a reduction in the kernel attack surface opened up by unprivileged user namespaces. However, this profile still restricts unprivileged userns creation and capability usage even when bwrap (and its sandboxed application) are run as a privileged user, so such use cases may not be fully supported yet.

AppArmor profile removals

As part of hardening improvements around AppArmor user namespace mediation, profiles for busybox and nautilus that directly allowed them access to user namespaces have been removed. As a result, the busybox unshare function can no longer be used to create unprivileged user namespaces. Nautilus’ use of user namespaces should still work due to the new bwrap-users-restrict profile, but regressions are possible if there are bugs in the bwrap profile.

tzdata

Previously, the tzdata package in Ubuntu used the /etc/timezone file to configure the system’s timezone. This method is not supported by systemd and certain desktop environments, which instead only change the /etc/localtime symlink to point to a file in /usr/share/zoneinfo. For this reason, starting with version 2024b-5, the tzdata package no longer automatically creates the /etc/timezone file, but still updates it if it exists. In the next Ubuntu 25.10 release, the /etc/timezone file will be automatically removed and support for it in the maintainer scripts will be completely dropped.

Ubuntu Desktop
New ARM64 Desktop Image
  • There is now also an official generic arm64 desktop ISO targeting VMs, ACPI + EFI platforms and Snapdragon based WoA devices.
  • Initial hardware enablement work for the Snapdragon X Elite platform is included in the desktop ISO
Installer and Upgrades
  • Added the option to replace an existing Ubuntu installation
  • Improved dual boot UX (with a focus on BitLocker protected Windows systems):
  • Added the option to install Ubuntu alongside existing BitLocker partitions if enough unallocated space (or a sufficiently large and resizable partition) is available
  • Made encrypted installations and other ‘advanced options’ available for dual boot scenarios
Enterprise
  • authd: Ubuntu’s cloud authentication solution:
  • Many fixes and improvements to the EntraID provider
  • New Google provider
  • New authd documentation
  • New ADSys Release: the Active Directory Group Policy client for Ubuntu, supports the latest Polkit and comes with improvements and bug fixes to certificates enrolment.
GNOME 👣
  • GNOME has been updated to include new features and fixes from the latest GNOME release, GNOME 48
  • GNOME 48 now includes the triple buffering feature from Ubuntu
Default app changes
  • The Document Viewer app for viewing PDFs is now provided by Papers instead of Evince. Papers started with the Evince codebase but it has been updated to use GTK4 and partially rewritten in Rust.
  • xdg-terminal-exec is installed by default making it easier to switch a user’s default terminal for the Ctrl+Alt+T keyboard shortcut and for opening terminal apps (LP: #2107326)
  • Geolocation services are now backed by BeaconDB after Mozilla Location Services was retired last year
  • The JPEG XL format is now supported without needing to install any additional packages
Updated Applications
  • Firefox 137 🔥🦊
  • LibreOffice 25.2 📚
  • Thunderbird 128 “Supernova” 🌩️🐦
  • GNU Image Manipulation Program 3.0 🖼️ is available for install
  • The fish shell has always been known for its smart and user-friendly interface, making command-line interactions more intuitive and efficient. With the release of version 4, fish has undergone a significant transformation, rewritten entirely in Rust. This change brings a on one side the values of the ecosystem like enhanced performance and improved stability, while on the other side is not compromising on the feature set. The upstream community had a great blog about the rust port, which we recommend reading if you are curious. As shells go, this is about your taste and preferences: if you have not been trying fish before, consider to try it out now and experience its features for yourself.
Updated Subsystems
  • BlueZ 5.79 💙
  • Cairo 1.18.4 🐫
  • NetworkManager 1.52 🖧
  • Pipewire 1.2.7 🔊
  • Poppler 25.03 📝
  • xdg-desktop-portal 1.20 ⛩️
  • Nvidia 570 👁️
  • The libva library is now available in the Main repository component. The library implements VA-API (Video Acceleration API) for hardware video decoding and encoding. Applications can now use VA-API out of box. Notably, you can record your screen at the original screen rate. Without VA-API, your screen recording has a reduced frame rate because it’s limited by the CPU. To use VA-API, enable third-party drivers during Ubuntu installation. You can also install the library after installation: sudo apt install va-driver-all
Gaming
NVIDIA Dynamic Boost

This release enabled NVIDIA Dynamic Boost by default on supported laptops with NVIDIA GPUs. …

View original

Upgraded? How did it go?

Discussion