Commit Graph

925 Commits

Author SHA1 Message Date
Thomas Petazzoni
dcb74db89e arch: add support for configurable page size on ARM64
This commit is based on earlier work from Łukasz Stelmach
<l.stelmach@samsung.com> to add support for different page sizes on
ARM64.

In his initial submission, Łukasz took an approach similar to this
one, i.e make it ARM64-specific. Following the feedback on the mailing
list, his second version [1] tried to generalize the logic to
configure the page size between architectures. But the general
consensus during the review process was that there wasn't much to
generalize in the end.

So, this new iteration is back to a simpler approach:

 * We have new options in Config.in.arm to configure the page
   size. Only 4 KB and 64 KB are supported, because our testing in
   Qemu and real hardware has not allowed to get a successful setup
   for 16 KB pages. We can always re-add support for 16 KB later if
   that is resolved.

 * The logic to define the ARCH_TOOLCHAIN_WRAPPER_OPTS options is
   moved from the ARC-specific file to arch/arch.mk, and extended to
   cover ARM64.

 * The appropriate logic in uclibc.mk and linux.mk is added to tweak
   the relevant configuration options.

 * A test case is added in the runtime test infrastructure to test
   building and booting under Qemu a 64 KB configuration, with all 3 C
   libraries.

For the regular configuration of 4 KB pages, this commit makes one
functional change: on ARM64, -Wl,-z,max-page-size=4096 is now passed in
the compiler flags of the wrapper.

[1] https://patchwork.ozlabs.org/project/buildroot/list/?series=275452

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-26 22:54:39 +02:00
Peter Korsgaard
5645990b88 {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15, 17}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-07-11 18:38:46 +02:00
Nicolas POIROT
4de196a1ce support/scripts/br2-external: add kernel extensions
Buildroot documentation section 9.2.1.6 "Additional kernel extensions"
indicates support for kernel extensions defined in external buildroot
trees but unfortunately, there didn't seem to be any support in
br2-external script.

This patch copies 'init' code support to include external kernel
extensions defined in 'linux' dir at the br2-external root directory as
explained in documentation.

Signed-off-by: Nicolas POIROT <ni.poirot@laposte.net>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-06-22 22:22:30 +02:00
James Hilliard
2810b51e52 linux: update cip/cip-rt kernels to latest versions
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-06-06 15:21:21 +02:00
Peter Korsgaard
3176d9febb {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15, 17}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-06-06 11:48:58 +02:00
Yann E. MORIN
baa55a4e26 linux: disable -Werror when building host tools
gcc-12 is starting to trickle down to some distros, like Archlinux.
gcc-12 has new warnings, and detects more cases of issues, like new
UAF cases, which is causing build issues in code that was previously
building fine, as reported in #14826:

    In file included from sigchain.c:3:
    In function 'xrealloc',
        inlined from 'sigchain_push.isra' at sigchain.c:26:2:
    subcmd-util.h:56:23: error: pointer may be used after 'realloc' [-Werror=use-after-free]
       56 |                 ret = realloc(ptr, size);
          |                       ^~~~~~~~~~~~~~~~~~
    subcmd-util.h:52:21: note: call to 'realloc' here
       52 |         void *ret = realloc(ptr, size);
          |                     ^~~~~~~~~~~~~~~~~~
    subcmd-util.h:58:31: error: pointer may be used after 'realloc' [-Werror=use-after-free]
       58 |                         ret = realloc(ptr, 1);
          |                               ^~~~~~~~~~~~~~~
    subcmd-util.h:52:21: note: call to 'realloc' here
       52 |         void *ret = realloc(ptr, size);
          |                     ^~~~~~~~~~~~~~~~~~

In that case, the kernel has already fixed their code, which is part of
5.17:
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=52a9dab6d892763b2a8334a568bd4e2c1a6fde66

However, we can't easily carry that patch, because we don't know
whether the kernel the user uses already has the fix or not.

Instead, we can just tell the kernel to disable use of -Werror when
building host tools.

