Commit Graph

5915 Commits

Author SHA1 Message Date
nantayo b5efdf5d07 podman: update to 5.8.3
- adjust makefile
- refresh patch

Signed-off-by: nantayo <sora1924@outlook.com>
2026-06-14 20:36:05 +03:00
Hannu Nyman eb21982576 collectd: ping - fix use-after-free when re-resolving a host
Add a patch fixing a possible crash, when a non-responding host is
tried to be pinged and retry attempts are limited by MaxMissed option.

> daemon.err: collectd[14133]: ping plugin: host 192.168.1.99 has not answered 3 PING requests, triggering resolve
> daemon.info: procd: Instance collectd::instance1 s in a crash loop 7 crashes, 3 seconds since last crash

Fixes: #29649

* upstream bug created: https://github.com/collectd/collectd/issues/4406
* older upstream bug: https://github.com/collectd/collectd/issues/3079

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-06-14 10:03:41 +03:00
George Sapkin c04e7e4bfc syncthing: bump to 2.1.1
Changes: https://github.com/syncthing/syncthing/releases/tag/v2.1.1
Signed-off-by: George Sapkin <george@sapk.in>
2026-06-14 00:54:27 +03:00
John Audia 5883c07493 shadow: reintroduce newgidmap and newuidmap
The lxc-unprivileged package depends on both newgidmap and newuidmap
if users are installing and setting it up for the first time. dc52894
dropped both of the applets.

This change builds libusbid as a shared lib which builds a versioned
symbol which OpenWrt does not stage so build with --disable-shared
and --enable-static to avoid a failure.

Signed-off-by: John Audia <therealgraysky@proton.me>
2026-06-11 19:40:44 +03:00
John Audia 1c6d78e1ce dmidecode: update to 3.7
Upstream update.

Changelog from 3.5:
Version 3.7 (Thu Dec 18 2025)
  - [COMPATIBILITY] Use binary unit prefixes.
  - [COMPATIBILITY] Rename BIOS to Firmware.
  - [PORTABILITY] Improve variable declarations.
  - [PORTABILITY] Stop open-coding the u64 type.
  - [PORTABILITY] Use unaligned memory accesses unconditionally.
  - [PORTABILITY] No longer build with -Winline.
  - Support for SMBIOS 3.8.0. This includes a new processor family.
  - Support for SMBIOS 3.9.0. This includes chassis type name adjustments,
    new rack attributes, slot ID for more slot types, and new memory device
    form factors and types.
  - Decode HPE OEM records 193, 195, 202, 211, 226, 229, 232 and 244.
  - Update HPE OEM records 203, 216, 242 and 245.
  - EDSFF slot names now include their .S/.L suffix.

Version 3.6 (Wed Apr 24 2024)
  - [PORTABILITY] Use -DALIGNMENT_WORKAROUND on arm.
  - [PORTABILITY] Read SMBIOS entry point via kenv on DragonFly BSD.
  - Support for SMBIOS 3.6.0. This includes new memory device types, new
    processor upgrades, and Loongarch support.
  - Support for SMBIOS 3.7.0. This includes new port types, new processor
    upgrades, new slot characteristics and new fields for memory modules.
  - Add bash completion.
  - Decode HPE OEM records 197, 239 and 245.
  - Implement options --list-strings and --list-types.
  - Update HPE OEM records 203, 212, 216, 221, 233, 236, 237, 238 and 242.
  - Update Redfish support.
  - Bug fixes:
    Fix option --from-dump for user root
    Fix enabled slot characteristics not being printed
  - Minor improvements:
    Print slot width on its own line
    Use standard strings for slot width

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
2026-06-11 11:37:29 +02:00
Tianling Shen bc5ffab645 yq: backport upstream anchor fixes
bump go-yaml to fix !!merge tag regression.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2026-06-11 14:51:21 +08:00
Florian Eckert 297802241a flashrom: update to 1.7.0
* Upstream change data compression format form 'tar.bz2 to' tar.xz'
* Update MESON_ARGS variables

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2026-06-11 08:23:55 +02:00
Olekhov Vasilii 6826a7fccc lpac: fix env vars for lpac.sh wrapper
This patch fixes usage of `LPAC_QMI_DEV` and `LPAC_QMI_DEBUG`
environment variables.

