Commit Graph
6056 Commits
Author SHA1 Message Date
Daniel Golle 05dc1768cb sane-backends: depend on scanner-support for the group
The package allocates a group named scanner with a dynamic id, while
openwrt.git's scanner-support package allocates it as gid 47. Two
different ids for one group name make the metadata scan fail.

Depend on scanner-support and pin the group to the same id. The hotplug
script stays here: it matches a scanner by vendor and product id against
the usbid lists this package ships, which scanner-support has no way to
do, and it already checks that the group exists before granting access.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-29 18:14:57 +01:00
Daniel Golle 75438c8934 uvol: pad the MBR disk signature when matching root=
get_bootdev() identifies the boot disk for a root=PARTUUID=xxxxxxxx-NN
command line by reading the four-byte signature at offset 440 of each
block device, but renders it with %x per byte, so a byte below 0x10 comes
out as a single digit and the string is too short to ever match. A disk
whose signature is cf0a3161 yields "cfa3161", get_bootdev() returns null,
and every backend's init fails: uvol then reports no backend at all and
no volume can be created on a perfectly good volume group.

Pad each byte to two digits, as the GPT branch of the same function
already does.

Fixes: 6350c7bc63 ("uvol: replace with re-write in ucode")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-28 23:46:00 +01:00
Josef Schlehofer 8f9ad5085e setools: fix the version reported by the tools
setools reads its version through importlib.metadata, which imports
the email module. email is part of python3-urllib, so without it every
tool prints "unknown" for --version, and the generic version check
fails for all of them. Depend on python3-urllib.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-28 17:44:38 +03:00
Josef Schlehofer 17283f7e83 selinux-python: add version check override
None of the selinux-python tools print the package version, so the
generic version check fails for all of them.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-28 17:44:38 +03:00
Josef Schlehofer 7cda9bbbe8 xz: update to 5.8.4
Fixes GHSA-5qpq-xqfv-j9pg: after a failed memory allocation,
reinitializing an existing .lzma, .lz or MicroLZMA decoder to decode a
different file could access invalid memory and at least crash. It
affects all XZ Utils versions since 5.0.0.

The release also fixes a wrong error code in lzma_stream_buffer_decode()
and a slowdown of lzma_index_cat() with crafted files that made
"xz --list" appear to hang.

Release notes:
https://github.com/tukaani-project/xz/releases/tag/v5.8.4

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-28 11:10:45 +03:00
Jose Luis Sanroma Tato 10f86ed4bc gpsd: install gps2udp client
gpsd-clients/install only shipped cgps, gpsctl, gpsdecode, gpsmon,
gpspipe, gpxlogger and lcdgps, leaving out gps2udp even though it's
built by scons like the rest of the client tools. Install it too.

Signed-off-by: Jose Luis Sanroma Tato <joseluis.sanromatato@unwired.at>
2026-09-28 08:01:08 +02:00
Niklas Thorild 363804555b telegraf: update to 1.40.1
Update Telegraf to v1.40.1.

Signed-off-by: Niklas Thorild <niklas@thorild.se>
2026-09-27 21:18:46 +02:00
Josef Schlehofer 4206464bc0 librespeed: fix the kconfig recursion between common and the clients
Two packages provide librespeed-cli, and for a dependency written with a
leading plus, package-metadata.pl re-emits the chosen provider's
architecture gate under a condition that names the consuming package.
Kconfig reads that as a self-dependency, once for librespeed-common and
again for luci-app-librespeed. Naming the client without the plus emits
a plain either-or instead, and the user picks.

The provide also crosses package boundaries, where package-pack.mk asks
for an unversioned one: with a version the higher one wins, so a release
on either side would decide which client apk installs. Unversioned, the
package called librespeed-cli keeps the name, and a default variant
gives the Rust client the provider priority so it is still chosen where
the Go client is not built.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-24 08:34:20 +02:00
Trix Taiclet 50e19530f5 mox-pkcs11: fix broken Makefile
The mox-pkcs11 package was merged with a Makefile that fails during build,
specifically because of linking issues.

Example errors:

> mox-pkcs11.c:(.text+0x1e4): undefined reference to `find_key_by_type_and_desc'
> mox-pkcs11.c:(.text+0x109c): undefined reference to `keyctl_read'
> ERROR: package/feeds/packages/mox-pkcs11 failed to build.

The specific error is a missing '\'.