As a consequence, we can drop it from the perf-specific setting.

Fixes: #14826

Reported-by: Anders Pitman <buildroot@apitman.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-06-04 10:22:41 +02:00
Joel Stanley
62044e8675 linux: Fix powerpc64le defconfig selection
The default defconfig target for the 64 bit powerpc kernel is
ppc64_defconfig, the big endian configuration.

When building for powerpc64le users want the little endian kernel as
they can't boot LE userspace on a BE kernel.

Fix up the defconfig used in this case. This will avoid the following
autobuilder failure:

 VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o
 cc1: error: ‘-m32’ not supported in this configuratioin
 make[4]: *** [arch/powerpc/kernel/vdso32/Makefile:49: arch/powerpc/kernel/vdso32/sigtramp.o] Error 1

 http://autobuild.buildroot.net/results/dd76d53bab56470c0b83e296872d7bb90f9e8296/

Note that the failure indicates the toolchain is configured to disable
the 32 bit target, causing the kernel to fail when building the 32 bit
VDSO. This is only a problem on the BE kernel as the LE kernel disables
CONFIG_COMPAT, aka 32 bit userspace support, by default.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-13 23:54:14 +02:00
Peter Korsgaard
d1f7af938c {linux, linux-headers}: default to 5.17.x
5.15.x is getting quite old, so default to 5.17.x instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-05-13 23:47:31 +02:00
Peter Korsgaard
334924192b package/linux-headers: drop 5.16.x option
The 5.16.x series is now EOL upstream, so drop the linux-headers option and
add legacy handling for it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-05-13 23:47:28 +02:00
Peter Korsgaard
2b134f9549 {toolchain, linux-headers}: add support for 5.17.x headers
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-05-13 18:32:13 +02:00
Peter Korsgaard
9286f2a4d4 {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-05-13 18:32:10 +02:00
Leger Charlie
666084f494 linux:linux.mk: Add "firmware-imx" dependency if needed
Since SDMA firmwares for imx[6,7,8] are now provided only by
firmware-imx package and not linux-firmware package [1]. If
CONFIG_EXTRA_FIRMWARE is set in the kernel config, the build will fail
if the imx firmware is not available.

[1] http://lists.busybox.net/pipermail/buildroot/2021-January/603807.html

Signed-off-by: Leger Charlie <c.leger@borea-dental.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-05 23:24:07 +02:00
Baruch Siach
8c4b55053e linux: add a comment about CONFIG_EXTRA_FIRMWARE requirement
Explain why the kernel needs firmware packages as build time
dependencies.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-05 22:59:26 +02:00
Peter Korsgaard
5cc46a0722 package/linux-headers: drop 4.4.x option
The 4.4.x series is now EOL upstream, so drop the linux-headers option and
add legacy handling for it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-04 21:39:53 +02:00
Peter Korsgaard
efdbd301b7 {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15, 16}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-04 21:38:53 +02:00
James Hilliard
c457bf9cb4 package/linux-headers: prevent invalid custom headers selection
If BR2_KERNEL_HEADERS_AS_KERNEL is selected and the kernel version
is known we should not allow potentially incompatible custom headers
to be selected.

For BR2_LINUX_KERNEL_LATEST_CIP_VERSION and
BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION this means we should select
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 and for
BR2_LINUX_KERNEL_LATEST_VERSION this means we should select
BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15.

Fixes:
 - http://autobuild.buildroot.net/results/816/816d7a3ad77ba051fff7fba7f2a38fc31549c360
 - http://autobuild.buildroot.net/results/3c3/3c3a9fc1a1e0002ae8169fd47b3003ebb86935f6
 - http://autobuild.buildroot.net/results/188/18883459577dc0fdc01149110ffb81bf1a28c94a

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-03 22:09:51 +02:00
James Hilliard
e5ff1de64e linux: do not allow selecting RTAI for latest/cip kernels
RTAI is only supported on very specific kernel versions that are
different from the latest/cip kernel versions, so we should not
allow selecting RTAI when building with latest/cip kernels.

Fixes:
 - http://autobuild.buildroot.net/results/412/412492e19b41f95ff2445df6b7564cb0fa48873b
 - http://autobuild.buildroot.net/results/32c/32c9ffd8e965eb690ca0b0471e9c1cc16bb2fa66
 - http://autobuild.buildroot.net/results/0bc/0bc178dcb11aa23e5f8bf75c958d8a56c6c38964

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-05-02 23:40:24 +02:00
Peter Korsgaard
c3ac7eb133 {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15, 16}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-04-11 09:15:50 +02:00
James Hilliard
84b1eacc32 linux/linux.mk: ensure custom kernel version is set
Validate that BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE is set when
required.

Fixes:
http://autobuild.buildroot.net/results/117/117c08e414776202446a9fdb96d084aa3c16af48

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-04-10 16:48:34 +02:00
Peter Korsgaard
607c5986a9 {linux, linux-headers}: bump 4.{9, 14, 19}.x / 5.{4, 10, 15, 16}.x series
4.4.x is now EOL, so no more updates for that series.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-03-25 17:43:59 +01:00
Angelo Compagnucci
2b6bd9b0de linux: bump CIP-RT kernel to version 5.10.104-cip3-rt3
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-03-22 08:56:04 +01:00
Angelo Compagnucci
781a01c9f3 linux: bump CIP kernel to version 5.10.104-cip3
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-03-22 08:55:33 +01:00
Rémi Duraffort
d1579589e0 linux: make Image{,.gz} format available for aarch64 BE
Just like aarch64, aarch64 BE supports the Image and Image.gz format.

Signed-off-by: Rémi Duraffort <remi.duraffort@linaro.org>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-03-15 22:09:59 +01:00
Angelo Compagnucci
1c44600c10 linux: bump CIP RT kernel to version 5.10.100-cip2-rt2
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-03-07 23:22:20 +01:00
Angelo Compagnucci
af2278c42a linux: bump CIP kernel to version 5.10.100-cip2
Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-03-07 23:21:56 +01:00
Peter Korsgaard
949aee6377 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 15, 16}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-03-05 17:26:53 +01:00
Yann E. MORIN
9b41b54be0 linux: fix build with host-gcc 10+
Some older versions of linux, or custom versions (like forks for some
boards), fail to build with host-gcc 10+, because of redefined symbols:

      HOSTLD  scripts/dtc/dtc
    /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition
    of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
    collect2: error: ld returned 1 exit status