OpenWRT upstream patch for `lpac` provides `uqmi` backend that uses these vars
instead of `LPAC_APDU_QMI_DEVICE` and `LPAC_APDU_QMI_DEBUG` respectively.

Added test-version.sh script since lpac version check is non-standart

Signed-off-by: Olekhov Vasilii <olekhov@gmail.com>
2026-06-10 22:45:46 +02:00
Daniel Golle 836834ebc2 exfatprogs: update to version 1.4.1
1.4.0 adds exFAT partition table support (mkfs partition-table creation,
fsck --put-mbr/--clear-mbr), a user-supplied --upcase table option and
chdosattr/lsdosattr DOS-attribute utilities; 1.4.1 fixes missing headers
in the release tarball. The new MBR and foreign-filesystem detection
links libblkid and fts, so add +libblkid and +USE_MUSL:musl-fts.

https://github.com/exfatprogs/exfatprogs/releases/tag/1.4.0
https://github.com/exfatprogs/exfatprogs/releases/tag/1.4.1
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-06-10 21:29:25 +01:00
Daniel Golle e9384a3de3 ccid: update to version 1.8.0
New reader support (GLSolutions NM61, Identiv uTrust FIDO2, Kensington
VeriMark NFC+, several Pol Henarejos Pico devices and more), removes the
16 reader limitation, and fixes crashes and race conditions in the
multi-slot code.

Upstream removes the autotools build system in favour of Meson, so port
the package to meson.mk and drop 010-macos.patch, which patched the now
removed configure.ac. The reader bundle install path is taken from
libpcsclite.pc usbdropdir (/usr/lib/pcsc/drivers, unchanged); udev rules
stay disabled as before.

https://ccid.apdu.fr/files/
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-06-10 21:28:44 +01:00
Daniel Golle f16939852c pcsc-tools: update to version 1.7.5
Adds new ATRs to the smartcard list, a Georgian translation and
minor README updates.

https://github.com/LudovicRousseau/pcsc-tools/releases/tag/1.7.5
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-06-10 21:28:44 +01:00
Daniel Golle fcd9275750 pcsc-lite: update to version 2.5.0
- Do not limit to 16 readers only
- Remove support of autotools
- Fix a crash when rescanning serial configs
- Fix a memory leak in Polkit
- tokenparser: avoid a crash with corrupted Info.plist files

https://pcsclite.apdu.fr/
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-06-10 21:28:44 +01:00
Bruno Marinier 4238239218 prometheus-node-exporter-lua: add unbound stats collector
- New unbound.lua exporter module for unbound stats
- Updated Makefile

Signed-off-by: Bruno Marinier <bmgm41@gmail.com>
2026-06-10 15:58:34 -04:00
Tianling Shen b58f27d320 yq: Update to 4.53.3
Notable changes: fixed nested inline YAML merge explode
Release note: https://github.com/mikefarah/yq/releases/tag/v4.53.3

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2026-06-10 11:55:20 +08:00
Seo Suchan afcb60f99d rtl-sdr: add test.sh
although rtl-sdr doesn't print version, test at least if compiled binary runs

Written-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Test-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Suggested-by: Josef Schlehofer <pepe.schlehofer@gmail.com>

Signed-off-by: Seo Suchan <tjtncks@gmail.com>
2026-06-10 00:07:48 +02:00
Seo Suchan 2bbef2fbf4 rtl-sdr: update to 2.0.2
bump version to 2.0.2, add version test override

Signed-off-by: Seo Suchan <tjtncks@gmail.com>
2026-06-10 00:07:48 +02:00
Niklas Thorild bbf3220ae3 telegraf: update to 1.39.0
- Update Telegraf to v1.39.0

