Roc Lai [Tue, 14 Jul 2026 23:04:33 +0000 (07:04 +0800)]
frp: migrate generated configuration from INI to TOML
Migrate frpc and frps configuration generation to the TOML format used by
current frp releases.
- generate TOML configuration from UCI options
- add UCI defaults migration for existing installations
- install additional fragments under /etc/frp/frpc.d and /etc/frp/frps.d
- preserve manual raw TOML fragment support without exposing it in LuCI
- keep client and server TCP mux settings aligned
- update the package metadata for the current frp release artifacts
Dirk Brenken [Tue, 18 Aug 2026 18:49:20 +0000 (20:49 +0200)]
travelmate: release 2.4.8-1
* distinguish an active run cycle from an idle daemon in the
runtime status: 'processing' is now only reported while f_main
is actually running, an idle daemon without uplink reports
'not connected' instead
* settle the status file at the end of f_main, so a leftover
'processing' does not survive into the sleep phase
* README: document the travelmate_status values and the LuCI
button behaviour
Daniel Golle [Sat, 15 Aug 2026 04:45:18 +0000 (05:45 +0100)]
comrade: add package
Serverless peer-to-peer terminal sharing: a host shares a tmux session
that a client joins with a token, over a hole-punched link discovered on
the mainline DHT or link-local multicast, wrapped in an end-to-end SSH
session with the host key pinned in the token.
comrade adds no crypto of its own and follows whatever backend libssh
already links; OpenWrt's libssh uses mbedTLS, so this resolves to
monocypher.
Daniel Golle [Sat, 15 Aug 2026 04:45:18 +0000 (05:45 +0100)]
monocypher: add package
A small, auditable, portable cryptographic library. It provides the
BLAKE2b and Ed25519 primitives that an mbedTLS-based libssh lacks, so
comrade can follow that backend without pulling in libcrypto.
Daniel Golle [Sat, 15 Aug 2026 04:45:18 +0000 (05:45 +0100)]
kcp: add package
KCP, a reliable ARQ protocol offering a TCP-like ordered stream over an
unreliable datagram transport. Built shared as libkcp with an imposed
soname, since upstream sets none.
Josef Schlehofer [Tue, 18 Aug 2026 08:38:10 +0000 (10:38 +0200)]
syslog-ng: install the configuration with INSTALL_CONF
/etc/syslog-ng.conf is installed with INSTALL_DATA, so it ends up
world readable at 0644. The file holds the credentials of every
destination that needs them, so install it with INSTALL_CONF and
0600 instead, as the rest of the tree does for configuration under
/etc.
Josef Schlehofer [Mon, 10 Aug 2026 08:18:30 +0000 (10:18 +0200)]
openzwave: rename version check test.sh to test-version.sh
In actions-shared-workflows the version is now checked in
test-version.sh, while test.sh is left for the generic tests.
MinOZW reports "OpenZWave Version 1.6-1965-g3fff11d2" while PKG_VERSION
is 1.6.1965, so the generic probe never matches and fails the package
for not providing the version. As the only executable in the package it
takes the whole run down; the presence check was already there for that
reason, it just could not suppress the probe from test.sh. Record that
in the file: the format mismatch is not evident from the code.
Give libopenzwave and openzwave-config arms of their own as well, so
that an unknown sub-package fails loudly instead of falling off the end
of the case and returning 0.
Josef Schlehofer [Mon, 10 Aug 2026 08:18:29 +0000 (10:18 +0200)]
domoticz: rename version check test.sh to test-version.sh
In actions-shared-workflows the version is now checked in
test-version.sh, while test.sh is left for the generic tests.
The script only asserts that the binary is present, because domoticz
reports no version; say so in the file, so that a later reader does not
'fix' the override by adding a version probe.
Add a default arm as well, so that an unknown sub-package fails loudly
instead of falling off the end of the case and returning 0.
Josef Schlehofer [Mon, 10 Aug 2026 08:18:17 +0000 (10:18 +0200)]
attr: check the version in test-version.sh
In actions-shared-workflows the version is now checked in
test-version.sh, while test.sh is left for the generic tests.
While moving it, assert the version where it can be asserted. The
package installs attr, getfattr and setfattr, and the latter two do
implement --version:
printf("%s " VERSION "\\n", progname);
so only attr itself needs the presence check; its getopt string is
"s:V:g:r:lqLRS", where -V takes a value rather than printing a version.
The greps carry an explicit || exit 1: the harness uses only the exit
status of the whole script, so without it a failed match would be
discarded by the [ -x ] that ends the arm and the assertion would never
report anything.
Give libattr an arm of its own as well, so that an unknown sub-package
fails loudly instead of falling off the end of the case and returning 0.
openNDS (open Network Demarcation Service) is a high
performance, small footprint captive portal supporting both CPD and
CPI (RFC 8910 and RFC 8908) methods.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Josef Schlehofer [Tue, 18 Aug 2026 07:28:03 +0000 (09:28 +0200)]
syslog-ng: do not install syslog-ng-update-virtualenv
The script creates and updates the private Python virtualenv that the
Python module runs from, but the package is built with --disable-python,
so there is nothing for it to do. It cannot even parse its arguments on
a stock image:
/usr/bin/syslog-ng-update-virtualenv: line 30: getopt: not found
Error parsing arguments
batman-adv: fix build against kernels backporting kmalloc_obj
The compat definitions of kzalloc_obj(), kmalloc_obj() and
kmalloc_objs() were guarded by a version range which carves out only
specific stable backports. These helpers are backported on demand to
stable kernel branches, so on a newer stable kernel they collide
with the definitions in include/linux/slab.h and the module fails to
build:
compat-hacks.h:52:9: error: "kzalloc_obj" redefined [-Werror]
./include/linux/slab.h:963:9: note: this is the location of the
previous definition
CI showed this on exactly the four targets sitting on
KERNEL_PATCHVER 6.12 - mips_24kc, powerpc_8548, arm_cortex-a15 and
arm_cortex-a9 - while the six 6.18 targets passed.
Guard each definition on the macro name instead, so the compat code
steps aside whenever the kernel provides the helper, without having
to track which point release of which stable series picked up the
backport.
This mirrors what batman-adv carries in compat-include/linux/slab.h.
That file is not used by this package, which force-includes its own
compat-hacks.h instead, so the same fix has to be applied here as
well. slab.h is included explicitly, because unlike the upstream
file this header does not otherwise pull it in.
batman-adv: use return instead of continue in the migration script
proto_batadv_to_batadv_hardif() uses continue to skip a section, but
there is no loop in the function itself. POSIX leaves continue
without an enclosing loop in the current function unspecified; ash
walks the dynamic call stack and lands on the loop inside
config_foreach, which happens to produce the intended behaviour.
Use return, which expresses the intent directly and does not depend
on how config_foreach is implemented.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
/etc/config/batman-adv is registered as a conffile although the
package never installs it: files/ only ships the uci-defaults
migration script and the netifd proto handlers. The migration script
itself removes /etc/config/batman-adv as its last step once the
settings have been moved into /etc/config/network, so the entry is
left over from the layout that predates batadv_hardif.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
B.A.T.M.A.N. Advanced is a routing protocol for multi-hop
ad-hoc mesh networks implemented as a kernel module. It builds
against the mac80211 backport like in the routing feed.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Mesh11sd autonomously manages all aspects of an 802.11s mesh
network, with dynamic mesh parameters across all nodes and point to
multi-point vxlan tunneling.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
Carries three backports on top of the routing feed's copy, all from
the 7.2.0 development cycle and all pointed out by upstream:
- 443cdb4c handles the informational options before get_current_setup()
runs. The setup pass waits for br-lan through wait_for_interface(),
so on a host without that bridge "mesh11sd -v" took the full
interface_timeout, ten seconds by default. That is invisible on a
running router and fatal in the package CI, which kills each version
probe after ten seconds.
- 9d18091f makes the script header agree with the LICENSE file the
project ships. It claimed GPL version 3 or later while the file is
GPL version 2, so PKG_LICENSE follows it to GPL-2.0-or-later.
- d0db5353 fixes a typo in get_current_setup(): the length came from
$apmon_cgi_dir, which is never set, so strlen was always 0 and the
trailing slash check read the wrong character.
The submenu is Mesh rather than the Network top level the feed copy
used; the other mesh packages follow once the move from the routing
feed is complete.
get_interface_address() calls io.open() and dereferences the result
without checking it. /sys/class/net does not contain interfaces
only: with the bonding module loaded it also holds the plain file
bonding_masters, which the `ls -1` in get_interfaces_names() returns
and which has no address below it. io.open() then returns nil and
the script dies with "attempt to index a nil value", so no bat-hosts
data is published at all on such a node.
Return nil when the file cannot be opened and skip those entries in
the caller, which would otherwise index the interface table with
nil. get_hostname() gets the same guard.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
alfred is a user space daemon for distributing arbitrary local
information (e.g. hostnames or vis data) over a batman-adv mesh
network in a decentralized fashion via IPv6 link-local multicast.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
The one deviation from the feed copy is SUBMENU:=Wireless, which the
feed copy does not set at all: without it the package sits ungrouped at
the top of the Network menu. Wireless keeps it next to mesh11sd and
batctl, which move across with the same value. A dedicated Mesh submenu
is the better home for all three and is worth adding once enough of the
mesh packages have landed to justify it.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
"managment" is user visible in the description of all three variants.
The MAKE_VARS and MAKE_FLAGS continuation lines were indented with
spaces while every other multi-line list in the file uses a tab.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
The CONFIG_* switches were assembled into a newline separated string
and smuggled to the build through a shell variable via shexport, so
the Makefile read:
MAKE_FLAGS += $$$$$(call shvar,batctl_config)
They can simply be listed on the make command line instead. The
result is identical, since later assignments on the command line
override earlier ones, exactly as the "n first, then y" order of the
old string relied on. The longest variant expands to 96 assignments,
about 2 KB, so there is no length concern that would justify the
indirection.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
batctl is the user space configuration and debugging tool for
the B.A.T.M.A.N. Advanced kernel module. It is packaged in three
variants (tiny, default, full) with different sets of subcommands.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
The one deviation from the feed copy is SUBMENU:=Wireless, which the
feed copy does not set at all: without it the three variants sit
ungrouped at the top of the Network menu. Wireless keeps them next to
mesh11sd and alfred, which move across with the same value. A dedicated
Mesh submenu is the better home for all three and is worth adding once
enough of the mesh packages have landed to justify it.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Daniel Golle [Tue, 18 Aug 2026 00:10:34 +0000 (01:10 +0100)]
transmission: rebuild against the versioned libdht
libdht now installs libdht.so.0 with a soname and an ABI_VERSION, so the
package it depends on is libdht0 rather than libdht. Bump PKG_RELEASE to
force the rebuild that picks that up.
No other change is needed: DHT_LIBRARY still points at the libdht.so
development symlink, and the resulting binary records the soname, so
transmission-daemon links libdht.so.0 and depends on libdht0.
Daniel Golle [Tue, 18 Aug 2026 00:10:27 +0000 (01:10 +0100)]
libdht: give the shared library a soname
The library installed as a bare libdht.so with no SONAME, so consumers
recorded the filename as their DT_NEEDED and there was no way to express
an ABI break. Build it as libdht.so.0 with a matching soname and declare
ABI_VERSION, so the package is versioned like any other shared library.
jech/dht makes no ABI promise of its own, so 0 is a packaged ABI epoch:
bump PKG_ABI_VERSION if the exported surface changes. That epoch is now
a single variable referenced from ABI_VERSION, the soname, the output
filename and the symlink target, rather than repeated literally in all
four places, matching the pattern already used by libcurl-gnutls.
Also pass TARGET_CFLAGS/TARGET_CPPFLAGS/TARGET_LDFLAGS to the compile
and link, which the hand-written rules had skipped, and fix
PKG_LICENSE_FILES: jech/dht ships LICENCE, not LICENSE, so the declared
file was never found.
Josef Schlehofer [Mon, 17 Aug 2026 07:12:36 +0000 (09:12 +0200)]
librespeed-cli: update to 1.0.14
All twelve backported patches are part of this release, so dropping them.
Release notes: https://github.com/librespeed/speedtest-cli/releases/tag/v1.0.14
rust: build soft-float on soft-float PowerPC subtargets
RUSTC_TARGET_ARCH comes from the GNU triple, so every 32-bit PowerPC
subtarget gets powerpc-unknown-linux-musl. That triple is hard-float and
mpc85xx is not: its e500v2 has no floating-point unit, and the toolchain
reports _SOFT_FLOAT and calls __divdf3 for a division.
So rustc emits lfd, stfd and fdiv for a core with no floating-point
registers, and passes doubles in a way nothing else in the image does. It
does not fail outright — a speed test reported negative throughput, and
formatting one of those values tripped an assertion inside core.
Pass -Ctarget-feature=-hard-float where CONFIG_SOFT_FLOAT says so. The same
flag has to reach the std that rust/host builds, or std and the packages
linked against it disagree about how a double is passed.
rust: fix compare_exchange_weak never succeeding on mpc85xx
LLVM places the release fence of a cmpxchg between the load-linked and the
store-conditional. On e500v2 that clears the reservation, so the
store-conditional always fails. The strong form retries and re-reserves; the
weak form has no retry and can never succeed.
fetch_update in core is a weak retry loop, so it spins forever and anything
using it hangs. A tokio reactor livelocks on its first I/O event, burning
CPU without issuing a syscall, which makes async Rust unusable on the
subtarget.
Carry the fix as a patch until it reaches a rustc release. It adds a
TargetLowering hook, defaulting to false, so only PowerPC changes.
nodogsplash: fix config generation in the init script
Three problems in the generated configuration:
- The error message for a missing configuration file prints $file,
which is never set, instead of $val, which holds the path.
- The warning for the unsupported FAS options prints the value of
the option instead of its name, so the message does not say which
option is unsupported.
- gatewayinterface is emitted twice: once resolved to a device via
network_get_device() as "GatewayInterface", and once more by the
generic option loop with the raw UCI value. When the value names a
network section rather than a device, the second line overrides
the resolved device with a name nodogsplash cannot use.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Nodogsplash is a captive portal that offers a simple way to
provide restricted access to the Internet by showing a splash page
to the user before Internet access is granted.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Josef Schlehofer [Sat, 15 Aug 2026 10:12:39 +0000 (12:12 +0200)]
luajit2: update to 2026-07-31
Also refresh 020-riscv64-support.patch from the current state of
openresty/luajit2#236. The previous snapshot defined
asm_tail_prep(ASMState *as), but since openresty/luajit2 commit 68354f44 the callers pass a second TraceNo argument, so the riscv64
build failed with:
lj_asm.c:2559:5: error: too many arguments to function 'asm_tail_prep'
The refreshed patch carries the upstream adaptation and restores the
build. The other four patches apply unchanged.
Josef Schlehofer [Sat, 15 Aug 2026 09:21:08 +0000 (11:21 +0200)]
luajit2: fix build and runtime on powerpc
luajit2 currently fails to link for powerpc: lj_vm.o emits PLT calls
that force BSS-PLT, which the inline-PLT relocations emitted by GCC 12
and newer do not support. Add the same GOT-based fix that
lang/lua/luajit has carried as 060-ppc-musl.patch since 2019.
With that in place the package builds, but ipairs() and pairs() turn
out to be broken on 32-bit big-endian soft-float targets. Both are
regressions in luajit2's PPC64 patch and do not affect upstream
LuaJIT. To be submitted to openresty/luajit2 as well.
Carsten Schuette [Wed, 12 Aug 2026 16:41:37 +0000 (18:41 +0200)]
btrfs-progs: remove no-mold flag as it builds fine with mold 2.42.0
btrfs-progs have a no-mold flag since 2025. With latest mold 2.42.0
released a few days ago, the changes from #26541 can be reverted as
btrfs-progs compiles fine with mold.
Josef Schlehofer [Mon, 10 Aug 2026 07:56:58 +0000 (09:56 +0200)]
olsrd: record why the version check logs "Terminated"
olsrd leaves through olsr_exit(), which ends the process with
raise(SIGTERM) rather than returning from main, so the shell reports
"Terminated" right after the version banner even for a plain
`olsrd -v`. The pipeline status comes from grep, so the check itself
is unaffected, but the line in the CI log looks like a failure to
anyone reading it.
Note it in the script so the next reader does not go hunting.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
olsrd builds its version banner from the VERS make variable, which
defaults to the upstream development version "pre-0.9.9", so
`olsrd -v` never mentioned the version the package was built from.
The source tarball carries no git metadata either, so the git hash
in that string is always zero:
olsr.org - pre-0.9.9-git_0000000-hash_5fd8976...
Pass PKG_VERSION as VERS, the same way alfred and batctl already
pass REVISION, so the banner identifies the packaged revision. This
also lets test-version.sh check the real version instead of merely
confirming that the binary starts.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
olsrd: reject non-address input before eval in olsrd-neigh.sh
olsrd-neigh.sh builds shell variable names from data announced by
other nodes in the mesh and passes them through eval:
eval IP_${ip//[.:]/_}="$hostname"
eval re-parses the string after the quotes have been consumed by the
first expansion pass, so a hostname of `x;reboot` announced by a
remote node is executed as a command on every node that runs the
utility. The values come from the nameservice plugin's hosts file
and from the txtinfo plugin, both of which carry unauthenticated
remote input.
Discard entries containing anything other than the characters that
can legitimately appear in an address or hostname before they reach
eval, in both places.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
olsrd: initialize the LQ multiplier list pointer in the ubus handler
The ubus add_interface handler allocates a struct olsr_lq_mult with
malloc() and assigns only ->addr and ->value, leaving ->next
uninitialized before the node is published into cnf->lq_mult. olsrd
walks that list with
for (mult = cnf->lq_mult; mult != NULL; mult = mult->next)
so the first traversal follows an indeterminate pointer.
Chain the new node onto the existing list, which is what the
configuration file parser does for LinkQualityMult in
src/cfgparser/oparse.y. This also makes the orig_lq_mult_cnt++ on
the next line consistent, since the entry really is prepended to the
list instead of replacing it.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
The only file shipped by olsrd-utils is olsrd-neigh.sh, which
sources /usr/share/libubox/jshn.sh on its third line. That file
belongs to the jshn package, which is not pulled in by the
olsrd -> libubus -> libubox dependency chain, so on a minimal image
the utility fails immediately with "not found".
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
olsrd: fix respawn_threshold lookup in the IPv6 init script
The UCI option is spelled respawn_threshold, as documented in
files/olsrd6.config and as read by files/olsrd4.init, but the IPv6
init script looks up _respawn_threshold. The lookup never matches,
so a user-configured value is silently ignored and the built-in
default of 3600 is always used.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Josef Schlehofer [Wed, 12 Aug 2026 06:00:03 +0000 (08:00 +0200)]
librespeed-cli-rust: update to 0.1.1
Brings the client in line with the fixes merged into the Go client: --json and
--csv end with a newline, --debug names the address each ICMP ping reached and
the spread of the samples, and the User-Agent carries the operating system and
architecture. Also tolerates a backend that answers getIP.php with an empty
rawIspInfo, which previously discarded the whole response.
The upstream Naive outbound feature is intentionally not enabled in this update.
Naive outbound requires additional build system integration because it depends on
Chromium Network Stack (Cronet). Depending on target and build mode, it requires
either the Cronet runtime library or a Chromium-based toolchain.
Upstream documentation:
https://sing-box.sagernet.org/configuration/outbound/naive/#structure
Changes:
1. Add upstream linker flags and compatibility build tags
Add linker flags required by the sing-box upstream release build:
- -checklinkname=0
-checklinkname=0 is required by the sing-box 1.13.x build configuration due to its use of
low-level go:linkname functionality and the stricter linkname validation in newer Go toolchains.
These tags are part of the upstream sing-box release build configuration:
https://sing-box.sagernet.org/installation/build-from-source/#build-tags
2. Add optional CCM and OCM build options
Add new optional OpenWrt configuration options:
- CONFIG_SINGBOX_WITH_CCM
Build with Claude Code Multiplexer service support
- CONFIG_SINGBOX_WITH_OCM
Build with OpenAI Codex Multiplexer service support
Both options are disabled by default and are only enabled when explicitly
selected by the user.
The corresponding upstream build tags are:
- with_ccm
- with_ocm
Documentation: https://sing-box.sagernet.org/installation/build-from-source/#build-tags Signed-off-by: Sergei S. <redacted>
001-disable-doc.patch dropped the doc subdir (which needs makeinfo) from
SUBDIRS in Makefile.in. Use PKG_SUBDIRS:=lib bc dc, OpenWrt's wired-in knob
for restricting the build, to skip doc without patching.
/etc/bird4.conf and /etc/bird6.conf are left over from the bird1
packages, which shipped a separate configuration file per address
family. bird3 is a single daemon handling both and installs
/etc/bird.conf only, so the two entries refer to files this package
never creates.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
BIRD is an internet routing daemon with support of modern
routing protocols (BGP, OSPF, RIP, Babel) for IPv4 and IPv6. This is
the 3.x branch, a multithreaded rewrite.
Moved from the openwrt/routing feed, as discussed in
https://github.com/openwrt/routing/issues/184.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
The patch carried only a subject line and a placeholder commit id, so
nothing recorded why marking struct top_hash_entry as PACKED fixes a
bus error, or whether it can be dropped.
Restore the description and the sign-off from the commit that
introduced it in the routing feed, keeping the original author's
wording, and record the upstream status. Verified that BIRD 2.19.2
still declares the structure without any alignment attribute, so the
patch is still needed.
The header keeps the "---" separator the sibling patch uses, and
orders Signed-off-by last among the trailers.
Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
/etc/bird4.conf and /etc/bird6.conf are left over from the bird1
packages, which shipped a separate configuration file per address
family. bird2 is a single daemon handling both and installs
/etc/bird.conf only, so the two entries refer to files this package
never creates.
Reported-by: openwrt-ai[bot] Signed-off-by: Josef Schlehofer <redacted> Co-authored-by: Claude Fable 5 <redacted>
Josef Schlehofer [Mon, 10 Aug 2026 08:46:16 +0000 (10:46 +0200)]
librespeed-cli: update to 1.0.13
Carry fixes for a data race, a goroutine leak, output escaping, JSON and CSV
termination, and sub-millisecond ping precision, plus additional --debug
output. All patches are under review upstream.
Set the version through GO_PKG_LDFLAGS_X. The package never passed one, so
--version reported neither a name nor a version.
Drop the serverIdx patch: 1.0.13 resolves the same problem by checking the map
lookup rather than reading a possibly absent key.
Refresh sha256 from PyPI sdist. Drop the macOS cross-compile patch;
2.1.1 already carries the sysconfig.get_platform() fix upstream.
Add test-version.sh: 2.1.1 ships the cffi-gen-src console tool, a
subcommand CLI with no version flag, so the generic per-executable
version probe fails the package ("No executables in the package
provided version"). test-version.sh skips that probe, and test.sh now
asserts cffi.__version__ against the packaged version.
Refresh sha256 from the PyPI sdist and refresh 003 for the shifted line.
Retarget 002-pip-runner-pyc-fix.patch instead of dropping it: in 26.2.1
get_runnable_pip() moved from build_env.py (now a package) to
_internal/utils/misc.py. The function is otherwise unchanged and still
returns __pip-runner__.py, so the .pyc fallback is still required. We ship
pip byte-compiled only (the .py sources live in the -src package), so
without it build isolation cannot locate the runner and every PEP 517
install fails on target. This is a packaging workaround, not an upstream
bug, so upstream has no reason to carry it.
Pillow uses pybind11 only for pybind11.setup_helpers.ParallelCompile,
which parallelises the C extension build; it ships no runtime bindings.
Patch setup.py to remove that import and call and drop pybind11 from
build-system.requires, then remove python-pybind11/host from
PKG_BUILD_DEPENDS. The C extensions are compiled serially instead, with
no functional change to the package.
flit-core 4.0.2 breaks the whole python feed. flit-core is a host-only
build backend, but nearly everything built with it caps flit_core<4 (the
host tools wheel/installer/pyproject-hooks/typing-extensions and dozens of
leaf packages like marshmallow, click, pip), so their host builds fail with
"Missing dependencies: flit_core<4" against 4.0.2. Nothing needs
flit_core>=4; 3.12.0 satisfies every cap and has no runtime impact. Revert
until the ecosystem's upper bounds catch up.
Kel Modderman [Sat, 8 Aug 2026 10:46:57 +0000 (20:46 +1000)]
squeezelite: add version test override
The generic package test greps executable output for PKG_VERSION, which
cannot match here: PKG_VERSION separates the build number with a dot for
apk, while squeezelite reports it with a hyphen.
Derive the expected string from PKG_VERSION rather than hardcoding it, so
the check keeps working on later updates.
Update from the 6.2.x series to the current 8.x line. The 8.x releases
are tri-licensed (RSALv2 / SSPLv1 / AGPL-3.0); set PKG_LICENSE to
AGPL-3.0-only and follow upstream renaming COPYING to LICENSE.txt.
Drop 020-fix-atomicvar.patch, no longer needed, and keep
030-skip-module-tests.patch. Add a functional test.sh.