<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ncopa</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ncopa"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Ncopa"/>
	<updated>2026-05-05T12:35:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=32330</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=32330"/>
		<updated>2026-04-15T11:59:25Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.23.4&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31993</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31993"/>
		<updated>2026-01-27T21:50:03Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: 3.23.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.23.3&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31827</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31827"/>
		<updated>2025-12-17T07:13:50Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump 3.23.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.23.2&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31617</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31617"/>
		<updated>2025-12-03T16:51:12Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump 3.23.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.23.0&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31185</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=31185"/>
		<updated>2025-10-08T11:24:47Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: 3.22.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.22.2&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=30461</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=30461"/>
		<updated>2025-07-15T13:22:04Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: 3.22.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.22.1&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=30224</id>
		<title>Release Notes for Alpine 3.22.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=30224"/>
		<updated>2025-06-12T18:16:43Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Note-worthy updates */  add note about dovecot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
The work on /usr-merge has continued since last release. Precaution from [https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.21.0#Preparations_for_/usr-merge previous release] still apply.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== apk-tools ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are a number of new changes in the new apk-tools release. To test apk-tools v3, [https://wiki.alpinelinux.org/wiki/Upgrading_Alpine_Linux_to_a_new_release_branch#Upgrading_to_Edge upgrade to Alpine edge, enable the testing repository] and install {{pkg|apk-tools3}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
The X11 session for KDE Plasma has been removed. If you had {{pkg|plasma-workspace-x11|branch=v3.21|arch=}} installed make sure to remove it from {{path|/etc/apk/world}}. Wayland is the only available option now.&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sdl3}} and {{pkg|sdl2-compat}} were moved to the community repository and are now the default SDL provider. To force the installation of {{pkg|sdl2}}, use &amp;lt;code&amp;gt;apk add sdl2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Adwaita Fonts ===&lt;br /&gt;
&lt;br /&gt;
As a result of [https://release.gnome.org/48/#new-fonts GNOME&#039;s switch] to {{pkg|adwaita-fonts}}, the default font for GTK-based applications (e.g. {{pkg|vte3}} or {{pkg|libadwaita}} Applications) was changed. If you want to revert or override the fonts, you can use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apk add font-cantarell font-adobe-source-code-pro&lt;br /&gt;
$ gsettings set org.gnome.desktop.interface font-name &#039;Cantarell 11&#039;&lt;br /&gt;
$ gsettings set org.gnome.desktop.interface monospace-font-name &#039;Source Code Pro 11&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{pkg|adwaita-fonts}} is pulled in as a dependency of some packages since it broke the default behaviour for various applications.&lt;br /&gt;
&lt;br /&gt;
=== GeoClue ===&lt;br /&gt;
&lt;br /&gt;
Since Mozilla Location Services (MLS), which were used as the geolocation service in geoclue, [https://discourse.mozilla.org/t/retiring-the-mozilla-location-service/128693 has been retired by Mozilla], Alpine switched to [https://beacondb.net/ beaconDB] as the default geolocation provider. ({{MR|76764}})&lt;br /&gt;
&lt;br /&gt;
=== BIRD Routing Daemon ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|bird|repo=community}} routing daemon package has been upgrade to version 3 which introduces a new multi-threaded architecture. A side effect of this change is [https://trubka.network.cz/pipermail/bird-users/2024-December/017973.html 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 [https://gitlab.nic.cz/labs/bird/-/blob/stable-v3.0/doc/migration-bird3.md migration guide]. Notably the format of &amp;lt;tt&amp;gt;show route all&amp;lt;/tt&amp;gt; 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 {{pkg|bird2|repo=community}} package instead.&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot and Gummiboot ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|secureboot-hook|repo=main}} (and its dependency {{pkg|efi-mkuki|repo=main}}), which is used to build and sign an Unified Kernel Image for Secure Boot, no longer works with {{pkg|gummiboot-efistub|repo=testing}}. The default EFI stub is now {{pkg|systemd-efistub|repo=main}} (don’t worry, it provides just the EFI stub files, nothing more), but you can also use {{pkg|stubbyboot-efistub|repo=community}}.&lt;br /&gt;
&lt;br /&gt;
Provided you haven’t overwritten the &amp;lt;code&amp;gt;efistub_file&amp;lt;/code&amp;gt; parameter in {{path|/etc/kernel-hooks.d/secureboot.conf}}, you won’t need to take any action when upgrading – it should install {{pkg|systemd-efistub|repo=main}} automatically and everything should work fine. Otherwise, check the configuration carefully.&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gummiboot-efistub|repo=testing}} package has been moved to the testing repository and it no longer provides the &amp;lt;code&amp;gt;efistub&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
=== nginx built with pcre2 ===&lt;br /&gt;
&lt;br /&gt;
Since this release, {{pkg|nginx|repo=main}} and {{pkg|njs|repo=community}} are built with pcre2 (10.x) instead of the old pcre (8.x).&lt;br /&gt;
&lt;br /&gt;
=== OpenRC User services ===&lt;br /&gt;
&lt;br /&gt;
Experimental support for User services are currently available in [[OpenRC#User services|OpenRC]].&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, many packages were upgraded. Make sure to read the individual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* BIRD 3.1&lt;br /&gt;
* busybox 1.37.0&lt;br /&gt;
* Deno 2.3.1&lt;br /&gt;
* dovecot 2.4&lt;br /&gt;
* GCC 14.2.0&lt;br /&gt;
* GNOME 48&lt;br /&gt;
* Go 1.24&lt;br /&gt;
* ISC BIND 9.20&lt;br /&gt;
* KDE Plasma 6.3&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* LLVM 20&lt;br /&gt;
* LXQt 2.2.0&lt;br /&gt;
* nginx 1.28&lt;br /&gt;
* NodeJS 22.16 (LTS)&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* Ruby 3.4&lt;br /&gt;
* Rust 1.87&lt;br /&gt;
* wlroots 0.18&lt;br /&gt;
* zigbee2mqtt 2.3.0&lt;br /&gt;
&lt;br /&gt;
=== LLVM ===&lt;br /&gt;
&lt;br /&gt;
LLVM 20 is available as {{pkg|llvm}}/{{pkg|clang}} (or {{pkg|llvm20}}/{{pkg|clang20}} explictly) additionally to LLVM 19, 18, 17, 16 and 15. ({{MR|80901}}, {{MR|82502}})&lt;br /&gt;
&lt;br /&gt;
LLD is now also splitted per version and is available as {{pkg|lld20}} (default for {{pkg|lld}}), {{pkg|lld19}} and {{pkg|lld18}}. ({{MR|81774}})&lt;br /&gt;
&lt;br /&gt;
=== woodpecker ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|woodpecker|repo=community}} CI/CD package has been upgraded from 2.8.0 to 3.6.0. Between version 2.x -&amp;gt; 3.x several changes were made to Woodpecker&#039;s API and configuration.&lt;br /&gt;
&lt;br /&gt;
[https://woodpecker-ci.org/migrations#300 2.x -&amp;gt; 3.x migration information can be found here.]&lt;br /&gt;
&lt;br /&gt;
=== dovecot ===&lt;br /&gt;
&lt;br /&gt;
The dovecot package have been upgraded from 2.3 to 2.4 which introduces breaking changes in the configuration format. See [https://doc.dovecot.org/2.4.1/installation/upgrade/2.3-to-2.4.html dovecot documentation] how to migrate.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== LXD ===&lt;br /&gt;
&lt;br /&gt;
LXD was moved to the testing repository and is therefore not available on Alpine Linux 3.22. It was deprecated in favor of {{pkg|incus}} and {{pkg|incus-feature}} (feature branch).&lt;br /&gt;
&lt;br /&gt;
Take a look at the [https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/ Migration Guide] on how to migrate from LXD to Incus using the {{pkg|incus-conversion}} or {{pkg|incus-feature-conversion}} package.&lt;br /&gt;
&lt;br /&gt;
=== Qt 5 ===&lt;br /&gt;
&lt;br /&gt;
On 26th of May 2025, Qt 5 will be unmaintained upstream. Therefore we&#039;re removing unused libraries from our repositories and are migrating the remaining packages to Qt 6.&lt;br /&gt;
&lt;br /&gt;
Applications that still use Qt 5 libraries won&#039;t be removed, but libraries without consumers in our repository will.&lt;br /&gt;
&lt;br /&gt;
For more information, see Issue {{Issue|17114}}.&lt;br /&gt;
&lt;br /&gt;
=== Meilisearch ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;meilisearch&amp;lt;/code&amp;gt; in aports has not been maintained for a long time. It&#039;s removed from Alpine 3.22.&lt;br /&gt;
&lt;br /&gt;
=== Botan 2 ===&lt;br /&gt;
&lt;br /&gt;
Botan2 has reached End of Life and will not be part of 3.22 release&lt;br /&gt;
&lt;br /&gt;
=== pcc (portable C compiler) ===&lt;br /&gt;
&lt;br /&gt;
Unfortunately, upstream&#039;s website [https://marc.info/?l=pcc-list&amp;amp;m=170541815829299&amp;amp;w=2 has been offline since 2023-12-11] and hasn&#039;t come back online since. AFAIK, there isn&#039;t any good alternative source that we can use. The best one we were able to find is an unofficial [https://repo.or.cz/pcc.git repo.or.cz mirror].&lt;br /&gt;
&lt;br /&gt;
As a consequence, other distros (e.g. [https://src.fedoraproject.org/rpms/pcc/c/6e04a3afcbdca49cb4f117e7febdf5ae67a3bed1?branch=rawhide Fedora]) have orphaned pcc and other distros (e.g. Debian) archive very ancient versions of pcc.&lt;br /&gt;
&lt;br /&gt;
=== ruby-grpc ===&lt;br /&gt;
&lt;br /&gt;
GRPC is a huge mess, and we lack the resources to support all its language bindings.&lt;br /&gt;
&lt;br /&gt;
Due to this, we had to also remove ruby-pg_query and sqlint.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=30125</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=30125"/>
		<updated>2025-05-30T13:27:11Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.22.0&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Draft_Release_Notes_for_Alpine_3.22.0&amp;diff=30114</id>
		<title>Draft Release Notes for Alpine 3.22.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Draft_Release_Notes_for_Alpine_3.22.0&amp;diff=30114"/>
		<updated>2025-05-30T10:40:47Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Ncopa moved page Draft Release Notes for Alpine 3.22.0 to Release Notes for Alpine 3.22.0 over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Release Notes for Alpine 3.22.0]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=30113</id>
		<title>Release Notes for Alpine 3.22.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.22.0&amp;diff=30113"/>
		<updated>2025-05-30T10:40:47Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Ncopa moved page Draft Release Notes for Alpine 3.22.0 to Release Notes for Alpine 3.22.0 over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
The work on /usr-merge has continued since last release. Precaution from [https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.21.0#Preparations_for_/usr-merge previous release] still apply.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== apk-tools ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There are a number of new changes in the new apk-tools release. To test apk-tools v3, [https://wiki.alpinelinux.org/wiki/Upgrading_Alpine_Linux_to_a_new_release_branch#Upgrading_to_Edge upgrade to Alpine edge, enable the testing repository] and install {{pkg|apk-tools3}}.&lt;br /&gt;
&lt;br /&gt;
=== KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
The X11 session for KDE Plasma has been removed. If you had {{pkg|plasma-workspace-x11|branch=v3.21|arch=}} installed make sure to remove it from {{path|/etc/apk/world}}. Wayland is the only available option now.&lt;br /&gt;
&lt;br /&gt;
=== SDL ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sdl3}} and {{pkg|sdl2-compat}} were moved to the community repository and are now the default SDL provider. To force the installation of {{pkg|sdl2}}, use &amp;lt;code&amp;gt;apk add sdl2&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Adwaita Fonts ===&lt;br /&gt;
&lt;br /&gt;
As a result of [https://release.gnome.org/48/#new-fonts GNOME&#039;s switch] to {{pkg|adwaita-fonts}}, the default font for GTK-based applications (e.g. {{pkg|vte3}} or {{pkg|libadwaita}} Applications) was changed. If you want to revert or override the fonts, you can use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ apk add font-cantarell font-adobe-source-code-pro&lt;br /&gt;
$ gsettings set org.gnome.desktop.interface font-name &#039;Cantarell 11&#039;&lt;br /&gt;
$ gsettings set org.gnome.desktop.interface monospace-font-name &#039;Source Code Pro 11&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{pkg|adwaita-fonts}} is pulled in as a dependency of some packages since it broke the default behaviour for various applications.&lt;br /&gt;
&lt;br /&gt;
=== GeoClue ===&lt;br /&gt;
&lt;br /&gt;
Since Mozilla Location Services (MLS), which were used as the geolocation service in geoclue, [https://discourse.mozilla.org/t/retiring-the-mozilla-location-service/128693 has been retired by Mozilla], Alpine switched to [https://beacondb.net/ beaconDB] as the default geolocation provider. ({{MR|76764}})&lt;br /&gt;
&lt;br /&gt;
=== BIRD Routing Daemon ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|bird|repo=community}} routing daemon package has been upgrade to version 3 which introduces a new multi-threaded architecture. A side effect of this change is [https://trubka.network.cz/pipermail/bird-users/2024-December/017973.html 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 [https://gitlab.nic.cz/labs/bird/-/blob/stable-v3.0/doc/migration-bird3.md migration guide]. Notably the format of &amp;lt;tt&amp;gt;show route all&amp;lt;/tt&amp;gt; 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 {{pkg|bird2|repo=community}} package instead.&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot and Gummiboot ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|secureboot-hook|repo=main}} (and its dependency {{pkg|efi-mkuki|repo=main}}), which is used to build and sign an Unified Kernel Image for Secure Boot, no longer works with {{pkg|gummiboot-efistub|repo=testing}}. The default EFI stub is now {{pkg|systemd-efistub|repo=main}} (don’t worry, it provides just the EFI stub files, nothing more), but you can also use {{pkg|stubbyboot-efistub|repo=community}}.&lt;br /&gt;
&lt;br /&gt;
Provided you haven’t overwritten the &amp;lt;code&amp;gt;efistub_file&amp;lt;/code&amp;gt; parameter in {{path|/etc/kernel-hooks.d/secureboot.conf}}, you won’t need to take any action when upgrading – it should install {{pkg|systemd-efistub|repo=main}} automatically and everything should work fine. Otherwise, check the configuration carefully.&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gummiboot-efistub|repo=testing}} package has been moved to the testing repository and it no longer provides the &amp;lt;code&amp;gt;efistub&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
=== woodpecker ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|woodpecker|repo=community}} CI/CD package has been upgraded from 2.8.0 to 3.6.0. Between version 2.x -&amp;gt; 3.x several changes were made to Woodpecker&#039;s API and configuration.&lt;br /&gt;
&lt;br /&gt;
[https://woodpecker-ci.org/migrations#300 2.x -&amp;gt; 3.x migration information can be found here.]&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, many packages were upgraded. Make sure to read the individual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* BIRD 3.1&lt;br /&gt;
* busybox 1.37.0&lt;br /&gt;
* GCC 14.2.0&lt;br /&gt;
* GNOME 48&lt;br /&gt;
* Go 1.24&lt;br /&gt;
* ISC BIND 9.20&lt;br /&gt;
* KDE Plasma 6.3&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* LLVM 20&lt;br /&gt;
* LXQt 2.2.0&lt;br /&gt;
* nginx 1.28&lt;br /&gt;
* NodeJS 22.16 (LTS)&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* Ruby 3.4&lt;br /&gt;
* Rust 1.87&lt;br /&gt;
* wlroots 0.18&lt;br /&gt;
&lt;br /&gt;
=== LLVM ===&lt;br /&gt;
&lt;br /&gt;
LLVM 20 is available as {{pkg|llvm}}/{{pkg|clang}} (or {{pkg|llvm20}}/{{pkg|clang20}} explictly) additionally to LLVM 19, 18, 17, 16 and 15. ({{MR|80901}}, {{MR|82502}})&lt;br /&gt;
&lt;br /&gt;
LLD is now also splitted per version and is available as {{pkg|lld20}} (default for {{pkg|lld}}), {{pkg|lld19}} and {{pkg|lld18}}. ({{MR|81774}})&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== LXD ===&lt;br /&gt;
&lt;br /&gt;
LXD was moved to the testing repository and is therefore not available on Alpine Linux 3.22. It was deprecated in favor of {{pkg|incus}} and {{pkg|incus-feature}} (feature branch).&lt;br /&gt;
&lt;br /&gt;
Take a look at the [https://linuxcontainers.org/incus/docs/main/howto/server_migrate_lxd/ Migration Guide] on how to migrate from LXD to Incus using the {{pkg|incus-conversion}} or {{pkg|incus-feature-conversion}} package.&lt;br /&gt;
&lt;br /&gt;
=== Qt 5 ===&lt;br /&gt;
&lt;br /&gt;
On 26th of May 2025, Qt 5 will be unmaintained upstream. Therefore we&#039;re removing unused libraries from our repositories and are migrating the remaining packages to Qt 6.&lt;br /&gt;
&lt;br /&gt;
Applications that still use Qt 5 libraries won&#039;t be removed, but libraries without consumers in our repository will.&lt;br /&gt;
&lt;br /&gt;
For more information, see Issue {{Issue|17114}}.&lt;br /&gt;
&lt;br /&gt;
=== Meilisearch ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;meilisearch&amp;lt;/code&amp;gt; in aports has not been maintained for a long time. It&#039;s removed from Alpine 3.22.&lt;br /&gt;
&lt;br /&gt;
=== Botan 2 ===&lt;br /&gt;
&lt;br /&gt;
Botan2 has reached End of Life and will not be part of 3.22 release&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28994</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28994"/>
		<updated>2025-02-14T00:23:07Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump 3.21.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.21.3&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28655</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28655"/>
		<updated>2025-01-08T12:39:01Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.21.2&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28643</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28643"/>
		<updated>2025-01-06T19:27:15Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump 3.21.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.21.1&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28100</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=28100"/>
		<updated>2024-12-05T18:02:05Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.21.0&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28092</id>
		<title>Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28092"/>
		<updated>2024-12-05T11:07:38Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Preparations for /usr-merge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH service requires restart ===&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; release, and on, of {{pkg|openssh}}, {{pkg|openssh-server}} is split into two binaries (&amp;lt;code&amp;gt;/usr/lib/ssh/sshd-session&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/sbin/sshd&amp;lt;/code&amp;gt;). Due to this change, it will not be possible to &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; into a system that has upgraded from a release prior to &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; to this release or later, without restarting the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html&lt;br /&gt;
&lt;br /&gt;
Managing services has always been out-of-scope for {{pkg|apk-tools}}, but this one time we will &#039;&#039;&#039;make an exception&#039;&#039;&#039; when the following conditions are met:&lt;br /&gt;
# You have both the {{pkg|openssh-server}} and {{pkg|openssh-server-common-openrc}} packages installed at a version lower than &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service is started&lt;br /&gt;
&lt;br /&gt;
We will then, post {{pkg|openssh-server}} upgrade, have a &amp;lt;code&amp;gt;post-upgrade&amp;lt;/code&amp;gt; script that will:&lt;br /&gt;
# Print a message on what is about to happen and why&lt;br /&gt;
# Restart the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service&lt;br /&gt;
# If the command to restart the service fails for any reason, a warning message will be printed and an error code returned to &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://bugzilla.mindrot.org/show_bug.cgi?id=3706&lt;br /&gt;
* https://git.alpinelinux.org/aports/commit/?id=6adff08ae09961d4eea66b55a8cca14d3941fb53&lt;br /&gt;
&lt;br /&gt;
=== New loongarch64 architecture ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21 is the first release which is available for &amp;lt;code&amp;gt;loongarch64&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
Plans for /usr-merge are underway and we should be able to finalize it in Alpine Linux, version 3.22.&lt;br /&gt;
&lt;br /&gt;
Much preparation has gone 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 &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; to their counterparts in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. As part of the merge, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be mounted from the initramfs to make sure everybody has all necessary binaries in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Users with installations where &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care and report any issues.&#039;&#039;&#039;  They should also ensure that an entry &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is added to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; before upgrading, and all modules required to mount &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; from the initramfs are added to mkinitfs configuration. New/fresh installations of v3.21 will work out of the box without modification. Please note that &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; on separate filesystem than &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is not officially supported.&lt;br /&gt;
&lt;br /&gt;
If you have one of these setups, and have doubts about the configuration, you can open an [https://gitlab.alpinelinux.org/alpine/aports/-/issues/new issue] and ping &amp;lt;code&amp;gt;@pabloyoyoista&amp;lt;/code&amp;gt;. We will also publish a blog post soon with further information on the timeline and progress of the merge, as well as how the changes may affect users.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&lt;br /&gt;
Jellyfin now uses the recommended fork of ffmpeg called {{pkg|jellyfin-ffmpeg}} by default. If you want to change the default, take a look at the &amp;lt;code&amp;gt;ffmpegpath&amp;lt;/code&amp;gt; variable in &amp;lt;code&amp;gt;/etc/conf.d/jellyfin&amp;lt;/code&amp;gt;. ({{MR|69924}})&lt;br /&gt;
&lt;br /&gt;
Jellyfin was disabled for ARM architectures (&amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;armv7&amp;lt;/code&amp;gt;) and is only available for &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;. ({{Issue|16613}})&lt;br /&gt;
&lt;br /&gt;
=== Bats ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;main/bats&amp;lt;/code&amp;gt; was renamed to &amp;lt;code&amp;gt;main/bats-core&amp;lt;/code&amp;gt;. There is now a meta package &amp;lt;code&amp;gt;community/bats&amp;lt;/code&amp;gt; which contains:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|bats-core}}&lt;br /&gt;
* {{pkg|bats-file}}&lt;br /&gt;
* {{pkg|bats-support}}&lt;br /&gt;
* {{pkg|bats-assert}}&lt;br /&gt;
&lt;br /&gt;
=== Xen 4.19 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;qemu-traditional&#039;&#039; and &#039;&#039;stubdom&#039;&#039; are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12&lt;br /&gt;
&lt;br /&gt;
There is still the {{pkg|xen-qemu}} package, but the regular {{pkg|qemu}} aport [https://git.alpinelinux.org/aports/commit/?id=a9249e2e0de827e88d84c01f9731aeebd248be13 is now built with Xen support], so a {{pkg|qemu-system-*}} package can be used instead.&lt;br /&gt;
&lt;br /&gt;
You can choose to use it in your &#039;&#039;xl.cfg(1)&#039;&#039; like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
device_model_override = &amp;quot;/usr/bin/qemu-system-x86_64&amp;quot;&lt;br /&gt;
device_model_version = &amp;quot;qemu-xen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== uutils-coreutils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|uutils-coreutils}} is repackaged as a sub-package to {{pkg|uutils}} in such a way as to be a drop-in replacement for GNU {{pkg|coreutils}}.&lt;br /&gt;
&lt;br /&gt;
If you have both {{pkg|uutils-coreutils}} and {{pkg|coreutils}} installed, the latter will be &#039;&#039;&#039;purged&#039;&#039;&#039; and its symlinks replaced with ones pointing to the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary. The &amp;lt;code&amp;gt;/usr/bin/uutils-*&amp;lt;/code&amp;gt; symlinks, previously provided by {{pkg|uutils-coreutils}}, no longer exist.&lt;br /&gt;
&lt;br /&gt;
If you prefer to use GNU {{pkg|coreutils}}, remove the {{pkg|uutils-coreutils}} package before upgrading, and then add the {{pkg|uutils}} package, containing the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
&lt;br /&gt;
A few parts of the {{pkg|uutils}} aport are also split into {{pkg|uutils-*}} subpackages, to avoid conflicts or other issues.&lt;br /&gt;
&lt;br /&gt;
=== linux-firmware ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-firmware}} is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that &amp;lt;code&amp;gt;CONFIG_FW_LOADER_COMPRESS_ZSTD=y&amp;lt;/code&amp;gt; is set in your configuration.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* busybox 1.37&lt;br /&gt;
* GCC 14.2&lt;br /&gt;
* LLVM 19&lt;br /&gt;
* Go 1.23&lt;br /&gt;
* Rust 1.83&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* GNOME 47&lt;br /&gt;
* KDE Plasma 6.2&lt;br /&gt;
* LXQt 2.1&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* wlroots 18&lt;br /&gt;
&lt;br /&gt;
=== GCC 14 ===&lt;br /&gt;
&lt;br /&gt;
The Gnu Compiler Collection was upgraded to 14.2.0 and as a result, all packages built with {{pkg|gcc}} in Alpine 3.21 are compiled with GCC 14.2.0.&lt;br /&gt;
&lt;br /&gt;
Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html&lt;br /&gt;
&lt;br /&gt;
=== LXQt 2.1 ===&lt;br /&gt;
&lt;br /&gt;
LXQt has been updated to release 2.1.0 &lt;br /&gt;
* It now uses Qt6&lt;br /&gt;
* Many parts of LXQt are now Wayland ready¹, but Wayland ports of the following are pending: {{pkg|screengrab}}, {{pkg|lxqt-globalkeys}}, and keyboard indicator, some input settings, as well as settings for  monitor, power button, and screen locker.&lt;br /&gt;
* LXQt Panel has a new default application menu called Fancy Menu.&lt;br /&gt;
¹ [https://github.com/lxqt/lxqt-wayland-session lxqt-wayland-session] has not been packaged yet, but most folks wanting to test on Wayland will want to use it.&lt;br /&gt;
&lt;br /&gt;
=== Linux 6.12 ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21.0 ships Linux 6.12.1 in the {{pkg|linux-lts}} package.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 17 ===&lt;br /&gt;
&lt;br /&gt;
This release features {{pkg|postgresql17}}. We dropped support for {{pkg|postgresql14}}, and moved {{pkg|postgreSQL15}} from main to community.&lt;br /&gt;
&lt;br /&gt;
=== LLVM 19 ===&lt;br /&gt;
&lt;br /&gt;
We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: {{pkg|llvm19}}, {{pkg|llvm18}}, {{pkg|llvm17}}, {{pkg|llvm16}}, {{pkg|llvm15}}.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== Disabled packages due to FTBS ===&lt;br /&gt;
&lt;br /&gt;
The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* {{pkg|hplip}} ({{Issue|16685}})&lt;br /&gt;
* {{pkg|imageflow}} ({{Issue|16679}})&lt;br /&gt;
* {{pkg|kdevelop}} ({{MR|75839}})&lt;br /&gt;
* {{pkg|postgresql-citus}} ({{Issue|16580}})&lt;br /&gt;
* {{pkg|uvicorn}} ({{Issue|16646}})&lt;br /&gt;
* {{pkg|vulkan-validation-layers}} ({{Issue|16686}})&lt;br /&gt;
&lt;br /&gt;
=== ISC DHCP ===&lt;br /&gt;
&lt;br /&gt;
If you are still running an ISC DHCP server, you are advised to migrate to a maintained alternative &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to the 3.21 release.&lt;br /&gt;
&lt;br /&gt;
ISC DHCP has been EoL since 2022. They have a guide for migrating to {{pkg|kea}} here: https://www.isc.org/dhcp_migration/&lt;br /&gt;
&lt;br /&gt;
Up to, and including, the 3.20 version of Alpine, the {{pkg|dhcp|branch=v3.20}} aport has the subpackage {{pkg|keama|branch=v3.20}} that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.&lt;br /&gt;
&lt;br /&gt;
Alternative DHCP servers packaged in Alpine include:&lt;br /&gt;
* {{pkg|kea}}&lt;br /&gt;
* {{pkg|freeradius-dhcp}}&lt;br /&gt;
* {{pkg|dnsmasq}}&lt;br /&gt;
* udhcpd - packaged in {{pkg|busybox-extras}}&lt;br /&gt;
&lt;br /&gt;
=== Gogs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gogs&amp;lt;/code&amp;gt; was removed due to multiple high-severity vulnerabilities for which issues have remained open for a year. The developers of Gogs were contacted multiple times by the Forgejo team but unfortunately received no response. Therefore we have removed Gogs from our repositories. ({{MR|75304}})&lt;br /&gt;
&lt;br /&gt;
Please consider migrating to {{pkg|forgejo|branch=edge|arch=}} or {{pkg|gitea|branch=edge|arch=}}. Both forks are available in our community repo.&lt;br /&gt;
&lt;br /&gt;
The Gitea fork of Gogs was created in 2016 by contributors who were frustrated with the single-maintainer management model of Gogs. Forgejo is a fork of Gitea which was created as a result of the for-profit company Gitea Ltd taking over maintainership (see also https://forgejo.org/compare-to-gitea/).&lt;br /&gt;
&lt;br /&gt;
=== neofetch ===&lt;br /&gt;
&lt;br /&gt;
The upstream repository was archived in April and became unmaintained, therefore we have removed it from our repositories. {{pkg|fastfetch}} provides similar functionality.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28091</id>
		<title>Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28091"/>
		<updated>2024-12-05T11:03:21Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Preparations for /usr-merge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH service requires restart ===&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; release, and on, of {{pkg|openssh}}, {{pkg|openssh-server}} is split into two binaries (&amp;lt;code&amp;gt;/usr/lib/ssh/sshd-session&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/sbin/sshd&amp;lt;/code&amp;gt;). Due to this change, it will not be possible to &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; into a system that has upgraded from a release prior to &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; to this release or later, without restarting the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html&lt;br /&gt;
&lt;br /&gt;
Managing services has always been out-of-scope for {{pkg|apk-tools}}, but this one time we will &#039;&#039;&#039;make an exception&#039;&#039;&#039; when the following conditions are met:&lt;br /&gt;
# You have both the {{pkg|openssh-server}} and {{pkg|openssh-server-common-openrc}} packages installed at a version lower than &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service is started&lt;br /&gt;
&lt;br /&gt;
We will then, post {{pkg|openssh-server}} upgrade, have a &amp;lt;code&amp;gt;post-upgrade&amp;lt;/code&amp;gt; script that will:&lt;br /&gt;
# Print a message on what is about to happen and why&lt;br /&gt;
# Restart the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service&lt;br /&gt;
# If the command to restart the service fails for any reason, a warning message will be printed and an error code returned to &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://bugzilla.mindrot.org/show_bug.cgi?id=3706&lt;br /&gt;
* https://git.alpinelinux.org/aports/commit/?id=6adff08ae09961d4eea66b55a8cca14d3941fb53&lt;br /&gt;
&lt;br /&gt;
=== New loongarch64 architecture ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21 is the first release which is available for &amp;lt;code&amp;gt;loongarch64&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
Plans for /usr-merge are underway and we should be able to finalize it in Alpine Linux, version 3.22.&lt;br /&gt;
&lt;br /&gt;
Much preparation has gone 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 &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; to their counterparts in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. As part of the merge, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be mounted from the initramfs to make sure everybody has all necessary binaries in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Users with installations where &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care and report any issues.&#039;&#039;&#039;  They should also ensure that an entry &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is added to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; before upgrading, and all modules required to mount &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; from the initramfs are added to mkinitfs configuration. New/fresh installations of v3.21 will work out of the box without modification. Please note that &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; on separate filesystem than &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is not supported.&lt;br /&gt;
&lt;br /&gt;
If you have one of these setups, and have doubts about the configuration, you can open an [https://gitlab.alpinelinux.org/alpine/aports/-/issues/new issue] and ping &amp;lt;code&amp;gt;@pabloyoyoista&amp;lt;/code&amp;gt;. We will also publish a blog post soon with further information on the timeline and progress of the merge, as well as how the changes may affect users.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&lt;br /&gt;
Jellyfin now uses the recommended fork of ffmpeg called {{pkg|jellyfin-ffmpeg}} by default. If you want to change the default, take a look at the &amp;lt;code&amp;gt;ffmpegpath&amp;lt;/code&amp;gt; variable in &amp;lt;code&amp;gt;/etc/conf.d/jellyfin&amp;lt;/code&amp;gt;. ({{MR|69924}})&lt;br /&gt;
&lt;br /&gt;
Jellyfin was disabled for ARM architectures (&amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;armv7&amp;lt;/code&amp;gt;) and is only available for &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;. ({{Issue|16613}})&lt;br /&gt;
&lt;br /&gt;
=== Bats ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;main/bats&amp;lt;/code&amp;gt; was renamed to &amp;lt;code&amp;gt;main/bats-core&amp;lt;/code&amp;gt;. There is now a meta package &amp;lt;code&amp;gt;community/bats&amp;lt;/code&amp;gt; which contains:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|bats-core}}&lt;br /&gt;
* {{pkg|bats-file}}&lt;br /&gt;
* {{pkg|bats-support}}&lt;br /&gt;
* {{pkg|bats-assert}}&lt;br /&gt;
&lt;br /&gt;
=== Xen 4.19 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;qemu-traditional&#039;&#039; and &#039;&#039;stubdom&#039;&#039; are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12&lt;br /&gt;
&lt;br /&gt;
There is still the {{pkg|xen-qemu}} package, but the regular {{pkg|qemu}} aport [https://git.alpinelinux.org/aports/commit/?id=a9249e2e0de827e88d84c01f9731aeebd248be13 is now built with Xen support], so a {{pkg|qemu-system-*}} package can be used instead.&lt;br /&gt;
&lt;br /&gt;
You can choose to use it in your &#039;&#039;xl.cfg(1)&#039;&#039; like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
device_model_override = &amp;quot;/usr/bin/qemu-system-x86_64&amp;quot;&lt;br /&gt;
device_model_version = &amp;quot;qemu-xen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== uutils-coreutils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|uutils-coreutils}} is repackaged as a sub-package to {{pkg|uutils}} in such a way as to be a drop-in replacement for GNU {{pkg|coreutils}}.&lt;br /&gt;
&lt;br /&gt;
If you have both {{pkg|uutils-coreutils}} and {{pkg|coreutils}} installed, the latter will be &#039;&#039;&#039;purged&#039;&#039;&#039; and its symlinks replaced with ones pointing to the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary. The &amp;lt;code&amp;gt;/usr/bin/uutils-*&amp;lt;/code&amp;gt; symlinks, previously provided by {{pkg|uutils-coreutils}}, no longer exist.&lt;br /&gt;
&lt;br /&gt;
If you prefer to use GNU {{pkg|coreutils}}, remove the {{pkg|uutils-coreutils}} package before upgrading, and then add the {{pkg|uutils}} package, containing the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
&lt;br /&gt;
A few parts of the {{pkg|uutils}} aport are also split into {{pkg|uutils-*}} subpackages, to avoid conflicts or other issues.&lt;br /&gt;
&lt;br /&gt;
=== linux-firmware ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-firmware}} is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that &amp;lt;code&amp;gt;CONFIG_FW_LOADER_COMPRESS_ZSTD=y&amp;lt;/code&amp;gt; is set in your configuration.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* busybox 1.37&lt;br /&gt;
* GCC 14.2&lt;br /&gt;
* LLVM 19&lt;br /&gt;
* Go 1.23&lt;br /&gt;
* Rust 1.83&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* GNOME 47&lt;br /&gt;
* KDE Plasma 6.2&lt;br /&gt;
* LXQt 2.1&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* wlroots 18&lt;br /&gt;
&lt;br /&gt;
=== GCC 14 ===&lt;br /&gt;
&lt;br /&gt;
The Gnu Compiler Collection was upgraded to 14.2.0 and as a result, all packages built with {{pkg|gcc}} in Alpine 3.21 are compiled with GCC 14.2.0.&lt;br /&gt;
&lt;br /&gt;
Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html&lt;br /&gt;
&lt;br /&gt;
=== LXQt 2.1 ===&lt;br /&gt;
&lt;br /&gt;
LXQt has been updated to release 2.1.0 &lt;br /&gt;
* It now uses Qt6&lt;br /&gt;
* Many parts of LXQt are now Wayland ready¹, but Wayland ports of the following are pending: {{pkg|screengrab}}, {{pkg|lxqt-globalkeys}}, and keyboard indicator, some input settings, as well as settings for  monitor, power button, and screen locker.&lt;br /&gt;
* LXQt Panel has a new default application menu called Fancy Menu.&lt;br /&gt;
¹ [https://github.com/lxqt/lxqt-wayland-session lxqt-wayland-session] has not been packaged yet, but most folks wanting to test on Wayland will want to use it.&lt;br /&gt;
&lt;br /&gt;
=== Linux 6.12 ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21.0 ships Linux 6.12.1 in the {{pkg|linux-lts}} package.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 17 ===&lt;br /&gt;
&lt;br /&gt;
This release features {{pkg|postgresql17}}. We dropped support for {{pkg|postgresql14}}, and moved {{pkg|postgreSQL15}} from main to community.&lt;br /&gt;
&lt;br /&gt;
=== LLVM 19 ===&lt;br /&gt;
&lt;br /&gt;
We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: {{pkg|llvm19}}, {{pkg|llvm18}}, {{pkg|llvm17}}, {{pkg|llvm16}}, {{pkg|llvm15}}.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== Disabled packages due to FTBS ===&lt;br /&gt;
&lt;br /&gt;
The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* {{pkg|hplip}} ({{Issue|16685}})&lt;br /&gt;
* {{pkg|imageflow}} ({{Issue|16679}})&lt;br /&gt;
* {{pkg|kdevelop}} ({{MR|75839}})&lt;br /&gt;
* {{pkg|postgresql-citus}} ({{Issue|16580}})&lt;br /&gt;
* {{pkg|uvicorn}} ({{Issue|16646}})&lt;br /&gt;
* {{pkg|vulkan-validation-layers}} ({{Issue|16686}})&lt;br /&gt;
&lt;br /&gt;
=== ISC DHCP ===&lt;br /&gt;
&lt;br /&gt;
If you are still running an ISC DHCP server, you are advised to migrate to a maintained alternative &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to the 3.21 release.&lt;br /&gt;
&lt;br /&gt;
ISC DHCP has been EoL since 2022. They have a guide for migrating to {{pkg|kea}} here: https://www.isc.org/dhcp_migration/&lt;br /&gt;
&lt;br /&gt;
Up to, and including, the 3.20 version of Alpine, the {{pkg|dhcp|branch=v3.20}} aport has the subpackage {{pkg|keama|branch=v3.20}} that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.&lt;br /&gt;
&lt;br /&gt;
Alternative DHCP servers packaged in Alpine include:&lt;br /&gt;
* {{pkg|kea}}&lt;br /&gt;
* {{pkg|freeradius-dhcp}}&lt;br /&gt;
* {{pkg|dnsmasq}}&lt;br /&gt;
* udhcpd - packaged in {{pkg|busybox-extras}}&lt;br /&gt;
&lt;br /&gt;
=== Gogs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gogs&amp;lt;/code&amp;gt; was removed due to multiple high-severity vulnerabilities for which issues have remained open for a year. The developers of Gogs were contacted multiple times by the Forgejo team but unfortunately received no response. Therefore we have removed Gogs from our repositories. ({{MR|75304}})&lt;br /&gt;
&lt;br /&gt;
Please consider migrating to {{pkg|forgejo|branch=edge|arch=}} or {{pkg|gitea|branch=edge|arch=}}. Both forks are available in our community repo.&lt;br /&gt;
&lt;br /&gt;
The Gitea fork of Gogs was created in 2016 by contributors who were frustrated with the single-maintainer management model of Gogs. Forgejo is a fork of Gitea which was created as a result of the for-profit company Gitea Ltd taking over maintainership (see also https://forgejo.org/compare-to-gitea/).&lt;br /&gt;
&lt;br /&gt;
=== neofetch ===&lt;br /&gt;
&lt;br /&gt;
The upstream repository was archived in April and became unmaintained, therefore we have removed it from our repositories. {{pkg|fastfetch}} provides similar functionality.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Draft_Release_Notes_for_Alpine_3.21.0&amp;diff=28090</id>
		<title>Draft Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Draft_Release_Notes_for_Alpine_3.21.0&amp;diff=28090"/>
		<updated>2024-12-05T10:50:13Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Ncopa moved page Draft Release Notes for Alpine 3.21.0 to Release Notes for Alpine 3.21.0 over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Release Notes for Alpine 3.21.0]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28089</id>
		<title>Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28089"/>
		<updated>2024-12-05T10:50:13Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Ncopa moved page Draft Release Notes for Alpine 3.21.0 to Release Notes for Alpine 3.21.0 over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH service requires restart ===&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; release, and on, of {{pkg|openssh}}, {{pkg|openssh-server}} is split into two binaries (&amp;lt;code&amp;gt;/usr/lib/ssh/sshd-session&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/sbin/sshd&amp;lt;/code&amp;gt;). Due to this change, it will not be possible to &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; into a system that has upgraded from a release prior to &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; to this release or later, without restarting the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html&lt;br /&gt;
&lt;br /&gt;
Managing services has always been out-of-scope for {{pkg|apk-tools}}, but this one time we will &#039;&#039;&#039;make an exception&#039;&#039;&#039; when the following conditions are met:&lt;br /&gt;
# You have both the {{pkg|openssh-server}} and {{pkg|openssh-server-common-openrc}} packages installed at a version lower than &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service is started&lt;br /&gt;
&lt;br /&gt;
We will then, post {{pkg|openssh-server}} upgrade, have a &amp;lt;code&amp;gt;post-upgrade&amp;lt;/code&amp;gt; script that will:&lt;br /&gt;
# Print a message on what is about to happen and why&lt;br /&gt;
# Restart the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service&lt;br /&gt;
# If the command to restart the service fails for any reason, a warning message will be printed and an error code returned to &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://bugzilla.mindrot.org/show_bug.cgi?id=3706&lt;br /&gt;
* https://git.alpinelinux.org/aports/commit/?id=6adff08ae09961d4eea66b55a8cca14d3941fb53&lt;br /&gt;
&lt;br /&gt;
=== New loongarch64 architecture ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21 is the first release which is available for &amp;lt;code&amp;gt;loongarch64&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
Plans for /usr-merge are underway and we should be able to finalize it in Alpine Linux, version 3.22.&lt;br /&gt;
&lt;br /&gt;
Much preparation has gone 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 &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; to their counterparts in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. As part of the merge, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be mounted from the initramfs to make sure everybody has all necessary binaries in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Users with installations where &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care and report any issues.&#039;&#039;&#039;  They should also ensure that an entry &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is added to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; before upgrading, and all modules required to mount &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; from the initramfs are added to mkinitfs configuration. New/fresh installations of v3.21 will work out of the box without modification.&lt;br /&gt;
&lt;br /&gt;
If you have one of these setups, and have doubts about the configuration, you can open an [https://gitlab.alpinelinux.org/alpine/aports/-/issues/new issue] and ping &amp;lt;code&amp;gt;@pabloyoyoista&amp;lt;/code&amp;gt;. We will also publish a blog post soon with further information on the timeline and progress of the merge, as well as how the changes may affect users.&lt;br /&gt;
&lt;br /&gt;
Please note that this setup is already not supported.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&lt;br /&gt;
Jellyfin now uses the recommended fork of ffmpeg called {{pkg|jellyfin-ffmpeg}} by default. If you want to change the default, take a look at the &amp;lt;code&amp;gt;ffmpegpath&amp;lt;/code&amp;gt; variable in &amp;lt;code&amp;gt;/etc/conf.d/jellyfin&amp;lt;/code&amp;gt;. ({{MR|69924}})&lt;br /&gt;
&lt;br /&gt;
Jellyfin was disabled for ARM architectures (&amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;armv7&amp;lt;/code&amp;gt;) and is only available for &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;. ({{Issue|16613}})&lt;br /&gt;
&lt;br /&gt;
=== Bats ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;main/bats&amp;lt;/code&amp;gt; was renamed to &amp;lt;code&amp;gt;main/bats-core&amp;lt;/code&amp;gt;. There is now a meta package &amp;lt;code&amp;gt;community/bats&amp;lt;/code&amp;gt; which contains:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|bats-core}}&lt;br /&gt;
* {{pkg|bats-file}}&lt;br /&gt;
* {{pkg|bats-support}}&lt;br /&gt;
* {{pkg|bats-assert}}&lt;br /&gt;
&lt;br /&gt;
=== Xen 4.19 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;qemu-traditional&#039;&#039; and &#039;&#039;stubdom&#039;&#039; are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12&lt;br /&gt;
&lt;br /&gt;
There is still the {{pkg|xen-qemu}} package, but the regular {{pkg|qemu}} aport [https://git.alpinelinux.org/aports/commit/?id=a9249e2e0de827e88d84c01f9731aeebd248be13 is now built with Xen support], so a {{pkg|qemu-system-*}} package can be used instead.&lt;br /&gt;
&lt;br /&gt;
You can choose to use it in your &#039;&#039;xl.cfg(1)&#039;&#039; like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
device_model_override = &amp;quot;/usr/bin/qemu-system-x86_64&amp;quot;&lt;br /&gt;
device_model_version = &amp;quot;qemu-xen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== uutils-coreutils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|uutils-coreutils}} is repackaged as a sub-package to {{pkg|uutils}} in such a way as to be a drop-in replacement for GNU {{pkg|coreutils}}.&lt;br /&gt;
&lt;br /&gt;
If you have both {{pkg|uutils-coreutils}} and {{pkg|coreutils}} installed, the latter will be &#039;&#039;&#039;purged&#039;&#039;&#039; and its symlinks replaced with ones pointing to the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary. The &amp;lt;code&amp;gt;/usr/bin/uutils-*&amp;lt;/code&amp;gt; symlinks, previously provided by {{pkg|uutils-coreutils}}, no longer exist.&lt;br /&gt;
&lt;br /&gt;
If you prefer to use GNU {{pkg|coreutils}}, remove the {{pkg|uutils-coreutils}} package before upgrading, and then add the {{pkg|uutils}} package, containing the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
&lt;br /&gt;
A few parts of the {{pkg|uutils}} aport are also split into {{pkg|uutils-*}} subpackages, to avoid conflicts or other issues.&lt;br /&gt;
&lt;br /&gt;
=== linux-firmware ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-firmware}} is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that &amp;lt;code&amp;gt;CONFIG_FW_LOADER_COMPRESS_ZSTD=y&amp;lt;/code&amp;gt; is set in your configuration.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* busybox 1.37&lt;br /&gt;
* GCC 14.2&lt;br /&gt;
* LLVM 19&lt;br /&gt;
* Go 1.23&lt;br /&gt;
* Rust 1.83&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* GNOME 47&lt;br /&gt;
* KDE Plasma 6.2&lt;br /&gt;
* LXQt 2.1&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* wlroots 18&lt;br /&gt;
&lt;br /&gt;
=== GCC 14 ===&lt;br /&gt;
&lt;br /&gt;
The Gnu Compiler Collection was upgraded to 14.2.0 and as a result, all packages built with {{pkg|gcc}} in Alpine 3.21 are compiled with GCC 14.2.0.&lt;br /&gt;
&lt;br /&gt;
Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html&lt;br /&gt;
&lt;br /&gt;
=== LXQt 2.1 ===&lt;br /&gt;
&lt;br /&gt;
LXQt has been updated to release 2.1.0 &lt;br /&gt;
* It now uses Qt6&lt;br /&gt;
* Many parts of LXQt are now Wayland ready¹, but Wayland ports of the following are pending: {{pkg|screengrab}}, {{pkg|lxqt-globalkeys}}, and keyboard indicator, some input settings, as well as settings for  monitor, power button, and screen locker.&lt;br /&gt;
* LXQt Panel has a new default application menu called Fancy Menu.&lt;br /&gt;
¹ [https://github.com/lxqt/lxqt-wayland-session lxqt-wayland-session] has not been packaged yet, but most folks wanting to test on Wayland will want to use it.&lt;br /&gt;
&lt;br /&gt;
=== Linux 6.12 ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21.0 ships Linux 6.12.1 in the {{pkg|linux-lts}} package.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 17 ===&lt;br /&gt;
&lt;br /&gt;
This release features {{pkg|postgresql17}}. We dropped support for {{pkg|postgresql14}}, and moved {{pkg|postgreSQL15}} from main to community.&lt;br /&gt;
&lt;br /&gt;
=== LLVM 19 ===&lt;br /&gt;
&lt;br /&gt;
We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: {{pkg|llvm19}}, {{pkg|llvm18}}, {{pkg|llvm17}}, {{pkg|llvm16}}, {{pkg|llvm15}}.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== Disabled packages due to FTBS ===&lt;br /&gt;
&lt;br /&gt;
The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* {{pkg|hplip}} ({{Issue|16685}})&lt;br /&gt;
* {{pkg|imageflow}} ({{Issue|16679}})&lt;br /&gt;
* {{pkg|kdevelop}} ({{MR|75839}})&lt;br /&gt;
* {{pkg|postgresql-citus}} ({{Issue|16580}})&lt;br /&gt;
* {{pkg|uvicorn}} ({{Issue|16646}})&lt;br /&gt;
* {{pkg|vulkan-validation-layers}} ({{Issue|16686}})&lt;br /&gt;
&lt;br /&gt;
=== ISC DHCP ===&lt;br /&gt;
&lt;br /&gt;
If you are still running an ISC DHCP server, you are advised to migrate to a maintained alternative &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to the 3.21 release.&lt;br /&gt;
&lt;br /&gt;
ISC DHCP has been EoL since 2022. They have a guide for migrating to {{pkg|kea}} here: https://www.isc.org/dhcp_migration/&lt;br /&gt;
&lt;br /&gt;
Up to, and including, the 3.20 version of Alpine, the {{pkg|dhcp|branch=v3.20}} aport has the subpackage {{pkg|keama|branch=v3.20}} that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.&lt;br /&gt;
&lt;br /&gt;
Alternative DHCP servers packaged in Alpine include:&lt;br /&gt;
* {{pkg|kea}}&lt;br /&gt;
* {{pkg|freeradius-dhcp}}&lt;br /&gt;
* {{pkg|dnsmasq}}&lt;br /&gt;
* udhcpd - packaged in {{pkg|busybox-extras}}&lt;br /&gt;
&lt;br /&gt;
=== Gogs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gogs&amp;lt;/code&amp;gt; was removed due to multiple high-severity vulnerabilities for which issues have remained open for a year. The developers of Gogs were contacted multiple times by the Forgejo team but unfortunately received no response. Therefore we have removed Gogs from our repositories. ({{MR|75304}})&lt;br /&gt;
&lt;br /&gt;
Please consider migrating to {{pkg|forgejo|branch=edge|arch=}} or {{pkg|gitea|branch=edge|arch=}}. Both forks are available in our community repo.&lt;br /&gt;
&lt;br /&gt;
The Gitea fork of Gogs was created in 2016 by contributors who were frustrated with the single-maintainer management model of Gogs. Forgejo is a fork of Gitea which was created as a result of the for-profit company Gitea Ltd taking over maintainership (see also https://forgejo.org/compare-to-gitea/).&lt;br /&gt;
&lt;br /&gt;
=== neofetch ===&lt;br /&gt;
&lt;br /&gt;
The upstream repository was archived in April and became unmaintained, therefore we have removed it from our repositories. {{pkg|fastfetch}} provides similar functionality.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28088</id>
		<title>Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28088"/>
		<updated>2024-12-05T10:35:09Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Linux 6.12 */ remove irrelevant paragraph about linux-headers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH service requires restart ===&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; release, and on, of {{pkg|openssh}}, {{pkg|openssh-server}} is split into two binaries (&amp;lt;code&amp;gt;/usr/lib/ssh/sshd-session&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/sbin/sshd&amp;lt;/code&amp;gt;). Due to this change, it will not be possible to &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; into a system that has upgraded from a release prior to &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; to this release or later, without restarting the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html&lt;br /&gt;
&lt;br /&gt;
Managing services has always been out-of-scope for {{pkg|apk-tools}}, but this one time we will &#039;&#039;&#039;make an exception&#039;&#039;&#039; when the following conditions are met:&lt;br /&gt;
# You have both the {{pkg|openssh-server}} and {{pkg|openssh-server-common-openrc}} packages installed at a version lower than &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service is started&lt;br /&gt;
&lt;br /&gt;
We will then, post {{pkg|openssh-server}} upgrade, have a &amp;lt;code&amp;gt;post-upgrade&amp;lt;/code&amp;gt; script that will:&lt;br /&gt;
# Print a message on what is about to happen and why&lt;br /&gt;
# Restart the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service&lt;br /&gt;
# If the command to restart the service fails for any reason, a warning message will be printed and an error code returned to &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://bugzilla.mindrot.org/show_bug.cgi?id=3706&lt;br /&gt;
* https://git.alpinelinux.org/aports/commit/?id=6adff08ae09961d4eea66b55a8cca14d3941fb53&lt;br /&gt;
&lt;br /&gt;
=== New loongarch64 architecture ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21 is the first release which is available for &amp;lt;code&amp;gt;loongarch64&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
Plans for /usr-merge are underway and we should be able to finalize it in Alpine Linux, version 3.22.&lt;br /&gt;
&lt;br /&gt;
Much preparation has gone 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 &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; to their counterparts in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. As part of the merge, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be mounted from the initramfs to make sure everybody has all necessary binaries in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Users with installations where &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care and report any issues.&#039;&#039;&#039;  They should also ensure that an entry &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is added to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; before upgrading, and all modules required to mount &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; from the initramfs are added to mkinitfs configuration. New/fresh installations of v3.21 will work out of the box without modification.&lt;br /&gt;
&lt;br /&gt;
If you have one of these setups, and have doubts about the configuration, you can open an [https://gitlab.alpinelinux.org/alpine/aports/-/issues/new issue] and ping &amp;lt;code&amp;gt;@pabloyoyoista&amp;lt;/code&amp;gt;. We will also publish a blog post soon with further information on the timeline and progress of the merge, as well as how the changes may affect users.&lt;br /&gt;
&lt;br /&gt;
Please note that this setup is already not supported.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&lt;br /&gt;
Jellyfin now uses the recommended fork of ffmpeg called {{pkg|jellyfin-ffmpeg}} by default. If you want to change the default, take a look at the &amp;lt;code&amp;gt;ffmpegpath&amp;lt;/code&amp;gt; variable in &amp;lt;code&amp;gt;/etc/conf.d/jellyfin&amp;lt;/code&amp;gt;. ({{MR|69924}})&lt;br /&gt;
&lt;br /&gt;
Jellyfin was disabled for ARM architectures (&amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;armv7&amp;lt;/code&amp;gt;) and is only available for &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;. ({{Issue|16613}})&lt;br /&gt;
&lt;br /&gt;
=== Bats ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;main/bats&amp;lt;/code&amp;gt; was renamed to &amp;lt;code&amp;gt;main/bats-core&amp;lt;/code&amp;gt;. There is now a meta package &amp;lt;code&amp;gt;community/bats&amp;lt;/code&amp;gt; which contains:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|bats-core}}&lt;br /&gt;
* {{pkg|bats-file}}&lt;br /&gt;
* {{pkg|bats-support}}&lt;br /&gt;
* {{pkg|bats-assert}}&lt;br /&gt;
&lt;br /&gt;
=== Xen 4.19 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;qemu-traditional&#039;&#039; and &#039;&#039;stubdom&#039;&#039; are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12&lt;br /&gt;
&lt;br /&gt;
There is still the {{pkg|xen-qemu}} package, but the regular {{pkg|qemu}} aport [https://git.alpinelinux.org/aports/commit/?id=a9249e2e0de827e88d84c01f9731aeebd248be13 is now built with Xen support], so a {{pkg|qemu-system-*}} package can be used instead.&lt;br /&gt;
&lt;br /&gt;
You can choose to use it in your &#039;&#039;xl.cfg(1)&#039;&#039; like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
device_model_override = &amp;quot;/usr/bin/qemu-system-x86_64&amp;quot;&lt;br /&gt;
device_model_version = &amp;quot;qemu-xen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== uutils-coreutils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|uutils-coreutils}} is repackaged as a sub-package to {{pkg|uutils}} in such a way as to be a drop-in replacement for GNU {{pkg|coreutils}}.&lt;br /&gt;
&lt;br /&gt;
If you have both {{pkg|uutils-coreutils}} and {{pkg|coreutils}} installed, the latter will be &#039;&#039;&#039;purged&#039;&#039;&#039; and its symlinks replaced with ones pointing to the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary. The &amp;lt;code&amp;gt;/usr/bin/uutils-*&amp;lt;/code&amp;gt; symlinks, previously provided by {{pkg|uutils-coreutils}}, no longer exist.&lt;br /&gt;
&lt;br /&gt;
If you prefer to use GNU {{pkg|coreutils}}, remove the {{pkg|uutils-coreutils}} package before upgrading, and then add the {{pkg|uutils}} package, containing the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
&lt;br /&gt;
A few parts of the {{pkg|uutils}} aport are also split into {{pkg|uutils-*}} subpackages, to avoid conflicts or other issues.&lt;br /&gt;
&lt;br /&gt;
=== linux-firmware ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-firmware}} is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that &amp;lt;code&amp;gt;CONFIG_FW_LOADER_COMPRESS_ZSTD=y&amp;lt;/code&amp;gt; is set in your configuration.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* busybox 1.37&lt;br /&gt;
* GCC 14.2&lt;br /&gt;
* LLVM 19&lt;br /&gt;
* Go 1.23&lt;br /&gt;
* Rust 1.83&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* GNOME 47&lt;br /&gt;
* KDE Plasma 6.2&lt;br /&gt;
* LXQt 2.1&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* wlroots 18&lt;br /&gt;
&lt;br /&gt;
=== GCC 14 ===&lt;br /&gt;
&lt;br /&gt;
The Gnu Compiler Collection was upgraded to 14.2.0 and as a result, all packages built with {{pkg|gcc}} in Alpine 3.21 are compiled with GCC 14.2.0.&lt;br /&gt;
&lt;br /&gt;
Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html&lt;br /&gt;
&lt;br /&gt;
=== LXQt 2.1 ===&lt;br /&gt;
&lt;br /&gt;
LXQt has been updated to release 2.1.0 &lt;br /&gt;
* It now uses Qt6&lt;br /&gt;
* Many parts of LXQt are now Wayland ready¹, but Wayland ports of the following are pending: {{pkg|screengrab}}, {{pkg|lxqt-globalkeys}}, and keyboard indicator, some input settings, as well as settings for  monitor, power button, and screen locker.&lt;br /&gt;
* LXQt Panel has a new default application menu called Fancy Menu.&lt;br /&gt;
¹ [https://github.com/lxqt/lxqt-wayland-session lxqt-wayland-session] has not been packaged yet, but most folks wanting to test on Wayland will want to use it.&lt;br /&gt;
&lt;br /&gt;
=== Linux 6.12 ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21.0 ships Linux 6.12.1 in the {{pkg|linux-lts}} package.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 17 ===&lt;br /&gt;
&lt;br /&gt;
This release features {{pkg|postgresql17}}. We dropped support for {{pkg|postgresql14}}, and moved {{pkg|postgreSQL15}} from main to community.&lt;br /&gt;
&lt;br /&gt;
=== LLVM 19 ===&lt;br /&gt;
&lt;br /&gt;
We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: {{pkg|llvm19}}, {{pkg|llvm18}}, {{pkg|llvm17}}, {{pkg|llvm16}}, {{pkg|llvm15}}.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== Disabled packages due to FTBS ===&lt;br /&gt;
&lt;br /&gt;
The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* {{pkg|hplip}} ({{Issue|16685}})&lt;br /&gt;
* {{pkg|imageflow}} ({{Issue|16679}})&lt;br /&gt;
* {{pkg|kdevelop}} ({{MR|75839}})&lt;br /&gt;
* {{pkg|postgresql-citus}} ({{Issue|16580}})&lt;br /&gt;
* {{pkg|uvicorn}} ({{Issue|16646}})&lt;br /&gt;
* {{pkg|vulkan-validation-layers}} ({{Issue|16686}})&lt;br /&gt;
&lt;br /&gt;
=== ISC DHCP ===&lt;br /&gt;
&lt;br /&gt;
If you are still running an ISC DHCP server, you are advised to migrate to a maintained alternative &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to the 3.21 release.&lt;br /&gt;
&lt;br /&gt;
ISC DHCP has been EoL since 2022. They have a guide for migrating to {{pkg|kea}} here: https://www.isc.org/dhcp_migration/&lt;br /&gt;
&lt;br /&gt;
Up to, and including, the 3.20 version of Alpine, the {{pkg|dhcp|branch=v3.20}} aport has the subpackage {{pkg|keama|branch=v3.20}} that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.&lt;br /&gt;
&lt;br /&gt;
Alternative DHCP servers packaged in Alpine include:&lt;br /&gt;
* {{pkg|kea}}&lt;br /&gt;
* {{pkg|freeradius-dhcp}}&lt;br /&gt;
* {{pkg|dnsmasq}}&lt;br /&gt;
* udhcpd - packaged in {{pkg|busybox-extras}}&lt;br /&gt;
&lt;br /&gt;
=== Gogs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gogs&amp;lt;/code&amp;gt; was removed due to multiple high-severity vulnerabilities for which issues have remained open for a year. The developers of Gogs were contacted multiple times by the Forgejo team but unfortunately received no response. Therefore we have removed Gogs from our repositories. ({{MR|75304}})&lt;br /&gt;
&lt;br /&gt;
Please consider migrating to {{pkg|forgejo|branch=edge|arch=}} or {{pkg|gitea|branch=edge|arch=}}. Both forks are available in our community repo.&lt;br /&gt;
&lt;br /&gt;
The Gitea fork of Gogs was created in 2016 by contributors who were frustrated with the single-maintainer management model of Gogs. Forgejo is a fork of Gitea which was created as a result of the for-profit company Gitea Ltd taking over maintainership (see also https://forgejo.org/compare-to-gitea/).&lt;br /&gt;
&lt;br /&gt;
=== neofetch ===&lt;br /&gt;
&lt;br /&gt;
The upstream repository was archived in April and became unmaintained, therefore we have removed it from our repositories. {{pkg|fastfetch}} provides similar functionality.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28087</id>
		<title>Release Notes for Alpine 3.21.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.21.0&amp;diff=28087"/>
		<updated>2024-12-05T10:33:19Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Preparations for /usr-merge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As always, make sure to read [[Upgrading Alpine to a new major release]] when upgrading to a new release.&lt;br /&gt;
&lt;br /&gt;
If you experience any issues with the upgrade, please let us know and file an issue in our repositories.&lt;br /&gt;
&lt;br /&gt;
== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== OpenSSH service requires restart ===&lt;br /&gt;
&lt;br /&gt;
From the &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; release, and on, of {{pkg|openssh}}, {{pkg|openssh-server}} is split into two binaries (&amp;lt;code&amp;gt;/usr/lib/ssh/sshd-session&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/sbin/sshd&amp;lt;/code&amp;gt;). Due to this change, it will not be possible to &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt; into a system that has upgraded from a release prior to &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt; to this release or later, without restarting the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
We have previously brought attention to this - https://alpinelinux.org/posts/2024-07-02-openssh-upgrade-edge.html&lt;br /&gt;
&lt;br /&gt;
Managing services has always been out-of-scope for {{pkg|apk-tools}}, but this one time we will &#039;&#039;&#039;make an exception&#039;&#039;&#039; when the following conditions are met:&lt;br /&gt;
# You have both the {{pkg|openssh-server}} and {{pkg|openssh-server-common-openrc}} packages installed at a version lower than &amp;lt;code&amp;gt;9.8_p1&amp;lt;/code&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service is started&lt;br /&gt;
&lt;br /&gt;
We will then, post {{pkg|openssh-server}} upgrade, have a &amp;lt;code&amp;gt;post-upgrade&amp;lt;/code&amp;gt; script that will:&lt;br /&gt;
# Print a message on what is about to happen and why&lt;br /&gt;
# Restart the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service&lt;br /&gt;
# If the command to restart the service fails for any reason, a warning message will be printed and an error code returned to &amp;lt;code&amp;gt;apk&amp;lt;/code&amp;gt;, to be noticed by the end of the package upgrades (this will not interrupt the upgrade process).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://bugzilla.mindrot.org/show_bug.cgi?id=3706&lt;br /&gt;
* https://git.alpinelinux.org/aports/commit/?id=6adff08ae09961d4eea66b55a8cca14d3941fb53&lt;br /&gt;
&lt;br /&gt;
=== New loongarch64 architecture ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21 is the first release which is available for &amp;lt;code&amp;gt;loongarch64&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to the support of the team of Loongson dedicated to supporting Alpine Linux and many other contributors.&lt;br /&gt;
&lt;br /&gt;
=== Preparations for /usr-merge ===&lt;br /&gt;
&lt;br /&gt;
Plans for /usr-merge are underway and we should be able to finalize it in Alpine Linux, version 3.22.&lt;br /&gt;
&lt;br /&gt;
Much preparation has gone 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 &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt; to their counterparts in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. As part of the merge, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be mounted from the initramfs to make sure everybody has all necessary binaries in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Users with installations where &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; are on separate filesystems (partitions, volumes, disk drives or other) should proceed with care and report any issues.&#039;&#039;&#039;  They should also ensure that an entry &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; is added to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; before upgrading, and all modules required to mount &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; from the initramfs are added to mkinitfs configuration. New/fresh installations of v3.21 will work out of the box without modification.&lt;br /&gt;
&lt;br /&gt;
If you have one of these setups, and have doubts about the configuration, you can open an [https://gitlab.alpinelinux.org/alpine/aports/-/issues/new issue] and ping &amp;lt;code&amp;gt;@pabloyoyoista&amp;lt;/code&amp;gt;. We will also publish a blog post soon with further information on the timeline and progress of the merge, as well as how the changes may affect users.&lt;br /&gt;
&lt;br /&gt;
Please note that this setup is already not supported.&lt;br /&gt;
&lt;br /&gt;
== Significant changes ==&lt;br /&gt;
&lt;br /&gt;
=== Jellyfin ===&lt;br /&gt;
&lt;br /&gt;
Jellyfin now uses the recommended fork of ffmpeg called {{pkg|jellyfin-ffmpeg}} by default. If you want to change the default, take a look at the &amp;lt;code&amp;gt;ffmpegpath&amp;lt;/code&amp;gt; variable in &amp;lt;code&amp;gt;/etc/conf.d/jellyfin&amp;lt;/code&amp;gt;. ({{MR|69924}})&lt;br /&gt;
&lt;br /&gt;
Jellyfin was disabled for ARM architectures (&amp;lt;code&amp;gt;aarch64&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;armv7&amp;lt;/code&amp;gt;) and is only available for &amp;lt;code&amp;gt;x86_64&amp;lt;/code&amp;gt;. ({{Issue|16613}})&lt;br /&gt;
&lt;br /&gt;
=== Bats ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;main/bats&amp;lt;/code&amp;gt; was renamed to &amp;lt;code&amp;gt;main/bats-core&amp;lt;/code&amp;gt;. There is now a meta package &amp;lt;code&amp;gt;community/bats&amp;lt;/code&amp;gt; which contains:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|bats-core}}&lt;br /&gt;
* {{pkg|bats-file}}&lt;br /&gt;
* {{pkg|bats-support}}&lt;br /&gt;
* {{pkg|bats-assert}}&lt;br /&gt;
&lt;br /&gt;
=== Xen 4.19 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;qemu-traditional&#039;&#039; and &#039;&#039;stubdom&#039;&#039; are removed from the build in this release, see https://git.alpinelinux.org/aports/commit/?id=24217a24da3924039b000eb17c04bf3f01bf1f12&lt;br /&gt;
&lt;br /&gt;
There is still the {{pkg|xen-qemu}} package, but the regular {{pkg|qemu}} aport [https://git.alpinelinux.org/aports/commit/?id=a9249e2e0de827e88d84c01f9731aeebd248be13 is now built with Xen support], so a {{pkg|qemu-system-*}} package can be used instead.&lt;br /&gt;
&lt;br /&gt;
You can choose to use it in your &#039;&#039;xl.cfg(1)&#039;&#039; like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
device_model_override = &amp;quot;/usr/bin/qemu-system-x86_64&amp;quot;&lt;br /&gt;
device_model_version = &amp;quot;qemu-xen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== uutils-coreutils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|uutils-coreutils}} is repackaged as a sub-package to {{pkg|uutils}} in such a way as to be a drop-in replacement for GNU {{pkg|coreutils}}.&lt;br /&gt;
&lt;br /&gt;
If you have both {{pkg|uutils-coreutils}} and {{pkg|coreutils}} installed, the latter will be &#039;&#039;&#039;purged&#039;&#039;&#039; and its symlinks replaced with ones pointing to the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary. The &amp;lt;code&amp;gt;/usr/bin/uutils-*&amp;lt;/code&amp;gt; symlinks, previously provided by {{pkg|uutils-coreutils}}, no longer exist.&lt;br /&gt;
&lt;br /&gt;
If you prefer to use GNU {{pkg|coreutils}}, remove the {{pkg|uutils-coreutils}} package before upgrading, and then add the {{pkg|uutils}} package, containing the &amp;lt;code&amp;gt;/usr/bin/uutils&amp;lt;/code&amp;gt; binary.&lt;br /&gt;
&lt;br /&gt;
A few parts of the {{pkg|uutils}} aport are also split into {{pkg|uutils-*}} subpackages, to avoid conflicts or other issues.&lt;br /&gt;
&lt;br /&gt;
=== linux-firmware ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-firmware}} is now compressed with ZSTD compression. If you run a custom built Linux kernel, you need to ensure that &amp;lt;code&amp;gt;CONFIG_FW_LOADER_COMPRESS_ZSTD=y&amp;lt;/code&amp;gt; is set in your configuration.&lt;br /&gt;
&lt;br /&gt;
== Note-worthy updates ==&lt;br /&gt;
&lt;br /&gt;
As always, a lot of packages were upgraded. Make sure to read the indivdual release notes of the projects you use.&lt;br /&gt;
&lt;br /&gt;
* Linux 6.12&lt;br /&gt;
* busybox 1.37&lt;br /&gt;
* GCC 14.2&lt;br /&gt;
* LLVM 19&lt;br /&gt;
* Go 1.23&lt;br /&gt;
* Rust 1.83&lt;br /&gt;
* PHP 8.4&lt;br /&gt;
* GNOME 47&lt;br /&gt;
* KDE Plasma 6.2&lt;br /&gt;
* LXQt 2.1&lt;br /&gt;
* Qt 6.8&lt;br /&gt;
* wlroots 18&lt;br /&gt;
&lt;br /&gt;
=== GCC 14 ===&lt;br /&gt;
&lt;br /&gt;
The Gnu Compiler Collection was upgraded to 14.2.0 and as a result, all packages built with {{pkg|gcc}} in Alpine 3.21 are compiled with GCC 14.2.0.&lt;br /&gt;
&lt;br /&gt;
Make sure to read all changes: https://gcc.gnu.org/gcc-14/changes.html&lt;br /&gt;
&lt;br /&gt;
=== LXQt 2.1 ===&lt;br /&gt;
&lt;br /&gt;
LXQt has been updated to release 2.1.0 &lt;br /&gt;
* It now uses Qt6&lt;br /&gt;
* Many parts of LXQt are now Wayland ready¹, but Wayland ports of the following are pending: {{pkg|screengrab}}, {{pkg|lxqt-globalkeys}}, and keyboard indicator, some input settings, as well as settings for  monitor, power button, and screen locker.&lt;br /&gt;
* LXQt Panel has a new default application menu called Fancy Menu.&lt;br /&gt;
¹ [https://github.com/lxqt/lxqt-wayland-session lxqt-wayland-session] has not been packaged yet, but most folks wanting to test on Wayland will want to use it.&lt;br /&gt;
&lt;br /&gt;
=== Linux 6.12 ===&lt;br /&gt;
&lt;br /&gt;
Alpine 3.21.0 ships Linux 6.12.1 in the {{pkg|linux-lts}} package.&lt;br /&gt;
&lt;br /&gt;
Please note that {{pkg|linux-headers}} is still on 6.6, because the kernel was released after we kicked off our rebuilds and we coudn&#039;t ensure that the upgrade doesn&#039;t break other packages. (More about the linux-headers 6.12 upgrade: {{MR|75618}})&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 17 ===&lt;br /&gt;
&lt;br /&gt;
This release features {{pkg|postgresql17}}. We dropped support for {{pkg|postgresql14}}, and moved {{pkg|postgreSQL15}} from main to community.&lt;br /&gt;
&lt;br /&gt;
=== LLVM 19 ===&lt;br /&gt;
&lt;br /&gt;
We packaged LLVM 19 in our repositories. A total of 5 LLVM versions are supported: {{pkg|llvm19}}, {{pkg|llvm18}}, {{pkg|llvm17}}, {{pkg|llvm16}}, {{pkg|llvm15}}.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== Disabled packages due to FTBS ===&lt;br /&gt;
&lt;br /&gt;
The following packages are temporarily disabled because they failed to build. We will try to restore them as soon as possible.&lt;br /&gt;
&lt;br /&gt;
* {{pkg|hplip}} ({{Issue|16685}})&lt;br /&gt;
* {{pkg|imageflow}} ({{Issue|16679}})&lt;br /&gt;
* {{pkg|kdevelop}} ({{MR|75839}})&lt;br /&gt;
* {{pkg|postgresql-citus}} ({{Issue|16580}})&lt;br /&gt;
* {{pkg|uvicorn}} ({{Issue|16646}})&lt;br /&gt;
* {{pkg|vulkan-validation-layers}} ({{Issue|16686}})&lt;br /&gt;
&lt;br /&gt;
=== ISC DHCP ===&lt;br /&gt;
&lt;br /&gt;
If you are still running an ISC DHCP server, you are advised to migrate to a maintained alternative &#039;&#039;&#039;before&#039;&#039;&#039; upgrading to the 3.21 release.&lt;br /&gt;
&lt;br /&gt;
ISC DHCP has been EoL since 2022. They have a guide for migrating to {{pkg|kea}} here: https://www.isc.org/dhcp_migration/&lt;br /&gt;
&lt;br /&gt;
Up to, and including, the 3.20 version of Alpine, the {{pkg|dhcp|branch=v3.20}} aport has the subpackage {{pkg|keama|branch=v3.20}} that is a tool for helping with migration from ISC DHCP configuration to ISC Kea configuration.&lt;br /&gt;
&lt;br /&gt;
Alternative DHCP servers packaged in Alpine include:&lt;br /&gt;
* {{pkg|kea}}&lt;br /&gt;
* {{pkg|freeradius-dhcp}}&lt;br /&gt;
* {{pkg|dnsmasq}}&lt;br /&gt;
* udhcpd - packaged in {{pkg|busybox-extras}}&lt;br /&gt;
&lt;br /&gt;
=== Gogs ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;gogs&amp;lt;/code&amp;gt; was removed due to multiple high-severity vulnerabilities for which issues have remained open for a year. The developers of Gogs were contacted multiple times by the Forgejo team but unfortunately received no response. Therefore we have removed Gogs from our repositories. ({{MR|75304}})&lt;br /&gt;
&lt;br /&gt;
Please consider migrating to {{pkg|forgejo|branch=edge|arch=}} or {{pkg|gitea|branch=edge|arch=}}. Both forks are available in our community repo.&lt;br /&gt;
&lt;br /&gt;
The Gitea fork of Gogs was created in 2016 by contributors who were frustrated with the single-maintainer management model of Gogs. Forgejo is a fork of Gitea which was created as a result of the for-profit company Gitea Ltd taking over maintainership (see also https://forgejo.org/compare-to-gitea/).&lt;br /&gt;
&lt;br /&gt;
=== neofetch ===&lt;br /&gt;
&lt;br /&gt;
The upstream repository was archived in April and became unmaintained, therefore we have removed it from our repositories. {{pkg|fastfetch}} provides similar functionality.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=27211</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=27211"/>
		<updated>2024-09-06T12:24:52Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.20.3&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26943</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26943"/>
		<updated>2024-07-22T15:41:54Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.20.2&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26855</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26855"/>
		<updated>2024-06-21T15:20:18Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Provision an Alpine Linux vm with virt-install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.linux-kvm.org/page/Main_Page KVM] is an free and open source virtualization solution in a kernel module. Although it is often simply referred to as KVM, the actual hypervisor is [https://www.qemu.org QEMU]. QEMU runs from user-space, but can integrate with KVM, providing better performance by leveraging the hardware from kernel-space. QEMU can virtualize x86, PowerPC, and S390 guests, amongst others. [https://libvirt.org Libvirt] is a management framework that integrates with QEMU/KVM, [[LXC]], [[Xen_Dom0|Xen]] and others.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
The following commands provide &#039;&#039;&#039;libvirt&#039;&#039;&#039; as well as &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039; and &#039;&#039;&#039;qemu-img&#039;&#039;&#039;, a necessary component for using various disk formats such as qcow2. Without qemu-img, only raw disks are available. It can also convert images between several formats like vhdx and vmdk. It also provides the metapackage &#039;&#039;&#039;qemu-modules&#039;&#039;&#039;, which provides subpackages needed for special features. In versions of Alpine before 3.13.0 these features were covered by &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039;.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add libvirt-daemon qemu-img qemu-system-x86_64 qemu-modules openrc&lt;br /&gt;
# rc-update add libvirtd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
By default, libvirt uses NAT for VM connectivity. If you want to use the default configuration, you need to load the tun module.&lt;br /&gt;
{{Cmd|# modprobe tun}}&lt;br /&gt;
&lt;br /&gt;
Add tun to autostart: &lt;br /&gt;
{{Cmd|# echo &amp;quot;tun&amp;quot; &amp;gt;&amp;gt; /etc/modules-load.d/tun.conf}}&lt;br /&gt;
&lt;br /&gt;
To make the tun module load on boot, use this command:&lt;br /&gt;
{{Cmd|# cat /etc/modules {{!}} grep tun {{!}}{{!}} echo tun &amp;gt;&amp;gt; /etc/modules}}&lt;br /&gt;
&lt;br /&gt;
If you prefer bridging a guest over your Ethernet interface, you need to make a [[Bridge#Configuration_file|bridge]].&lt;br /&gt;
&lt;br /&gt;
It&#039;s quite common to use bridges with KVM environments. But when IPv6 is used, Alpine will assign itself a link-local address as well as an SLAAC address in case there&#039;s a router sending Router Advertisements. You don&#039;t want this because you don&#039;t want to have the KVM host an IP address in every network it serves to guests. Unfortunately IPv6 can not just be disabled for the bridge via a sysctl configuration file, because the bridge might not be up when the sysctl config is applied during boot. What works is to put a post-up hook into the /etc/network/interfaces file like this:&lt;br /&gt;
 auto brlan&lt;br /&gt;
 iface brlan inet manual&lt;br /&gt;
        bridge-ports eth1.5&lt;br /&gt;
        bridge-stp 0&lt;br /&gt;
        post-up ip -6 a flush dev brlan; sysctl -w net.ipv6.conf.brlan.disable_ipv6=1&lt;br /&gt;
&lt;br /&gt;
== Management ==&lt;br /&gt;
For non-root management, you will need to add your user to the libvirt group.&lt;br /&gt;
{{Cmd|# addgroup user libvirt}}&lt;br /&gt;
&lt;br /&gt;
You can use libvirt&#039;s virsh at the CLI. It can execute commands as well as run as an interactive shell. Read its manual page and/or use the &amp;quot;help&amp;quot; command for more info. Some basic commands are:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;virsh help&lt;br /&gt;
virsh list --all&lt;br /&gt;
virsh start $domain&lt;br /&gt;
virsh shutdown $domain&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The libvirt project provides a GUI for managing hosts, called virt-manager. It handles local systems as well as remote ones via SSH.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add dbus polkit virt-manager font-terminus&lt;br /&gt;
# rc-update add dbus&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
In order to use libvirtd to remotely control KVM over ssh PolicyKit needs a .pkla informing it that this is allowed.&lt;br /&gt;
Write the following file to /etc/polkit-1/localauthority/50-local.d/50-libvirt-ssh-remote-access-policy.pkla&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;[Remote libvirt SSH access]&lt;br /&gt;
 Identity=unix-group:libvirt&lt;br /&gt;
 Action=org.libvirt.unix.manage&lt;br /&gt;
 ResultAny=yes&lt;br /&gt;
 ResultInactive=yes&lt;br /&gt;
 ResultActive=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Provision an Alpine Linux vm with virt-install ==&lt;br /&gt;
&lt;br /&gt;
You can use {{Path|virt-install}} to install Alpine in a VM. First create the {{ Path | meta-data}} and {{Path | user-data }} files.&lt;br /&gt;
{{Path|meta-data}}:&lt;br /&gt;
 hostname: alpine-vm&lt;br /&gt;
&lt;br /&gt;
{{Path|user-data}}:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#alpine-config&lt;br /&gt;
ssh_authorized_keys:&lt;br /&gt;
  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 ncopa@ncopa-desktop&lt;br /&gt;
apk:&lt;br /&gt;
  repositories:&lt;br /&gt;
    - base_url: https://dl-cdn.alpinelinux.org/alpine&lt;br /&gt;
      repos:&lt;br /&gt;
        - main&lt;br /&gt;
        - community&lt;br /&gt;
packages:&lt;br /&gt;
  - tmux&lt;br /&gt;
  - curl&lt;br /&gt;
runcmd:&lt;br /&gt;
  - rm /etc/runlevels/*/tiny-cloud*&lt;br /&gt;
  - lbu include /root/.ssh /home/alpine/.ssh&lt;br /&gt;
  - ERASE_DISKS=/dev/vda setup-disk -m sys /dev/vda&lt;br /&gt;
  - poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
{{Cmd | &amp;lt;nowiki&amp;gt;virt-install --name alpine-vm \&lt;br /&gt;
    --disk size=4 \&lt;br /&gt;
    --location $HOME/Downloads/alpine-virt-3.20.1-x86_64.iso,kernel=boot/vmlinuz-virt,initrd=boot/initramfs-virt \&lt;br /&gt;
    --extra-args console=ttyS0 \&lt;br /&gt;
    --osinfo alpinelinux3.19 \&lt;br /&gt;
    --graphics none \&lt;br /&gt;
    --console pty,target_type=serial \&lt;br /&gt;
    --cloud-init meta-data=meta-data,user-data=user-data&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Guest lifecycle management ==&lt;br /&gt;
The libvirt-guests service (available from Alpine 3.13.5) allows running guests to be automatically suspended or shut down when the host is shut down or rebooted.&lt;br /&gt;
&lt;br /&gt;
The service is configured in /etc/conf.d/libvirt-guests. Enable the service with {{Cmd|# rc-update add libvirt-guests}}&lt;br /&gt;
&lt;br /&gt;
== vfio ==&lt;br /&gt;
&lt;br /&gt;
VFIO is more flexible way to do PCI passthrough. Let&#039;s suppose you want to use following ethernet card as PCI device in a VM.&lt;br /&gt;
&lt;br /&gt;
 # lspci | grep 02:00.0&lt;br /&gt;
 02:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)&lt;br /&gt;
 # lspci -n -s 02:00.0&lt;br /&gt;
 02:00.0 0200: 8086:10c9 (rev 01)&lt;br /&gt;
&lt;br /&gt;
First, create &#039;&#039;/etc/mkinitfs/features.d/vfio.modules&#039;&#039; with the following content, so mkinitfs includes the VFIO modules in the initramfs.&lt;br /&gt;
&lt;br /&gt;
 kernel/drivers/vfio/vfio.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_virqfd.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_iommu_type1.ko.*&lt;br /&gt;
 kernel/drivers/vfio/pci/vfio-pci.ko.*&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;vfio&#039;&#039; the the list of features in &#039;&#039;/etc/mkinitfs/mkinitfs.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Modify following file to instruct &#039;&#039;mkinitfs&#039;&#039; to load following module with the options and rebuild kernel ramdisk.&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/modprobe.d/vfio.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 options vfio-pci ids=8086:10c9&lt;br /&gt;
 options vfio_iommu_type1 allow_unsafe_interrupts=1&lt;br /&gt;
 softdep igb pre: vfio-pci&lt;br /&gt;
 EOF&lt;br /&gt;
 # mkinitfs&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the &amp;quot;default_kernel_opts&amp;quot; and &amp;quot;modules&amp;quot; sections in the update-extlinux.conf file. Edit the &amp;quot;default_kernel_opts&amp;quot; to include &#039;&#039;intel_iommu=o iommu=pt&#039;&#039; for Intel platform (AMD uses &#039;&#039;amd_iommu=on&#039;&#039;), and add the VFIO modules to the &amp;quot;modules&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
  # grep &#039;^default_kernel_opts\|^modules&#039; /etc/update-extlinux.conf&lt;br /&gt;
  default_kernel_opts=&amp;quot;quiet rootfstype=ext4 intel_iommu=on iommu=pt&amp;quot;&lt;br /&gt;
  modules=sd-mod,usb-storage,ext4,raid1,vfio,vfio-pci,vfio_iommu_type1,vfio_virqfd&lt;br /&gt;
&lt;br /&gt;
For syslinux/extlinux, run:&lt;br /&gt;
&lt;br /&gt;
  # update-extlinux&lt;br /&gt;
&lt;br /&gt;
For GRUB (which [https://web.archive.org/web/20220821140615/https://git.alpinelinux.org/aports/tree/main/grub/alpine-mkconfig.patch#n9 now also uses] the update-extlinux.conf if present), run:&lt;br /&gt;
&lt;br /&gt;
  # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Reboot and check dmesg.&lt;br /&gt;
&lt;br /&gt;
 # grep -i -e DMAR -e IOMMU /var/log/dmesg&lt;br /&gt;
 [    0.343795] DMAR: Host address width 36&lt;br /&gt;
 [    0.343797] DMAR: DRHD base: 0x000000fed90000 flags: 0x1&lt;br /&gt;
 [    0.343804] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f020e3&lt;br /&gt;
 [    0.343806] DMAR: RMRR base: 0x000000000ed000 end: 0x000000000effff&lt;br /&gt;
 [    0.343807] DMAR: RMRR base: 0x000000bf7ed000 end: 0x000000bf7fffff&lt;br /&gt;
 [    0.553830] iommu: Default domain type: Passthrough (set via kernel command line)&lt;br /&gt;
 [    0.902477] DMAR: No ATSR found&lt;br /&gt;
 [    0.902563] DMAR: dmar0: Using Queued invalidation&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903256] pci 0000:02:00.0: Adding to iommu group 12&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903768] DMAR: Intel(R) Virtualization Technology for Directed I/O&lt;br /&gt;
&lt;br /&gt;
If you do not run libvirt VMs under &#039;&#039;root&#039;&#039; (&#039;&#039;egrep &#039;^#*user&#039; /etc/libvirt/qemu.conf&#039;&#039;), then you must have correct permission on &#039;&#039;/dev/vfio/&amp;lt;iommu_group&amp;gt;&#039;&#039;, eg. &#039;&#039;/dev/vfio/12&#039;&#039;. You have to tune &#039;&#039;/etc/mdev.conf&#039;&#039; or [[udev]] rules. Also note that if there are multiple PCI devices in the same iommu group, you always have to add all of them to the VM otherwise you&#039;ll get an error message like &amp;quot;Please ensure all devices within the iommu_group are bound to their vfio bus driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # virsh dumpxml vm01 | xmllint --xpath &#039;//*/hostdev&#039; -&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x06&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x08&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you directly use QEMU without libvirt and are trying to pass a GPU to your VM, you may get a &amp;quot;VFIO_MAP_DMA failed: Out of memory&amp;quot; error, when starting the VM as a non-root user. One way to fix it is to install the  &#039;&#039;shadow&#039;&#039; package, and increase the amount of memory the user can lock via the  &#039;&#039;/etc/security/limits.conf&#039;&#039; file:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add shadow&lt;br /&gt;
# echo &amp;quot;youruser soft memlock RAMamount \&lt;br /&gt;
youruser hard memlock RAMamount&amp;quot; &amp;gt;&amp;gt; /etc/security/limits.conf&lt;br /&gt;
# reboot&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;youruser&amp;quot; with the user you wish to run the VM as, and &amp;quot;RAMamount&amp;quot; with how much RAM your VM will need (in KB). The exact amount may throw the same error in the end, so you probably want to increase this value by a few dozen MB (typically +40).&lt;br /&gt;
&lt;br /&gt;
A lot of info on the [https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF Archwiki article for PCI passthrough via OVMF].&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26854</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26854"/>
		<updated>2024-06-21T15:18:55Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Provision an Alpine Linux vm with virt-install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.linux-kvm.org/page/Main_Page KVM] is an free and open source virtualization solution in a kernel module. Although it is often simply referred to as KVM, the actual hypervisor is [https://www.qemu.org QEMU]. QEMU runs from user-space, but can integrate with KVM, providing better performance by leveraging the hardware from kernel-space. QEMU can virtualize x86, PowerPC, and S390 guests, amongst others. [https://libvirt.org Libvirt] is a management framework that integrates with QEMU/KVM, [[LXC]], [[Xen_Dom0|Xen]] and others.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
The following commands provide &#039;&#039;&#039;libvirt&#039;&#039;&#039; as well as &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039; and &#039;&#039;&#039;qemu-img&#039;&#039;&#039;, a necessary component for using various disk formats such as qcow2. Without qemu-img, only raw disks are available. It can also convert images between several formats like vhdx and vmdk. It also provides the metapackage &#039;&#039;&#039;qemu-modules&#039;&#039;&#039;, which provides subpackages needed for special features. In versions of Alpine before 3.13.0 these features were covered by &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039;.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add libvirt-daemon qemu-img qemu-system-x86_64 qemu-modules openrc&lt;br /&gt;
# rc-update add libvirtd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
By default, libvirt uses NAT for VM connectivity. If you want to use the default configuration, you need to load the tun module.&lt;br /&gt;
{{Cmd|# modprobe tun}}&lt;br /&gt;
&lt;br /&gt;
Add tun to autostart: &lt;br /&gt;
{{Cmd|# echo &amp;quot;tun&amp;quot; &amp;gt;&amp;gt; /etc/modules-load.d/tun.conf}}&lt;br /&gt;
&lt;br /&gt;
To make the tun module load on boot, use this command:&lt;br /&gt;
{{Cmd|# cat /etc/modules {{!}} grep tun {{!}}{{!}} echo tun &amp;gt;&amp;gt; /etc/modules}}&lt;br /&gt;
&lt;br /&gt;
If you prefer bridging a guest over your Ethernet interface, you need to make a [[Bridge#Configuration_file|bridge]].&lt;br /&gt;
&lt;br /&gt;
It&#039;s quite common to use bridges with KVM environments. But when IPv6 is used, Alpine will assign itself a link-local address as well as an SLAAC address in case there&#039;s a router sending Router Advertisements. You don&#039;t want this because you don&#039;t want to have the KVM host an IP address in every network it serves to guests. Unfortunately IPv6 can not just be disabled for the bridge via a sysctl configuration file, because the bridge might not be up when the sysctl config is applied during boot. What works is to put a post-up hook into the /etc/network/interfaces file like this:&lt;br /&gt;
 auto brlan&lt;br /&gt;
 iface brlan inet manual&lt;br /&gt;
        bridge-ports eth1.5&lt;br /&gt;
        bridge-stp 0&lt;br /&gt;
        post-up ip -6 a flush dev brlan; sysctl -w net.ipv6.conf.brlan.disable_ipv6=1&lt;br /&gt;
&lt;br /&gt;
== Management ==&lt;br /&gt;
For non-root management, you will need to add your user to the libvirt group.&lt;br /&gt;
{{Cmd|# addgroup user libvirt}}&lt;br /&gt;
&lt;br /&gt;
You can use libvirt&#039;s virsh at the CLI. It can execute commands as well as run as an interactive shell. Read its manual page and/or use the &amp;quot;help&amp;quot; command for more info. Some basic commands are:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;virsh help&lt;br /&gt;
virsh list --all&lt;br /&gt;
virsh start $domain&lt;br /&gt;
virsh shutdown $domain&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The libvirt project provides a GUI for managing hosts, called virt-manager. It handles local systems as well as remote ones via SSH.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add dbus polkit virt-manager font-terminus&lt;br /&gt;
# rc-update add dbus&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
In order to use libvirtd to remotely control KVM over ssh PolicyKit needs a .pkla informing it that this is allowed.&lt;br /&gt;
Write the following file to /etc/polkit-1/localauthority/50-local.d/50-libvirt-ssh-remote-access-policy.pkla&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;[Remote libvirt SSH access]&lt;br /&gt;
 Identity=unix-group:libvirt&lt;br /&gt;
 Action=org.libvirt.unix.manage&lt;br /&gt;
 ResultAny=yes&lt;br /&gt;
 ResultInactive=yes&lt;br /&gt;
 ResultActive=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Provision an Alpine Linux vm with virt-install ==&lt;br /&gt;
&lt;br /&gt;
You can use {{Path|virt-install}} to install Alpine in a VM. First create the {{ Path | meta-data}} and {{Path | user-data }} files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#alpine-config&lt;br /&gt;
ssh_authorized_keys:&lt;br /&gt;
  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 ncopa@ncopa-desktop&lt;br /&gt;
apk:&lt;br /&gt;
  repositories:&lt;br /&gt;
    - base_url: https://dl-cdn.alpinelinux.org/alpine&lt;br /&gt;
      repos:&lt;br /&gt;
        - main&lt;br /&gt;
        - community&lt;br /&gt;
packages:&lt;br /&gt;
  - tmux&lt;br /&gt;
  - curl&lt;br /&gt;
runcmd:&lt;br /&gt;
  - rm /etc/runlevels/*/tiny-cloud*&lt;br /&gt;
  - lbu include /root/.ssh /home/alpine/.ssh&lt;br /&gt;
  - ERASE_DISKS=/dev/vda setup-disk -m sys /dev/vda&lt;br /&gt;
  - poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
{{Cmd | &amp;lt;nowiki&amp;gt;virt-install --name tmp-alp \&lt;br /&gt;
    --disk size=4 \&lt;br /&gt;
    --location $HOME/Downloads/alpine-virt-3.20.1-x86_64.iso,kernel=boot/vmlinuz-virt,initrd=boot/initramfs-virt \&lt;br /&gt;
    --extra-args console=ttyS0 \&lt;br /&gt;
    --osinfo alpinelinux3.19 \&lt;br /&gt;
    --graphics none \&lt;br /&gt;
    --console pty,target_type=serial \&lt;br /&gt;
    --cloud-init meta-data=meta-data,user-data=user-data&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Guest lifecycle management ==&lt;br /&gt;
The libvirt-guests service (available from Alpine 3.13.5) allows running guests to be automatically suspended or shut down when the host is shut down or rebooted.&lt;br /&gt;
&lt;br /&gt;
The service is configured in /etc/conf.d/libvirt-guests. Enable the service with {{Cmd|# rc-update add libvirt-guests}}&lt;br /&gt;
&lt;br /&gt;
== vfio ==&lt;br /&gt;
&lt;br /&gt;
VFIO is more flexible way to do PCI passthrough. Let&#039;s suppose you want to use following ethernet card as PCI device in a VM.&lt;br /&gt;
&lt;br /&gt;
 # lspci | grep 02:00.0&lt;br /&gt;
 02:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)&lt;br /&gt;
 # lspci -n -s 02:00.0&lt;br /&gt;
 02:00.0 0200: 8086:10c9 (rev 01)&lt;br /&gt;
&lt;br /&gt;
First, create &#039;&#039;/etc/mkinitfs/features.d/vfio.modules&#039;&#039; with the following content, so mkinitfs includes the VFIO modules in the initramfs.&lt;br /&gt;
&lt;br /&gt;
 kernel/drivers/vfio/vfio.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_virqfd.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_iommu_type1.ko.*&lt;br /&gt;
 kernel/drivers/vfio/pci/vfio-pci.ko.*&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;vfio&#039;&#039; the the list of features in &#039;&#039;/etc/mkinitfs/mkinitfs.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Modify following file to instruct &#039;&#039;mkinitfs&#039;&#039; to load following module with the options and rebuild kernel ramdisk.&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/modprobe.d/vfio.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 options vfio-pci ids=8086:10c9&lt;br /&gt;
 options vfio_iommu_type1 allow_unsafe_interrupts=1&lt;br /&gt;
 softdep igb pre: vfio-pci&lt;br /&gt;
 EOF&lt;br /&gt;
 # mkinitfs&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the &amp;quot;default_kernel_opts&amp;quot; and &amp;quot;modules&amp;quot; sections in the update-extlinux.conf file. Edit the &amp;quot;default_kernel_opts&amp;quot; to include &#039;&#039;intel_iommu=o iommu=pt&#039;&#039; for Intel platform (AMD uses &#039;&#039;amd_iommu=on&#039;&#039;), and add the VFIO modules to the &amp;quot;modules&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
  # grep &#039;^default_kernel_opts\|^modules&#039; /etc/update-extlinux.conf&lt;br /&gt;
  default_kernel_opts=&amp;quot;quiet rootfstype=ext4 intel_iommu=on iommu=pt&amp;quot;&lt;br /&gt;
  modules=sd-mod,usb-storage,ext4,raid1,vfio,vfio-pci,vfio_iommu_type1,vfio_virqfd&lt;br /&gt;
&lt;br /&gt;
For syslinux/extlinux, run:&lt;br /&gt;
&lt;br /&gt;
  # update-extlinux&lt;br /&gt;
&lt;br /&gt;
For GRUB (which [https://web.archive.org/web/20220821140615/https://git.alpinelinux.org/aports/tree/main/grub/alpine-mkconfig.patch#n9 now also uses] the update-extlinux.conf if present), run:&lt;br /&gt;
&lt;br /&gt;
  # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Reboot and check dmesg.&lt;br /&gt;
&lt;br /&gt;
 # grep -i -e DMAR -e IOMMU /var/log/dmesg&lt;br /&gt;
 [    0.343795] DMAR: Host address width 36&lt;br /&gt;
 [    0.343797] DMAR: DRHD base: 0x000000fed90000 flags: 0x1&lt;br /&gt;
 [    0.343804] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f020e3&lt;br /&gt;
 [    0.343806] DMAR: RMRR base: 0x000000000ed000 end: 0x000000000effff&lt;br /&gt;
 [    0.343807] DMAR: RMRR base: 0x000000bf7ed000 end: 0x000000bf7fffff&lt;br /&gt;
 [    0.553830] iommu: Default domain type: Passthrough (set via kernel command line)&lt;br /&gt;
 [    0.902477] DMAR: No ATSR found&lt;br /&gt;
 [    0.902563] DMAR: dmar0: Using Queued invalidation&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903256] pci 0000:02:00.0: Adding to iommu group 12&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903768] DMAR: Intel(R) Virtualization Technology for Directed I/O&lt;br /&gt;
&lt;br /&gt;
If you do not run libvirt VMs under &#039;&#039;root&#039;&#039; (&#039;&#039;egrep &#039;^#*user&#039; /etc/libvirt/qemu.conf&#039;&#039;), then you must have correct permission on &#039;&#039;/dev/vfio/&amp;lt;iommu_group&amp;gt;&#039;&#039;, eg. &#039;&#039;/dev/vfio/12&#039;&#039;. You have to tune &#039;&#039;/etc/mdev.conf&#039;&#039; or [[udev]] rules. Also note that if there are multiple PCI devices in the same iommu group, you always have to add all of them to the VM otherwise you&#039;ll get an error message like &amp;quot;Please ensure all devices within the iommu_group are bound to their vfio bus driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # virsh dumpxml vm01 | xmllint --xpath &#039;//*/hostdev&#039; -&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x06&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x08&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you directly use QEMU without libvirt and are trying to pass a GPU to your VM, you may get a &amp;quot;VFIO_MAP_DMA failed: Out of memory&amp;quot; error, when starting the VM as a non-root user. One way to fix it is to install the  &#039;&#039;shadow&#039;&#039; package, and increase the amount of memory the user can lock via the  &#039;&#039;/etc/security/limits.conf&#039;&#039; file:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add shadow&lt;br /&gt;
# echo &amp;quot;youruser soft memlock RAMamount \&lt;br /&gt;
youruser hard memlock RAMamount&amp;quot; &amp;gt;&amp;gt; /etc/security/limits.conf&lt;br /&gt;
# reboot&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;youruser&amp;quot; with the user you wish to run the VM as, and &amp;quot;RAMamount&amp;quot; with how much RAM your VM will need (in KB). The exact amount may throw the same error in the end, so you probably want to increase this value by a few dozen MB (typically +40).&lt;br /&gt;
&lt;br /&gt;
A lot of info on the [https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF Archwiki article for PCI passthrough via OVMF].&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26853</id>
		<title>KVM</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=KVM&amp;diff=26853"/>
		<updated>2024-06-21T15:18:10Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: add install alpine with virt-install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.linux-kvm.org/page/Main_Page KVM] is an free and open source virtualization solution in a kernel module. Although it is often simply referred to as KVM, the actual hypervisor is [https://www.qemu.org QEMU]. QEMU runs from user-space, but can integrate with KVM, providing better performance by leveraging the hardware from kernel-space. QEMU can virtualize x86, PowerPC, and S390 guests, amongst others. [https://libvirt.org Libvirt] is a management framework that integrates with QEMU/KVM, [[LXC]], [[Xen_Dom0|Xen]] and others.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
The following commands provide &#039;&#039;&#039;libvirt&#039;&#039;&#039; as well as &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039; and &#039;&#039;&#039;qemu-img&#039;&#039;&#039;, a necessary component for using various disk formats such as qcow2. Without qemu-img, only raw disks are available. It can also convert images between several formats like vhdx and vmdk. It also provides the metapackage &#039;&#039;&#039;qemu-modules&#039;&#039;&#039;, which provides subpackages needed for special features. In versions of Alpine before 3.13.0 these features were covered by &#039;&#039;&#039;QEMU with emulation for x86_64&#039;&#039;&#039;.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add libvirt-daemon qemu-img qemu-system-x86_64 qemu-modules openrc&lt;br /&gt;
# rc-update add libvirtd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
By default, libvirt uses NAT for VM connectivity. If you want to use the default configuration, you need to load the tun module.&lt;br /&gt;
{{Cmd|# modprobe tun}}&lt;br /&gt;
&lt;br /&gt;
Add tun to autostart: &lt;br /&gt;
{{Cmd|# echo &amp;quot;tun&amp;quot; &amp;gt;&amp;gt; /etc/modules-load.d/tun.conf}}&lt;br /&gt;
&lt;br /&gt;
To make the tun module load on boot, use this command:&lt;br /&gt;
{{Cmd|# cat /etc/modules {{!}} grep tun {{!}}{{!}} echo tun &amp;gt;&amp;gt; /etc/modules}}&lt;br /&gt;
&lt;br /&gt;
If you prefer bridging a guest over your Ethernet interface, you need to make a [[Bridge#Configuration_file|bridge]].&lt;br /&gt;
&lt;br /&gt;
It&#039;s quite common to use bridges with KVM environments. But when IPv6 is used, Alpine will assign itself a link-local address as well as an SLAAC address in case there&#039;s a router sending Router Advertisements. You don&#039;t want this because you don&#039;t want to have the KVM host an IP address in every network it serves to guests. Unfortunately IPv6 can not just be disabled for the bridge via a sysctl configuration file, because the bridge might not be up when the sysctl config is applied during boot. What works is to put a post-up hook into the /etc/network/interfaces file like this:&lt;br /&gt;
 auto brlan&lt;br /&gt;
 iface brlan inet manual&lt;br /&gt;
        bridge-ports eth1.5&lt;br /&gt;
        bridge-stp 0&lt;br /&gt;
        post-up ip -6 a flush dev brlan; sysctl -w net.ipv6.conf.brlan.disable_ipv6=1&lt;br /&gt;
&lt;br /&gt;
== Management ==&lt;br /&gt;
For non-root management, you will need to add your user to the libvirt group.&lt;br /&gt;
{{Cmd|# addgroup user libvirt}}&lt;br /&gt;
&lt;br /&gt;
You can use libvirt&#039;s virsh at the CLI. It can execute commands as well as run as an interactive shell. Read its manual page and/or use the &amp;quot;help&amp;quot; command for more info. Some basic commands are:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;virsh help&lt;br /&gt;
virsh list --all&lt;br /&gt;
virsh start $domain&lt;br /&gt;
virsh shutdown $domain&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The libvirt project provides a GUI for managing hosts, called virt-manager. It handles local systems as well as remote ones via SSH.&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add dbus polkit virt-manager font-terminus&lt;br /&gt;
# rc-update add dbus&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
In order to use libvirtd to remotely control KVM over ssh PolicyKit needs a .pkla informing it that this is allowed.&lt;br /&gt;
Write the following file to /etc/polkit-1/localauthority/50-local.d/50-libvirt-ssh-remote-access-policy.pkla&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;[Remote libvirt SSH access]&lt;br /&gt;
 Identity=unix-group:libvirt&lt;br /&gt;
 Action=org.libvirt.unix.manage&lt;br /&gt;
 ResultAny=yes&lt;br /&gt;
 ResultInactive=yes&lt;br /&gt;
 ResultActive=yes&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Provision an Alpine Linux vm with virt-install ==&lt;br /&gt;
&lt;br /&gt;
You can use {{Cmd|virt-install}} to install Alpine in a VM. First create the {{ Path | meta-data}} and {{Path | user-data }} files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#alpine-config&lt;br /&gt;
ssh_authorized_keys:&lt;br /&gt;
  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOIiHcbg/7ytfLFHUNLRgEAubFz/13SwXBOM/05GNZe4 ncopa@ncopa-desktop&lt;br /&gt;
apk:&lt;br /&gt;
  repositories:&lt;br /&gt;
    - base_url: https://dl-cdn.alpinelinux.org/alpine&lt;br /&gt;
      repos:&lt;br /&gt;
        - main&lt;br /&gt;
        - community&lt;br /&gt;
packages:&lt;br /&gt;
  - tmux&lt;br /&gt;
  - curl&lt;br /&gt;
runcmd:&lt;br /&gt;
  - rm /etc/runlevels/*/tiny-cloud*&lt;br /&gt;
  - lbu include /root/.ssh /home/alpine/.ssh&lt;br /&gt;
  - ERASE_DISKS=/dev/vda setup-disk -m sys /dev/vda&lt;br /&gt;
  - poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run:&lt;br /&gt;
{{Cmd | &amp;lt;nowiki&amp;gt;virt-install --name tmp-alp \&lt;br /&gt;
    --disk size=4 \&lt;br /&gt;
    --location $HOME/Downloads/alpine-virt-3.20.1-x86_64.iso,kernel=boot/vmlinuz-virt,initrd=boot/initramfs-virt \&lt;br /&gt;
    --extra-args console=ttyS0 \&lt;br /&gt;
    --osinfo alpinelinux3.19 \&lt;br /&gt;
    --graphics none \&lt;br /&gt;
    --console pty,target_type=serial \&lt;br /&gt;
    --cloud-init meta-data=meta-data,user-data=user-data&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
== Guest lifecycle management ==&lt;br /&gt;
The libvirt-guests service (available from Alpine 3.13.5) allows running guests to be automatically suspended or shut down when the host is shut down or rebooted.&lt;br /&gt;
&lt;br /&gt;
The service is configured in /etc/conf.d/libvirt-guests. Enable the service with {{Cmd|# rc-update add libvirt-guests}}&lt;br /&gt;
&lt;br /&gt;
== vfio ==&lt;br /&gt;
&lt;br /&gt;
VFIO is more flexible way to do PCI passthrough. Let&#039;s suppose you want to use following ethernet card as PCI device in a VM.&lt;br /&gt;
&lt;br /&gt;
 # lspci | grep 02:00.0&lt;br /&gt;
 02:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)&lt;br /&gt;
 # lspci -n -s 02:00.0&lt;br /&gt;
 02:00.0 0200: 8086:10c9 (rev 01)&lt;br /&gt;
&lt;br /&gt;
First, create &#039;&#039;/etc/mkinitfs/features.d/vfio.modules&#039;&#039; with the following content, so mkinitfs includes the VFIO modules in the initramfs.&lt;br /&gt;
&lt;br /&gt;
 kernel/drivers/vfio/vfio.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_virqfd.ko.*&lt;br /&gt;
 kernel/drivers/vfio/vfio_iommu_type1.ko.*&lt;br /&gt;
 kernel/drivers/vfio/pci/vfio-pci.ko.*&lt;br /&gt;
&lt;br /&gt;
Add &#039;&#039;vfio&#039;&#039; the the list of features in &#039;&#039;/etc/mkinitfs/mkinitfs.conf&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Modify following file to instruct &#039;&#039;mkinitfs&#039;&#039; to load following module with the options and rebuild kernel ramdisk.&lt;br /&gt;
&lt;br /&gt;
 # cat /etc/modprobe.d/vfio.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 options vfio-pci ids=8086:10c9&lt;br /&gt;
 options vfio_iommu_type1 allow_unsafe_interrupts=1&lt;br /&gt;
 softdep igb pre: vfio-pci&lt;br /&gt;
 EOF&lt;br /&gt;
 # mkinitfs&lt;br /&gt;
&lt;br /&gt;
Now we need to edit the &amp;quot;default_kernel_opts&amp;quot; and &amp;quot;modules&amp;quot; sections in the update-extlinux.conf file. Edit the &amp;quot;default_kernel_opts&amp;quot; to include &#039;&#039;intel_iommu=o iommu=pt&#039;&#039; for Intel platform (AMD uses &#039;&#039;amd_iommu=on&#039;&#039;), and add the VFIO modules to the &amp;quot;modules&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
  # grep &#039;^default_kernel_opts\|^modules&#039; /etc/update-extlinux.conf&lt;br /&gt;
  default_kernel_opts=&amp;quot;quiet rootfstype=ext4 intel_iommu=on iommu=pt&amp;quot;&lt;br /&gt;
  modules=sd-mod,usb-storage,ext4,raid1,vfio,vfio-pci,vfio_iommu_type1,vfio_virqfd&lt;br /&gt;
&lt;br /&gt;
For syslinux/extlinux, run:&lt;br /&gt;
&lt;br /&gt;
  # update-extlinux&lt;br /&gt;
&lt;br /&gt;
For GRUB (which [https://web.archive.org/web/20220821140615/https://git.alpinelinux.org/aports/tree/main/grub/alpine-mkconfig.patch#n9 now also uses] the update-extlinux.conf if present), run:&lt;br /&gt;
&lt;br /&gt;
  # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
Reboot and check dmesg.&lt;br /&gt;
&lt;br /&gt;
 # grep -i -e DMAR -e IOMMU /var/log/dmesg&lt;br /&gt;
 [    0.343795] DMAR: Host address width 36&lt;br /&gt;
 [    0.343797] DMAR: DRHD base: 0x000000fed90000 flags: 0x1&lt;br /&gt;
 [    0.343804] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c90780106f0462 ecap f020e3&lt;br /&gt;
 [    0.343806] DMAR: RMRR base: 0x000000000ed000 end: 0x000000000effff&lt;br /&gt;
 [    0.343807] DMAR: RMRR base: 0x000000bf7ed000 end: 0x000000bf7fffff&lt;br /&gt;
 [    0.553830] iommu: Default domain type: Passthrough (set via kernel command line)&lt;br /&gt;
 [    0.902477] DMAR: No ATSR found&lt;br /&gt;
 [    0.902563] DMAR: dmar0: Using Queued invalidation&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903256] pci 0000:02:00.0: Adding to iommu group 12&lt;br /&gt;
 ...&lt;br /&gt;
 [    0.903768] DMAR: Intel(R) Virtualization Technology for Directed I/O&lt;br /&gt;
&lt;br /&gt;
If you do not run libvirt VMs under &#039;&#039;root&#039;&#039; (&#039;&#039;egrep &#039;^#*user&#039; /etc/libvirt/qemu.conf&#039;&#039;), then you must have correct permission on &#039;&#039;/dev/vfio/&amp;lt;iommu_group&amp;gt;&#039;&#039;, eg. &#039;&#039;/dev/vfio/12&#039;&#039;. You have to tune &#039;&#039;/etc/mdev.conf&#039;&#039; or [[udev]] rules. Also note that if there are multiple PCI devices in the same iommu group, you always have to add all of them to the VM otherwise you&#039;ll get an error message like &amp;quot;Please ensure all devices within the iommu_group are bound to their vfio bus driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # virsh dumpxml vm01 | xmllint --xpath &#039;//*/hostdev&#039; -&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev0&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x06&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
 &amp;lt;hostdev mode=&amp;quot;subsystem&amp;quot; type=&amp;quot;pci&amp;quot; managed=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;driver name=&amp;quot;vfio&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;source&amp;gt;&lt;br /&gt;
         &amp;lt;address domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x02&amp;quot; slot=&amp;quot;0x00&amp;quot; function=&amp;quot;0x1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
       &amp;lt;alias name=&amp;quot;hostdev1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;address type=&amp;quot;pci&amp;quot; domain=&amp;quot;0x0000&amp;quot; bus=&amp;quot;0x00&amp;quot; slot=&amp;quot;0x08&amp;quot; function=&amp;quot;0x0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you directly use QEMU without libvirt and are trying to pass a GPU to your VM, you may get a &amp;quot;VFIO_MAP_DMA failed: Out of memory&amp;quot; error, when starting the VM as a non-root user. One way to fix it is to install the  &#039;&#039;shadow&#039;&#039; package, and increase the amount of memory the user can lock via the  &#039;&#039;/etc/security/limits.conf&#039;&#039; file:&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;# apk add shadow&lt;br /&gt;
# echo &amp;quot;youruser soft memlock RAMamount \&lt;br /&gt;
youruser hard memlock RAMamount&amp;quot; &amp;gt;&amp;gt; /etc/security/limits.conf&lt;br /&gt;
# reboot&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;youruser&amp;quot; with the user you wish to run the VM as, and &amp;quot;RAMamount&amp;quot; with how much RAM your VM will need (in KB). The exact amount may throw the same error in the end, so you probably want to increase this value by a few dozen MB (typically +40).&lt;br /&gt;
&lt;br /&gt;
A lot of info on the [https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF Archwiki article for PCI passthrough via OVMF].&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26851</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26851"/>
		<updated>2024-06-18T19:14:52Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.20.1&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.20.0&amp;diff=26757</id>
		<title>Release Notes for Alpine 3.20.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.20.0&amp;diff=26757"/>
		<updated>2024-05-22T10:24:11Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: add kde 6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== grub 2.12 ===&lt;br /&gt;
&lt;br /&gt;
When upgrading existing installations using grub on UEFI systems, make sure to update the installed bootloader before rebooting otherwise your machine might not boot.&lt;br /&gt;
&lt;br /&gt;
The problem is that grub added a new configuration that executes &amp;lt;code&amp;gt;fwsetup --is-supported&amp;lt;/code&amp;gt;, but grub 2.06 does not support the &amp;lt;code&amp;gt;--is-supported&amp;lt;/code&amp;gt; argument yet, causing grub to try to reboot into firmware unconditionally.&lt;br /&gt;
&lt;br /&gt;
Here is an example assuming the default setup. Don&#039;t blindly copy this example, but verify what&#039;s applicable to your system.&lt;br /&gt;
 &lt;br /&gt;
==== EFI ====&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&lt;br /&gt;
 # grub-install --target{{=}}&amp;lt;var&amp;gt;$target&amp;lt;/var&amp;gt; --efi-directory{{=}}&amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt; \&lt;br /&gt;
    --bootloader-id{{=}}alpine --boot-directory{{=}}/boot --no-nvram&lt;br /&gt;
 # install -D &amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt;/EFI/alpine/grub&amp;lt;var&amp;gt;$fwa&amp;lt;/var&amp;gt;.efi &amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt;/EFI/boot/boot&amp;lt;var&amp;gt;$fwa&amp;lt;/var&amp;gt;.efi&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
; target : The relevant [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/blob/master/setup-disk.in#L320-324 target] for your system&lt;br /&gt;
; efi_directory : Either {{Path|/boot/efi}} or {{Path|/boot}}. Run &amp;lt;code&amp;gt;awk &#039;$2 ~ /boot/ &amp;amp;&amp;amp; $3 ~ /fat|msdos/ { print $2 }&#039; /proc/mounts&amp;lt;/code&amp;gt; to confirm.&lt;br /&gt;
; fwa : The respective [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/blob/master/setup-disk.in#L320-324 firmware architecture] for your system&lt;br /&gt;
&lt;br /&gt;
==== Short-term workaround ====&lt;br /&gt;
&lt;br /&gt;
A short-term workaround to get the system bootable again is to restore the backup configuration:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|cp /boot/grub/grub.cfg.backup /boot/grub.cfg }}&lt;br /&gt;
&lt;br /&gt;
This should allow you to boot the system again in order to fix it permanently. This will be reverted when either grub or the kernel is updated again.&lt;br /&gt;
&lt;br /&gt;
This will only work if &amp;lt;code&amp;gt;update-grub&amp;lt;/code&amp;gt; has not been executed any more since the upgrade to grub 2.12.&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== Redis ===&lt;br /&gt;
Due to [https://github.com/redis/redis/pull/13157 the relicensing of Redis] to [https://redis.io/legal/rsalv2-agreement/ RSALv2]+[https://redis.io/legal/server-side-public-license-sspl/ SSPLv1], a non-free license model, the [https://spdx.org/licenses/BSD-3-Clause.html BSD-3-Clause] licensed fork [https://valkey.io/ Valkey] has replaced Redis in the main package repository.&lt;br /&gt;
&lt;br /&gt;
A {{#ifexpr: {{AlpineLatest}} &amp;gt;= 3.20 |{{pkg|valkey-compat|branch=v3.20|arch=}}|{{pkg|valkey-compat|branch=edge|arch=}}}} package is provided with symlinks and group for easy Redis replacement.&lt;br /&gt;
&lt;br /&gt;
The {{#ifexpr: {{AlpineLatest}} &amp;gt;= 3.20 |{{pkg|redis|branch=v3.20|arch=}}|{{pkg|redis|branch=edge|arch=}}}} aport has been moved to the community repository, with a shorter support cycle, and will not be upgraded past 7.2.x due to the license change.&lt;br /&gt;
&lt;br /&gt;
Another replacement alternative, the [https://spdx.org/licenses/LGPL-3.0-only.html LGPL-3.0-only] licensed fork [https://redict.io/ Redict] is also available in the community repository.&lt;br /&gt;
&lt;br /&gt;
=== yq ===&lt;br /&gt;
yq was renamed to yq-go. [https://gitlab.alpinelinux.org/alpine/aports/-/issues/16052 #16052]&lt;br /&gt;
&lt;br /&gt;
=== aws-cli ===&lt;br /&gt;
Due to incompatibility issues with Python 3.12, aws-cli has been temporarily disabled until the issue is resolved by upstream. See the corresponding problem upstream: [https://github.com/aws/aws-cli/issues/8342 #8342]&lt;br /&gt;
&lt;br /&gt;
=== GNOME 46 ===&lt;br /&gt;
&lt;br /&gt;
New upstream release of GNOME.&lt;br /&gt;
&lt;br /&gt;
Depending on how you installed GNOME, you may have to manually add &amp;lt;code&amp;gt;gcr-ssh-agent&amp;lt;/code&amp;gt; after upgrading to retain GNOME Keyring ssh integration.&lt;br /&gt;
&lt;br /&gt;
=== KDE 6 ===&lt;br /&gt;
&lt;br /&gt;
KDE Plasma has been upgraded to Plasma 6, bringing the major update to Qt6 with it. This also includes applications from KDE Gear although some individual applications remain on Qt5 for now. The update makes the Wayland session the default and this Alpine release is the last one to support the X11 session.&lt;br /&gt;
&lt;br /&gt;
=== podman [https://github.com/containers/podman/releases/tag/v5.0.0 5.x] ===&lt;br /&gt;
&lt;br /&gt;
The default tool for rootless networking has been swapped from &amp;lt;code&amp;gt;slirp4netns&amp;lt;/code&amp;gt; to&lt;br /&gt;
&amp;lt;code&amp;gt;pasta&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;passt&amp;lt;/code&amp;gt;) for improved performance. As a result, networks named pasta are&lt;br /&gt;
no longer supported.&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
&lt;br /&gt;
* Crystal 1.12&lt;br /&gt;
* LLVM 18&lt;br /&gt;
* nginx 1.26&lt;br /&gt;
* .NET 8&lt;br /&gt;
* Nim 2.0&lt;br /&gt;
* OpenJDK 22&lt;br /&gt;
* Python 3.12&lt;br /&gt;
* Racket 8.13&lt;br /&gt;
* Ruby 3.3&lt;br /&gt;
* Rust 1.78&lt;br /&gt;
* R 4.4&lt;br /&gt;
* Sway 1.9&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.20.0&amp;diff=26694</id>
		<title>Release Notes for Alpine 3.20.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.20.0&amp;diff=26694"/>
		<updated>2024-05-07T19:23:51Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== grub 2.12 ===&lt;br /&gt;
&lt;br /&gt;
When upgrading existing installations using grub on UEFI systems, make sure to update the installed bootloader before rebooting, otherwise your machine might not boot.&lt;br /&gt;
&lt;br /&gt;
The problem is that grub added new configuration that executes &amp;lt;code&amp;gt;fwsetup --is-supported&amp;lt;/code&amp;gt;. The problem is that grub 2.06 does not supported the &amp;lt;code&amp;gt;--is-supported&amp;lt;/code&amp;gt; argument yet, causing grub to unconditionally try to reboot into firmware.&lt;br /&gt;
&lt;br /&gt;
Here is an example assuming the default setup. Don&#039;t blindly copy this examples but verify what&#039;s applicable to your system.&lt;br /&gt;
 &lt;br /&gt;
==== EFI ====&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&lt;br /&gt;
 # grub-install --target{{=}}&amp;lt;var&amp;gt;$target&amp;lt;/var&amp;gt; --efi-directory{{=}}&amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt; \&lt;br /&gt;
    --bootloader-id{{=}}alpine --boot-directory{{=}}/boot --no-nvram&lt;br /&gt;
 # install -D &amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt;/EFI/alpine/grub&amp;lt;var&amp;gt;$fwa&amp;lt;/var&amp;gt;.efi &amp;lt;var&amp;gt;$efi_directory&amp;lt;/var&amp;gt;/EFI/boot/boot&amp;lt;var&amp;gt;$fwa&amp;lt;/var&amp;gt;.efi&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
; target : The relevant [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/blob/master/setup-disk.in#L320-324 target] for your system&lt;br /&gt;
; efi_directory : Either {{Path|/boot/efi}} or {{Path|/boot}}. Run &amp;lt;code&amp;gt;awk &#039;$2 ~ /boot/ &amp;amp;&amp;amp; $3 ~ /fat|msdos/ { print $2 }&#039; /proc/mounts&amp;lt;/code&amp;gt; to confirm.&lt;br /&gt;
; fwa : The respective [https://gitlab.alpinelinux.org/alpine/alpine-conf/-/blob/master/setup-disk.in#L320-324 firmware architecture] for your system&lt;br /&gt;
&lt;br /&gt;
==== Short-term work-around ====&lt;br /&gt;
&lt;br /&gt;
A short-term work-around to get the system bootable again is to restore the backup configuration:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|cp /boot/grub/grub.cfg.back /boot/grub.cfg }}&lt;br /&gt;
&lt;br /&gt;
This should allow you to boot the system again to fix it permanently. This will be reverted again when either grub or the kernel is updated again.&lt;br /&gt;
&lt;br /&gt;
This will only work if &amp;lt;code&amp;gt;update-grub&amp;lt;/code&amp;gt; has not been executed any more since the upgrade to grub 2.12.&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== Redis ===&lt;br /&gt;
Due to [https://github.com/redis/redis/pull/13157 the relicensing of Redis] to [https://redis.io/legal/rsalv2-agreement/ RSALv2]+[https://redis.io/legal/server-side-public-license-sspl/ SSPLv1], a non-free license model, the [https://spdx.org/licenses/BSD-3-Clause.html BSD-3-Clause] licensed fork [https://valkey.io/ Valkey] has replaced Redis in the main package repository.&lt;br /&gt;
&lt;br /&gt;
A [https://pkgs.alpinelinux.org/packages?name=valkey-compat valkey-compat] package is provided with symlinks and group for easy Redis replcament.&lt;br /&gt;
&lt;br /&gt;
The [https://pkgs.alpinelinux.org/packages?name=redis redis aport] has been moved to the community repository, with a shorter support cycle, and will not be upgraded past 7.2.x due to the license change.&lt;br /&gt;
&lt;br /&gt;
Another replacement alternative, the [https://spdx.org/licenses/LGPL-3.0-only.html LGPL-3.0-only] licensed fork [https://redict.io/ Redict] is also avalable in the community repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== yq ===&lt;br /&gt;
yq was renamed to yq-go. https://gitlab.alpinelinux.org/alpine/aports/-/issues/16052&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26344</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=26344"/>
		<updated>2024-01-26T20:08:39Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump 3.19.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.19.1&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_1.7.13&amp;diff=26298</id>
		<title>Release Notes for Alpine 1.7.13</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_1.7.13&amp;diff=26298"/>
		<updated>2024-01-19T10:14:58Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* 2/3 of the packages tested */ remove link to the obsolete package test suite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Historical|Alpine 1.7.13 is an ancient release.&amp;lt;br&amp;gt;URLs on this page no longer function.}}&lt;br /&gt;
&lt;br /&gt;
This is a development release.&lt;br /&gt;
&lt;br /&gt;
As always, the latest iso image can be downloaded from &amp;lt;nowiki&amp;gt;http://dev.alpinelinux.org/alpine/v1.7/iso&amp;lt;/nowiki&amp;gt; and usbdrive tarballs from &amp;lt;nowiki&amp;gt;http://dev.alpinelinux.org/alpine/v1.7/usbdrive&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some news:&lt;br /&gt;
== Updated kernels ==&lt;br /&gt;
Due to the recent local root exploit both generic and vserver kernel are updated. To prevent similar future bugs be exploitable I have enabled UDEREF in kernels. This is a good protection but it does have some serious performance issues when running on virtual machines without hardware support.&lt;br /&gt;
&lt;br /&gt;
== New version of busybox ==&lt;br /&gt;
Upgraded to busybox-1.9.x series. This adds some new features while still reduce the overall size. You gotta love busybox! Look out for bugs.&lt;br /&gt;
&lt;br /&gt;
== 2/3 of the packages tested ==&lt;br /&gt;
The Alpine Package Testing Suite has now tests for over 2/3 of the packages. It means that most packages are confirmed working. Lots of bugs were found and fixed during the creation of those scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Removed packages:&lt;br /&gt;
barnyard-postgres-0.2.0-r1&lt;br /&gt;
dspam-postgres-3.8.0-r6&lt;br /&gt;
gnats-minimal-4.1.0&lt;br /&gt;
hotplug-20040923-r2&lt;br /&gt;
hotplug-base-20040401&lt;br /&gt;
isdn4k-utils-3.9_pre20060124&lt;br /&gt;
libevent-1.3a&lt;br /&gt;
libnfsidmap-0.19&lt;br /&gt;
lua-sqlite3-0.4.1&lt;br /&gt;
pmacct-postgres-0.11.3&lt;br /&gt;
snort-postgres-2.6.1.3-r1&lt;br /&gt;
ulogd-postgres-1.23-r1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New pacakges:&lt;br /&gt;
acf-dansguardian-0.1&lt;br /&gt;
acf-squid-0.2&lt;br /&gt;
bitlib-23_p2&lt;br /&gt;
dante-1.1.19-r1&lt;br /&gt;
diffstat-1.45&lt;br /&gt;
distcc-client-2.18.3-r10&lt;br /&gt;
distcc-server-2.18.3-r10&lt;br /&gt;
luatdb-doc-20080214&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upgraded/downgraded packages (from version):&lt;br /&gt;
acf-alpine-baselayout-0.2		(0.1)&lt;br /&gt;
acf-alpine-conf-0.2			(0.1)&lt;br /&gt;
acf-core-0.2				(0.1)&lt;br /&gt;
acf-devtools-0.2			(0.1)&lt;br /&gt;
acf-dhcp-0.2				(0.1)&lt;br /&gt;
acf-openntpd-0.2			(0.1)&lt;br /&gt;
acf-openvpn-0.2				(0.1)&lt;br /&gt;
acf-shorewall-0.2			(0.1)&lt;br /&gt;
acf-snort-0.2				(0.1)&lt;br /&gt;
apk-tools-0.13.1			(0.13)&lt;br /&gt;
busybox-1.9.1				(1.8.2-r1)&lt;br /&gt;
chrony-1.23				(1.21-r1)&lt;br /&gt;
clamav-0.92.1				(0.91.2-r1)&lt;br /&gt;
com_err-1.40.4				(1.40.3)&lt;br /&gt;
cracklib-2.8.12				(2.8.10)&lt;br /&gt;
cracklib-words-1.2			(1.1)&lt;br /&gt;
curl-7.17.1				(7.16.4)&lt;br /&gt;
dosfstools-2.11-r3			(2.11-r1)&lt;br /&gt;
dpkg-1.14.12				(1.13.25)&lt;br /&gt;
e2fsprogs-1.40.4			(1.40.3)&lt;br /&gt;
file-4.23				(4.21-r1)&lt;br /&gt;
findutils-4.3.11			(4.3.8-r1)&lt;br /&gt;
haserl-0.9.22				(0.9.21)&lt;br /&gt;
iptables-1.3.8-r3			(1.3.8-r2)&lt;br /&gt;
less-418				(416)&lt;br /&gt;
libao-0.8.8				(0.8.6-r3)&lt;br /&gt;
libcap-1.10-r11				(1.10-r9)&lt;br /&gt;
libpaper-1.1.23				(1.1.21)&lt;br /&gt;
libpcre-7.6-r1				(7.4)&lt;br /&gt;
libtasn1-1.2				(0.3.5)&lt;br /&gt;
libtool-1.5.26				(1.5.24)&lt;br /&gt;
libuuid1-1.40.4				(1.40.3)&lt;br /&gt;
lilo-22.8-r2				(22.7.3-r1)&lt;br /&gt;
lua-5.1.2-r2				(5.1.1-r2)&lt;br /&gt;
luaposix-5.1.2				(5.1-r2)&lt;br /&gt;
luatdb-20080214				(20070618)&lt;br /&gt;
man-1.6f				(1.6e-r3)&lt;br /&gt;
mediawiki-1.11.1			(1.8.5)&lt;br /&gt;
mpd-0.13.1				(0.13.0)&lt;br /&gt;
mpg123-1.2.0				(0.67)&lt;br /&gt;
nano-2.0.7				(2.0.6)&lt;br /&gt;
ntfs3g-1.2216				(1.810)&lt;br /&gt;
ntfsprogs-2.0.0				(1.13.1-r1)&lt;br /&gt;
olsrd-0.5.5				(0.5.4)&lt;br /&gt;
openssh-4.7_p1-r3			(4.7_p1-r1)&lt;br /&gt;
openssh-client-4.7_p1-r3		(4.7_p1-r1)&lt;br /&gt;
openssh-kerberos-4.7_p1-r3		(4.7_p1-r1)&lt;br /&gt;
openssh-server-4.7_p1-r3		(4.7_p1-r1)&lt;br /&gt;
openvpn-2.0.7-r2			(2.0.6)&lt;br /&gt;
openvpn-doc-2.0.7-r2			(2.0.6)&lt;br /&gt;
pciutils-2.2.9				(2.2.8)&lt;br /&gt;
postfix-2.4.6-r2			(2.4.5)&lt;br /&gt;
psmisc-22.6				(22.5-r2)&lt;br /&gt;
readline-5.2_p12-r1			(5.2_p7)&lt;br /&gt;
slmodem-2.9.11_pre20080126-r1		(2.9.11_pre20070813)&lt;br /&gt;
snarf-7.0-r3				(7.0-r2)&lt;br /&gt;
ss-1.40.4				(1.40.3)&lt;br /&gt;
subversion-1.4.6			(1.4.5)&lt;br /&gt;
sysstat-8.0.4-r1			(8.0.3)&lt;br /&gt;
tcl-8.4.18				(8.4.15)&lt;br /&gt;
testdisk-6.8-r1				(6.5)&lt;br /&gt;
tinyproxy-1.6.3-r1			(1.6.3)&lt;br /&gt;
vpnc-0.5.1-r1				(0.5.1)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_1.7.8&amp;diff=26297</id>
		<title>Release Notes for Alpine 1.7.8</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_1.7.8&amp;diff=26297"/>
		<updated>2024-01-19T10:14:10Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Alpine Package Testing Suite */ remove link to the obsolete package testing suite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 1.7.8 release focus on bugfixing. While I believe this is a fairly stable release, there are reports on some bugs in PaX these days. So do some testing before you put this kernel on production machines. This kernel is based on hardened-sources-2.6.22-r8, marked as stable in Gentoo.&lt;br /&gt;
&lt;br /&gt;
==iSCSI support==&lt;br /&gt;
This release includes support for both [[ISCSI_Target_and_Initiator_Configuration#iSCSI_Target|target]] (iscsitarget) and [[ISCSI_Target_and_Initiator_Configuration#iSCSI_Initiator|initiator]] (open-iscsi).&lt;br /&gt;
&lt;br /&gt;
==Alpine Package Testing Suite==&lt;br /&gt;
Most important news this release is the use of the Alpine Package Testing Suite, which means packages are verified before a release. This will improve the quality of alpine as new tests are added.&lt;br /&gt;
&lt;br /&gt;
Once there is a test script for every package, alpine-1.8, stable, will be released, so if you are interested in getting 1.8 out, you can do alot by helping writing test scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Removed packages:&lt;br /&gt;
apcupsd-3.10.18-r1&lt;br /&gt;
drbd-8.0.6-r1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New pacakges:&lt;br /&gt;
cracklib-words-1.1&lt;br /&gt;
json4lua-0.9.20&lt;br /&gt;
open-iscsi-2.0.865.15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Upgraded/downgraded packages (from version):&lt;br /&gt;
alpine-baselayout-1.6.2        (1.6.1)&lt;br /&gt;
alpine-conf-1.2                (1.1)&lt;br /&gt;
arpwatch-2.1.15-r5             (2.1.15-r4)&lt;br /&gt;
attr-2.4.39                    (2.4.38)&lt;br /&gt;
baselayout-2.0.0_rc6           (2.0.0_rc5)&lt;br /&gt;
binutils-dev-2.18-r1           (2.17-r1)&lt;br /&gt;
busybox-1.7.3                  (1.7.2)&lt;br /&gt;
bzip2-1.0.4-r1                 (1.0.4)&lt;br /&gt;
cpio-2.9-r1                    (2.9)&lt;br /&gt;
db-4.3.29-r2                   (4.5.20_p2)&lt;br /&gt;
debootstrap-1.0.6              (1.0.3)&lt;br /&gt;
device-mapper-1.02.22-r5       (1.02.19-r1)&lt;br /&gt;
dovecot-1.0.5                  (1.0.3)&lt;br /&gt;
dspam-3.8.0-r7                 (3.8.0-r6)&lt;br /&gt;
ebtables-2.0.8.2               (2.0.8.1)&lt;br /&gt;
haproxy-1.3.13                 (1.3.12)&lt;br /&gt;
iptraf-3.0.0-r4                (3.0.0-r3)&lt;br /&gt;
iscsitarget-0.4.15-r1          (0.4.15)&lt;br /&gt;
libgcrypt-1.2.4                (1.2.2-r1)&lt;br /&gt;
libmcrypt-2.5.8                (2.5.7)&lt;br /&gt;
libpcap-0.9.8                  (0.9.7)&lt;br /&gt;
libpng-1.2.22                  (1.2.21-r3)&lt;br /&gt;
lm_sensors-2.10.4              (2.10.1)&lt;br /&gt;
lsof-4.78-r1                   (4.78)&lt;br /&gt;
lvm2-2.02.28-r2                (2.02.10)&lt;br /&gt;
mhash-0.9.9-r1                 (0.9.9)&lt;br /&gt;
net-snmp-5.4.1-r1              (5.4)&lt;br /&gt;
openct-0.6.14                  (0.6.11-r1)&lt;br /&gt;
openssl-0.9.8g                 (0.9.8f)&lt;br /&gt;
pciutils-2.2.7-r1              (2.2.4-r3)&lt;br /&gt;
php-5.2.5                      (5.2.4_p20070914-r2)&lt;br /&gt;
python-2.4.4-r6                (2.4.4-r5)&lt;br /&gt;
slmodem-2.9.11_pre20070813     (2.9.11_pre20070505)&lt;br /&gt;
strace-4.5.16                  (4.5.15)&lt;br /&gt;
tcpdump-3.9.8                  (3.9.7-r1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25852</id>
		<title>Release Notes for Alpine 3.19.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25852"/>
		<updated>2023-12-04T10:59:43Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== iptables-nft ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/sbin/iptables{,-save,-restore}&amp;lt;/code&amp;gt; symlinks now point to xtables-nft-multi instead of xtables-legacy-multi. This means they use the nftables kernel backend instead of the legacy iptables one.&lt;br /&gt;
&lt;br /&gt;
Since the new iptables- binaries also don&#039;t use the iptables backend, to work with any existing rules and save them, you need to install {{pkg|iptables-legacy}} and use &amp;lt;code&amp;gt;iptables-legacy-save&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because mixing backends is not supported, you should reboot your system if you have to use the iptables commands after upgrading.&lt;br /&gt;
&lt;br /&gt;
=== netns ===&lt;br /&gt;
&lt;br /&gt;
The OpenRC package contains a patch to make it possible to start most services in netns namespaces. See also [[Netns|netns]].&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== HashiCorp packages ===&lt;br /&gt;
&lt;br /&gt;
Due to [https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license the relicensing of HashiCorp software] to [https://spdx.org/licenses/BUSL-1.1.html BUSL-1.1], a non-Open-Source license, the following software have been removed from Alpine:&lt;br /&gt;
&lt;br /&gt;
* Consul&lt;br /&gt;
* Nomad&lt;br /&gt;
* Packer&lt;br /&gt;
* Terraform&lt;br /&gt;
* Vault&lt;br /&gt;
&lt;br /&gt;
Our discussion on the topic can be found [https://gitlab.alpinelinux.org/alpine/aports/-/issues/15193 here].&lt;br /&gt;
&lt;br /&gt;
{{pkg|opentofu}}, a fork of Terraform, is available in our testing repository for users of our rolling release, edge.&lt;br /&gt;
&lt;br /&gt;
=== Java 21 ===&lt;br /&gt;
&lt;br /&gt;
The latest LTS java release, openjdk21,  is now available in the community repository.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Applications have been upgraded from 23.04.x to 23.08.x. KDE Frameworks have been upgraded from 5.105.0 to 5.112.0.&lt;br /&gt;
Note that the KDE Frameworks packages have been renamed to add a 5 suffix in preparation for the upcoming KDE 6 release in the next Alpine release. Everything should automatically be upgraded properly but if problems occur make sure to check if the right renamed packages are installed.&lt;br /&gt;
&lt;br /&gt;
=== Yggdrasil v0.5 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|yggdrasil}} was upgraded to 0.5.x and the new routing scheme is incompatible with previous versions. &amp;quot;Nodes running this new version &#039;&#039;&#039;will not&#039;&#039;&#039; be able to peer with earlier versions of Yggdrasil&amp;quot; ([https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.5.0 v0.5.0 release notes], [https://yggdrasil-network.github.io/2023/10/22/upcoming-v05-release.html v0.5 blog post]).&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
&lt;br /&gt;
* GCC 13&lt;br /&gt;
* LLVM 17&lt;br /&gt;
* Kea 2.4&lt;br /&gt;
* Xen 4.18&lt;br /&gt;
* Git 2.43&lt;br /&gt;
* Perl 5.38&lt;br /&gt;
* PHP 8.3&lt;br /&gt;
* PostgreSQL 16&lt;br /&gt;
* SQLite 3.44&lt;br /&gt;
* Redis 7.2&lt;br /&gt;
* Node.js (lts) 20.10&lt;br /&gt;
* Node.js (current) 21.3&lt;br /&gt;
* QEMU 8.1&lt;br /&gt;
* Ceph 18.2&lt;br /&gt;
* GNOME 45&lt;br /&gt;
* LXQt 1.4&lt;br /&gt;
* wlroots 0.17&lt;br /&gt;
* Go 1.21&lt;br /&gt;
* Rust 1.72&lt;br /&gt;
* Crystal 1.10&lt;br /&gt;
* Racket 8.11&lt;br /&gt;
* ECL 23.9.9&lt;br /&gt;
* Erlang 26&lt;br /&gt;
* zlib 1.3&lt;br /&gt;
* libsodium 1.0.19&lt;br /&gt;
* ICU 74.1&lt;br /&gt;
* Protobuf 24.4&lt;br /&gt;
* fmt 10&lt;br /&gt;
* PipeWire 1.0.0&lt;br /&gt;
&lt;br /&gt;
== Raspberry pi ==&lt;br /&gt;
&lt;br /&gt;
The {{pkg|linux-rpi}} has been simplified. There is now a single kernel flavor for each architecture. This means that the kernels {{pkg|linux-rpi2}} and {{pkg|linux-rpi4}} are replaced with {{pkg|linux-rpi}}. The {{Path|config.txt}} is now generated by {{pkg|raspberrypi-bootloader}}.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25851</id>
		<title>Release Notes for Alpine 3.19.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.19.0&amp;diff=25851"/>
		<updated>2023-12-04T10:59:06Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Mention linux-rpi changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== iptables-nft ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;/sbin/iptables{,-save,-restore}&amp;lt;/code&amp;gt; symlinks now point to xtables-nft-multi instead of xtables-legacy-multi. This means they use the nftables kernel backend instead of the legacy iptables one.&lt;br /&gt;
&lt;br /&gt;
Since the new iptables- binaries also don&#039;t use the iptables backend, to work with any existing rules and save them, you need to install {{pkg|iptables-legacy}} and use &amp;lt;code&amp;gt;iptables-legacy-save&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because mixing backends is not supported, you should reboot your system if you have to use the iptables commands after upgrading.&lt;br /&gt;
&lt;br /&gt;
=== netns ===&lt;br /&gt;
&lt;br /&gt;
The OpenRC package contains a patch to make it possible to start most services in netns namespaces. See also [[Netns|netns]].&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== HashiCorp packages ===&lt;br /&gt;
&lt;br /&gt;
Due to [https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license the relicensing of HashiCorp software] to [https://spdx.org/licenses/BUSL-1.1.html BUSL-1.1], a non-Open-Source license, the following software have been removed from Alpine:&lt;br /&gt;
&lt;br /&gt;
* Consul&lt;br /&gt;
* Nomad&lt;br /&gt;
* Packer&lt;br /&gt;
* Terraform&lt;br /&gt;
* Vault&lt;br /&gt;
&lt;br /&gt;
Our discussion on the topic can be found [https://gitlab.alpinelinux.org/alpine/aports/-/issues/15193 here].&lt;br /&gt;
&lt;br /&gt;
{{pkg|opentofu}}, a fork of Terraform, is available in our testing repository for users of our rolling release, edge.&lt;br /&gt;
&lt;br /&gt;
=== Java 21 ===&lt;br /&gt;
&lt;br /&gt;
The latest LTS java release, openjdk21,  is now available in the community repository.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Applications have been upgraded from 23.04.x to 23.08.x. KDE Frameworks have been upgraded from 5.105.0 to 5.112.0.&lt;br /&gt;
Note that the KDE Frameworks packages have been renamed to add a 5 suffix in preparation for the upcoming KDE 6 release in the next Alpine release. Everything should automatically be upgraded properly but if problems occur make sure to check if the right renamed packages are installed.&lt;br /&gt;
&lt;br /&gt;
=== Yggdrasil v0.5 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|yggdrasil}} was upgraded to 0.5.x and the new routing scheme is incompatible with previous versions. &amp;quot;Nodes running this new version &#039;&#039;&#039;will not&#039;&#039;&#039; be able to peer with earlier versions of Yggdrasil&amp;quot; ([https://github.com/yggdrasil-network/yggdrasil-go/releases/tag/v0.5.0 v0.5.0 release notes], [https://yggdrasil-network.github.io/2023/10/22/upcoming-v05-release.html v0.5 blog post]).&lt;br /&gt;
&lt;br /&gt;
== Upgrades ==&lt;br /&gt;
&lt;br /&gt;
* GCC 13&lt;br /&gt;
* LLVM 17&lt;br /&gt;
* Kea 2.4&lt;br /&gt;
* Xen 4.18&lt;br /&gt;
* Git 2.43&lt;br /&gt;
* Perl 5.38&lt;br /&gt;
* PHP 8.3&lt;br /&gt;
* PostgreSQL 16&lt;br /&gt;
* SQLite 3.44&lt;br /&gt;
* Redis 7.2&lt;br /&gt;
* Node.js (lts) 20.10&lt;br /&gt;
* Node.js (current) 21.3&lt;br /&gt;
* QEMU 8.1&lt;br /&gt;
* Ceph 18.2&lt;br /&gt;
* GNOME 45&lt;br /&gt;
* LXQt 1.4&lt;br /&gt;
* wlroots 0.17&lt;br /&gt;
* Go 1.21&lt;br /&gt;
* Rust 1.72&lt;br /&gt;
* Crystal 1.10&lt;br /&gt;
* Racket 8.11&lt;br /&gt;
* ECL 23.9.9&lt;br /&gt;
* Erlang 26&lt;br /&gt;
* zlib 1.3&lt;br /&gt;
* libsodium 1.0.19&lt;br /&gt;
* ICU 74.1&lt;br /&gt;
* Protobuf 24.4&lt;br /&gt;
* fmt 10&lt;br /&gt;
* PipeWire 1.0.0&lt;br /&gt;
&lt;br /&gt;
== Raspberry pi ==&lt;br /&gt;
&lt;br /&gt;
The {{pkg|linux-rpi kernels}} has been simplified. There is now a single kernel flavor for each architecture. This means that the kernels {{pkg|linux-rpi2}} and {{pkg|linux-rpi4}} are replaced with {{pkg|linux-rpi}}. The {{Path|config.txt}} is now generated by {{pkg|raspberrypi-bootloader}}.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=25842</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=25842"/>
		<updated>2023-11-30T12:15:51Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: bump to 3.18.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.18.5&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24368</id>
		<title>Create Alpine Linux PV DomU</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24368"/>
		<updated>2023-08-18T15:03:53Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Adjust the domU config file to boot from fresh install */ fix pvgrub2 loader path and install grub-xenhost&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Obtain a copy of Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
To create an Alpine Linux paravirtualized (PV) DomU you&#039;ll need an Alpine Linux iso.&lt;br /&gt;
&lt;br /&gt;
Download the latest alpine-virt iso from https://alpinelinux.org/downloads/&lt;br /&gt;
&lt;br /&gt;
In this example we&#039;ll use {{path|/data/}} for the download and disk images.&lt;br /&gt;
&lt;br /&gt;
==Mount the ISO image ==&lt;br /&gt;
&lt;br /&gt;
Next, mount the iso so you can read the kernel and initramfs:&lt;br /&gt;
&lt;br /&gt;
{{cmd | mount -t iso9660 -o loop /data/alpine-virt-{{AlpineLatest}}-x86_64.iso  /media/cdrom }}&lt;br /&gt;
&lt;br /&gt;
Now you have the kernel in {{path|/media/cdrom/boot/vmlinuz-virt}} and initramfs in {{path|/media/cdrom/boot/initramfs-virt}}.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use {{path|uniso}} or {{path|p7zip}} to extract the content to a temporary area.&lt;br /&gt;
&lt;br /&gt;
== Create the disk image ==&lt;br /&gt;
Now you need to create an empty file to be used as the hard drive of the DomU (in this example we are using a 3GB disk):&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;dd if=/dev/zero of=/data/a1.img bs=1M count=3000&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, if an LVM volume group (e.g. vg1) with free space is available on dom0, create a logical volume for Alpine:&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;sudo lvcreate -n alpine -L 10g vg1&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Create a DomU config file that boots the ISO image ==&lt;br /&gt;
Next, create a basic DomU configuration file, so you can launch the pv guest iso (save it where you like, although the most common place is {{path|/etc/xen/}}).&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg | &amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
# Kernel paths for install&lt;br /&gt;
kernel = &amp;quot;/media/cdrom/boot/vmlinuz-virt&amp;quot;&lt;br /&gt;
ramdisk = &amp;quot;/media/cdrom/boot/initramfs-virt&amp;quot;&lt;br /&gt;
extra=&amp;quot;modules=loop,squashfs console=hvc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;,&lt;br /&gt;
        &#039;format=raw, vdev=xvdc, access=r, devtype=cdrom, target=/data/alpine-virt-&amp;lt;/nowiki&amp;gt;{{AlpineLatest}}&amp;lt;nowiki&amp;gt;-x86_64.iso&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If using LVM, replace {{path|/data/a1.img}} with {{path|/dev/vg1/alpine}} in the disk specification. &lt;br /&gt;
&lt;br /&gt;
== Install the guest ==&lt;br /&gt;
Now that you have the necessary files, you can start the DomU to proceed with the install:&lt;br /&gt;
&lt;br /&gt;
{{cmd|xl create -f /etc/xen/a1.cfg  -c}}&lt;br /&gt;
&lt;br /&gt;
Log into the system with user &amp;quot;root&amp;quot; and no password.&lt;br /&gt;
&lt;br /&gt;
After configuring the basic system, you will be asked where would you like to install Alpine. Choose xvda and sys.&lt;br /&gt;
&lt;br /&gt;
That will create three partitions on your disk. xvda1 for /boot, xvda2 for swap and xvda3 for /&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [none] xvda&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?] sys&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]: y&lt;br /&gt;
Initializing partitions on /dev/xvda...&lt;br /&gt;
Creating file systems...&lt;br /&gt;
Installing system on /dev/xvda3:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installation is complete. Please reboot.&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you reboot, the pv bootloader pvgrub, will look to /boot/grub/grub.cfg for its menu, so create that file first. &lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and create a {{path|grub/grub.cfg}} file for pvgrub. (Note that grub.cfg is for pvgrub2 which replaced pvgrub1 and its menu.lst beginning in 2013.)&lt;br /&gt;
&lt;br /&gt;
{{cmd |&amp;lt;nowiki&amp;gt;mount /dev/xvda1 /mnt&lt;br /&gt;
mkdir /mnt/grub&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Install a basic text editor like nano or vim:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | apk add nano}}&lt;br /&gt;
&lt;br /&gt;
If using nano, enter:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | nano /mnt/grub/grub.cfg}}&lt;br /&gt;
&lt;br /&gt;
Then add the following to create a basic grub2 configuration file:&lt;br /&gt;
{{cat | /mnt/grub/grub.cfg |&amp;lt;nowiki&amp;gt;menuentry &#039;alpine-xen&#039; {&lt;br /&gt;
    set root=(xen/xvda,msdos1)&lt;br /&gt;
    linux /boot/vmlinuz-virt root=/dev/xvda3 modules=ext4 console=hvc0&lt;br /&gt;
    initrd /boot/initramfs &lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Finally, Ctrl-S to save, Ctrl-X to exit nano.&lt;br /&gt;
&lt;br /&gt;
Unmount and power off.&lt;br /&gt;
{{cmd |umount /mnt&lt;br /&gt;
poweroff}}&lt;br /&gt;
&lt;br /&gt;
== Adjust the domU config file to boot from fresh install ==&lt;br /&gt;
&lt;br /&gt;
In your Dom0, edit your DomU config file to boot with pvgrub.&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
kernel = &amp;quot;/usr/lib/grub-xen/grub-x86_64-xen.bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Make sure that grub-xenhost is installed.&lt;br /&gt;
{{cmd | apk add grub-xenhost}}&lt;br /&gt;
&lt;br /&gt;
Remember to unmount the loopback iso image.&lt;br /&gt;
{{cmd | umount /media/cdrom}}&lt;br /&gt;
&lt;br /&gt;
The next time you boot, you&#039;ll be presented with the grub boot menu, and your VM will boot.&lt;br /&gt;
&lt;br /&gt;
== Using Legacy pvgrub ==&lt;br /&gt;
&lt;br /&gt;
To use Legacy pvgrub you need to use a {{path|/boot/grub/menu.lst}} instead of {{path|/boot/grub/grub.cfg}}.&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;default 0&lt;br /&gt;
timeout 2&lt;br /&gt;
title alpine-xen-pv&lt;br /&gt;
root (hd0,0)&lt;br /&gt;
kernel /boot/vmlinuz-virt root=/dev/xvda3 modules=ext4 console=hvc0&lt;br /&gt;
initrd /boot/initramfs-virt&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
And in {{path|/etc/xen/a1.cfg}} you need to change the &#039;kernel&#039; loader to&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;...&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/pv-grub-x86_64.gz&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.linkedin.com/pulse/setting-up-alpine-linux-370-domu-vm-xenserver-72-ali-poursamadi Setting up Alpine Linux 3.7.0 as a domU VM on XenServer 7.2]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24367</id>
		<title>Create Alpine Linux PV DomU</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24367"/>
		<updated>2023-08-18T14:59:49Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Adjust the domU config file to boot from fresh install */ add instructions for legacy pvgrub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Obtain a copy of Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
To create an Alpine Linux paravirtualized (PV) DomU you&#039;ll need an Alpine Linux iso.&lt;br /&gt;
&lt;br /&gt;
Download the latest alpine-virt iso from https://alpinelinux.org/downloads/&lt;br /&gt;
&lt;br /&gt;
In this example we&#039;ll use {{path|/data/}} for the download and disk images.&lt;br /&gt;
&lt;br /&gt;
==Mount the ISO image ==&lt;br /&gt;
&lt;br /&gt;
Next, mount the iso so you can read the kernel and initramfs:&lt;br /&gt;
&lt;br /&gt;
{{cmd | mount -t iso9660 -o loop /data/alpine-virt-{{AlpineLatest}}-x86_64.iso  /media/cdrom }}&lt;br /&gt;
&lt;br /&gt;
Now you have the kernel in {{path|/media/cdrom/boot/vmlinuz-virt}} and initramfs in {{path|/media/cdrom/boot/initramfs-virt}}.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use {{path|uniso}} or {{path|p7zip}} to extract the content to a temporary area.&lt;br /&gt;
&lt;br /&gt;
== Create the disk image ==&lt;br /&gt;
Now you need to create an empty file to be used as the hard drive of the DomU (in this example we are using a 3GB disk):&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;dd if=/dev/zero of=/data/a1.img bs=1M count=3000&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, if an LVM volume group (e.g. vg1) with free space is available on dom0, create a logical volume for Alpine:&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;sudo lvcreate -n alpine -L 10g vg1&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Create a DomU config file that boots the ISO image ==&lt;br /&gt;
Next, create a basic DomU configuration file, so you can launch the pv guest iso (save it where you like, although the most common place is {{path|/etc/xen/}}).&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg | &amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
# Kernel paths for install&lt;br /&gt;
kernel = &amp;quot;/media/cdrom/boot/vmlinuz-virt&amp;quot;&lt;br /&gt;
ramdisk = &amp;quot;/media/cdrom/boot/initramfs-virt&amp;quot;&lt;br /&gt;
extra=&amp;quot;modules=loop,squashfs console=hvc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;,&lt;br /&gt;
        &#039;format=raw, vdev=xvdc, access=r, devtype=cdrom, target=/data/alpine-virt-&amp;lt;/nowiki&amp;gt;{{AlpineLatest}}&amp;lt;nowiki&amp;gt;-x86_64.iso&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If using LVM, replace {{path|/data/a1.img}} with {{path|/dev/vg1/alpine}} in the disk specification. &lt;br /&gt;
&lt;br /&gt;
== Install the guest ==&lt;br /&gt;
Now that you have the necessary files, you can start the DomU to proceed with the install:&lt;br /&gt;
&lt;br /&gt;
{{cmd|xl create -f /etc/xen/a1.cfg  -c}}&lt;br /&gt;
&lt;br /&gt;
Log into the system with user &amp;quot;root&amp;quot; and no password.&lt;br /&gt;
&lt;br /&gt;
After configuring the basic system, you will be asked where would you like to install Alpine. Choose xvda and sys.&lt;br /&gt;
&lt;br /&gt;
That will create three partitions on your disk. xvda1 for /boot, xvda2 for swap and xvda3 for /&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [none] xvda&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?] sys&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]: y&lt;br /&gt;
Initializing partitions on /dev/xvda...&lt;br /&gt;
Creating file systems...&lt;br /&gt;
Installing system on /dev/xvda3:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installation is complete. Please reboot.&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you reboot, the pv bootloader pvgrub, will look to /boot/grub/grub.cfg for its menu, so create that file first. &lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and create a {{path|grub/grub.cfg}} file for pvgrub. (Note that grub.cfg is for pvgrub2 which replaced pvgrub1 and its menu.lst beginning in 2013.)&lt;br /&gt;
&lt;br /&gt;
{{cmd |&amp;lt;nowiki&amp;gt;mount /dev/xvda1 /mnt&lt;br /&gt;
mkdir /mnt/grub&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Install a basic text editor like nano or vim:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | apk add nano}}&lt;br /&gt;
&lt;br /&gt;
If using nano, enter:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | nano /mnt/grub/grub.cfg}}&lt;br /&gt;
&lt;br /&gt;
Then add the following to create a basic grub2 configuration file:&lt;br /&gt;
{{cat | /mnt/grub/grub.cfg |&amp;lt;nowiki&amp;gt;menuentry &#039;alpine-xen&#039; {&lt;br /&gt;
    set root=(xen/xvda,msdos1)&lt;br /&gt;
    linux /boot/vmlinuz-virt root=/dev/xvda3 modules=ext4 console=hvc0&lt;br /&gt;
    initrd /boot/initramfs &lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Finally, Ctrl-S to save, Ctrl-X to exit nano.&lt;br /&gt;
&lt;br /&gt;
Unmount and power off.&lt;br /&gt;
{{cmd |umount /mnt&lt;br /&gt;
poweroff}}&lt;br /&gt;
&lt;br /&gt;
== Adjust the domU config file to boot from fresh install ==&lt;br /&gt;
&lt;br /&gt;
In your Dom0, edit your DomU config file to boot with pvgrub.&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/pv-grub-x86_64.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The name and location of pvgrub in Dom0 is distribution-specific, so you may need to change the &amp;quot;kernel=&amp;quot; line, above. &lt;br /&gt;
&lt;br /&gt;
For example, in Debian 10, it&#039;s {{path|&#039;/usr/lib/grub-xen/grub-x86_64-xen.bin&#039;}}&lt;br /&gt;
&lt;br /&gt;
Remember to unmount the loopback iso image.&lt;br /&gt;
{{cmd | umount /media/cdrom}}&lt;br /&gt;
&lt;br /&gt;
The next time you boot, you&#039;ll be presented with the grub boot menu, and your VM will boot.&lt;br /&gt;
&lt;br /&gt;
== Using Legacy pvgrub ==&lt;br /&gt;
&lt;br /&gt;
To use Legacy pvgrub you need to use a {{path|/boot/grub/menu.lst}} instead of {{path|/boot/grub/grub.cfg}}.&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;default 0&lt;br /&gt;
timeout 2&lt;br /&gt;
title alpine-xen-pv&lt;br /&gt;
root (hd0,0)&lt;br /&gt;
kernel /boot/vmlinuz-virt root=/dev/xvda3 modules=ext4 console=hvc0&lt;br /&gt;
initrd /boot/initramfs-virt&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
And in {{path|/etc/xen/a1.cfg}} you need to change the &#039;kernel&#039; loader to&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;...&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/pv-grub-x86_64.gz&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.linkedin.com/pulse/setting-up-alpine-linux-370-domu-vm-xenserver-72-ali-poursamadi Setting up Alpine Linux 3.7.0 as a domU VM on XenServer 7.2]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24366</id>
		<title>Create Alpine Linux PV DomU</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Create_Alpine_Linux_PV_DomU&amp;diff=24366"/>
		<updated>2023-08-18T14:53:11Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Install the guest */ add console=hvc0 as boot option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Obtain a copy of Alpine Linux ==&lt;br /&gt;
&lt;br /&gt;
To create an Alpine Linux paravirtualized (PV) DomU you&#039;ll need an Alpine Linux iso.&lt;br /&gt;
&lt;br /&gt;
Download the latest alpine-virt iso from https://alpinelinux.org/downloads/&lt;br /&gt;
&lt;br /&gt;
In this example we&#039;ll use {{path|/data/}} for the download and disk images.&lt;br /&gt;
&lt;br /&gt;
==Mount the ISO image ==&lt;br /&gt;
&lt;br /&gt;
Next, mount the iso so you can read the kernel and initramfs:&lt;br /&gt;
&lt;br /&gt;
{{cmd | mount -t iso9660 -o loop /data/alpine-virt-{{AlpineLatest}}-x86_64.iso  /media/cdrom }}&lt;br /&gt;
&lt;br /&gt;
Now you have the kernel in {{path|/media/cdrom/boot/vmlinuz-virt}} and initramfs in {{path|/media/cdrom/boot/initramfs-virt}}.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can use {{path|uniso}} or {{path|p7zip}} to extract the content to a temporary area.&lt;br /&gt;
&lt;br /&gt;
== Create the disk image ==&lt;br /&gt;
Now you need to create an empty file to be used as the hard drive of the DomU (in this example we are using a 3GB disk):&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;dd if=/dev/zero of=/data/a1.img bs=1M count=3000&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, if an LVM volume group (e.g. vg1) with free space is available on dom0, create a logical volume for Alpine:&lt;br /&gt;
&lt;br /&gt;
{{cmd | &amp;lt;nowiki&amp;gt;sudo lvcreate -n alpine -L 10g vg1&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Create a DomU config file that boots the ISO image ==&lt;br /&gt;
Next, create a basic DomU configuration file, so you can launch the pv guest iso (save it where you like, although the most common place is {{path|/etc/xen/}}).&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg | &amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
# Kernel paths for install&lt;br /&gt;
kernel = &amp;quot;/media/cdrom/boot/vmlinuz-virt&amp;quot;&lt;br /&gt;
ramdisk = &amp;quot;/media/cdrom/boot/initramfs-virt&amp;quot;&lt;br /&gt;
extra=&amp;quot;modules=loop,squashfs console=hvc0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;,&lt;br /&gt;
        &#039;format=raw, vdev=xvdc, access=r, devtype=cdrom, target=/data/alpine-virt-&amp;lt;/nowiki&amp;gt;{{AlpineLatest}}&amp;lt;nowiki&amp;gt;-x86_64.iso&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
If using LVM, replace {{path|/data/a1.img}} with {{path|/dev/vg1/alpine}} in the disk specification. &lt;br /&gt;
&lt;br /&gt;
== Install the guest ==&lt;br /&gt;
Now that you have the necessary files, you can start the DomU to proceed with the install:&lt;br /&gt;
&lt;br /&gt;
{{cmd|xl create -f /etc/xen/a1.cfg  -c}}&lt;br /&gt;
&lt;br /&gt;
Log into the system with user &amp;quot;root&amp;quot; and no password.&lt;br /&gt;
&lt;br /&gt;
After configuring the basic system, you will be asked where would you like to install Alpine. Choose xvda and sys.&lt;br /&gt;
&lt;br /&gt;
That will create three partitions on your disk. xvda1 for /boot, xvda2 for swap and xvda3 for /&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Available disks are:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
Which disk(s) would you like to use? (or &#039;?&#039; for help or &#039;none&#039;) [none] xvda&lt;br /&gt;
The following disk is selected:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
How would you like to use it? (&#039;sys&#039;, &#039;data&#039; or &#039;?&#039; for help) [?] sys&lt;br /&gt;
WARNING: The following disk(s) will be erased:&lt;br /&gt;
  xvda	(3.1 GB  )&lt;br /&gt;
WARNING: Erase the above disk(s) and continue? [y/N]: y&lt;br /&gt;
Initializing partitions on /dev/xvda...&lt;br /&gt;
Creating file systems...&lt;br /&gt;
Installing system on /dev/xvda3:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Installation is complete. Please reboot.&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you reboot, the pv bootloader pvgrub, will look to /boot/grub/grub.cfg for its menu, so create that file first. &lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and create a {{path|grub/grub.cfg}} file for pvgrub. (Note that grub.cfg is for pvgrub2 which replaced pvgrub1 and its menu.lst beginning in 2013.)&lt;br /&gt;
&lt;br /&gt;
{{cmd |&amp;lt;nowiki&amp;gt;mount /dev/xvda1 /mnt&lt;br /&gt;
mkdir /mnt/grub&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Install a basic text editor like nano or vim:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | apk add nano}}&lt;br /&gt;
&lt;br /&gt;
If using nano, enter:&amp;lt;br/&amp;gt;&lt;br /&gt;
{{cmd | nano /mnt/grub/grub.cfg}}&lt;br /&gt;
&lt;br /&gt;
Then add the following to create a basic grub2 configuration file:&lt;br /&gt;
{{cat | /mnt/grub/grub.cfg |&amp;lt;nowiki&amp;gt;menuentry &#039;alpine-xen&#039; {&lt;br /&gt;
    set root=(xen/xvda,msdos1)&lt;br /&gt;
    linux /boot/vmlinuz-virt root=/dev/xvda3 modules=ext4 console=hvc0&lt;br /&gt;
    initrd /boot/initramfs &lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Finally, Ctrl-S to save, Ctrl-X to exit nano.&lt;br /&gt;
&lt;br /&gt;
Unmount and power off.&lt;br /&gt;
{{cmd |umount /mnt&lt;br /&gt;
poweroff}}&lt;br /&gt;
&lt;br /&gt;
== Adjust the domU config file to boot from fresh install ==&lt;br /&gt;
&lt;br /&gt;
In your Dom0, edit your DomU config file to boot with pvgrub.&lt;br /&gt;
&lt;br /&gt;
{{cat | /etc/xen/a1.cfg |&amp;lt;nowiki&amp;gt;# Alpine Linux PV DomU&lt;br /&gt;
&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/pv-grub-x86_64.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to HDD and iso file&lt;br /&gt;
disk = [&lt;br /&gt;
        &#039;format=raw, vdev=xvda, access=w, target=/data/a1.img&#039;&lt;br /&gt;
       ]&lt;br /&gt;
&lt;br /&gt;
# Network configuration&lt;br /&gt;
vif = [&#039;bridge=br0&#039;]&lt;br /&gt;
&lt;br /&gt;
# DomU settings&lt;br /&gt;
memory = 512&lt;br /&gt;
name = &amp;quot;alpine-a1&amp;quot;&lt;br /&gt;
vcpus = 1&lt;br /&gt;
maxvcpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The name and location of pvgrub in Dom0 is distribution-specific, so you may need to change the &amp;quot;kernel=&amp;quot; line, above. &lt;br /&gt;
&lt;br /&gt;
For example, in Debian 10, it&#039;s {{path|&#039;/usr/lib/grub-xen/grub-x86_64-xen.bin&#039;}}&lt;br /&gt;
&lt;br /&gt;
Remember to unmount the loopback iso image.&lt;br /&gt;
{{cmd | umount /media/cdrom}}&lt;br /&gt;
&lt;br /&gt;
The next time you boot, you&#039;ll be presented with the grub boot menu, and your VM will boot.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.linkedin.com/pulse/setting-up-alpine-linux-370-domu-vm-xenserver-72-ali-poursamadi Setting up Alpine Linux 3.7.0 as a domU VM on XenServer 7.2]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=24172</id>
		<title>Template:AlpineLatest</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:AlpineLatest&amp;diff=24172"/>
		<updated>2023-08-07T17:31:21Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;3.18.3&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Template:Issue&amp;diff=24015</id>
		<title>Template:Issue</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Template:Issue&amp;diff=24015"/>
		<updated>2023-07-31T06:12:48Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: fix url to issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template}}&lt;br /&gt;
== Template Documentation ==&lt;br /&gt;
Link to [http://bugs.alpinelinux.org/ Alpine Issues].&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Issue|279}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will produce:&lt;br /&gt;
{{Issue|279}}&lt;br /&gt;
&lt;br /&gt;
The issue&#039;s description can be included as an optional second argument. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[https://gitlab.alpinelinux.org/alpine/aports/-/issues/{{{1}}} #{{{1}}}{{Ifn|{{{2|}}}|. {{{2}}}}}]&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23400</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23400"/>
		<updated>2023-05-09T19:03:38Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* GNOME */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL 3.1 ===&lt;br /&gt;
&lt;br /&gt;
[https://www.openssl.org/news/openssl-3.1-notes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Experimental headless installer ===&lt;br /&gt;
&lt;br /&gt;
Support for head-less installs with [https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud tiny-cloud] was added. This is done via a volume with label &amp;lt;code&amp;gt;cidata&amp;lt;/code&amp;gt;, similar to cloud-init&#039;s [https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html NoCloud] provider. If this volume is found during boot, the network will be auto configured and provided, a default user named &amp;lt;code&amp;gt;alpine&amp;lt;/code&amp;gt; will be created and ssh keys provided in meta-data will be added. This is experimental and may change without prior notice.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== Go 1.20 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|go}} [https://go.dev/blog/go1.20 release notes]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME 44 ===&lt;br /&gt;
&lt;br /&gt;
[https://release.gnome.org/44/ release notes]&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27  ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26 to 5.27. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23399</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23399"/>
		<updated>2023-05-09T19:02:53Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Plasma 5.27.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL 3.1 ===&lt;br /&gt;
&lt;br /&gt;
[https://www.openssl.org/news/openssl-3.1-notes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Experimental headless installer ===&lt;br /&gt;
&lt;br /&gt;
Support for head-less installs with [https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud tiny-cloud] was added. This is done via a volume with label &amp;lt;code&amp;gt;cidata&amp;lt;/code&amp;gt;, similar to cloud-init&#039;s [https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html NoCloud] provider. If this volume is found during boot, the network will be auto configured and provided, a default user named &amp;lt;code&amp;gt;alpine&amp;lt;/code&amp;gt; will be created and ssh keys provided in meta-data will be added. This is experimental and may change without prior notice.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== Go 1.20 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|go}} [https://go.dev/blog/go1.20 release notes]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27  ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26 to 5.27. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23398</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23398"/>
		<updated>2023-05-09T19:00:40Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Compilers and Runtimes */ add g0 1.20&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL 3.1 ===&lt;br /&gt;
&lt;br /&gt;
[https://www.openssl.org/news/openssl-3.1-notes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Experimental headless installer ===&lt;br /&gt;
&lt;br /&gt;
Support for head-less installs with [https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud tiny-cloud] was added. This is done via a volume with label &amp;lt;code&amp;gt;cidata&amp;lt;/code&amp;gt;, similar to cloud-init&#039;s [https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html NoCloud] provider. If this volume is found during boot, the network will be auto configured and provided, a default user named &amp;lt;code&amp;gt;alpine&amp;lt;/code&amp;gt; will be created and ssh keys provided in meta-data will be added. This is experimental and may change without prior notice.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== Go 1.20 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|go}} [https://go.dev/blog/go1.20 release notes]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23397</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23397"/>
		<updated>2023-05-09T18:53:45Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: add openssl 3.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL 3.1 ===&lt;br /&gt;
&lt;br /&gt;
[https://www.openssl.org/news/openssl-3.1-notes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Experimental headless installer ===&lt;br /&gt;
&lt;br /&gt;
Support for head-less installs with [https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud tiny-cloud] was added. This is done via a volume with label &amp;lt;code&amp;gt;cidata&amp;lt;/code&amp;gt;, similar to cloud-init&#039;s [https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html NoCloud] provider. If this volume is found during boot, the network will be auto configured and provided, a default user named &amp;lt;code&amp;gt;alpine&amp;lt;/code&amp;gt; will be created and ssh keys provided in meta-data will be added. This is experimental and may change without prior notice.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23396</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23396"/>
		<updated>2023-05-09T15:03:35Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Base System */ mention head-less install with tiny-cloud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== Experimental headless installer ===&lt;br /&gt;
&lt;br /&gt;
Support for head-less installs with [https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud tiny-cloud] was added. This is done via a volume with label &amp;lt;code&amp;gt;cidata&amp;lt;/code&amp;gt;, similar to cloud-init&#039;s [https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html NoCloud] provider. If this volume is found during boot, the network will be auto configured and provided, a default user named &amp;lt;code&amp;gt;alpine&amp;lt;/code&amp;gt; will be created and ssh keys provided in meta-data will be added. This is experimental and may change without prior notice.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23394</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23394"/>
		<updated>2023-05-09T14:49:47Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Others */ move stuff in main to the top&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23393</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23393"/>
		<updated>2023-05-09T14:48:22Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Desktop */  move stuff in main to the top&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23392</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23392"/>
		<updated>2023-05-09T14:47:16Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: /* Compilers and Runtimes */ sort by repo,alphabeitcally (eg main before community, then sort alphabetic)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Base System ==&lt;br /&gt;
&lt;br /&gt;
=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|linux-lts}} was updated from 5.15 to 6.1. [https://lkml.org/lkml/2022/12/11/206 release notes]&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: {{pkg|akms}} (Alpine Kernel Module Support) doesn&#039;t support modules signing yet, it will be implemented later.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP. [https://www.openwall.com/lists/musl/2023/05/02/1 release notes]&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===&lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== e2fsprogs 1.47.0 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|e2fsprogs}} package shipped with Alpine 3.18 changed the behaviour of &amp;lt;code&amp;gt;mke2fs&amp;lt;/code&amp;gt; so that newly created filesystems have two additional features enabled.&lt;br /&gt;
&lt;br /&gt;
From [https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0 release notes]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;The mke2fs program (via the mke2fs.conf file) now enables the metadata_csum_seed and orphan_file features by default.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, whilst the &amp;lt;code&amp;gt;metadata_csum_seed&amp;lt;/code&amp;gt; feature is known about by older versions of e2fsck the &amp;lt;code&amp;gt;orphan_file&amp;lt;/code&amp;gt; feature was both added to e2fsprogs 1.47.0 &#039;&#039;&#039;and&#039;&#039;&#039; enabled at the same time. Therefore older versions of e2fsck are unable to fsck a filesystem created by mke2fs 1.47.0.&lt;br /&gt;
&lt;br /&gt;
== Compilers and Runtimes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- stuff in main --&amp;gt;&lt;br /&gt;
=== LLVM 16 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|llvm16}} was added. [https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html release notes]&lt;br /&gt;
&lt;br /&gt;
=== Lua ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|luarocks}}, the package manager for Lua, was updated from 2.x to 3x. [https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md#whats-new-in-luarocks-300 release notes]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|python3}} was updated from 3.10 to 3.11. [https://docs.python.org/3/whatsnew/3.11.html release notes]&lt;br /&gt;
&lt;br /&gt;
==== splitting of python pycache .pyc files ====&lt;br /&gt;
&lt;br /&gt;
Most python modules split their &amp;lt;code&amp;gt;__pycache__&amp;lt;/code&amp;gt; to a &amp;lt;code&amp;gt;-pyc&amp;lt;/code&amp;gt; subpackage, pulled by default. To save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|ruby}} was updated from 3.1 to 3.2. [https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/ release notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- community --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crystal 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} was updated from 1.6 to 1.8. [https://crystal-lang.org/2023/01/09/1.7.0-released/ release notes for 1.7], [https://crystal-lang.org/2023/04/14/1.8.0-released/ release notes for 1.8]&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with a subset of the most common extensions. Version 8.1 still remains the primary provider priority, but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== R 4.3 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|R}} was updated from 4.2 to 4.3. [https://www.r-bloggers.com/2023/04/whats-new-in-r-4-3-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Rust 1.69 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} was updated from 1.64 to 1.69.&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|gnome}} metapackage was reworked and the packages {{pkg|gnome-apps-extra}} and {{pkg|gnome-games-collection}} were removed to avoid opinionated lists in metapackages. It is advised to remove those from &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt; before performing the upgrade. Additionally, the new subpackage {{pkg|gnome-dev-tools}} was added following the upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
On related news, to make use of GNOME Software, it is necessary to enable the &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; openrc service. More info in the [https://wiki.alpinelinux.org/wiki/Gnome#Enabling_GNOME_Software wiki]&lt;br /&gt;
&lt;br /&gt;
=== Plasma 5.27.4 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|plasma}} was updated from 5.26.5 to 5.27.4. This includes some new packages like {{pkg|plasma-welcome}} (a welcoming application that shows up on the first boot to configure some initial settings) and {{pkg|flatpak-kcm}} (a configuration page for the system settings to control Flatpak permissions, much like GNOME&#039;s Flatseal).&lt;br /&gt;
This Plasma release is the last one that will be built on Qt5 and will probably remain in use for Alpine 3.19 as well.&lt;br /&gt;
&lt;br /&gt;
=== Sway 1.8 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|sway}} was updated from 1.7 to 1.8. [https://github.com/swaywm/sway/releases/tag/1.8 release notes]&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
A few gdk-pixbuf loaders were added, and they were all added to an &amp;lt;code&amp;gt;install_if&amp;lt;/code&amp;gt; metapackage rule. Run &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for the corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
=== Removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|pipewire-media-session}} was removed, as upstream explicitly recommends not to use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have {{pkg|pipewire-media-session}} in &amp;lt;code&amp;gt;/etc/apk/world&amp;lt;/code&amp;gt;, and configure any scripts you might&#039;ve had to launch &amp;lt;code&amp;gt;wireplumber&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages {{pkg|openrc-settingsd}} and {{pkg|apk-polkit-rs}}. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== QEMU 8 ===&lt;br /&gt;
&lt;br /&gt;
QEMU was updated from 7.1 to 8.0. [https://www.qemu.org/2023/04/20/qemu-8-0-0/ release notes]&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|docker}} package shipped with Alpine 3.18 has a dependency on {{pkg|docker-cli-buildx}}, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to the [https://docs.docker.com/engine/release-notes/23.0/ release notes].&lt;br /&gt;
&lt;br /&gt;
=== nginx 1.24 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|nginx}} was updated to the new stable branch 1.24.x. [https://nginx.org/en/CHANGES-1.24 release notes]&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Talk:Release_Notes_for_Alpine_3.18.0&amp;diff=23390</id>
		<title>Talk:Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Talk:Release_Notes_for_Alpine_3.18.0&amp;diff=23390"/>
		<updated>2023-05-09T14:42:10Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: Created page with &amp;quot;I think it makes sense to try keep everything in `main` at the top and `community` below. Just ingeneral.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I think it makes sense to try keep everything in `main` at the top and `community` below. Just ingeneral.&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23365</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23365"/>
		<updated>2023-05-08T06:13:03Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
linux-lts 6.1 https://lkml.org/lkml/2022/12/11/206&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP.&lt;br /&gt;
&lt;br /&gt;
https://www.openwall.com/lists/musl/2023/05/02/1&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===  &lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The gnome metapackage was reworked and the packages gnome-apps-extra and gnome-games-collection were removed to avoid opinionated lists in metapackages. It is advised to remove those from /etc/apk/world before performing the upgrade. Additionally, the new subpackage gnome-dev-tools was added following upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-rs&amp;lt;/code&amp;gt;. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
pipewire-media-session was removed, as upstream explicitly recommends to not use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have pipewire-media-session in /etc/apk/world, and configure any scripts you might&#039;ve had to launch wireplumber instead.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
python 3.11 https://docs.python.org/3/whatsnew/3.11.html&lt;br /&gt;
&lt;br /&gt;
=== splitting of python pycache .pyc files ===&lt;br /&gt;
&lt;br /&gt;
most python modules split their __pycache__ to a -pyc subpackage, pulled by default. to save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with subset of the most common extensions. Version 8.1 still remains primary provider priority but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
Ruby was updated to 3.2. https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
a few gdk-pixbuf loaders were added, and they were all added to an install_if metapackage rule- &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; package shipped with Alpine 3.18 has a dependency on &amp;lt;code&amp;gt;docker-cli-buildx&amp;lt;/code&amp;gt;, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to https://docs.docker.com/engine/release-notes/23.0/&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23364</id>
		<title>Release Notes for Alpine 3.18.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.18.0&amp;diff=23364"/>
		<updated>2023-05-08T06:07:22Z</updated>

		<summary type="html">&lt;p&gt;Ncopa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
linux-lts 6.1 https://lkml.org/lkml/2022/12/11/206&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now signed.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
python 3.11 https://docs.python.org/3/whatsnew/3.11.html&lt;br /&gt;
&lt;br /&gt;
python packages have the precompiled pyc files split into a subpackage. Use `apk add !pyc` to avoid having those installed and save some space.&lt;br /&gt;
&lt;br /&gt;
=== GNOME ===&lt;br /&gt;
&lt;br /&gt;
The gnome metapackage was reworked and the packages gnome-apps-extra and gnome-games-collection were removed to avoid opinionated lists in metapackages. It is advised to remove those from /etc/apk/world before performing the upgrade. Additionally, the new subpackage gnome-dev-tools was added following upstream&#039;s recommendations.&lt;br /&gt;
&lt;br /&gt;
=== dbus ===&lt;br /&gt;
&lt;br /&gt;
dbus-activation has been removed from packages &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-rs&amp;lt;/code&amp;gt;. To make use of their services, make sure to start and enable the &amp;lt;code&amp;gt;openrc-settingsd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;apk-polkit-server&amp;lt;/code&amp;gt; services, respectively.&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2.4 ===&lt;br /&gt;
&lt;br /&gt;
Support for DNS lookups over TCP.&lt;br /&gt;
&lt;br /&gt;
https://www.openwall.com/lists/musl/2023/05/02/1&lt;br /&gt;
&lt;br /&gt;
=== DT_RELR ===  &lt;br /&gt;
&lt;br /&gt;
on x86, x86_64, and ppc64le, &amp;lt;code&amp;gt;-Wl,-z,pack-relative-relocs&amp;lt;/code&amp;gt; is now added to the base LDFLAGS. this reduces elf (executable/shared-library) size by 10% on average.  &lt;br /&gt;
&lt;br /&gt;
however, these binaries are now not portable to other musl-based systems that have a musl older than 1.2.4, because older versions are incapable of loading these binaries.&lt;br /&gt;
&lt;br /&gt;
=== removal of pipewire-media-session ===&lt;br /&gt;
&lt;br /&gt;
pipewire-media-session was removed, as upstream explicitly recommends to not use it, and it&#039;s completely superceded by wireplumber.&lt;br /&gt;
if you used it, make sure you don&#039;t have pipewire-media-session in /etc/apk/world, and configure any scripts you might&#039;ve had to launch wireplumber instead.&lt;br /&gt;
&lt;br /&gt;
=== splitting of python pycache .pyc files ===&lt;br /&gt;
&lt;br /&gt;
most python modules split their __pycache__ to a -pyc subpackage, pulled by default. to save space and not pull it (incurring python interpreter startup costs, as it generates it each run), run &amp;lt;code&amp;gt;apk add !python3-pyc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.2 ===&lt;br /&gt;
&lt;br /&gt;
Added 8.2 packages with subset of the most common extensions. Version 8.1 still remains primary provider priority but some web applications started to use 8.2.&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.2 ===&lt;br /&gt;
&lt;br /&gt;
Ruby was updated to 3.2. https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/&lt;br /&gt;
&lt;br /&gt;
=== gdk-pixbuf-loaders ===&lt;br /&gt;
&lt;br /&gt;
a few gdk-pixbuf loaders were added, and they were all added to an install_if metapackage rule- &amp;lt;code&amp;gt;apk add gdk-pixbuf-loaders&amp;lt;/code&amp;gt; to enable the loaders for corresponding image libraries you have installed.&lt;br /&gt;
&lt;br /&gt;
=== Docker 23 ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;docker&amp;lt;/code&amp;gt; package shipped with Alpine 3.18 has a dependency on &amp;lt;code&amp;gt;docker-cli-buildx&amp;lt;/code&amp;gt;, as Docker 23 now uses it for builds.&lt;br /&gt;
&lt;br /&gt;
Also, Docker 23 no longer enables the &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; storage driver, as it has been deprecated for a long time and is nearing removal. if your deployment is still configured to use it, &amp;lt;code&amp;gt;dockerd&amp;lt;/code&amp;gt; will fail to start.  To fix this, either...&lt;br /&gt;
&lt;br /&gt;
* migrate to &amp;lt;code&amp;gt;overlay2&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/docker/daemon.json&amp;lt;/code&amp;gt;&lt;br /&gt;
* hardcode it to &amp;lt;code&amp;gt;overlay&amp;lt;/code&amp;gt; in the same file (instead of blank), though this will eventually break in a future upgrade&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Docker 23, please refer to https://docs.docker.com/engine/release-notes/23.0/&lt;/div&gt;</summary>
		<author><name>Ncopa</name></author>
	</entry>
</feed>