Signed-off-by: Niklas Thorild <niklas@thorild.se>
2026-06-09 17:17:33 +03:00
Wei-Ting Yang 3085718815 bash: update to 5.3 patch level 12
- Fix loop in subshells calling wait builtin with inherited job list
- Fix mapfile problem when callback unsets the variable it is modifying
- Fix subshells inappropriately running the EXIT trap if they receive a
  fatal signal before resetting traps

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-06-09 13:17:25 +02:00
Wei-Ting Yang 1adc058454 treewide: add or correct license information
Add or correct license information across multiple packages.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-06-08 16:29:56 +03:00
John Audia 438ab953d0 zsh: update to 5.9.1
Removed upstreamed patches:
- 001-50658-test-Enable-to-switch-between-C-UTF-8-locales-.patch
- 002-51723-migrate-pcre-module-to-pcre2.patch
- 005-51877-do-not-build-pcre-module-if-pcre2-config-is-no.patch
- 006-52383-Avoid-incompatible-pointer-types-in-terminfo-g.patch

Remaining patches automatically rebased and filenames renumbered.

Changelog:
Incompatibilities
- PCRE support is now PCRE2.
Changes
- POSIX real-time signals (SIGRTMIN etc) are now supported by the kill and trap builtins, TRAP* functions, and the signals parameter, where available.
- The kill builtin learnt a new option -q to send the signal via sigqueue(3) along with an arbitrary integer value, where available.
- The kill builtin also learnt a new -L option to print a list of all known signal numbers and their names.
-The new completion helper _as_if can be used to complete one command as if it were another command with particular arguments.

Signed-off-by: John Audia <therealgraysky@proton.me>
2026-06-03 13:10:12 +03:00
Daniel Golle f64acded7a conmon: update to 2.2.1
Release notes: https://github.com/containers/conmon/releases/tag/v2.2.1

Upstream moved the install target from libexecdir/podman to bindir;
update Package/conmon/install accordingly and refresh
010-remove-libdl-dep.patch for the new context.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-06-02 00:33:07 +01:00
Hannu Nyman ba65841dd5 fontconfig: update to 2.17.1
Update to the newest stable version
* adjust download URL to gitlab
* add license info

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-06-01 08:10:43 +03:00
Maxim Storchak ec7fbc9a9b tmux: update to 3.6b
- Remove images from the correct list when they are removed while in the
  alternate screen

Signed-off-by: Maxim Storchak <m.storchak@gmail.com>
2026-05-31 19:42:56 +03:00
Maxim Storchak 602714574e lsof: update to 4.99.6
- Treat NFS ESTALE fds as unlinked for +L selection
- Fix null pointer exception

- Add test.sh

Signed-off-by: Maxim Storchak <m.storchak@gmail.com>
2026-05-31 19:42:45 +03:00
Hannu Nyman 858ec4093d haveged: update to 1.9.22
Update to version 1.9.22.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2026-05-31 12:56:24 +03:00
Dee HY 1d43d7b66e lm-sensors: fix bad scaling due to use of integer type
upstream: https://github.com/lm-sensors/lm-sensors/commit/62a955319152ce0595932789d10e955304213beb
Signed-off-by: Dee HY <dongfengweixiao@hotmail.com>
2026-05-27 11:34:41 +02:00
Alexandru Ardelean 6d7f1f2446 rtklib: add test.sh and test-version.sh for CI
The RTKLIB command-line tools (convbin, pos2kml, rnx2rtkp, rtkrcv,
str2str) don't accept a --version flag; passing any unrecognized option
triggers printhelp()/printusage() which only emits a synopsis block. The
generic CI version probe therefore can't find PKG_VERSION and marks the
package as missing a version match.

