<?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=Lmarz</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=Lmarz"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Lmarz"/>
	<updated>2026-05-03T15:13:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.17.0&amp;diff=22996</id>
		<title>Release Notes for Alpine 3.17.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.17.0&amp;diff=22996"/>
		<updated>2023-02-19T14:24:57Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Fill in the changes from the release announcement&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== New default OpenSSL version ===&lt;br /&gt;
OpenSSL 3.0 is now the default OpenSSL version. OpenSSL 1.1 is available via the {{Pkg|openssl1.1-compat}} package.&lt;br /&gt;
&lt;br /&gt;
=== Rust now works on all architectures ===&lt;br /&gt;
&lt;br /&gt;
== Significant updates ==&lt;br /&gt;
&lt;br /&gt;
* bash 5.2&lt;br /&gt;
* GCC 12&lt;br /&gt;
* Kea 2.2&lt;br /&gt;
* LLVM 15&lt;br /&gt;
* OpenSSL 3.0&lt;br /&gt;
* Perl 5.36&lt;br /&gt;
* PostgreSQL 15&lt;br /&gt;
* Node.js (lts) 18.12&lt;br /&gt;
* Node.js (current) 19.1&lt;br /&gt;
* Ceph 17.2&lt;br /&gt;
* GNOME 43&lt;br /&gt;
* Go 1.19&lt;br /&gt;
* KDE Plasma 5.26&lt;br /&gt;
* Rust 1.64&lt;br /&gt;
* .NET 7.0.100&lt;br /&gt;
&lt;br /&gt;
== Deprecations / Removals ==&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.0 has been deprecated ===&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.17.0&amp;diff=22995</id>
		<title>Release Notes for Alpine 3.17.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.17.0&amp;diff=22995"/>
		<updated>2023-02-19T14:13:31Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.16.0&amp;diff=22994</id>
		<title>Release Notes for Alpine 3.16.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.16.0&amp;diff=22994"/>
		<updated>2023-02-19T14:13:10Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== Python 2 has been removed ===&lt;br /&gt;
&lt;br /&gt;
Stable alpine releases do not have python 2 anymore.&lt;br /&gt;
&lt;br /&gt;
=== /tmp mounted as tmpfs ===&lt;br /&gt;
&lt;br /&gt;
Previously &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; was part of the root filesystem and was cleaned on boot via the bootmisc openrc service script. In v3.16, new installations will mount &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; as tmpfs.  &lt;br /&gt;
&lt;br /&gt;
The bootmisc script no longer wipes /tmp on boot. If you want the previous behaviour, set &amp;lt;code&amp;gt;wipe_tmp&amp;lt;/code&amp;gt; to YES in /etc/conf.d/bootmisc&lt;br /&gt;
&lt;br /&gt;
=== ICU data split ===&lt;br /&gt;
&lt;br /&gt;
The icu package has been split into:&lt;br /&gt;
&lt;br /&gt;
* {{pkg|icu-data-en}} (2.6 MiB) - Stripped down ICU data with only en_US/GB locale and no legacy charset converters.&lt;br /&gt;
* {{pkg|icu-data-full}} (29 MiB) - Full ICU data.&lt;br /&gt;
&lt;br /&gt;
{{pkg|icu-libs}} only installs icu-data-en. If additional language support is required, {{pkg|icu-data-full}} needs to be installed manually.&lt;br /&gt;
&lt;br /&gt;
{{pkg|nodejs}} is now compiled with system ICU.&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager plugins === &lt;br /&gt;
&lt;br /&gt;
NetworkManager plugins (e.g. WiFi or ADSL support) have been moved into subpackages and are not installed by default. If you use some of them, install the corresponding packages:&lt;br /&gt;
&lt;br /&gt;
* WiFi: {{pkg|networkmanager-wifi}}&lt;br /&gt;
* ADSL: {{pkg|networkmanager-adsl}}&lt;br /&gt;
* Mobile broardband: {{pkg|networkmanager-wwan}}&lt;br /&gt;
* BlueTooth: {{pkg|networkmanager-bluetooth}}&lt;br /&gt;
* PPP: {{pkg|networkmanager-ppp}}&lt;br /&gt;
* Open vSwitch: {{pkg|networkmanager-ovs}}&lt;br /&gt;
&lt;br /&gt;
=== xen-qemu split ===&lt;br /&gt;
&lt;br /&gt;
The qemu components of xen were split into a new subpackage, {{pkg|xen-qemu}}. If you were using the qemu- xen binaries or the xenqemu service or firmware such as qemu/bios.bin / edk2-* files, you might need to install this.&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud 24 ===&lt;br /&gt;
&lt;br /&gt;
Nextcloud can only be upgraded one major version at a time. However, in Alpine 3.15 the version was 22, and in 3.16 it is 24. To upgrade between them, make use of the {{pkg|nextcloud23}} package to satisfy this limitation.&lt;br /&gt;
&lt;br /&gt;
== New features and noteworthy new packages ==&lt;br /&gt;
&lt;br /&gt;
=== Fixed not showing boot output using consoles with drivers compiled as modules ===&lt;br /&gt;
&lt;br /&gt;
OpenRC output is now shown on VirtIO serial consoles.&lt;br /&gt;
&lt;br /&gt;
=== SDL 1.2 migrated to SDL 1.2 compat ===&lt;br /&gt;
&lt;br /&gt;
The old sdl package (SDL 1.2) has been moved from community to testing and as such won&#039;t be part of Alpine 3.16. Applications that use sdl instead use sdl12-compat, which is based on the much more well-maintained sdl2 (SDL 2.0). This results in various improvements such as support for Wayland, PipeWire, and more gamepads.&lt;br /&gt;
&lt;br /&gt;
=== utmp ===&lt;br /&gt;
&lt;br /&gt;
TODO(jirutka): Write something…&lt;br /&gt;
&lt;br /&gt;
https://skarnet.org/software/utmps/&lt;br /&gt;
&lt;br /&gt;
The following packages are built with utmps:&lt;br /&gt;
&lt;br /&gt;
* busybox&lt;br /&gt;
* dropbear&lt;br /&gt;
* mingetty&lt;br /&gt;
* openssh&lt;br /&gt;
* util-linux&lt;br /&gt;
&lt;br /&gt;
=== login-utils ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|util-linux-login}} has been added as a provider of the &amp;lt;code&amp;gt;login&amp;lt;/code&amp;gt; command. If &amp;lt;code&amp;gt;cmd:login&amp;lt;/code&amp;gt; has been added to world, then the util-linux implementation will be preferred over the shadow implementation. If the shadow implementation is required, then {{pkg|shadow-login}} must be manually selected.&lt;br /&gt;
&lt;br /&gt;
=== Zsh - modular zshrc and plugins support ===&lt;br /&gt;
&lt;br /&gt;
TODO(jirutka): Write description.&lt;br /&gt;
&lt;br /&gt;
=== doas-sudo-shim ===&lt;br /&gt;
&lt;br /&gt;
If you are hesitant to switch to {{pkg|doas}} because you have &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; too deep in your muscle memory, hesitant no more! Just install {{pkg|doas-sudo-shim}} and you can continue to use the &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; command, but without its security issues and bloat.&lt;br /&gt;
&lt;br /&gt;
== Significant updates ==&lt;br /&gt;
&lt;br /&gt;
* GNOME 42&lt;br /&gt;
* LLVM 13&lt;br /&gt;
* PHP 8.0 and 8.1 both shipped&lt;br /&gt;
* Python 3.10&lt;br /&gt;
* QEMU 7&lt;br /&gt;
* R 4.2&lt;br /&gt;
* Ruby 3.1&lt;br /&gt;
* Rust 1.60&lt;br /&gt;
* Sway 1.7&lt;br /&gt;
* Xen 4.16.1&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
Plasma has been upgraded from 5.23 to 5.24.&lt;br /&gt;
&lt;br /&gt;
KDE applications (the release service) have been upgraded from 21.08 to 22.04 and KDE Frameworks have been upgraded from 5.88 to 5.93.&lt;br /&gt;
&lt;br /&gt;
Plasma Mobile Gear have been upgraded from 21.12 to 22.04.&lt;br /&gt;
&lt;br /&gt;
=== Python upgraded to 3.10 ===&lt;br /&gt;
&lt;br /&gt;
Python has been upgraded to version 3.10, and all modules have been rebuilt against python 3.10. Manually-installed Python modules must be recompiled against 3.10.&lt;br /&gt;
&lt;br /&gt;
== Deprecations / Removals ==&lt;br /&gt;
&lt;br /&gt;
=== php7 moved to testing ===&lt;br /&gt;
&lt;br /&gt;
The {{pkg|php7}} package has been moved to testing, as no more packages in community depend on it and php 7.4 will be EOL soon. {{pkg|php8}} has taken it&#039;s place, which is php 8.0. Additionally 8.1 is shipped via community&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=22993</id>
		<title>Release Notes for Alpine 3.15.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.15.0&amp;diff=22993"/>
		<updated>2023-02-19T14:12:43Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Important changes ==&lt;br /&gt;