Reported-by: Robert Klink <rklink@ripe.net>
Signed-off-by: Trix Taiclet <git@trix.moe>
2026-09-24 07:53:05 +02:00
Daniel Golle 10f1f42ef4 bluez: ignore junk entries in characteristic discovery
The LG Magic Remote MR24 pads a Read By Type response for the
characteristic declaration with junk entries once its attribute table
is exhausted, and bluetoothd then throws the whole GATT discovery away,
so the HID over GATT profile never attaches and the remote produces no
input device. Add a gatt-helpers fix that accepts only the ascending,
in-range prefix of such a response.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-23 22:18:06 +03:00
Josef Schlehofer 018c3f3886 librespeed-cli-rust: update to version 1.2.0
Corrects the transfer accounting, the redirect and TLS handling, the
command line and the reports, sanitizes text a server supplies, and
holds the output to the Go client's with differential tests.

The upstream repository moved to the librespeed organisation, and the
version banner follows it, so the test greps for the new address.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-22 08:31:59 +02:00
Javier Marcet 6e46ddbe2d docker-compose: update to version 5.5.1
Release notes:
https://github.com/docker/compose/releases/tag/v5.5.1

Signed-off-by: Javier Marcet <javier@marcet.info>
2026-09-20 14:36:54 +03:00
Romain Isnel 905a8ae2e2 restic: update to 0.19.1
Changelog: https://github.com/restic/restic/compare/v0.17.3...v0.19.1
Release note of 0.19.1: https://github.com/restic/restic/releases/tag/v0.19.1

Signed-off-by: Romain Isnel <ri@frmg.eu>
2026-09-18 19:16:28 +03:00
Til Kaiser e5417c8271 mstflint: update to 4.37.0-1
Update the mstflint package to the latest 4.37.0-1 release.

Also add the newly introduced mstefuse binary, which prints
fuse voltage readings, to the package installation.

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

Signed-off-by: Til Kaiser <mail@tk154.de>
2026-09-18 19:08:53 +03:00
Wei-Ting Yang baac45838d swanmon: add version check override
Add a version check override script that verifies swanmon displays its
usage information, since swanmon does not provide version information.

Remove redundant test.sh.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-17 16:53:20 +02:00
Wei-Ting Yang c9d3faee51 swanmon: update to Git HEAD (2026-04-23)
c0e2e3c28293 swanmon: replace glib queue with json_stack
40bcc77fc83c CMakeLists: remove setting empty link flags
52901f35daff query: fix wrong include
25a0c1719225 cmake: bump cmake minimum up to 3.13
f6aa6b659d11 README: update documentation
b2d1ec4e546f main: fully initialize terminating NULL command

Remove the no longer needed glib2 dependency.
Drop the superseded 001-cmake4.patch.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-17 16:53:20 +02:00
Wei-Ting Yang 6fd88543e2 bash: update to 5.3 patch level 20
- Accommodate macOS dynamic pipe sizing, avoiding hangs.
- Modify the readline redisplay code to use a buffer offset instead of
  the physical prompt length in a multibyte locale to determine whether
  to reprint the prompt from column 0 because the cursor is before the
  last invisible character in the prompt string.
- Fix readline crash with a prompt that exceeds 256 wrapped lines.
  Fix readline redisplay code to print the entire prompt if the first
  few characters are identical but part of a terminal escape sequence
  and the prompt needs to be redrawn.
- Work around systems including bytes between 128 and 255 in the
  isalpha(3) set, which causes bash to potentially include them in
  identifier names.
- If readline handles a SIGWINCH and updates its idea of the screen
  dimensions, it needs to recompute the columns where the prompt wraps
  lines every time, not just when the screen width decreases.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
2026-09-16 18:53:00 +03:00
Vladimir Ulrich 36c4c3f9d0 zoneinfo: update to 2026d release
Package version and file hashes changed.

