Commit graph

21915 commits

Author SHA1 Message Date
sterni
dfd8210e99 fix(sterni/blërg/mail-notes): actually extract attachments
Change-Id: I1d9f93081400ce45b66a79ab70e037f73c37092b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13104
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:44:37 +00:00
sterni
a5272f8ccc docs(sterni/blërg): list dependencies in README
Change-Id: Iceacf406bef71529cb29e8adcf9fe1f713187e42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13103
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:23:04 +00:00
sterni
69bb8b1423 refactor(sterni/blërg): clean up header concatenation code
Change-Id: I775bff10f8d74f457fff3742ea198efadabcd67c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13018
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 18:22:34 +00:00
sterni
5db216b4ef refactor(sterni/blërg): use namespaces for entries
The array listing was pretty nice for debugging, but having arrays where
every element has a different meaning as an interface between different
parts of the code is not great. Refactoring will be less frustrating if
we just store everything using a key-value scheme in namespaces.

Change-Id: I806fea247b6f996dbdd93df24f3fdb762340f043
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13017
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-05 18:22:34 +00:00
sterni
eeba67de1c refactor(sterni/blërg): avoid calling mhdr once per header
We can actually get all the headers we are interested in just one call
of mhdr(1) since it can query multiple headers in multiple messages in
just one call. With BQNs reshape / two dimensional array facilities it
is easy to group the lines of headers by their originating message and
append the original path to the result array.

We still use a separate mhdr(1) call for the Date header since we rely
on the -D option for parsing the header.

Change-Id: Iaaf8f21fa22ab3e32e6900df4ae164e72c722cd3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13016
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2025-02-05 18:22:34 +00:00
sterni
6479f9ae5e feat(sterni/blërg): yet another blog software
Currently, blërg is an incomplete reimplementation of
//users/sterni/mblog that uses mblaze(7) and //users/sterni/mn2html to
process the backing mail notes.

Now, why start from scratch again?

- mblog is depressingly slow at the moment which is due to
  //third_party/lisp/mime4cl. The performance problems are
  (probably) solvable, but this would require carefully
  redesigning the library's use of streams. I'm not motivated
  to look into that at the moment, unfortunately.

- I had an idea for intergrating additional storage backends
  for entries into an mblog like software. I've found experimenting
  with this in BQN to be quite pleasant as the backends can
  easily be expressed as namespaces.

Change-Id: I90c8ff7b5f7235d6fd7b0619338b553be8742e49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13015
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-05 18:19:33 +00:00
sterni
ba2d2d3eea feat(sterni/acme/plan9port): completely ignore the primary selection
TL;DR: xwayland-satellite (which I use) doesn't sync the primary
selection between X11 and wayland. Since devdraw prefers the primary
selection over the clipboard if populated, it is impossible to paste
from wayland (i.e. from the clipboard) in devdraw windows after cutting
once on the plan9port side (which populates the primary selection).

Change-Id: Idc46b875f294bf90d477ee7fe138dcd17e755221
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13102
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-05 17:54:30 +00:00
sterni
4f3c4e7d09 feat(sterni/acme/plan9port): set (rough) location for astro(1)
I semi regularly look up the sunset time, so this is actually useful for
me. Time zone conversion seems to be broken which I'll have to debug.
The GMT sunset times it comes up with seem to be accurate, though.

Change-Id: If179f9e1bb56665d4d6f8b0f81272d3d74fe6cec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13101
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-05 17:52:00 +00:00
sterni
df49c51c99 docs(sterni/acme): document mkbqnkeyboard.bqn
Change-Id: Ifc2fd45712bda4d7700b3ba0dea571ee3f7fde0c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13100
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-05 15:20:42 +00:00
sterni
473d3c3761 fix(sterni/acme/mkbqnkeyboard.bqn): allow multiple flags in one arg
Change-Id: I203cc50997f9292cef7a3383dadb96fc97108ca6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13099
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-05 15:16:11 +00:00
sterni
3224488a29 feat(sterni/mn2html): reimplement mnote-html in Rust
Reimplement the MIME body extraction and HTML rewriting from mblog in
Rust so that shelling out to it becomes viable. The problem with
mnote-html is mainly that it – being written in CL – requires a ~300MB
executable and is a bit sluggish starting.

Change-Id: I5c1adc1a7ab5f3dde207f9a1f67ace685bd3f69f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13014
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
2025-02-05 13:01:25 +00:00
Vincent Ambo
84bdb1e89a feat(ops/restic): configure backups to Yandex Cloud
Backups are moving from GleSYS to Yandex Cloud (is this motivated by me not
having to pay for them in that case? Maybe!); this changes the default backup
location to accommodate that.

I also noticed that we previously manually placed the backup key on whitby, so
the new key is going into agenix instead, as well as the secrets for protecting
the repositories.