Since this has been fixed in recent-ish versions, we can't use an
unconditionaly patch, so we must have a conditional patch. However, a
patch may not always apply to arbitrary Linux versions or forks.

Upstream just dropped that line altogether:
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e33a814e772cdc36436c8c188d8c42d019fda639

So, we use a little sed-grep combo to do the exact same change.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Tested-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-12 21:38:18 +01:00
Jörg Krause
de0f5ba17a linux: build after wireless-regdb if enabled for early loading support
To support building in the wireless regulatory database files (regulatory.db*)
into the kernel using the CONFIG_EXTRA_FIRMWARE option, we need to ensure that
the database files are installed before the Linux kernel is built.
The dependency is harmless if CONFIG_EXTRA_FIRMWARE isn't actually set.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-12 21:38:18 +01:00
Thomas De Schampheleire
0ecfdc0932 linux/linux.mk: correct LINUX_ARCH_PATH for sparc64
Buildroot uses variable LINUX_ARCH_PATH to refer to the arch-specific
directory in the Linux tree, which may not necessarily be arch/$(KERNEL_ARCH).

Buildroot already accounts for the case of KERNEL_ARCH=i386 and
KERNEL_ARCH=x86_64, but does not for KERNEL_ARCH=sparc64, in which case the
correct directory is arch/sparc.