Signed-off-by: Vladimir Ulrich <admin@evl.su>
2026-09-15 18:06:36 +02:00
Daniel Golle 34f7cb6066 podman: wire the podman bridges into dnsmasq and fw4
Ship a uci-defaults script that excepts the podman bridges from dnsmasq so
aardvark-dns can own the gateway :53, adds an fw4 zone forwarding the podman
subnets to wan, and reloads both so it also applies on a running system.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-13 23:57:19 +01:00
Daniel Golle 337361a642 podman: select the nftables firewall driver
Set firewall_driver = "nftables" in containers.conf so podman programs
networks through nft.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-13 23:57:19 +01:00
Daniel Golle bd5899b75a cryptsetup: update to 2.8.8
Stable bug-fix release. It avoids a TOCTOU issue in LUKS header restore
by opening the header file only once, hardens BITLK metadata validation
against crafted images, fixes an integer overflow in the anti-forensic
data size calculation on 32-bit systems and a memory corruption in
reencrypt init with more than 16 active LUKS2 keyslots or tokens, and
adds keyed discards to integritysetup (--allow-discards-keyed, Linux
7.3 or later).

Link: https://gitlab.com/cryptsetup/cryptsetup/-/blob/v2.8.8/docs/v2.8.8-ReleaseNotes
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-11 01:46:29 +01:00
Daniel Golle 5b684a6713 cryptsetup: fix Argon2 with OpenSSL built without it
OpenWrt builds OpenSSL with no-blake2, which OpenSSL's Configure turns
into no-argon2 because Argon2 is built on BLAKE2b. The cryptsetup
configure script only looks for the OSSL_KDF_PARAM_ARGON2_VERSION macro,
which such a build still installs, so it drops the bundled Argon2 and
EVP_KDF_fetch() fails at runtime. Every LUKS2 keyslot using Argon2 then
fails instantly with "Keyslot open failed", and cryptsetup benchmark
reports argon2id as N/A. Add a patch that also checks OPENSSL_NO_ARGON2
so the bundled implementation is used again.

Fixes: fbac2e7861 ("cryptsetup: update to 2.8.7")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-11 01:46:29 +01:00
Daniel Black bc8c5e84c1 mariadb: init - check file versions
mariadb-upgrade has had its own upgrade version file in the datadir,
called mysql_upgrade_info in <= 10.11 and mariadb_upgrade_info there
after.

The mariadb-install-db creates this file, and also the mariadb-upgrade
executable creates this file also.

This removes the need to maintain the .version info though this is used
as a last check of the upgrade.

Signed-off-by: Daniel Black <daniel@mariadb.org>
2026-09-10 10:20:50 +02:00
Daniel Golle 54aae64f11 fwupd: backport upstream support for MxL862xx switches
Backport two patches from upstream implementing devlink-based firmware
update support for the MaxLinear MxL862xx DSA switch family, found eg.
on the BananaPi R4 Pro (8E/4E).

Users can update the switch firmware using `fwupdmgr update`.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-08 12:25:52 +02:00
Alexandru Ardelean 24928ba895 stress-ng: update to 0.22.00
Refresh PKG_HASH from the upstream GitHub tag tarball.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-09-08 10:52:20 +03:00
Christian Korber 4c19a2ea6b ufp: bump PKG_RELEASE
Increment PKG_RELEASE to force a package rebuild following recent changes,
ensuring package indexes and builds reflect the update.

Signed-off-by: Christian Korber <ckorber@tdt.de>
2026-09-07 12:03:33 +02:00
Christian Korber 88b04833fa ufp: add dependency ucode-mod-rtnl
We need `ucode-mod-rtnl` as a dependency, because it is used in ufp.
This was forgotten in previous commits.

Signed-off-by: Christian Korber <ckorber@tdt.de>
2026-09-07 12:03:33 +02:00
Christian Korber ecb23cd800 ufp: align dependencies
Move each package dependency onto its own line.
This makes future dependency additions, removals,
and code reviews much easier to track in diffs.

It also keeps the dependency line under 80 characters.