Change-Id: Ibe5dbfec6784345f020a8b4d92bb01c6ad719a89
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13096
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 15:01:24 +00:00
Vincent Ambo
7851917ebf chore(ops/whitby): retire most services on whitby
This turns off almost all of the lights. The server will be decomissioned on
2025-02-05. Until then we can keep running the Buildkite builders there for
extra capacity.

Stuff that was left in the whitby config has been migrated to nevsky.

This relates to b/433.

Change-Id: I84953e9d5e912f75b8884cb9d8edd5a1b7d5c85d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13095
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 15:01:24 +00:00
Vincent Ambo
aa13655a39 chore(ops/glesys): clean up post-migration DNS setup
Change-Id: I3b2901280eb005a53460b7b15ee39480536f493c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13094
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
afcdcc6338 feat(ops/modules): factor grafana & prometheus setup into a module
... that is then promptly enabled on nevsky.

Change-Id: Ie51037cec810bb7f81099a67ebd2581dcf710bd5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13093
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
75fe623d97 feat(ops/nevsky): run keycloak/panettone/paroxysm
These are the postgres-database using services.

Change-Id: I4e8d854e798d85e1b14bfa78aae8827ac0881c7d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13092
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
3a92f43ee5 feat(ops/nevsky): run TVL OpenLDAP server
Change-Id: I9afce1500e0888f523fe8b775edaa7a2c3ab53a2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13091
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
64ae639cc7 fix(ops/nevsky): ensure CPU is not power-saving unnecessarily
Change-Id: I5ea6f2fdbf3ccbf993787b1c592539b1fdee151f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13090
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
6f7239b3b8 fix(ops/known-hosts): add bugry & nevsky keys
Without these, Gerrit replication is unhappy.

Change-Id: Id0edbc6a1cf301f9ed7ef2a88ccb0ef70f469693
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13089
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
b867df7ba4 feat(ops/glesys): point git-serving services at nevsky
Change-Id: Idf944a77fc9f230d938efdff4fc421efe0232ac3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13088
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
f2257abc5d feat(ops/nevsky): run livegrep instance
Change-Id: Icc17ff919aaf23964b6f35160aaeb437e69ee7bf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13087
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
610cfeda25 feat(ops/nevsky): run cgit & josh on nevsky
Change-Id: If62177d19c0c4e708dce7a20974f53827a133247
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13086
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
f5a301230a feat(ops/glesys): point cl.tvl.{fyi|su} at nevsky
Gerrit has been migrated over.

Change-Id: I455d58f28663ab2795dcfdfdeb98259ec36ae0e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13085
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
c6f2f6924b feat(ops/nevsky): run TVL Gerrit instance
Runs the Gerrit instance with the same config as previously on whitby. Data has
been migrated manually using `tailscale file` (which worked surprisingly well).

Change-Id: I6e85f932c834b2c36fc40327ae081ee396c5e16f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13077
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
4a1a271644 feat(ops/nevsky): run smtprelay instance for gerrit
Change-Id: I856fafb4c13a876bb6d9cfdb0cdf554d9d0a6b11
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13076
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
2b828fbb8e feat(ops/nevsky): run clbot
Change-Id: I2e71ca70b5035041d354a2ba4fa088efb5182d2b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13075
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
4783d83686 feat(ops/nevsky): sync remaining whitby secrets to nevsky
Change-Id: I604426d8e9e91417607eed71f0dbcaf93e88c31d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13074
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
749a01b681 feat(ops/nevsky): run owothia & irccat on nevsky
Change-Id: I9234a77967634c9b472151ea5ac7ef4e76c2d7e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13073
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:58:16 +00:00
Vincent Ambo
119df03a50 style(ops/nevsky): centralise depot services in a config block
Change-Id: I46ceb8fdbcb49e98772cb272a7b775761f9d1ed0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13072
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:58:16 +00:00
Vincent Ambo
899142ed2c feat(ops/nevsky): run ZNC bouncer
Same as whitby, with the difference that there is now a listener on the
tailnet (just in case).

Change-Id: I841b2283112a0fea54f3c35a2dc4d2dd393b2612
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13071
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:18:10 +00:00
Vincent Ambo
cf919a02b2 feat(ops/nevsky): run postgresql server
All the postgres-dependent services are going to migrate here.

Change-Id: Ie2a25395f6fe6e3c9f7a45f21cf90c635e208cdd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13070
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-02 14:18:10 +00:00
Vincent Ambo
234a324bb6 feat(ops/glesys): move static site DNS records to bugry
Change-Id: Iaa54675ef37595a2587fcf206dd566f733cfc631
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13068
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-02 14:18:10 +00:00
Vincent Ambo
01016828b8 feat(bugry): run static & mostly static websites on bugry
Change-Id: Ie4c723f68ce5a07e2c7ab1f10a9d652ad442f44a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13067
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-01 20:34:24 +00:00
Vincent Ambo
2da13f51d5 chore(ops/secrets): clean up secret config & reencrypt
This grants access to all relevant keys to the new machines.