Add a test-version.sh that exit-0's for all five subpackages to skip the
generic version check, and a test.sh that exercises each binary's
synopsis output as a basic functional smoke test.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-25 15:53:20 +03:00
Alexandru Ardelean 59280e9cfe rtklib: disable MIPS16 to work around GCC ICE
The MIPS variants (mips_24kc, mips_4kec, mipsel_24kc, mipsel_74kc) all
fail to compile preceph.c with an internal compiler error:

  during RTL pass: reload
  src/preceph.c:317:1: internal compiler error:
    in lra_update_fp2sp_elimination, at lra-eliminations.cc:1416

This is a GCC LRA pass bug triggered when compiling with -mips16. Set
PKG_BUILD_FLAGS:=no-mips16 to strip the -mips16 / -minterlink-mips16
flags from CFLAGS for this package, matching the approach already used
by stress-ng for the same class of issue.

Bump PKG_RELEASE since only the build flags change.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-25 15:53:20 +03:00
George Sapkin 12cb2ccffd vsftpd: add version check override
Skip version checks as none of the executables seem to report their
versions.

Signed-off-by: George Sapkin <george@sapk.in>
2026-05-25 08:02:47 +03:00
Wei-Ting Yang 757ba7fa41 lm-sensors: add version check override
Add version check override script.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-05-25 08:02:47 +03:00
George Sapkin 6a20260a1f treewide: fix typos in version check overrides
Fix shellcheck shell configuration in version check overrides.

Signed-off-by: George Sapkin <george@sapk.in>
2026-05-25 08:02:47 +03:00
Jun Ouyang f39d51b14c prometheus-node-exporter-lua: check if status is nil before processing wifi device metrics interfaces
Signed-off-by: Jun Ouyang <ouyangjun1999@gmail.com>
2026-05-24 23:09:31 -04:00
Evgeni Golov 7d9cc2e95a prometheus-node-exporter-lua: expose node_os_info
the original node_exporter exposes a node_os_info metric with a set of
data about the system [1] which is then used by several dashboards.

openwrt.lua already exposes OS info, but using the node_openwrt_info
metric requires changes to existing dashboards, and would require more
complex lookups when there are non-OpenWrt hosts in the overview too.

as we've already called ubus and fetched the data, we can expose it in
two formats easily.

[1] https://github.com/prometheus/node_exporter/blob/d6d0e710bb7daf07a2743fde060f0d5f32c565f3/collector/os_release.go#L190-L192

Signed-off-by: Evgeni Golov <evgeni@golov.de>
2026-05-24 22:46:13 -04:00
Etienne Champetier c8760b4ecf prometheus-node-exporter-lua: fixup uci_dhcp_host
Handle cases where 'mac' is missing (nil), a single string,
or an array (table).

Additionally, add support for the 'duid' field.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2026-05-24 22:33:12 -04:00
Will May eba5a9c4da prometheus-node-exporter-lua: add filesystem metrics
Add a collector for the various fileystem metrics which matches the
node-exporter behaviour. This collector supports the following metrics:

* node_filesystem_size_bytes
* node_filesystem_free_bytes
* node_filesystem_avail_bytes
* node_filesystem_files
* node_filesystem_files_free
* node_filesystem_readonly

Signed-off-by: Will May <will.j.may@gmail.com>
2026-05-24 11:02:28 -04:00
Jean-Laurent Girod 1b18489df8 prometheus-node-exporter-lua: add modemmanager exporter
Add a Prometheus collector for ModemManager that exports cellular modem
signal metrics via mmcli. Supports multiple modems (labeled by D-Bus
object path), exports overall signal quality and detailed per-technology
signal parameters (LTE, NR5G, UMTS, GSM, CDMA, ...).

Requires signal refresh to be enabled on the modem:
  mmcli -m <id> --signal-setup=<interval_seconds>