Signed-off-by: Christian Korber <ckorber@tdt.de>
2026-09-07 12:03:33 +02:00
Andy Chiang 42f0ddbc8f qemu: update to 11.1.1
- Update to 11.1.1 (10.1.x is EOL,ref https://wiki.qemu.org/Planning/10.1)
- Refresh patches
- Remove `0003-qga-invoke-separate-applets-for-guest-shutdown-modes.patch`,
    this issue has been fixed upstream, ref
	https://github.com/qemu/qemu/commit/c5b4afd4d56e9c2251e6674d8c9ae530a923ecb9
- `PKG_BUILD_DEPENDS` add `python-setuptools/host`
- Remove `--disable-glusterfs`,
    11.1 deprecated this,ref https://github.com/qemu/qemu/blob/stable-11.1/docs/about/removed-features.rst
- Remove `linuxboot.bin`, change `multiboot.bin`to `multiboot_dma.bin`,
    ref https://github.com/qemu/qemu/commit/e818b4b10969927019a0a2be5b71aad7a8e0f6a7 and
    https://github.com/qemu/qemu/commit/88641f4df388faa78c49c54ed885e530fd0a75dc
- Drop i386 support,ref https://github.com/qemu/qemu/commit/25512d6865e24976a67f034a1a5be8da266bc58c

Changelog: https://www.mail-archive.com/qemu-devel@nongnu.org/msg1220561.html

Signed-off-by: Andy Chiang <AndyChiang_git@outlook.com>
2026-09-04 17:04:13 +03:00
Josef Schlehofer 08da28b3e8 librespeed-common: add measurement backend
Add a common backend for running librespeed-cli measurements on a router.

The package provides a locked measurement runner, live progress state, and
an rpcd ucode plugin exposing start/stop/status/result/history/config over
ubus. Scheduled measurements are managed through cron and can run within a
configurable time window. Optional daily aggregation keeps longer-term
history compact.

Raw measurements are kept in JSONL for a configurable retention period.
When persistent archive storage is configured, completed days are reduced
to daily min/avg/max values.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-03 14:53:08 +02:00
Tianling Shen 463f06b22c yq: update to 4.53.6
Removed upstreamed patch.

Release note:
- https://github.com/mikefarah/yq/releases/tag/v4.53.4
- https://github.com/mikefarah/yq/releases/tag/v4.53.6

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2026-09-01 09:45:10 +08:00
Daniel Golle f5c4a7b3d1 conmon: fall back to the runtime's exit status file
conmon learns a container's exit status by waiting for the pid it reads from
the runtime's --container-pidfile, which only works while the container is
conmon's own child. With ujail the container belongs to procd, so conmon has
nothing to wait for: it probes the pid with kill(pid, 0), finds it gone and
settles for a status of zero, as its own comment admits. podman then reports
0 for a container that exited 42, and an exec session that succeeded looks
like a failure.

Add a patch letting the runtime supply what conmon cannot observe: ujail
writes the status to an exit_status file beside the pid file, and conmon
adopts it in the one place it would otherwise guess. A runtime whose
container conmon does reap is unaffected, since no such file exists there.

020-fall-back-to-runtime-exit-status-file.patch also picks up two
fixes review caught: the fallback to a status of 0 now waits up to a
tenth of a second in 10ms steps for the runtime to finish writing the
file, since the runtime can only write it after the kernel has
already reaped the container and made the pid stop answering conmon's
probe, so either order is possible; and a status file is only trusted
if it is at least as new as the pid file, so a stale one left by an
earlier container in the same directory is ignored. Its header also
lost the `diff --git`/`index` lines and `git format-patch` version
trailer that don't survive `make package/conmon/refresh`, which is
what CI's "Dirty patches detected" check was catching on every
architecture. Verified via a scratch quilt tree against the pristine
2.2.1 source that the refreshed patch applies cleanly and stays
stable under a second refresh, and that the patched ctr_exit.c and
ctr_stdio.c both syntax-check clean against host glib.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-31 17:31:29 +01:00
Daniel Golle 3b40dd12b6 lvm2: update to 2.03.42
LVM2 2.03.42:
- add --lockopt retries=N / removeretry=SECONDS to lvmlockd
- use lockd_lv lock probes for pvmove holder availability in shared VGs
- auto-revert metadata when initial pvmove mirror activation fails
- refuse activation of a pvmove-locked LV when pvmove runs on another
  node; allow pvmove --abort without args when using lvmlockd
- add cluster lock lifecycle for pvmove LV in shared VGs, and support
  for pvmove in a shared VG
- allow lvremove -f to remove pvmove-locked LVs after an interrupted
  pvmove; handle active pvmove during vgchange -an with force flags
- fix pvmove completion to use suspend+resume for DM table reload; fix
  deactivation cascade during active pvmove
- support inactive LVs in pvmove with metadata-only mirror insertion;
  kill orphaned polling process on pvmove --abort
- support formatting vdo volumes with the kernel vdo target (>=9.2);
  fix VDO index_memory_size_mb quantisation and report the minimum
  required pool size
- add --enable-asan/--enable-tsan build options

device-mapper 1.02.216:
- make libdm thread safe
- add use_kernel_format to dm_vdo_target_params
- introduce libdevmapper-san with --enable-asan/--enable-tsan
- parent table force reload when child device table changes

Refreshed 002-const-stdio.patch and 003-no-mallinfo.patch against the
new upstream source (make package/lvm2/refresh; hunk offsets only, no
content change) and gave both a proper git-am header block (From/Date/
Subject/Signed-off-by), crediting their original authorship (Daniel
Golle, 2015) with an accurate subject/body; they previously had none,
which the CI formality bot flagged. The header block was drafted via
git format-patch against a scratch commit of the pristine source, then
the whole patch re-refreshed through quilt so the diff body matches
what make package/lvm2/refresh actually produces byte for byte -
format-patch output alone does not survive OpenWrt's own refresh
(diff --git/index lines and full @@ context get stripped, the
trailing signature dropped), which is what the CI patch-format check
was rejecting before this.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-31 17:30:15 +01:00
Eric Fahlgren 499d4688a0 owut: update to 2026.08.30
efahl/owut@9b51eeec3e owut: refactor image type extraction
efahl/owut@7185daa0a1 owut: include raw board in device info
efahl/owut@2fab581877 owut: allow to append apk repositories to build requests

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2026-08-31 11:54:17 +02:00
Samuele LonghiandEric Fahlgren 1c2ce769a8 owut: remove comments and empty lines from the built package
This allows to save some bytes, while preserving the scripts's
copyright and license information.

In owut at current ref db17536ec5cbcc6a76a51e65f3d192b6a2184abb
the reduction in the size applied to the source code is (e.g. without
the computed "s/%%VERSION%%/$(PKG_VERSION)-r$(PKG_RELEASE)/"):

from:
74330 /usr/bin/owut
10541 /usr/share/ucode/utils/argparse.uc

to:
58640 /usr/bin/owut
8630 /usr/share/ucode/utils/argparse.uc

Signed-off-by: Samuele Longhi <agave@dracaena.it>
Co-authored-by: Eric Fahlgren <ericfahlgren@gmail.com>
2026-08-30 21:20:02 +03:00
Peter Polonec 1da75e82a7 vim: update to 9.2.1014
Update Vim from 9.2.0 to 9.2.1014.

This includes fixes for GHSA-vfc7-mhvm-gjp8, an out-of-bounds
access in libvterm resize handling, and GHSA-cvc5-p4x9-3f9f,
an integer overflow when reading persistent undo files.

Tested compilation on OpenWrt.

Link: https://github.com/vim/vim/security/advisories/GHSA-vfc7-mhvm-gjp8
Link: https://github.com/vim/vim/security/advisories/GHSA-cvc5-p4x9-3f9f
Signed-off-by: Peter Polonec <polonec.devel@pm.me>
2026-08-28 09:01:42 +03:00
Daniel Golle a49d5cb892 xdg-dbus-proxy: update to 0.1.8
0.1.8:
- fix broadcast messages bypassing path/interface/member checks
- improvements to the existing testing infrastructure
- add tests for owning names, issuing method calls, receiving messages

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-27 14:55:17 +03:00
John Audia 97e17c70fc fscrypt: update to 0.3.7
Changelog:
- Upgraded various dependencies, including golang.org/x/crypto to resolve the usual
  CVEs in it (but as usual, not actually affecting fscrypt's use of it).
- When selecting password hashing parameters, fscrypt now takes cgroup limitations
  into consideration.
- fscrypt encrypt no longer follows trailing symlinks when writing the recovery
  instructions.
- fscrypt unlock no longer enters an infinite loop when an incorrect key file is
  specified using --key=FILE, --quiet isn't specified, and standard input is a terminal.
- fscrypt unlock no longer enters an infinite loop when an incorrect password is specified,
  --quiet isn't specified, and standard input isn't a terminal.
- The error message when multiple protectors are available now mentions --unlock-with in
  addition to --protector.
- Documented the udev dependency for /dev/disk/by-uuid/ links.

Signed-off-by: John Audia <therealgraysky@proton.me>
2026-08-27 14:50:51 +03:00
Alexandru Ardelean 6a33191fa0 stress-ng: update to 0.21.04
Refresh PKG_HASH from the release tarball. Drop
001-allow-external-library-checks-to-be-disabled.patch: its check_lib /
check_lib_apparmor mechanism is upstream as of 0.21.04, so emptying a
LIB_* variable already skips that library check and the Makefile's
LIB_*= opt-out keeps working without the patch.

Pin the new LIB_NL and LIB_GENL probes off: 0.21.04 added netlink
stressors that would otherwise link libnl from staging_dir without a
corresponding DEPENDS, making the build non-deterministic.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-08-24 20:05:46 +03:00
Alexandru Ardelean dfd046a6b7 shadow: update to 4.20.2
Refresh PKG_HASH from the release tarball.

Drop expiry, groupmems and logoutd from SHADOW_APPLETS: shadow 4.20
removed these applets (their sources are gone from the tarball and
src/Makefile.am no longer builds them), so shadow-expiry,
shadow-groupmems and shadow-logoutd have no binary to install.

Update the login.defs bcrypt sed: 4.20's etc/login.defs ships the
commented default "#ENCRYPT_METHOD SHA512" instead of
"#ENCRYPT_METHOD DES", so the old pattern matched nothing and left
ENCRYPT_METHOD unset.

Refresh 004-fix-su-controoling-term.patch for the shifted su.c line
numbers and add the missing git-am header.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-08-24 20:05:46 +03:00
Daniel Golle 267a9c8892 uvol: update to 1.2, expose volume operations over ubus
Move the storage backend probe, the ctx construction, the locking
helpers and the volume-name check out of the CLI script into
/usr/lib/uvol/common.uc, so a second entry point can reuse them
without duplicating the logic.

Publish ubus object 'uvol' with the volume operations and a readiness
query. Consumers such as uxc are pure ubus frontends and must not exec
the command line tool. Ship an rpcd exec plugin, installed by the uvol
package itself, taking the same locks as the CLI so both entry points
stay serialised. As stdout is the plugin's reply channel, point file
descriptor 1 at stderr for the duration of a call.

Send a 'uvol.ready' ubus event at the end of 'uvol boot', carrying the
active backend name and whether the .meta volume is ready. Consumers
such as uxc can wait for this event instead of polling volume state.
Sending is best-effort: boot keeps its exit code even when ubusd is
not reachable.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-24 17:54:41 +01:00
Daniel Golle f427fac2c4 uvol: update to 1.1.1, harden backend invocation and volume-name handling
Volume names were interpolated into shell command lines at every
backend call site, so a name containing shell metacharacters ran
arbitrary commands as root. ucode's system() takes an array and execs
it directly, so every call site that interpolates a name, a device or
a path now passes an argument vector instead. Three sites genuinely
want a shell and keep it, with their arguments quoted: the lvm()
helper reads its JSON report via popen(), the content-addressed digest
pipeline quotes the volume path, and taking a volume down attempts a
umount whether or not anything mounted it, so that one keeps its
redirection and is now shared by both backends instead of spelt out
per call site. Suppressed errors that were only hiding a useless
diagnostic are dropped, and the filesystem grow tool is now located by
searching PATH instead of asking a shell.

lvm matches lvname with its own regular expression, and a volume name
was placed in that expression raw, so a dot in a name matched any
character instead of itself: a volume called a.b resolved to an
unrelated axb. Dotted names are the norm, since uxc composes a data
volume as <container>.<volname>; the name is now escaped where the
selection expression is built.

Every lvs, vgs and pvs caller dereferenced straight into the JSON
report, so an lvm invocation that failed to produce one, or failed to
run at all, crashed with a reference error instead of an error code.
Both now report through the .retval every caller already checks.

Volume names reaching the command line are now restricted to
^[A-Za-z0-9_][A-Za-z0-9._-]*$: a leading dot is reserved for uvol's
own volumes such as .meta, and a leading dash would be read as an
option by the backend tools. Only the read-only verbs may name an
internal volume, closing remove, down and resize being able to target
the metadata volume, which the backends never rejected the way mount
registration does; uvol's own boot path calls the backend directly
and is unaffected. The check runs before the per-volume lock, which is
keyed on the volume name too, which is why the -j flag is now consumed
before both. A rejected name exits 22 rather than falling off the end
of the script, which reports success.

Reachable only by root today, through the command line or a volume
name composed by uxc from an author-controlled registration; fixed as
defence in depth.

Fixes: 6350c7bc6 ("uvol: replace with re-write in ucode")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-24 17:54:41 +01:00
Jeffery To f529178f79 slide-switch: update to 1.0.1
Release notes:
https://github.com/jefferyto/openwrt-slide-switch/releases/tag/1.0.1

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2026-08-24 18:43:35 +03:00
Daniel Golle 5117f9b2a4 oci-runtime-tools: skip the version check for oci-runtime-tests
runtimetest and the ~60 validation/*.go binaries oci-runtime-tests
installs are OCI compliance tests, not user-facing tools, and none
of them has a version flag. Probing one runs the test it implements
instead: CI's generic check reported 58 of 60 missing the version
string and failed the build, and the one it did run tried to read
rootfs-386.tar.gz relative to the probe's working directory rather
than /usr/libexec/oci-runtime-test, so it also failed outright.

Add a test.sh: skip oci-runtime-tests outright, since none of its
binaries can report a version, and keep the generic check for
oci-runtime-tool by replicating it directly now that --version
reports the right string.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00
Daniel Golle c316c01936 oci-runtime-tools: report the real version string
main.version was linked to PKG_SOURCE_VERSION, the upstream commit
hash, rather than PKG_VERSION, the human-readable string everything
else (the tarball name, the package version, CI's own version probe)
actually means by "version". oci-runtime-tool --version therefore
printed the commit hash twice ("<hash>, commit: <hash>") and never
the string 1.3.0.20260316, which is what CI's generic runtime test
greps stdout for, so the check failed on every push regardless of
this PR's actual content.

gitCommit stays on PKG_SOURCE_VERSION, since that is genuinely what
it is; only version was wrong.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00
Daniel Golle ce621e707e oci-runtime-tools: depend on 'unshare'
Some of the tests require 'unshare' on the host. Select it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00
Daniel Golle a2d0bdddd4 oci-runtime-tools: install the test rootfs archives on x86
The install recipe guarded both archives with CONFIG_x86, a symbol OpenWrt
never defines: the target symbol is CONFIG_TARGET_x86 and the architecture
symbols are CONFIG_i386 and CONFIG_x86_64. No archive was therefore packaged
and every validation test stopped at "rootfs-amd64.tar.gz: Cannot open".
Key each archive off the architecture symbol that matches it, i686 included,
so the package's own architecture guard and the archive it installs cannot
disagree.

The choice moves out of the install recipe, since a conditional inside a
define has to start at the beginning of the line to be a directive at all,
which leaves no way to indent it as the packaging guidelines ask for.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00
Daniel Golle fe9a06c343 oci-runtime-tools: build runtimetest statically
runtimetest is copied into the validation bundle, whose rootfs carries a
static busybox and no dynamic loader, so the dynamically linked binary the
generic Go recipe produces fails to execute and every validation test that
inspects the container from the inside aborts.

Build that one command again as the static binary upstream's own runtimetest
target produces. Upstream gets there by asking the external linker for a
static link, while disabling cgo reaches the same result without fighting the
-linkmode external that the generic Go recipe would otherwise impose.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 23:37:55 +01:00
Daniel Golle ef77db3bf9 gnupg2: update to 2.5.21
New and extended features:
- gpg, gpgsm: use a partial file on decryption, remove on failure
  (disable with --compatibility-flags=no-partial-file-guard)
- gpg: use the INT_RCP_FPR subpacket in revocation signatures
- create a pkgversioninfo.txt file when building with the speedo build
  system

Bug fixes:
- gpg: fixed a potential use-after-free in batch key generation when
  handling the keyserver URL option
- gpgsm: fixed a regression in gpgsm_verify with expired certificates
- gpgsm: require a minimum tag length for GCM decryption
  (CVE-2026-34182)
- scd: limit the size of returned APDU objects from faulty cards; fixed
  the condition to retrieve ATR

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 19:56:11 +03:00
Daniel Golle 19599fa63d gawk: update to 5.4.1
Changes from 5.4.0 to 5.4.1:
1. Fixed a performance problem in PMA with backing store files 1G or
   more in size, by disabling assertions in support/pma.c.
2. Fixed a bug in gensub() when using MinRX.
3. Revised all files that referred to the FSF's old address.
4. Confirmed MinRX case-insensitive matching behaviour is correct per
   POSIX even where one character has multiple alternative case
   variants; documented and added tests for it.
5. Unary plus and minus now force their operands to be numeric.
6. Documented the intdiv extension (man page and manual description).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-08-23 19:53:55 +03:00