Reported-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-08 21:24:41 +01:00
Michael Opdenacker
8ef413b59a linux: clarify BR2_LINUX_KERNEL_CUSTOM_DTS_PATH description
This clarifies that custom DTSI files can be passed too,
and that the files are compiled after being copied to the
Linux kernel source tree.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-03 21:44:43 +01:00
Francis Laniel
2da2f359db linux: add BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE
CONFIG_DEBUG_BTF_INFO relies on pahole, so kernel DWARF are converted to BTF.
If CONFIG_DEBUG_BTF_INFO is set and BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE not,
an error message is shown and .config is not written.

Signed-off-by: Francis Laniel <flaniel@linux.microsoft.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-01-13 22:23:27 +01:00
Peter Korsgaard
db14f7d715 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 15}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-01-11 19:28:47 +01:00
Peter Korsgaard
27eb296a20 package/linux-headers: drop 5.14.x headers
The 5.14.x series is now EOL, so drop it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
[yann.morin.1998@free.fr: actualyl drop it from the choice list]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-01-11 19:28:06 +01:00
Michael Walle
85459426d9 {linux, linux-headers}: add version 5.16
Signed-off-by: Michael Walle <michael@walle.cc>
[Peter: Keep default at 5.15.x for 2022.02]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-01-10 23:54:16 +01:00
Angelo Compagnucci
b5778d7b76 linux: bump CIP RT kernel to version 5.10.83-cip1-rt1
This patch bumps Linux CIP RT kernel to version 5.10.83-cip1-rt1.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-12-12 13:21:43 +01:00
Angelo Compagnucci
0adbd0c84b linux: bump CIP kernel to version 5.10.83-cip1
This patch bumps Linux CIP to version 5.10.83-cip1.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-12-12 13:21:43 +01:00
Peter Korsgaard
64cb922db7 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 15}.x series
5.14.x is EOL, so no more updates for that.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-12-03 08:55:49 +01:00
Peter Korsgaard
ad2b4b8cc7 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 14, 15}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-11-24 12:06:37 +01:00
Sébastien Szymanski
8f3e2a6678 linux: fix typo in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH in the help text
"Path to to out-of-tree..." -> "Path to the out-of-tree..."

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-11-22 21:03:06 +01:00
Peter Korsgaard
377aa3b117 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 14}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-11-03 22:56:44 +01:00
Peter Korsgaard
e444baf816 package/linux-headers: drop 5.13.x headers
The 5.13.x series is now EOL, so drop it.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-11-03 22:56:09 +01:00
Michael Walle
73a5501141 {linux, linux-headers}: add version 5.15
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-11-03 22:12:36 +01:00
Peter Korsgaard
cc26ee8e1b {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 14}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-10-27 12:26:33 +02:00
Peter Korsgaard
d538f3c7a7 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 13, 14}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-10-14 12:08:57 +02:00
Peter Korsgaard
a7864c4ff4 {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 13, 14}.x series
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-09-12 13:43:16 +02:00
Peter Korsgaard
144acc313d package/linux-headers: drop 5.11.x / 5.12.x headers
The 5.11.x and 5.12.xx series are now EOL, so drop them.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-09-12 09:41:38 +02:00
Michael Walle
47523da623 {linux, linux-headers}: add version 5.14
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-09-11 15:31:04 +02:00
Angelo Compagnucci
835ea5b94c linux: bump CIP RT kernel to version 4.19.198-cip54-rt21
This patch bumps Linux CIP RT to version 4.19.198-cip54-rt21

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-08-19 22:54:40 +02:00
Angelo Compagnucci
595209da93 linux: bump CIP kernel to version 4.19.198-cip54
This patch bumps Linux CIP to version 4.19.198-cip54.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-08-19 22:54:30 +02:00
Peter Korsgaard
79e230178b {linux, linux-headers}: bump 4.{4, 9, 14, 19}.x / 5.{4, 10, 12, 13}.x series
Includes fixes for the recent "Sequoia" seq_file vulnerability
(CVE-2021-33909):

https://lwn.net/Articles/863729/

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-08-08 20:22:10 +02:00