Tested on: ath79/generic, GL.inet GL-X300B, OpenWrt 23.05.5

Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Jean-Laurent Girod <jeanlaurent.girod@icloud.com>
2026-05-24 09:26:21 -04:00
Javier Marcet b37d600c1d docker-compose: update to version 5.1.4
Changes: https://github.com/docker/compose/releases/tag/v5.1.0
Changes: https://github.com/docker/compose/releases/tag/v5.1.1
Changes: https://github.com/docker/compose/releases/tag/v5.1.2
Changes: https://github.com/docker/compose/releases/tag/v5.1.3
Changes: https://github.com/docker/compose/releases/tag/v5.1.4

Signed-off-by: Javier Marcet <javier@marcet.info>
2026-05-23 23:40:47 +03:00
Andy Chiang e161cf1dde qemu-ga: skip starting on bare metal device
The same firmware image may be deployed on either bare metal device or
virtualized platforms (e.g., Proxmox VE).

On bare metal device, `qemu-ga` may still be started even though no
virtio-serial channel is available, resulting in repeated attempts to
access /dev/virtio-ports/org.qemu.guest_agent.0.

This causes continuous service respawning by procd and unnecessary log
spam.

This commit adds a pre-check for /dev/virtio-ports to avoid starting
`qemu-ga` when virtio-serial support is not present.

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
2026-05-23 13:23:48 +03:00
Andy Voigt 29a46353fc vzlogger: add new package
vzlogger is a tool to read and log measurements of a wide variety of smart
meters and sensors to the volkszaehler.org middleware.

Signed-off-by: Andy Voigt <a.voigt@mailbox.org>
2026-05-22 16:28:17 +03:00
Alexandru Ardelean dc52894904 shadow: update to 4.19.4
Large version jump from 4.8.1 to 4.19.4 (latest upstream LTS).

Build changes:
- Refresh patches/004-fix-su-controoling-term.patch: su.c moved the
  ioctl() call from line 1122 to 1169 and changed (char *) 0 to
  (char *) NULL; update patch context and re-canonicalise through
  quilt (blank context line spacing).
- New CONFIGURE_ARGS:
  * --disable-logind: 4.19.4 added an optional libsystemd-based
    logind integration which OpenWrt doesn't ship.
  * --without-libbsd: shadow's configure now hard-fails on missing
    readpassphrase() unless libbsd is found; the in-tree
    lib/readpassphrase.c fallback is enabled by --without-libbsd.
  * --without-sssd: avoid dragging in an sssd build dep.
  * --disable-subordinate-ids: 4.19.4 builds libsubid (subuid/subgid
    runtime API) unconditionally when subids are enabled, and its
    libtool -export-symbols-regex generates a version script that
    binutils 2.40+ rejects against libxcrypt's versioned
    crypt_checksalt@@XCRYPT_4.3 symbol. Disabling subordinate-ids
    skips libsubid entirely; OpenWrt doesn't ship libsubid.
- Drop newgidmap, newuidmap, lastlog and groups from SHADOW_APPLETS:
  newgidmap/newuidmap are only built when subordinate-ids are
  enabled, lastlog defaults to disabled in 4.19.4, and the groups
  binary was removed from shadow upstream (use coreutils).

Test coverage:
- Replace the per-applet --version check in test.sh with per-applet
  functional tests:
    pwck     -> 'pwck -r' read-only consistency check; accept
                 non-zero exit since the CI container's /etc/passwd
                 trips minor warnings.
    grpck    -> 'grpck -r' read-only consistency check.
    chage    -> 'chage -l root' lists password aging info.
    useradd  -> 'useradd -D' dumps defaults without modifying state.
    passwd   -> 'passwd -S root' prints the password status line.
    faillog  -> create empty /var/log/faillog then 'faillog -a'
                must emit a header line.
    login/su -> PAM-interactive; presence covered by generic tests.
    Other applets -> verify binary presence (CI's generic tests
                 already check stripped, no build paths, linked-libs).
- Add test-version.sh as a generic-version-check override: shadow
  tools don't honour --version (only --help), so the framework's
  probe finds no PKG_VERSION match in any binary and would otherwise
  fail Generic tests for every sub-package.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-22 06:57:39 +03:00
