Release Notes for Alpine 3.21.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

OpenSSH service requires restart

From the 9.8_p1 release, and on, of openssh, openssh-server is split into two binaries (/usr/lib/ssh/sshd-session and /usr/sbin/sshd). Due to this change, it will not be possible to ssh into a system that has upgraded from a release prior to 9.8_p1 to this release or later, without restarting the sshd service.

We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html

Managing services has always been out-of-scope for apk-tools, but this one time we will make an exception when the following conditions are met:

  1. You have both the openssh-server and openssh-server-common-openrc packages installed at a version lower than 9.8_p1
  2. The sshd service is started

We will then, post openssh-server upgrade, have a post-upgrade script that will:

  1. Print a message on what is about to happen and why
  2. Restart the sshd service
  3. If the command to restart the service would fail, for any reason, a warning message will be printed and an error code returned to apk, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).

We have decided to do this in order to help keep you from getting locked out of your system(s) and be able to fix any issues with the upgrade.

See also:

New loongarch64 architecture

Alpine 3.21 is the first release which is available for loongarch64.

Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.

Preparations for /usr-merge

We plan for the next Alpine Linux, version 3.22, to contain the /usr-merge.

A lot of preparations went into this release to ensure that the merge happens as smoothly as possible. That included moving the location of some binaries and many libraries from /bin, /sbin, and /lib to their counter-parts in /usr. Users with installations where / and /usr are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care, and it may be advisable to skip the 3.21 upgrade.

If you still want to go ahead, you may open an issue and ping @pabloyoyoista to ask for support.

We'll publish soon a blog post about with further information, the timeline and the effects.

Significant changes

Jellyfin

Jellyfin now uses the recommended fork of ffmpeg called jellyfin-ffmpeg by default. If you want to change that, take a look at the ffmpegpath variable in /etc/conf.d/jellyfin. (!69924)

Jellyfin was disabled for ARM architectures (aarch64 and armv7) and is only available for x86_64. (#16613)

Bats

main/bats was renamed to main/bats-core. Now there is a meta package community/bats which contains:

Xen 4.19

qemu-traditional and stubdom are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12

There is still the xen-qemu package, but the regular qemu aport is now built with Xen support, so a qemu-system-* package can be used instead.

You would choose to use it in your xl.cfg(1) like so:

device_model_override = "/usr/bin/qemu-system-x86_64"
device_model_version = "qemu-xen"

uutils-coreutils

uutils-coreutils is repackaged as a sub-package to uutils in such a way as to be a drop-in replacement for GNU coreutils.

If you have both uutils-coreutils and coreutils installed, the latter will be purged and its symlinks replaced with ones pointing to the /usr/bin/uutils binary. The /usr/bin/uutils-* symlinks, previously provided by uutils-coreutils, no loger exist.

If you prefer to use GNU coreutils, you want to remove the uutils-coreutils package before upgrading, and then add the uutils package, containing the /usr/bin/uutils binary.

A few parts of the uutils aport are also split into uutils-* subpackages, to avoid conflicts or other issues.

linux-firmware

linux-firmware is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that CONFIG_FW_LOADER_COMPRESS_ZSTD=y is set in your configuration.

Note-worthy updates

As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.

  • Linux 6.12
  • GCC 14.2
  • LLVM 19
  • Go 1.23
  • Rust 1.83
  • GNOME 47
  • KDE Plasma 6.2
  • LXQt 2.1
  • Qt 6.8
  • wlroots 18
  • busybox 1.37

GCC 14

The Gnu Compiler Collection was upgraded to 14.2.0 and, as a result, all packages built with gcc are in Alpine 3.21 compiled with GCC 14.2.0.

Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html

LXQt 2.1

LXQt has been updated to release 2.1.0

  • It now uses Qt6
  • Many parts of LXQt are now wayland ready¹, but wayland ports of the following are pending: screengrab, lxqt-globalkeys, and keyboard indicator, some input settings, and settings of monitor, power button, and screen locker.
  • LXQt Panel has a new default application menu called Fancy Menu.

¹ lxqt-wayland-session has not been packaged yet, but most folks wanting to test on wayland will want to use it.

Linux 6.12

Alpine 3.21.0 ships Linux 6.12.1 in the linux-lts package.

Please note that linux-headers still is on 6.6, because the kernel was released after we kicked off our rebuilds and we coudn't ensure that the upgrade doesn't break other packages. (More about the linux-headers 6.12 upgrade: !75618)

PostgreSQL 17

This release features postgresql17. We dropped support for postgresql14, and moved postgreSQL15 from main to community.

LLVM 19

We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: llvm19, llvm18, llvm17, llvm16, llvm15.

Significant removals

Disabled packages due to FTBS

The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.

ISC DHCP

Note: TODO: Write something cool if https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/70974 (or alternative) is merged

ISC DHCP has been EoL since 2022. They have a guide for migrating to kea here: https://www.isc.org/dhcp_migration/

The dhcp aport has the subpackage keama that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.

Gogs

gogs was removed due to multiple high-severity vulnerabilities which are open within a year. The developers of Gogs were contacted multiple times by the Forgejo team, but got no response. Therefore we removed Gogs from our repositories. (!75304)

Please consider migrating to forgejo or gitea. Both forks are available in our community repo, like gogs was.

The Gitea fork of Gogs was created in 2016 by contributors who were annoyed by the single-maintainer management model of Gogs. Forgejo is a fork of Gitea, which was created because the for-profit company Gitea Ltd took over the maintainership, see also https://forgejo.org/compare-to-gitea/.

neofetch

The upstream repository was archived in April, therefore is unmaintained and we removed it from our repositories. fastfetch provides similar functionality.