Change-Id: I78a7003181ee9977e548fbfe0d78afb67357b56b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13064
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-01 19:59:42 +00:00
Vincent Ambo
afe1d579a4 feat(ops/pipelines): configure job priority for 🦙
🦙 is the blocking step on which everything else is always waiting, so to
avoid a situation where we have idle builders we should prioritise running
llamas within the available slots to spawn other stuff in the build queue.

Change-Id: I76836275edd0b0aedaf702d2626dacc31ced9fe2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13069
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-01 19:59:42 +00:00
Vincent Ambo
324e050ee6 chore(ops/glesys): prepare DNS setup for whitby decomissioning
Reduces the whitby record TTLs everywhere, and sets up the scaffolding for
adding nevsky/bugry records.

This relates to b/433.

Change-Id: I31b5503fa4fcf5463c989f4cf47a3d403d34c684
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13066
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-01 19:59:42 +00:00
Vincent Ambo
1d54b05445 chore(ops/glesys): remove images.tvl.*
This is an old unused name.

Change-Id: I63082bb1b0daa38ab63400e956151f1aad53b41a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13065
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-01 19:59:42 +00:00
Vincent Ambo
11e1b9ffbd feat(ops/nevsky): configure automatic GC module
Change-Id: I6c89129206773f4855cdda7ddc944ecb5437ec8e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13061
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-01 19:34:55 +00:00
Vincent Ambo
658f07a50e fix(ops/nevsky): fix NDP entry for bugry
Apparently I set this up manually before, and failed to commit it ...

Change-Id: I550a2cd9e1fcc8b508bafc2fd06ddab2a915b597
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13060
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-01 19:34:55 +00:00
Vincent Ambo
86483c7908 feat(ops/bugry): configure self redirect for the machine
Change-Id: I25b8541cc9bd66d4c9db6531ce960d224b5e73c0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13059
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-02-01 19:34:55 +00:00
Vincent Ambo
8e78f613ec chore(ops/pipelines): flip anchor step over to nevsky
Change-Id: Ifea931779fab4309ce468a8f14bf6e9222cc3604
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13058
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-02-01 19:34:55 +00:00
Vincent Ambo
160a50c544 feat(tazjin/nixos): install watchexec everywhere
much easier to use than my typical inotify shell loop

Change-Id: Id9c260d7f57bdde5307149e982ace4eca960ecdb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13055
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2025-02-01 08:42:54 +00:00
sterni
dd5100acf5 chore: rewrite uses of cs.tvl.fyi to code.tvl.fyi
I've checked the new links manually.

- //web/tvl: changed the target path of links to the tvix docs since
  they were moved in r/2378.

- //users/aspen/resume: Tvix is no longer //third_party/nix.

Change-Id: I419bae1a46bdccc7baa7327215aa2368ffc0f01c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13043
Reviewed-by: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: fogti <fogti+devel@ytrizja.de>
Reviewed-by: tazjin <tazjin@tvl.su>
2025-01-30 02:19:06 +00:00
sterni
ae3b098664 chore(README): remove unused //third_party/nix link
Change-Id: Iff545be504620b92378201ce4a54ef611190fbd3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13047
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2025-01-29 22:22:52 +00:00
sterni
a484ed7981 test(web/atward): remove leftover reference to cs.tvl.fyi
Change-Id: If5ef3811eed7699981aca831f23b5115b02289c9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13046
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-29 22:22:52 +00:00
sterni
fe2a1f035c fix(web/todolist): generate links to code.tvl.fyi
Change-Id: I4116eedcebcedf44594e160d580d8840914d2537
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13045
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-29 22:22:52 +00:00
sterni
ca2bf3cde0 feat(sterni/emacs): bind occur
Change-Id: I929950ca1cfe7a44edfefeda2b9a090b04b8aa37
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13057
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2025-01-27 16:55:55 +00:00
sterni
a8f17cc37a feat(sterni/emacs): project-independent project-find-regexp
I like project-find-regexp better than grep-find-file, but it's a little
annoying to use for arbitrary directories. With C-u, it unnecessarily
prompts for a file name pattern.

For convenience, add a variant of project-find-regexp which always
prompts for a directory, but doesn't require a project nor prompts for a
file name pattern.

Change-Id: I40f0bdcca4aa129f447f4f4790d732afcf76d3f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13056
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-27 16:55:55 +00:00
sterni
1fcd827230 feat(sterni/machines/ingeborg): disallow crawling of /tmp
Change-Id: Ic104ff7837c5f728b4e9b33b2ed2ed1ceba8103e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13054
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-24 21:26:31 +00:00
sterni
5720399a19 feat(sterni/emacs): bind rename-visited-file
(ty leah2)

Change-Id: Ia8aa3ebed0b29b453046a2b5b661cdeaf5f26487
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13053
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-24 20:13:43 +00:00