Alexandru Ardelean 1f0bfd80c7 usbutils: update to 019, switch to meson
Update from 017 to 019. Version 019 dropped autoconf in favour of meson,
so switch to include/meson.mk and drop PKG_FIXUP:=autoreconf and the
autoconf CONFIGURE_ARGS.

The binary lsusb no longer reads usb.ids directly; it now queries the
udev hardware database. lsusb.py still searches /usr/share/hwdata/usb.ids
for device name resolution.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-21 20:28:51 +03:00
Alexandru Ardelean 3695f1dae5 hwdata: update to 0.407
Refresh the hardware database with the latest USB, PCI and PnP IDs.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-05-21 20:28:51 +03:00
Til Kaiser 71cb3a2dbd mstflint: update to 4.36.0-1
This commit updates the mstflint package
to the latest 4.36.0-1 release.

Obsolete patches have been removed,
as they are now included in this version.

Release notes:
https://github.com/Mellanox/mstflint/releases/tag/v4.36.0-1

Signed-off-by: Til Kaiser <mail@tk154.de>
2026-05-20 21:27:20 +03:00
Daniel Golle 75d4b7a129 lvm2: update to 2.03.41
Stable bug-fix release in the 2.03.x series. The bundled
device-mapper library bumps from 1.02.209 to 1.02.215; track that
in PKG_VERSION_DM as well so the libdevmapper package shows the
correct upstream version.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-05-20 13:20:42 +01:00
Daniel Golle ce02704de4 gnupg2: update to 2.5.20
New stable release on the 2.5.x development series. Highlights from
upstream's NEWS:

 * gpgsm: Implement GCM encryption.

 * gpgsm: New option --attribute and server command SETATTR to
   include arbitrary signed or unsigned attributes into a
   signature. Requires libksba >= 1.7.0 (bumped to 1.8.0 in the
   preceding commit).

 * gpgsm: Introduce system attribute _signingCertificateV2.

 * gpg: Fix wrong assertion failure which could very rarely occur
   during key signature checking.

 * gpg: Consider certify-only keys for revocation signature check.

 * gpgsm: Fix possible double free in the CMS parser.

 * gpgsm: Fix possible too early removal of ephemeral keys.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-05-20 00:40:22 +01:00
John Audia 021738c683 ripgrep: bump to 15.1.0
Changelog:
https://github.com/BurntSushi/ripgrep/releases/tag/15.1.0

Signed-off-by: John Audia <therealgraysky@proton.me>
2026-05-19 08:50:55 +03:00
Daniel Golle 5adf844b2b inotify-tools: update to 4.25.9.0
Update from 4.23.9.0.

The 4.25.9.0 release brings various fixes and updates accumulated
since 4.23 including build system fixes, smaller bug fixes and
maintenance updates.

Link: https://github.com/inotify-tools/inotify-tools/releases/tag/4.25.9.0
Link: https://github.com/inotify-tools/inotify-tools/blob/4.25.9.0/ChangeLog
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-05-17 13:37:02 +01:00
George Sapkin 292671a429 vim: move version checks to override
Move existing version checks into override and add explicit package checks.

Signed-off-by: George Sapkin <george@sapk.in>
2026-05-17 14:35:31 +03:00
Jens Wagner f2d2dabbc6 mbpoll: update to 1.5.4
Removed patch, as fixed in new source package now
Corrected path from /bin/mbpoll to /usr/bin/mbpoll

All changes from 1.5.2 can be found here:
https://github.com/epsilonrt/mbpoll/compare/v1.5.2...v1.5.4

Signed-off-by: Jens Wagner <jens@wagner2013.de>
2026-05-17 08:55:58 +02:00
George Sapkin 94c808d146 dbus: add version check override
Add manual version checks and skip version checks for dbus-utils.

Signed-off-by: George Sapkin <george@sapk.in>
2026-05-16 17:49:10 +03:00