&lt;br /&gt;
=== New package signing keys ===&lt;br /&gt;
&lt;br /&gt;
New signing keys have been generated for v3.15 ongoing. The key size has been increased from 2048 bits to 4096 bits. Make sure you have &amp;lt;code&amp;gt;alpine-keys-2.4-r0&amp;lt;/code&amp;gt; or later before upgrading to 3.15 (or downgrading from edge).&lt;br /&gt;
&lt;br /&gt;
You can run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apk add -X http://dl-cdn.alpinelinux.org/alpine/v3.14/main -u alpine-keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to update the keys to the required version.&lt;br /&gt;
&lt;br /&gt;
=== MIPS64 discontinued ===&lt;br /&gt;
&lt;br /&gt;
The build hardware we use for building the packages is broken and the architecture is EOL, so there is no new hardware available anymore. As a consequence, there will be no v3.15 release for mips64, and existing releases can no longer receive security updates, so continued use of this architecture is not recommended.&lt;br /&gt;
&lt;br /&gt;
=== radvd no longer enables ipv6 forwarding ===&lt;br /&gt;
&lt;br /&gt;
The radvd init script no longer enables ipv6 forwarding. To enable ipv6 forwarding (necessary for most networks), add &amp;lt;code&amp;gt;net.ipv6.conf.all.forwarding=1&amp;lt;/code&amp;gt; to {{path|/etc/sysctl.conf}} or to a file in {{path|/etc/sysctl.d}}.&lt;br /&gt;
&lt;br /&gt;
=== Move from sudo to doas ===&lt;br /&gt;
&lt;br /&gt;
doas is the default temporary privilege escalation tool.  You are advised to migrate from sudo to doas as 3.15 will be the last release to support sudo throughout its full lifecycle, in 3.16 sudo will be moved from main to community.&lt;br /&gt;
&lt;br /&gt;
=== PipeWire doesn&#039;t auto-start a session manager anymore ===&lt;br /&gt;
&lt;br /&gt;
In 3.14 and earlier the PipeWire default config was edited in packaging to auto-start pipewire-media-session as the default session manager. Since we now have wireplumber available as an alternative session manager, this has been changed in favor of a launch wrapper for pipewire at &amp;lt;code&amp;gt;/usr/libexec/pipewire-launcher&amp;lt;/code&amp;gt;. When executed this will launch pipewire, pipewire-media-session or wireplumber, and pipewire-pulse, depending on what modules are available. If you were launching &amp;lt;code&amp;gt;/usr/bin/pipewire&amp;lt;/code&amp;gt; and the session manager manually before, please use the new launcher wrapper instead. WirePlumber can now also be used as a proper alternative for pipewire-media-session.&lt;br /&gt;
&lt;br /&gt;
== New features and noteworthy new packages ==&lt;br /&gt;
&lt;br /&gt;
=== Compressed kernel modules ===&lt;br /&gt;
&lt;br /&gt;
Kernel modules are now compressed using gzip.&lt;br /&gt;
&lt;br /&gt;
=== UEFI Secure Boot ===&lt;br /&gt;
&lt;br /&gt;
Complete support for [[UEFI Secure Boot]] realized by package {{pkg|secureboot-hook}} and {{pkg|efi-mkkeys}}.&lt;br /&gt;
&lt;br /&gt;
=== Support overlaytmpfs mount options ===&lt;br /&gt;
&lt;br /&gt;
It is now possible to use tmpfs(5) mount options with &amp;lt;code&amp;gt; overlaytmpfsflags&amp;lt;/code&amp;gt;, when using &amp;lt;code&amp;gt;overlaytmpfs&amp;lt;/code&amp;gt;, see mkinitfs-bootparams(7).  Also, &amp;lt;code&amp;gt;rootflags&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rootfstype&amp;lt;/code&amp;gt; options are now picked up for the underlying rootfs mount.&lt;br /&gt;
&lt;br /&gt;
=== Support for out-of-tree kernel modules built from source ===&lt;br /&gt;
&lt;br /&gt;
Alpine Kernel Module Support ({{pkg|akms}}) – support for building out-of-tree Linux kernel modules from source in an automated and organized fashion. It’s like DKMS, but designed specifically for Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL multiple major versions ===&lt;br /&gt;
&lt;br /&gt;
PostgreSQL packaging has been reworked to allow multiple major versions of PostgreSQL server to be installed side by side. This makes it possible to allow to upgrade PostgreSQL cluster from one major version to the next using &amp;lt;code&amp;gt;pg_upgrade&amp;lt;/code&amp;gt; tool, and also to run an older major version of PostgreSQL on the latest version of Alpine Linux. The latest PostgreSQL version can be installed simply with &amp;lt;code&amp;gt;apk add postgresql&amp;lt;/code&amp;gt; as before. If you need an older major version, install the specific package, e.g. {{pkg|postgresql13}}. You can switch between installed major versions using command &amp;lt;code&amp;gt;pg_versions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/27275 MR #27275] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Rofi for Wayland ===&lt;br /&gt;
&lt;br /&gt;
Rofi can now be used on Wayland desktops thanks to the fork {{pkg|rofi-wayland}}.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Data Disk and System Disk modes ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;setup-disk&amp;lt;/code&amp;gt; ({{pkg|alpine-conf}}) now supports encrypted Data Disk and System Disk modes.&lt;br /&gt;
&lt;br /&gt;
== Significant updates ==&lt;br /&gt;
&lt;br /&gt;
=== 5.15 LTS kernels === &lt;br /&gt;
&lt;br /&gt;
linux-lts and linux-virt upgraded to 5.15&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are using &#039;&#039;ZFS&#039;&#039; and depend on symlinks under /dev/zvol/ some are sporadically not created during boot, this is known upstream by &#039;&#039;OpenZFS&#039;&#039; and we track the issue [https://gitlab.alpinelinux.org/alpine/aports/-/issues/13198 here].&lt;br /&gt;
&lt;br /&gt;
=== Ruby 3.0.2 ===&lt;br /&gt;
&lt;br /&gt;
Ruby has been upgraded to version 3.0.2.&lt;br /&gt;
&lt;br /&gt;
Packages {{pkg|ruby-minitest}}, {{pkg|ruby-net-telnet}}, {{pkg|ruby-power_assert}}, {{pkg|ruby-sdbm}}, {{pkg|ruby-test-unit}}, {{pkg|ruby-xmlrpc}}, {{pkg|ruby-webrick}} has been moved from ruby aport to separate aports. Please note that since they don’t inherit the version from the ruby aport anymore, their new (real) version is &#039;&#039;lower&#039;&#039; than before!&lt;br /&gt;
&lt;br /&gt;
Subpackages ruby-bigdecimal, ruby-etc, ruby-fiddle, ruby-gdbm, ruby-io-console, ruby-irb, and ruby-json have been merged into ruby-libs.&lt;br /&gt;
&lt;br /&gt;
=== LLVM12 added ===&lt;br /&gt;
&lt;br /&gt;
LLVM12 is now available.&lt;br /&gt;
&lt;br /&gt;
=== KDE ===&lt;br /&gt;
&lt;br /&gt;
KDE Plasma has been upgraded to version 5.23, and KDE Applications have been upgraded to 21.08.&lt;br /&gt;
Plasma Mobile Gear has been upgraded to 21.10.&lt;br /&gt;
&lt;br /&gt;
=== Node.js ===&lt;br /&gt;
&lt;br /&gt;
Node.js (LTS) has been upgraded to version 16.13.0. nodejs-current has been upgraded to 17.0.1.&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
PHP 7.4 started to phase out (1 year of security support left).&lt;br /&gt;
Transition to 8.0 is not finished yet as some app still require old version.&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL 14 ===&lt;br /&gt;
&lt;br /&gt;
PostgreSQL has been upgraded to version 14.0. Since this release, multiple major versions are provided, currently: 12, 13, and 14.&lt;br /&gt;
&lt;br /&gt;
Support for Just-in-time compilation (JIT) has been moved into subpackage {{pkg|postgresql-jit}}.&lt;br /&gt;
&lt;br /&gt;
{{pkg|libpq}} is now built without LDAP support which reduces number of installed dependencies. Note that this does &#039;&#039;not&#039;&#039; affect the LDAP support in PostgreSQL server, it’s preserved.&lt;br /&gt;
&lt;br /&gt;
=== Mercurial ===&lt;br /&gt;
&lt;br /&gt;
mercurial has been upgraded to 5.9.3 &lt;br /&gt;
&lt;br /&gt;
=== Dlang build tools (DMD, DUB, LDC) have been updated ===&lt;br /&gt;
&lt;br /&gt;
Both compilers have been updated to frontend version v2.098.0 (LDC equivalent: v1.28.0).&lt;br /&gt;
Dub has been updated to v1.27.0.&lt;br /&gt;
LDC now always uses `--export-dynamic` so that code compiled without debug infos (`-g`) will still have the function name in its stack trace.&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK 17 added ===&lt;br /&gt;
&lt;br /&gt;
The latest OpenJDK LTS version (17) has been added to this release and is available via the community repository.&lt;br /&gt;
&lt;br /&gt;
=== GNOME 41 ===&lt;br /&gt;
&lt;br /&gt;
Most GNOME packages have been upgraded to version 41.&lt;br /&gt;
&lt;br /&gt;
=== Crystal ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|crystal}} has been upgraded to version 1.2.2.&lt;br /&gt;
&lt;br /&gt;
=== Kea ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|kea}} has been upgraded to version 2.0.0.&lt;br /&gt;
&lt;br /&gt;
=== OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|openldap}} has been upgraded to version 2.6.0.&lt;br /&gt;
&lt;br /&gt;
=== Rust ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|rust}} has been upgraded to version 1.56.1.&lt;br /&gt;
&lt;br /&gt;
== Significant removals ==&lt;br /&gt;
&lt;br /&gt;
=== QtWebKit was removed due to lack of upstream support ===&lt;br /&gt;
&lt;br /&gt;
qt5-qtwebkit, kdewebkit, wkhtmltopdf, and py3-pdfkit have been removed due to known vulnerabilities and lack of upstream support for qtwebkit. Other programs have been adjusted to use qt5-qtwebengine where appropriate. The most direct replacement for wkhtmltopdf is weasyprint, which is available in the Alpine Linux community repository. puppeteer and pandoc are also options, depending on your needs. See [https://gitlab.alpinelinux.org/alpine/aports/-/issues/12888 #12888] for more information.&lt;br /&gt;
&lt;br /&gt;
=== unrar moved to non-free ===&lt;br /&gt;
&lt;br /&gt;
The unrar program from Alexander Roshal is distributed under a non-free license. Therefore, the unrar package has been moved to the non-free repository. Most RAR files can be unpacked using the bsdtar program from libarchive-tools; otherwise, users can compile and install the unrar package separately.&lt;br /&gt;
&lt;br /&gt;
== Development-related changes ==&lt;br /&gt;
&lt;br /&gt;
=== PostgreSQL ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|postgresql-dev}} has been split into {{pkg|libpq-dev}}, {{pkg|libecpg-dev}}, and &amp;lt;code&amp;gt;postgresql-dev&amp;lt;/code&amp;gt; (this is &#039;&#039;provided&#039;&#039; by {{pkg|postgresql14-dev}}, {{pkg|postgresql13-dev}} etc.). Basically, only PostgreSQL extensions should use {{pkg|postgresql-dev}} in &amp;lt;code&amp;gt;makedepends&amp;lt;/code&amp;gt;; all other aports should use {{pkg|libpq-dev}} and/or {{pkg|libecpg-dev}} (there are some exceptions though).&lt;br /&gt;
&lt;br /&gt;
PostgreSQL extensions (typically packages with &amp;lt;code&amp;gt;postgresql-&amp;lt;/code&amp;gt; prefix) should use {{pkg|postgresql-dev}} in &amp;lt;code&amp;gt;makedepends&amp;lt;/code&amp;gt; – this will install the latest &amp;lt;code&amp;gt;postgresql&amp;lt;majorver&amp;gt;-dev&amp;lt;/code&amp;gt; package, unless there’s a dependency on a specific postgresql version in the dependency graph (which shouldn’t be).&lt;br /&gt;
&lt;br /&gt;
Each aport providing a PostgreSQL extension must explicitly depend on specific &amp;lt;code&amp;gt;postgresql&amp;lt;majorver&amp;gt;&amp;lt;/code&amp;gt; package, not &amp;lt;code&amp;gt;postgresql&amp;lt;/code&amp;gt; provider. This should be solved by adding the following into the &amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt; function (!) in each aport that provides PostgreSQL extension:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
depends=&amp;quot;postgresql$(pg_config --major-version)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.14.0&amp;diff=22992</id>
		<title>Release Notes for Alpine 3.14.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.14.0&amp;diff=22992"/>
		<updated>2023-02-19T14:12:23Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== aports ==&lt;br /&gt;
&lt;br /&gt;
=== faccessat2 ===&lt;br /&gt;
Use of the faccessat2 syscall has been enabled in musl. Due to [https://github.com/opencontainers/runc/issues/2151 runc issue 2151], new system calls incorrectly returned EPERM instead of ENOSYS when invoked under a Docker with libseccomp predating their release. Therefore, Alpine Linux 3.14 requires &#039;&#039;&#039;at least one&#039;&#039;&#039; of the following:&lt;br /&gt;
&lt;br /&gt;
# runc v1.0.0-rc93&lt;br /&gt;
## if using Docker&#039;s Debian repositories, this is part of containerd.io 1.4.3-2&lt;br /&gt;
## if using Docker Desktop for Windows or Mac, this is part of Docker Desktop 3.3.0&lt;br /&gt;
# Docker 20.10.0 (which contains [https://github.com/moby/moby/commit/a18139111d8a203bd211b0861c281ebe77daccd9 moby commit a181391]) or greater, &#039;&#039;&#039;&#039;&#039;AND&#039;&#039;&#039;&#039;&#039; libseccomp 2.4.4 (which contains backported [https://github.com/seccomp/libseccomp/commit/5696c896409c1feb37eb502df33cf36efb2e8e01 libseccomp commit 5696c89]) or greater. In this case, to check if your host libseccomp is faccessat2-compatible, invoke &amp;lt;code&amp;gt;scmp_sys_resolver faccessat2&amp;lt;/code&amp;gt;. If 439 is returned, faccessat2 is supported. If -1 is returned, faccessat2 is not supported. Note that if runc is older than v1.0.0-rc93, Docker must still be at least version 20.10.0, regardless of the result of this command.&lt;br /&gt;
# As a workaround, in order to run under old Docker or libseccomp versions, [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json the moby default seccomp profile] should be downloaded and on line 2, &amp;lt;code&amp;gt;defaultAction&amp;lt;/code&amp;gt; changed to &amp;lt;code&amp;gt;SCMP_ACT_TRACE&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;--seccomp-profile=default.json&amp;lt;/code&amp;gt; can be passed to dockerd, or &amp;lt;code&amp;gt;--security-opt=seccomp=default.json&amp;lt;/code&amp;gt; passed to &amp;lt;code&amp;gt;docker create&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt;. This will cause the system calls to return ENOSYS instead of EPERM, allowing the container to fall back to faccessat.&lt;br /&gt;
&lt;br /&gt;
Note also that when using nested Docker, &#039;&#039;&#039;every layer&#039;&#039;&#039; must meet one of the above requirements, since if &#039;&#039;&#039;any layer&#039;&#039;&#039; improperly denies the use of faccessat2, Alpine Linux 3.14 will not function correctly.&lt;br /&gt;
&lt;br /&gt;
=== Xorg ===&lt;br /&gt;
xf86-input-{mouse,keyboard} have been removed, as upstream maintainers have explicitly declared that they are for non-Linux platforms only. Users should have already switched to xf86-input-evdev or xf86-input-libinput.&lt;br /&gt;
&lt;br /&gt;
Rootless support has been enabled for Xorg. X now requires udev or mdev, and either elogind must be enabled or X users must be in the video and input groups.&lt;br /&gt;
&lt;br /&gt;
The Xorg sysconfdir has been changed from /etc/X11 to /etc. In the unlikely event that you have configuration files in /etc/X11/X11, those must be moved to /etc/X11.&lt;br /&gt;
&lt;br /&gt;
=== Python upgraded to 3.9 ===&lt;br /&gt;
&lt;br /&gt;
Python has been upgraded to version 3.9, and all python modules have been rebuilt against python 3.9. Make sure that all custom python3 modules are built against python3.9&lt;br /&gt;
&lt;br /&gt;
=== ClamAV moved to community === &lt;br /&gt;
&lt;br /&gt;
The [https://pkgs.alpinelinux.org/package/edge/community/x86_64/clamav clamav] package has been moved from main to community. We cannot support releases for 2 years, which we do for packages in main, and clamav warns that the version is too old. If you need clamav, make sure that you have the community repository enabled in &amp;lt;tt&amp;gt;/etc/apk/repositories&amp;lt;/tt&amp;gt;, but do note that packages in community are only supported for one release (6 months).&lt;br /&gt;
&lt;br /&gt;
=== openssh flavors ===&lt;br /&gt;
&lt;br /&gt;
There was already an OpenSSH flavor with PAM support, but now there has been added a new flavor for krb5 (openssh-server-krb5, openssh-client-krb5). Note that this new flavor includes PAM support, in case you need both.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.13.0&amp;diff=22991</id>
		<title>Release Notes for Alpine 3.13.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.13.0&amp;diff=22991"/>
		<updated>2023-02-19T14:12:03Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== aports ==&lt;br /&gt;
&lt;br /&gt;
=== musl 1.2 ===&lt;br /&gt;
&lt;br /&gt;
musl has been upgraded to 1.2. This release changes the definition of &amp;lt;code&amp;gt;time_t&amp;lt;/code&amp;gt; on 32-bit systems. See the [https://musl.libc.org/time64.html musl time64 release notes] for more details.&lt;br /&gt;
&lt;br /&gt;
==== time64 requirements ====&lt;br /&gt;
&lt;br /&gt;
The following important information applies for users of x86, armv7, and armhf (currently supported 32-bit architectures), including 32-bit Docker containers on 64-bit hosts.&lt;br /&gt;
&lt;br /&gt;
All self-compiled packages must be manually rebuilt after upgrading, even if relocation/SONAME errors are not encountered.&lt;br /&gt;
&lt;br /&gt;
musl 1.2 uses new time64-compatible system calls. Due to [https://github.com/opencontainers/runc/issues/2151 runc issue 2151], these system calls incorrectly returned EPERM instead of ENOSYS when invoked under a Docker or libseccomp version predating their release. Therefore, Alpine Linux 3.13.0 requires one of the following:&lt;br /&gt;
&lt;br /&gt;
# runc v1.0.0-rc93&lt;br /&gt;
## if using Docker&#039;s Debian repositories, this is part of containerd.io 1.4.3-2&lt;br /&gt;
## if using Docker Desktop for Windows or Mac, this is part of Docker Desktop 3.3.0&lt;br /&gt;
# Docker 19.03.9 (which contains backported [https://github.com/moby/moby/commit/89fabf0f241292e929fbb2fbb794d58d8d697ab5 moby commit 89fabf0]) or greater, AND libseccomp 2.4.2 (which contains backported [https://github.com/seccomp/libseccomp/commit/bf747eb21e428c2b3ead6ebcca27951b681963a0 libseccomp commit bf747eb]) or greater. In this case, to check if your host libseccomp is time64-compatible, invoke &amp;lt;code&amp;gt;scmp_sys_resolver -a x86 clock_gettime64&amp;lt;/code&amp;gt; for x86 containers, or &amp;lt;code&amp;gt;scmp_sys_resolver -a arm clock_gettime64&amp;lt;/code&amp;gt; for armhf or armv7 containers. If 403 is returned, time64 is supported. If -1 is returned, time64 is not supported. Note that if runc is older than v1.0.0-rc93, Docker must still be at least version 19.03.9, regardless of the result of this command.&lt;br /&gt;
&lt;br /&gt;
In order to run under old Docker or libseccomp versions, [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json the moby default seccomp profile] should be downloaded and on line 2, &amp;lt;code&amp;gt;defaultAction&amp;lt;/code&amp;gt; changed to &amp;lt;code&amp;gt;SCMP_ACT_TRACE&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;--seccomp-profile=default.json&amp;lt;/code&amp;gt; can be passed to dockerd, or &amp;lt;code&amp;gt;--security-opt=seccomp=default.json&amp;lt;/code&amp;gt; passed to &amp;lt;code&amp;gt;docker create&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;docker run&amp;lt;/code&amp;gt;. This will cause the system calls to return ENOSYS instead of EPERM, allowing the container to fall back to 32-bit time system calls. In this case, the container will not be compatible with dates past 2038.&lt;br /&gt;
&lt;br /&gt;
Alternatively, &amp;lt;code&amp;gt;--security-opt=seccomp=unconfined&amp;lt;/code&amp;gt; can be passed with no &amp;lt;code&amp;gt;default.json&amp;lt;/code&amp;gt; required, but note that this will reduce the security of the host against malicious code in the container.&lt;br /&gt;
&lt;br /&gt;
=== Deprecation of Berkeley DB (BDB) ===&lt;br /&gt;
&lt;br /&gt;
Oracle has changed the license of BDB to AGPL-3.0, making it unsuitable to link to packages with GPL-incompatible licenses. Since the old version is no longer maintained, the &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt; package is now deprecated. Alpine Linux packages are being transitioned to alternatives or, where no alternatives exist, removed entirely.&lt;br /&gt;
&lt;br /&gt;
Support for Postfix &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;btree&amp;lt;/code&amp;gt; databases has been removed. &amp;lt;code&amp;gt;lmdb&amp;lt;/code&amp;gt; is the recommended replacement. Before upgrading, all tables in &amp;lt;code&amp;gt;/etc/postfix/main.cf&amp;lt;/code&amp;gt; using &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;btree&amp;lt;/code&amp;gt; must be changed to a supported alternative. See the [http://www.postfix.org/DATABASE_README.html Postfix lookup table documentation] for more information.&lt;br /&gt;
&lt;br /&gt;
cyrus sasldb now uses &amp;lt;code&amp;gt;gdbm&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt;. The database must be created from scratch or manually migrated after upgrading to Alpine Linux 3.13.&lt;br /&gt;
&lt;br /&gt;
=== Switching from busybox ifupdown to ifupdown-ng ===&lt;br /&gt;
&lt;br /&gt;
The default ifupdown implementation has been switched from busybox to [https://github.com/ifupdown-ng/ifupdown-ng/ ifupdown-ng]. ifupdown-ng is intended to be compatible with debian ifupdown and busybox ifupdown, but all users of &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; should read the [https://github.com/ifupdown-ng/ifupdown-ng/blob/master/README.md ifupdown-ng readme] and the [https://github.com/ifupdown-ng/ifupdown-ng/blob/master/doc/ADMIN-GUIDE.md ifupdown-ng admin guide] before upgrading.&lt;br /&gt;
&lt;br /&gt;
ifupdown-ng has native vlan support, so the &amp;lt;code&amp;gt;vlan&amp;lt;/code&amp;gt; package is no longer required and can be uninstalled. The &amp;lt;code&amp;gt;bridge&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bond&amp;lt;/code&amp;gt; packages are still required.&lt;br /&gt;
&lt;br /&gt;
=== GCC 10 ===&lt;br /&gt;
&lt;br /&gt;
GCC has been upgraded to version 10. GCC 10 sets the &amp;lt;code&amp;gt;-fno-common&amp;lt;/code&amp;gt; option by default. All Alpine Linux packages have been fixed, but users compiling other software on Alpine Linux may need to make changes to their code. For more information, see the [https://gcc.gnu.org/gcc-10/porting_to.html GCC 10 porting guide].&lt;br /&gt;
&lt;br /&gt;
=== PHP 8.0 ===&lt;br /&gt;
&lt;br /&gt;
PHP 8.0 with a common set of extensions is now available as &amp;lt;code&amp;gt;php8&amp;lt;/code&amp;gt;. PHP 7.4 (&amp;lt;code&amp;gt;php7&amp;lt;/code&amp;gt;) remains the default.&lt;br /&gt;
&lt;br /&gt;
=== xorg-server has moved to community ===&lt;br /&gt;
&lt;br /&gt;
xorg-server and related packages have been moved from main to community. To install it, ensure {{Path|/etc/apk/repositories}} contains the community repository.&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;code&amp;gt;setup-xorg-base&amp;lt;/code&amp;gt; will automatically enable the community repo before installing xorg-server.&lt;br /&gt;
&lt;br /&gt;
=== nextcloud 20 ===&lt;br /&gt;
&lt;br /&gt;
Nextcloud has been updated to version 20. As a direct upgrade from 18 to 20 is [https://docs.nextcloud.com/server/latest/admin_manual/maintenance/upgrade.html not supported by nextcloud], Nextcloud 19 must be temporarily installed.&lt;br /&gt;
&lt;br /&gt;
# Take a note and remove all nextcloud-* aports&lt;br /&gt;
# Install corresponding the nextcloud19-* aports&lt;br /&gt;
# Run &amp;lt;code&amp;gt;occ upgrade&amp;lt;/code&amp;gt; as any regular update&lt;br /&gt;
# Verify everything still works&lt;br /&gt;
# Remove the nextcloud19-* aports again&lt;br /&gt;
# Install the regular nextcloud-* aports again&lt;br /&gt;
# Run Steps 3 and 4 again&lt;br /&gt;
# The upgrade should now be finished&lt;br /&gt;
&lt;br /&gt;
As the last step you should visit your administrator settings overview page and run any missing db-updates as shown (e.g. &amp;lt;code&amp;gt;db:add-missing-indices db:add-missing-primary-keys db:add-missing-columns db:convert-filecache-bigint&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== spamassassin ===&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/conf.d/spamd&amp;lt;/code&amp;gt; has been moved from the &amp;lt;code&amp;gt;spamassassin&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;spamassassin-openrc&amp;lt;/code&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
=== WireGuard upstreamed ===&lt;br /&gt;
&lt;br /&gt;
WireGuard is now included in the standard Linux kernel since version 5.6, so the &amp;lt;code&amp;gt;wireguard-lts&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wireguard-virt&amp;lt;/code&amp;gt; packages have been removed.&lt;br /&gt;
&lt;br /&gt;
=== QEMU packages split ===&lt;br /&gt;
&lt;br /&gt;
Several features previously in the standard qemu package have been split into subpackages, including qemu-audio-*, qemu-block-*, qemu-hw-display-*, and qemu-ui-*.&lt;br /&gt;
The metapackage qemu-modules installs all of these.&lt;br /&gt;
&lt;br /&gt;
== busybox ==&lt;br /&gt;
&lt;br /&gt;
=== Removed applets ===&lt;br /&gt;
&lt;br /&gt;
The following applets have been removed:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;hdparm&#039;&#039;&#039;: Missing many features. Use &amp;lt;code&amp;gt;hdparm&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;fdformat&#039;&#039;&#039;: Rarely used. Use &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;readprofile&#039;&#039;&#039;: Rarely used. Consider &amp;lt;code&amp;gt;perf&amp;lt;/code&amp;gt; or use &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;lspci&#039;&#039;&#039;: Missing many features, such as hwdb support. Use &amp;lt;code&amp;gt;pciutils&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;grep . /sys/bus/pci/devices/*/*&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &#039;&#039;&#039;conspy&#039;&#039;&#039;: Rarely used.&lt;br /&gt;
* &#039;&#039;&#039;smemcap&#039;&#039;&#039;: Rarely used.&lt;br /&gt;
* &#039;&#039;&#039;dumpleases&#039;&#039;&#039;: Rarely used.&lt;br /&gt;
&lt;br /&gt;
Alternatives for conspy, smemcap, and dumpleases are not currently packaged due to a lack of interest. If you require these programs, please file an issue at [https://gitlab.alpinelinux.org/alpine/aports/ Alpine GitLab].&lt;br /&gt;
&lt;br /&gt;
=== Changes ===&lt;br /&gt;
&lt;br /&gt;
The following applets now support long options:&lt;br /&gt;
&lt;br /&gt;
* gzip&lt;br /&gt;
* install&lt;br /&gt;
* ipcalc&lt;br /&gt;
&lt;br /&gt;
== apk-tools ==&lt;br /&gt;
&lt;br /&gt;
=== Man page ===&lt;br /&gt;
&lt;br /&gt;
apk-tools now has an official man-page: &amp;lt;code&amp;gt;apk-tools-docs&amp;lt;/code&amp;gt;. If the &amp;lt;code&amp;gt;docs&amp;lt;/code&amp;gt; package is installed, man pages will automatically be installed and updated for all installed packages.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
=== LVM boot scanning ===&lt;br /&gt;
&lt;br /&gt;
Some users are reporting a regression in Alpine Linux 3.13 where nlplug-findfs fails to detect LVM PVs at boot. The current workaround is to temporarily downgrade to Linux 5.4 from Alpine Linux 3.12. This issue is being tracked in [https://gitlab.alpinelinux.org/alpine/aports/-/issues/12325 aports issue 12325].&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.12.0&amp;diff=22990</id>
		<title>Release Notes for Alpine 3.12.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Release_Notes_for_Alpine_3.12.0&amp;diff=22990"/>
		<updated>2023-02-19T14:11:43Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== aports ==&lt;br /&gt;
&lt;br /&gt;
===== python2 no longer provides python and python-devel =====&lt;br /&gt;
&lt;br /&gt;
python2 no longer provides python and python-devel, nothing does, it is now required that you explicitly depend on either python2 or python3, any new contributions that depend on python2 will be rejected summarily, and python2 is in the process of being **completely** removed.&lt;br /&gt;
&lt;br /&gt;
You must &amp;lt;code&amp;gt;apk del python&amp;lt;/code&amp;gt; and add `python3` or `python2` for the upgrade to work correctly, as a stale `python` in /etc/apk/world will prevent things from upgrading correctly.&lt;br /&gt;
&lt;br /&gt;
===== llvm 10.0.0 =====&lt;br /&gt;
&lt;br /&gt;
llvm 10 is now the default in Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.alpinelinux.org/alpine/aports/commit/7a1323c27479fb967749c163f34483bc1196055d commit]&lt;br /&gt;
&lt;br /&gt;
===== Initial support for DLang =====&lt;br /&gt;
&lt;br /&gt;
We&#039;ve added initial support for the D language with this release. We now have GDC, the D compiler frontend using GCC, available on all arches but ppc64le and LDC, a D compiler using the LLVM backend, on x86, x86_64 and aarch64. Most things are built against LDC, since it offers superior optimization and a vastly newer versions of the D runtime and standard library. These contain many important bug fixes (especially on aarch64) and contain features required by many D applications.&lt;br /&gt;
&lt;br /&gt;
===== py3-setuptools now uses system python3 modules instead of vendored dependencies =====&lt;br /&gt;
&lt;br /&gt;
py3-setuptools now installs py3-packaging, py3-parsing, py3-appdirs, py3-six and py3-ordered-set from the system.&lt;br /&gt;
&lt;br /&gt;
The following commits are the ones responsible for this change:&lt;br /&gt;
&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=efca8852f37cb4028f234f92e2d035617f524820 py3-six] (use distutils)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=55e3496387ad3f2df387b2cf6bc84e85ef729833 py3-ordered-set] (new aport)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=cc1636b08fba58b629501d525d658aed4bcbeab2 py3-ordered-set] (move from testing to main)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=da743693eda54b9faf5086746b91506495fc689f py3-appdirs] (move from community to main)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=60efe787954008af546a5bde839db09f11682102 py3-appdirs] (use distutils)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=a50097b40bcf80a9aec201fef73a722206f43a0d py3-packaging] (use distutils)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=52ee5092c510657e9b1e8b4ae0104d405c9eac99 py3-parsing] (install manually)&lt;br /&gt;
* [https://git.alpinelinux.org/aports/commit/?id=33ea734e2d28d88a3d545500c96b4c72b3e78432 py3-setuptools] (use system component)&lt;br /&gt;
&lt;br /&gt;
===== ncurses fixes =====&lt;br /&gt;
&lt;br /&gt;
A few fixes trickled in relating exclusively to Alpine Linux that affect ncurses:&lt;br /&gt;
&lt;br /&gt;
With this [https://git.alpinelinux.org/aports/commit/?id=762b9fd601983d8a6e6a60692158f3f22b1b60fe commit] the ncurses-lib package no longer depends on the ncurses-terminfo, which was too big at 7.5 MB, instead ncurses-lib now depends solely on the ncurses-terminfo-base package which weights at around 120 kB.&lt;br /&gt;
&lt;br /&gt;
With this [https://git.alpinelinux.org/aports/commit/?id=56aa7795fecc48561deb095995abd335e16ba515 commit] the ncurses-terminfo-base now includes the most common terminfo databases like tmux, screen, xterm-256color and also databases for packaged terminals like gnome-terminal, vte, konsole, alacritty, kitty, putty. All other terminfo databases are now in ncurses-terminfo.&lt;br /&gt;
&lt;br /&gt;
With this [https://git.alpinelinux.org/aports/commit/?id=1470a6c8e76491a8d059ebd4b7521c4bf20b837c commit] all terminals that have their terminfo databases provided by the ncurses-terminfo-base now depend on it.&lt;br /&gt;
&lt;br /&gt;
===== python3 no longer provides pip3, use py3-pip from community =====&lt;br /&gt;
&lt;br /&gt;
Python3 is now built with --without-ensurepip which removes pip3 and its libraries from it. Instead use the py3-pip pacakge which uses system components.&lt;br /&gt;
&lt;br /&gt;
===== BPF JIT support =====&lt;br /&gt;
&lt;br /&gt;
&amp;gt; TODO: Small preamble about BPF&lt;br /&gt;
&lt;br /&gt;
So it (BPF JIT) has been enabled by default in [https://git.alpinelinux.org/aports/commit/?id=3bf2313adc57fe6b36bf459ddca6d65a392609db 3bf2313adc57fe6b36bf459ddca6d65a392609db], and unprivileged BPF JIT has been disabled in [https://git.alpinelinux.org/aports/commit/?id=4e286992d5ed751f6ca60eb18d77313bb0868513 4e286992d5ed751f6ca60eb18d77313bb0868513].&lt;br /&gt;
&lt;br /&gt;
===== OpenRC now has a sane ordering of directories when configuring kernel parameters =====&lt;br /&gt;
&lt;br /&gt;
Configuring kernel parameters is done by having configuration files in specific locations like &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; and files ending with &amp;lt;code&amp;gt;.conf&amp;lt;/code&amp;gt; in certain directories like &amp;lt;code&amp;gt;/etc/sysctl.d&amp;lt;/code&amp;gt;. Before 3.12.0 the ordering had no logical explanation and&lt;br /&gt;
surprised users that expected a hierarchy. &lt;br /&gt;
&lt;br /&gt;
Starting with 3.12.0 the ordering is as follows:&lt;br /&gt;
&lt;br /&gt;
# /lib/sysctl.d/*.conf&lt;br /&gt;
# /usr/lib/sysctl.d/*.conf&lt;br /&gt;
# /run/sysctl.d/*.conf&lt;br /&gt;
# /etc/sysctl.conf&lt;br /&gt;
# /etc/sysctl.d/*.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/lib/sysctl.d&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/lib/sysctl.d&amp;lt;/code&amp;gt; are to be used by the distribution and packages. Alpine Linux installs its default configuration file in &amp;lt;code&amp;gt;/lib/sysctl.d/00-alpine.conf&amp;lt;/code&amp;gt;. Software installed via our package manager will install to either of those places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/run/sysctl.d&amp;lt;/code&amp;gt; holds configuration that is created at run-time by daemons/services or at very early-boot. Neither the distribution nor the packaged software will install configuration to it, primarily because /run is in temporary memory. Configuration in this location that matches names the locations used by the distribution and packages will cause the latter not to be read and applied by the &amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/sysctl.d&amp;lt;/code&amp;gt; holds configuration that is created and maintained by the local administrator, neither Alpine nor its packaged software will touch it, and configuration in that has the same name as in the location reserved for the distribution and packages, or the location for run-time configuration from daemons/services, will cause the latter to not be read and applied by the &amp;lt;code&amp;gt;sysctl&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; is a historical location for this kind of configuration and is kept for the same reasons.&lt;br /&gt;
&lt;br /&gt;
===== OpenRC now has a sane ordering of directories when loading kernel modules =====&lt;br /&gt;
&lt;br /&gt;
Loading kernel modules during boot is done with the &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; OpenRC service, which reads configuration files in certain locations and loads kernel modules with the modprobe utility from either busybox or util-linux.&lt;br /&gt;
&lt;br /&gt;
Starting with 3.12.0 a more logical ordering is adopted for which configuration files to read and ignore:&lt;br /&gt;
&lt;br /&gt;
# /lib/modules-load.d/*.conf&lt;br /&gt;
# /usr/lib/modules-load.d/*.conf&lt;br /&gt;
# /run/modules-load.d/*.conf&lt;br /&gt;
# /etc/modules&lt;br /&gt;
# /etc/modules-load.d/*.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/lib/modules-load.d&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/usr/lib/modules-load.d&amp;lt;/code&amp;gt; are to be used by the distribution and packages. Software installed via our package manager will install to either of those places.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/run/modules-load.d&amp;lt;/code&amp;gt; holds configuration that is created at run-time by daemons/services or at very early-boot. Neither the distribution nor the packaged software will install configuration to it, primarily because /run is in temporary memory. Configuration in this location that matches names in the locations used by the distribution and packages will cause the latter not to be read and applied by the &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/modules-load.d&amp;lt;/code&amp;gt; holds configuration that is created and maintained by the local administrator, neither Alpine nor its packaged software will touch it, and configuration in that has the same name as in the location reserved for the distribution and packages, or locations reserved for the run-time configuration of daemons/services, will cause the latter to not be read and applied by the &amp;lt;code&amp;gt;modules&amp;lt;/code&amp;gt; service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/modules&amp;lt;/code&amp;gt; is a historical location for this kind of configuration and is kept for the same reasons.&lt;br /&gt;
&lt;br /&gt;
===== Telegram Desktop is now available in the community repo =====&lt;br /&gt;
&lt;br /&gt;
See [https://git.alpinelinux.org/aports/commit/?id=184355fdc44bc2e12976d65518fe029d8a6e459d commit] that moved the package to the community repo for explanation.&lt;br /&gt;
&lt;br /&gt;
===== efitools and sbsigntool are now in main/ =====&lt;br /&gt;
&lt;br /&gt;
Those packages have lived in testing/ for a long time and have been successfully used by one of our developers to implement secure-boot in his system. They have been moved to main/ and will be available for others.&lt;br /&gt;
&lt;br /&gt;
===== Packages which need libsecret&#039;s DBus API now depend a provider of its API via dbus:org.freedesktop.Secret =====&lt;br /&gt;
&lt;br /&gt;
Previously it was possible to install a program which required the DBus API of libsecret (e.g. Fractal), but not install a secrets provider (e.g. gnome-keyring), so logins wouldn&#039;t be saved. This has been corrected and packages which require this API depend on the provider-package dbus:org.freedesktop:Secret now. It&#039;s provided by gnome-keyring, kwallet and keepassxc (in that order of importance, i.e. if none of these is pulled in gnome-keyring will be chosen by default). Right now we manually declared the provider for dbus:org.freedesktop.Secret, but eventually we should have an automatic detection for the DBus API packages provide to make this easier for other packages.&lt;br /&gt;
&lt;br /&gt;
===== Preferring enchant2 over enchant =====&lt;br /&gt;
&lt;br /&gt;
All packages which support enchant2 have been moved over to it instead of using enchant(1). enchant2 now also supports nuspell, which is a faster drop-in replacement for hunspell, which utilizes hunspell&#039;s dictionaries.&lt;br /&gt;
&lt;br /&gt;
===== Firefox is now in community =====&lt;br /&gt;
&lt;br /&gt;
Firefox finally left testing and will be in community, supported for 6 months.&lt;br /&gt;
&lt;br /&gt;
===== moonjit is now luajit =====&lt;br /&gt;
&lt;br /&gt;
Our luajit package switched to the alive moonjit fork which has, among other things, s390x support and actual development.&lt;br /&gt;
&lt;br /&gt;
This [https://git.alpinelinux.org/aports/commit/?id=af7f776d08cf7c12c3dd62347829fe33e66dceaa commit] switched luajit over to moonjit, the following [https://git.alpinelinux.org/aports/commit/?id=a7d057d98859940cc3347dba011957f99291b1fa commit] removes our **HUGE** 46k s390x support patch which is now handled by upstream.&lt;br /&gt;
&lt;br /&gt;
===== Support for YubiKeys =====&lt;br /&gt;
&lt;br /&gt;
yubikey-manager and yubikey-manager-qt have been added to the community repos for using and managing your yubikeys. Installing yubikey-manager and enabling the pcscd service should make yubikeys functional.&lt;br /&gt;
&lt;br /&gt;
===== Support for apk in GNOME Software =====&lt;br /&gt;
&lt;br /&gt;
GNOME Software now offers integration with apk, the Alpine Package Keeper, so desktop applications can be installed via a GUI.&lt;br /&gt;
&lt;br /&gt;
===== busybox no longer provider &#039;patch&#039; builtin =====&lt;br /&gt;
&lt;br /&gt;
The builtin is a prototype which fails the moment any fuzzing needs to be done and as such is not usable too many cases to justify its inclusion, build-base (which provider compilers and other development tools) now depends on patch and others need to install patch by themselves if they plan on using it.&lt;br /&gt;
&lt;br /&gt;
the abuild package already depended on it and it is widely used in Alpine Linux&#039;s aports.&lt;br /&gt;
&lt;br /&gt;
== abuild ==&lt;br /&gt;
&lt;br /&gt;
===== Add default functions for subpackages that hold Bash, Zsh and Fish completion =====&lt;br /&gt;
&lt;br /&gt;
abuild now provides default functions for $pkgname-bash-completion, $pkgname-zsh-completion and $pkgname-fish-completion subpackages.&lt;br /&gt;
&lt;br /&gt;
Expected location of the completion files per shell:&lt;br /&gt;
&lt;br /&gt;
* Bash -&amp;gt; &amp;lt;code&amp;gt;/usr/share/bash-completion/completions&amp;lt;/code&amp;gt;&lt;br /&gt;
* Zsh -&amp;gt; &amp;lt;code&amp;gt;/usr/share/zsh/site-functions&amp;lt;/code&amp;gt;&lt;br /&gt;
* Fish -&amp;gt; &amp;lt;code&amp;gt;/usr/share/fish/completions&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Files must be installed in the expected location in relation to &#039;&#039;&#039;$pkgdir&#039;&#039;&#039; in &#039;&#039;&#039;pacakge()&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Introduced in [https://gitlab.alpinelinux.org/alpine/abuild/commit/d5826968b713123a4f51d3dec1adb1225d0e194f d5826968b713123a4f51d3dec1adb1225d0e194f].&lt;br /&gt;
&lt;br /&gt;
===== newapkbuild when called with CMake (-C) does out-of-source builds by default =====&lt;br /&gt;
&lt;br /&gt;
When packaging with newapkbuild and using the -C switch to pre-fill the apkbuild with skeleton functions for CMake now:&lt;br /&gt;
&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;-B build&amp;lt;/code&amp;gt; to the &amp;lt;code&amp;gt;cmake&amp;lt;/code&amp;gt; call in &#039;&#039;&#039;build()&#039;&#039;&#039;.&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;-C build&amp;lt;/code&amp;gt; the &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; calls.&lt;br /&gt;
&lt;br /&gt;
Doing out-of-source builds are recommended upstream to the point where warnings are printed when calling CMake on a project.&lt;br /&gt;
&lt;br /&gt;
Introduced in [https://gitlab.alpinelinux.org/alpine/abuild/commit/e125a764896d884c69cc409e614b65cb336c15e8 e125a764896d884c69cc409e614b65cb336c15e8].&lt;br /&gt;
&lt;br /&gt;
===== set CARGO_HOME to cache dependencies of rust packages =====&lt;br /&gt;
&lt;br /&gt;
CARGO_HOME is now set to &#039;&#039;&#039;$SRCDEST/cargo&#039;&#039;&#039; and will cache all dependencies downloaded.&lt;br /&gt;
&lt;br /&gt;
Introduced in [https://gitlab.alpinelinux.org/alpine/abuild/commit/af0c88e6abbb1e49224759f5c51b3068e6eab28b af0c88e6abbb1e49224759f5c51b3068e6eab28b].&lt;br /&gt;
&lt;br /&gt;
===== The &amp;quot;plain&amp;quot; buildtype for Meson and &amp;quot;None&amp;quot; buildtype for CMake are used now =====&lt;br /&gt;
&lt;br /&gt;
We previously used the &amp;quot;release&amp;quot; or &amp;quot;debugoptimized&amp;quot; buildmode for Meson or &amp;quot;Release&amp;quot; or &amp;quot;RelWithDebInfo&amp;quot; for CMake. This caused Meson and CMake to ignore parts of our C{,XX}FLAGS, e.g. by setting -O2 or even -O3 instead of our default of -Os. We&#039;ve changed to the &amp;quot;plain&amp;quot; buildtype and the &amp;quot;None&amp;quot; buildtype for CMake. This should result in smaller binaries since -Os is respected now. See [https://lists.alpinelinux.org/~alpine/devel/%3C2896c13070c508a49cbaa72c8fb7f34ea947358b.camel%40cogitri.dev%3E the respective mailing list post]&lt;br /&gt;
&lt;br /&gt;
==== abuild-meson introduced ====&lt;br /&gt;
&lt;br /&gt;
abuild-meson is a small wrapper shellscript that wraps meson (directly inspired by Arch Linux&#039;s arch-meson and Void Linux&#039;s build_style=meson), calling it with the correct options for packaging in Alpine Linux. APKBUILDs should switch to using it to guarantee all APKBUILDs that use meson have the same set of options.&lt;br /&gt;
&lt;br /&gt;
[[Category:News]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=UEFI_Secure_Boot&amp;diff=22989</id>
		<title>UEFI Secure Boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=UEFI_Secure_Boot&amp;diff=22989"/>
		<updated>2023-02-19T14:09:52Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mounting ESP ==&lt;br /&gt;
&lt;br /&gt;
Prepare mount point for UEFI partition (ESP) at {{path|/boot/efi}}:&lt;br /&gt;
{{cmd|install -d -m 000 /boot/efi}}&lt;br /&gt;
&lt;br /&gt;
Add the following line to {{path|/etc/fstab}}:&lt;br /&gt;
  UUID=&amp;lt;first-partition-uuid&amp;gt;  /boot/efi  vfat  rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2&lt;br /&gt;
&lt;br /&gt;
Mount it:&lt;br /&gt;
{{cmd|mount /boot/efi}}&lt;br /&gt;
&lt;br /&gt;
== Generating own UEFI keys ==&lt;br /&gt;
&lt;br /&gt;
Install package {{pkg|efi-mkkeys}}:&lt;br /&gt;
{{cmd|apk add efi-mkkeys}}&lt;br /&gt;
&lt;br /&gt;
Before creating new keys and modifying EFI variables, it is advisable to backup the current variables, so that they may be restored in case of error:&lt;br /&gt;
{{cmd|mkdir -p /etc/uefi-keys/vendor&lt;br /&gt;
cd /etc/uefi-keys/vendor&lt;br /&gt;
for i in PK KEK db dbx; do efi-readvar -v $i -o $i.esl; done }}&lt;br /&gt;
&lt;br /&gt;
Generate your self-signed PK, KEK and db key, including .esl and .auth files:&lt;br /&gt;
{{cmd|efi-mkkeys -s &amp;quot;Your Name&amp;quot; -o /etc/uefi-keys}}&lt;br /&gt;
&lt;br /&gt;
Now you can uninstall {{pkg|efi-mkkeys}} if you want:&lt;br /&gt;
{{cmd|apk del efi-mkkeys}}&lt;br /&gt;
&lt;br /&gt;
== Generating Unified Kernel Image ==&lt;br /&gt;
&lt;br /&gt;
Install package {{pkg|secureboot-hook}} and {{pkg|efibootmgr}}:&lt;br /&gt;
{{cmd|apk add secureboot-hook efibootmgr}}&lt;br /&gt;
&lt;br /&gt;
Adjust parameter &amp;lt;code&amp;gt;cmdline&amp;lt;/code&amp;gt; in {{path|/etc/kernel-hooks.d/secureboot.conf}}. It should &#039;&#039;&#039;not&#039;&#039;&#039; contain an &amp;lt;code&amp;gt;initrd=&amp;lt;/code&amp;gt; parameter! Example of a valid &amp;lt;code&amp;gt;cmdline&amp;lt;/code&amp;gt;:&lt;br /&gt;
  cmdline=&amp;quot;root=UUID=&amp;lt;uuid-of-your-root-fs&amp;gt; modules=ext4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Run kernel hooks:&lt;br /&gt;
{{cmd|apk fix kernel-hooks}}&lt;br /&gt;
&lt;br /&gt;
Disable {{pkg|mkinitfs}} trigger:&lt;br /&gt;
{{cmd|echo &#039;disable_trigger{{=}}yes&#039; &amp;gt;&amp;gt; /etc/mkinitfs/mkinitfs.conf}}&lt;br /&gt;
&lt;br /&gt;
Add boot entry:&lt;br /&gt;
{{cmd|efibootmgr --disk &amp;lt;dev&amp;gt; --part 1 --create --label &#039;Alpine Linux&#039; --load /Alpine/linux-lts.efi --verbose}}&lt;br /&gt;
&lt;br /&gt;
== Enrolling UEFI keys ==&lt;br /&gt;
&lt;br /&gt;
Copy all *.esl, *.auth files from {{path|/etc/uefi-keys}} to a FAT formatted file system (you can use EFI system partition).&lt;br /&gt;
&lt;br /&gt;
Launch firmware setup utility and enrol db, KEK and PK certificates (in this order!). Firmwares have various different interfaces; the following steps for ThinkPad T14s are just an example.&lt;br /&gt;
&lt;br /&gt;
# Reboot system and enter ThinkPad Setup (F1).&lt;br /&gt;
# Go to &#039;&#039;&#039;Security&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Secure Boot&#039;&#039;&#039;&lt;br /&gt;
# Change &#039;&#039;&#039;Secure Boot&#039;&#039;&#039; to &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Reset to Setup Mode&#039;&#039;&#039;&lt;br /&gt;
# Go to &#039;&#039;&#039;Key Management&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Authorized Signature Database (DB)&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Enroll DB&#039;&#039;&#039; &amp;gt; select your Flash Drive &amp;gt; select &#039;&#039;&#039;db.auth&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Delete DB&#039;&#039;&#039; &amp;gt; delete Microsoft certificates (optional)&lt;br /&gt;
# &#039;&#039;&#039;Key Exchange Key (KEK)&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Enroll KEK&#039;&#039;&#039; &amp;gt; select your Flash Drive &amp;gt; select &#039;&#039;&#039;KEK.auth&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;Delete KEK&#039;&#039;&#039; &amp;gt; delete Microsoft certificates (optional)&lt;br /&gt;
# &#039;&#039;&#039;Platform Key (PK)&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Enroll PK&#039;&#039;&#039; &amp;gt; select your Flash Drive &amp;gt; select &#039;&#039;&#039;PK.auth&#039;&#039;&#039; (this MUST be the last!)&lt;br /&gt;
# Go to top, &#039;&#039;&#039;Restart&#039;&#039;&#039; &amp;gt; &#039;&#039;&#039;Exit Saving Changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* https://wiki.gentoo.org/wiki/User:Sakaki/Sakaki%27s_EFI_Install_Guide/Configuring_Secure_Boot&lt;br /&gt;
* https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot&lt;br /&gt;
&lt;br /&gt;
[[Category:Booting]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22988</id>
		<title>Fluxbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22988"/>
		<updated>2023-02-19T14:07:12Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add description of fluxbox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://fluxbox.org Fluxbox] is an easy and fast X11 window manager based on BlackBox.&lt;br /&gt;
&lt;br /&gt;
= Initial setup =&lt;br /&gt;
Start by booting Alpine (see [[Installation|these]] instructions on how to do that)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Enable Community Repository =&lt;br /&gt;
We need the Community Repository available for access to the packages. Instructions are available on the [[Repositories#Enabling_the_community_repository|Repositories]] page.&lt;br /&gt;
&lt;br /&gt;
= Install packages =&lt;br /&gt;
Install fluxbox, xterm, and terminus font.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add openbox xterm terminus-font}}&lt;br /&gt;
&lt;br /&gt;
xterm is needed so you have a way to access the terminal in X. There are alternatives but this is the classic.&lt;br /&gt;
Terminus is needed because without any fonts, you will not be able to see any text in OpenBox.&lt;br /&gt;
&lt;br /&gt;
= Configure xorg-server =&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However, you can still configure xorg-server manually by launching:&lt;br /&gt;
{{Cmd|# setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
== acpid ==&lt;br /&gt;
If you installed your Alpine Linux as a VirtualBox or VMWare guest, you might find it handy to be able execute an ACPI shutdown.&amp;lt;BR&amp;gt;&lt;br /&gt;
{{Cmd|# rc-update add acpid}}&lt;br /&gt;
&lt;br /&gt;
= Set fluxbox as the default WM =&lt;br /&gt;
{{Cmd|$ echo &#039;exec startfluxbox&#039; &amp;gt;&amp;gt; ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
= Start your X! =&lt;br /&gt;
{{Cmd|$ startx}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The default menu (right click on desktop) will have a lot of options that won&#039;t work because we didnt install anything else! Luckily XTerm will work if you added the package in the first step, and you can use that to add additional packages.&lt;br /&gt;
&lt;br /&gt;
= Edit fluxbox settings =&lt;br /&gt;
You can now edit the flux settings for your user by editing the files located in&lt;br /&gt;
{{Cmd|~/.fluxbox/}}&lt;br /&gt;
&lt;br /&gt;
This directory is created after your first run of fluxbox. The Fluxbox configuration details can he studied on the [http://fluxbox.org/help/ Fluxbox Help Page]. &lt;br /&gt;
&lt;br /&gt;
The default configuration is minimal and most menu options won&#039;t work unless you customize and/or install additional packages. More information is available on the [http://fluxbox.org/help/ Fluxbox Help Page].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22986</id>
		<title>Fluxbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22986"/>
		<updated>2023-02-19T14:03:56Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Lmarz moved page Fluxbox Minimal Install to Fluxbox: Matches the other pages in the Desktop Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Initial setup =&lt;br /&gt;
Start by booting Alpine (see [[Installation|these]] instructions on how to do that)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Enable Community Repository =&lt;br /&gt;
We need the Community Repository available for access to the packages. Instructions are available on the [[Repositories#Enabling_the_community_repository|Repositories]] page.&lt;br /&gt;
&lt;br /&gt;
= Install packages =&lt;br /&gt;
Install fluxbox, xterm, and terminus font.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add openbox xterm terminus-font}}&lt;br /&gt;
&lt;br /&gt;
xterm is needed so you have a way to access the terminal in X. There are alternatives but this is the classic.&lt;br /&gt;
Terminus is needed because without any fonts, you will not be able to see any text in OpenBox.&lt;br /&gt;
&lt;br /&gt;
= Configure xorg-server =&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However, you can still configure xorg-server manually by launching:&lt;br /&gt;
{{Cmd|# setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
== acpid ==&lt;br /&gt;
If you installed your Alpine Linux as a VirtualBox or VMWare guest, you might find it handy to be able execute an ACPI shutdown.&amp;lt;BR&amp;gt;&lt;br /&gt;
{{Cmd|# rc-update add acpid}}&lt;br /&gt;
&lt;br /&gt;
= Set fluxbox as the default WM =&lt;br /&gt;
{{Cmd|$ echo &#039;exec startfluxbox&#039; &amp;gt;&amp;gt; ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
= Start your X! =&lt;br /&gt;
{{Cmd|$ startx}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The default menu (right click on desktop) will have a lot of options that won&#039;t work because we didnt install anything else! Luckily XTerm will work if you added the package in the first step, and you can use that to add additional packages.&lt;br /&gt;
&lt;br /&gt;
= Edit fluxbox settings =&lt;br /&gt;
You can now edit the flux settings for your user by editing the files located in&lt;br /&gt;
{{Cmd|~/.fluxbox/}}&lt;br /&gt;
&lt;br /&gt;
This directory is created after your first run of fluxbox. The Fluxbox configuration details can he studied on the [http://fluxbox.org/help/ Fluxbox Help Page]. &lt;br /&gt;
&lt;br /&gt;
The default configuration is minimal and most menu options won&#039;t work unless you customize and/or install additional packages. More information is available on the [http://fluxbox.org/help/ Fluxbox Help Page].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Proton_VPN&amp;diff=22985</id>
		<title>Proton VPN</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Proton_VPN&amp;diff=22985"/>
		<updated>2023-02-19T10:39:25Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proton VPN is an open-source VPN service by the non-profit Swiss company Proton AG. It utilizes the OpenVPN protocol. Because Alpine Linux does not currently have a release for Proton VPN, using it requires connecting via either OpenVPN or Wireguard. Using Wireguard is recommended due to Proton AG&#039;s own stated preference for the service as well as Wireguard&#039;s lighter and more modern build. Setting up for Wireguard is relatively simpler because NetworkManager has native support for it, requiring fewer installations and setups.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add {{Pkg|wireguard-tools}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
&lt;br /&gt;
Login to Proton VPN and download the Wireguard config file. More information on this can be found at [https://protonvpn.com/support/wireguard-configurations/ Proton VPN&#039;s support page]. Note that the private key will only be available from the site if you download immediately after making the config file, after which the private key is replaced with asterisks. Rename the file &amp;quot;wg0.conf&amp;quot; and move it somewhere safe in your file system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
To connect, run the following command. Substitute path_to_file with the full path to wherever you moved the config file.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# wg-quick up /path_to_file/wg0.conf}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable Wireguard connecting to Proton VPN on boot, open your /etc/network/interfaces using a text editor like nano. Add this information after your auto wlan0 section:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto wg0&lt;br /&gt;
iface wg0 inet static&lt;br /&gt;
pre-up wg-quick up /path_to_file/wg0.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, substitute path_to_file with your own relevant information.&lt;br /&gt;
&lt;br /&gt;
[[Category:VPN]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22983</id>
		<title>Fluxbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22983"/>
		<updated>2023-02-19T10:33:57Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Lmarz moved page Alpine Fluxbox Minimal Install to Fluxbox Minimal Install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Initial setup =&lt;br /&gt;
Start by booting Alpine (see [[Installation|these]] instructions on how to do that)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Enable Community Repository =&lt;br /&gt;
We need the Community Repository available for access to the packages. Instructions are available on the [[Repositories#Enabling_the_community_repository|Repositories]] page.&lt;br /&gt;
&lt;br /&gt;
= Install packages =&lt;br /&gt;
Install fluxbox, xterm, and terminus font.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add openbox xterm terminus-font}}&lt;br /&gt;
&lt;br /&gt;
xterm is needed so you have a way to access the terminal in X. There are alternatives but this is the classic.&lt;br /&gt;
Terminus is needed because without any fonts, you will not be able to see any text in OpenBox.&lt;br /&gt;
&lt;br /&gt;
= Configure xorg-server =&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However, you can still configure xorg-server manually by launching:&lt;br /&gt;
{{Cmd|# setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
== acpid ==&lt;br /&gt;
If you installed your Alpine Linux as a VirtualBox or VMWare guest, you might find it handy to be able execute an ACPI shutdown.&amp;lt;BR&amp;gt;&lt;br /&gt;
{{Cmd|# rc-update add acpid}}&lt;br /&gt;
&lt;br /&gt;
= Set fluxbox as the default WM =&lt;br /&gt;
{{Cmd|$ echo &#039;exec startfluxbox&#039; &amp;gt;&amp;gt; ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
= Start your X! =&lt;br /&gt;
{{Cmd|$ startx}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The default menu (right click on desktop) will have a lot of options that won&#039;t work because we didnt install anything else! Luckily XTerm will work if you added the package in the first step, and you can use that to add additional packages.&lt;br /&gt;
&lt;br /&gt;
= Edit fluxbox settings =&lt;br /&gt;
You can now edit the flux settings for your user by editing the files located in&lt;br /&gt;
{{Cmd|~/.fluxbox/}}&lt;br /&gt;
&lt;br /&gt;
This directory is created after your first run of fluxbox. The Fluxbox configuration details can he studied on the [http://fluxbox.org/help/ Fluxbox Help Page]. &lt;br /&gt;
&lt;br /&gt;
The default configuration is minimal and most menu options won&#039;t work unless you customize and/or install additional packages. More information is available on the [http://fluxbox.org/help/ Fluxbox Help Page].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=AppStream&amp;diff=22982</id>
		<title>AppStream</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=AppStream&amp;diff=22982"/>
		<updated>2023-02-19T10:32:35Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add link to AppStream, add expand template and categorize&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Expand}}&lt;br /&gt;
&lt;br /&gt;
AppStream is a collaborative effort between Linux distributions to produce shared metadata for the creation of appstores.&lt;br /&gt;
&lt;br /&gt;
Alpine&#039;s appstream data can be found at https://appstream.alpinelinux.org/. It&#039;s generated by {{Pkg|appstream-generator}}&lt;br /&gt;
&lt;br /&gt;
For more details about AppStream, see https://www.freedesktop.org/software/appstream/docs/&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=AppArmor&amp;diff=22981</id>
		<title>AppArmor</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=AppArmor&amp;diff=22981"/>
		<updated>2023-02-19T10:19:17Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to Security category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AppArmor is a kernel security module that restricts individual programs&#039; capabilities. This can allow administrators to prevent programs accessing system resources in malicious ways according to per-applications specifications. AppArmor works by following profiles, which dictate what each application is and is not allowed to do. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add {{Pkg|apparmor}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also install apparmor-utils if you want to use the aa command to interact with AppArmor.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add {{Pkg|apparmor-utils}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
&lt;br /&gt;
Run the command {{Cmd|# cat /sys/kernel/security/lsm}} to see what linux security modules are currently setup. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Use a text editor like nano to edit &amp;lt;pre&amp;gt;/boot/extlinux.conf&amp;lt;/pre&amp;gt; such that the APPEND line ends with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsm=landlock,yama,apparmor&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that because you&#039;re including lsm in this .conf file you are overriding the default lsm. Thus, you should include any lsm that you saw previously running in the above cat command. Additionally, lsm initializes these modules in order, so their position is important in regards to major/minor modules. Ensure that apparmor is placed first among major modules. Note for convenience that yama, capability, and landlock, which come with Alpine Linux, are not major modules, and apparmor can be placed after them. The module called capability is automatically included and does not need to be written in. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, start AppArmor and tell openrc to start it on boot.&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# rc-service apparmor start}}&lt;br /&gt;
{{Cmd|# rc-update add apparmor boot}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can check if AppArmor is running with the command aa-enabled&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# aa-enabled}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
AppArmor works using rules established in profiles. A set of pre-made profiles is available for ease of use:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add {{Pkg|apparmor-profiles}}}}&lt;br /&gt;
&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use==&lt;br /&gt;
&lt;br /&gt;
View AppArmor&#039;s report with the command aa-status&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# aa-status}}&lt;br /&gt;
&lt;br /&gt;
This details how many and what profiles are in use as well as relevant findings, such as how many profiles are in complain mode or in kill mode.&lt;br /&gt;
&lt;br /&gt;
==Troubleshoot==&lt;br /&gt;
&lt;br /&gt;
If you notice a bunch of AppArmor errors on boot, try running aa-status and aa-enabled in the terminal. If the output mentions AppArmor being disabled at boot, re-open your /boot/extlinux.conf file and make sure the APPEND line still ends with lsm=landlock,yama,apparmor&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22980</id>
		<title>Fluxbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fluxbox&amp;diff=22980"/>
		<updated>2023-02-19T10:12:06Z</updated>

		<summary type="html">&lt;p&gt;Lmarz: Add to Desktop Category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Initial setup =&lt;br /&gt;
Start by booting Alpine (see [[Installation|these]] instructions on how to do that)&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Enable Community Repository =&lt;br /&gt;
We need the Community Repository available for access to the packages. Instructions are available on the [[Repositories#Enabling_the_community_repository|Repositories]] page.&lt;br /&gt;
&lt;br /&gt;
= Install packages =&lt;br /&gt;
Install fluxbox, xterm, and terminus font.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|# apk add openbox xterm terminus-font}}&lt;br /&gt;
&lt;br /&gt;
xterm is needed so you have a way to access the terminal in X. There are alternatives but this is the classic.&lt;br /&gt;
Terminus is needed because without any fonts, you will not be able to see any text in OpenBox.&lt;br /&gt;
&lt;br /&gt;
= Configure xorg-server =&lt;br /&gt;
On most systems, xorg should be able to autodetect all devices. However, you can still configure xorg-server manually by launching:&lt;br /&gt;
{{Cmd|# setup-xorg-base}}&lt;br /&gt;
&lt;br /&gt;
== acpid ==&lt;br /&gt;
If you installed your Alpine Linux as a VirtualBox or VMWare guest, you might find it handy to be able execute an ACPI shutdown.&amp;lt;BR&amp;gt;&lt;br /&gt;
{{Cmd|# rc-update add acpid}}&lt;br /&gt;
&lt;br /&gt;
= Set fluxbox as the default WM =&lt;br /&gt;
{{Cmd|$ echo &#039;exec startfluxbox&#039; &amp;gt;&amp;gt; ~/.xinitrc}}&lt;br /&gt;
&lt;br /&gt;
= Start your X! =&lt;br /&gt;
{{Cmd|$ startx}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; The default menu (right click on desktop) will have a lot of options that won&#039;t work because we didnt install anything else! Luckily XTerm will work if you added the package in the first step, and you can use that to add additional packages.&lt;br /&gt;
&lt;br /&gt;
= Edit fluxbox settings =&lt;br /&gt;
You can now edit the flux settings for your user by editing the files located in&lt;br /&gt;
{{Cmd|~/.fluxbox/}}&lt;br /&gt;
&lt;br /&gt;
This directory is created after your first run of fluxbox. The Fluxbox configuration details can he studied on the [http://fluxbox.org/help/ Fluxbox Help Page]. &lt;br /&gt;
&lt;br /&gt;
The default configuration is minimal and most menu options won&#039;t work unless you customize and/or install additional packages. More information is available on the [http://fluxbox.org/help/ Fluxbox Help Page].&lt;br /&gt;
&lt;br /&gt;
[[Category:Desktop]]&lt;/div&gt;</summary>
		<author><name>Lmarz</name></author>
	</entry>
</feed>