Release Notes for Alpine 3.22.0

From Alpine Linux

As always, make sure to read Upgrading Alpine to a new major release when upgrading to a new release.

If you experience any issues with the upgrade, please let us know and file an issue in our repositories.

Important changes

Preparations for /usr-merge

The work on /usr-merge has continued since last release. Precaution from previous release still apply.

Significant changes

apk-tools

This release is the last release using apk-tools v2.14. The next Alpine v3.23 will include apk-tools v3. The packages and index format are still using the legacy v2 format.

There are a number of new changes in the new apk-tools release. To test apk-tools v3, upgrade to Alpine edge, enable the testing repository and install apk-tools3.

KDE Plasma

The X11 session for KDE Plasma has been removed. If you had plasma-workspace-x11 installed make sure to remove it from /etc/apk/world. Wayland is the only available option now.

SDL

sdl3 and sdl2-compat were moved to the community repository and are now the default SDL provider. To force the installation of sdl2, use apk add sdl2.

Adwaita Fonts

As a result of GNOME's switch to adwaita-fonts, the default font for GTK-based applications (e.g. vte3 or libadwaita Applications) was changed. If you want to revert or override the fonts, you can use:

$ apk add font-cantarell font-adobe-source-code-pro
$ gsettings set org.gnome.desktop.interface font-name 'Cantarell 11'
$ gsettings set org.gnome.desktop.interface monospace-font-name 'Source Code Pro 11'

adwaita-fonts is pulled in as a dependency of some packages since it broke the default behaviour for various applications.

GeoClue

Since Mozilla Location Services (MLS), which were used as the geolocation service in geoclue, has been retired by Mozilla, Alpine switched to beaconDB as the default geolocation provider. (!76764)

BIRD Routing Daemon

The bird routing daemon package has been upgrade to version 3 which introduces a new multi-threaded architecture. A side effect of this change is significantly increased memory consumption of the daemon. This update is configuration-compatible with BIRD v2 but there are some behavioral backwards incompatibilities. Users should read the migration guide. Notably the format of show route all has changed as has the format of the logs, which may impact scripts and automation that consume those outputs. Users who require BIRD v2 should install the bird2 package instead.

Secure Boot and Gummiboot

secureboot-hook (and its dependency efi-mkuki), which is used to build and sign an Unified Kernel Image for Secure Boot, no longer works with gummiboot-efistub. The default EFI stub is now systemd-efistub (don’t worry, it provides just the EFI stub files, nothing more), but you can also use stubbyboot-efistub.

Provided you haven’t overwritten the efistub_file parameter in /etc/kernel-hooks.d/secureboot.conf, you won’t need to take any action when upgrading – it should install systemd-efistub automatically and everything should work fine. Otherwise, check the configuration carefully.

The gummiboot-efistub package has been moved to the testing repository and it no longer provides the efistub provider. The Gummiboot upstream is gone (it was absorbed by systemd a long time ago) and some users have reported that it has not worked since Alpine v3.21.

nginx built with pcre2

Since this release, nginx and njs are built with pcre2 (10.x) instead of the old pcre (8.x).

OpenRC User services

Experimental support for User services are currently available in OpenRC.

Note-worthy updates

As always, many packages were upgraded. Make sure to read the individual release notes of the projects you use.

  • BIRD 3.1
  • busybox 1.37.0
  • Deno 2.3.1
  • GCC 14.2.0
  • GNOME 48
  • Go 1.24
  • ISC BIND 9.20
  • KDE Plasma 6.3
  • Linux 6.12
  • LLVM 20
  • LXQt 2.2.0
  • nginx 1.28
  • NodeJS 22.16 (LTS)
  • PHP 8.4
  • Qt 6.8
  • Ruby 3.4
  • Rust 1.87
  • wlroots 0.18
  • zigbee2mqtt 2.3.0

LLVM

LLVM 20 is available as llvm/clang (or llvm20/clang20 explictly) additionally to LLVM 19, 18, 17, 16 and 15. (!80901, !82502)

LLD is now also splitted per version and is available as lld20 (default for lld), lld19 and lld18. (!81774)

woodpecker

The woodpecker CI/CD package has been upgraded from 2.8.0 to 3.6.0. Between version 2.x -> 3.x several changes were made to Woodpecker's API and configuration.

2.x -> 3.x migration information can be found here.

Significant removals

LXD

LXD was moved to the testing repository and is therefore not available on Alpine Linux 3.22. It was deprecated in favor of incus and incus-feature (feature branch).

Take a look at the Migration Guide on how to migrate from LXD to Incus using the incus-conversion or incus-feature-conversion package.

Qt 5

On 26th of May 2025, Qt 5 will be unmaintained upstream. Therefore we're removing unused libraries from our repositories and are migrating the remaining packages to Qt 6.

Applications that still use Qt 5 libraries won't be removed, but libraries without consumers in our repository will.

For more information, see Issue #17114.

Meilisearch

meilisearch in aports has not been maintained for a long time. It's removed from Alpine 3.22.

Botan 2

Botan2 has reached End of Life and will not be part of 3.22 release

pcc (portable C compiler)

Unfortunately, upstream's website has been offline since 2023-12-11 and hasn't come back online since. AFAIK, there isn't any good alternative source that we can use. The best one we were able to find is an unofficial repo.or.cz mirror.

As a consequence, other distros (e.g. Fedora) have orphaned pcc and other distros (e.g. Debian) archive very ancient versions of pcc.

ruby-grpc

GRPC is a huge mess, and we lack the resources to support all its language bindings.

Due to this, we had to also remove ruby-pg_query and sqlint.