]> git.99rst.org Git - openwrt-packages.git/log
openwrt-packages.git
6 weeks agosudo: create sudo group
Michael Pfeifroth [Tue, 4 Aug 2026 15:25:32 +0000 (17:25 +0200)]
sudo: create sudo group

Add a 'sudo' system group at package-install time using the USERID
mechanism.

Rationale: sudoers configurations that grant privileges to the 'sudo'
group -- the near-universal Debian/Ubuntu idiom, e.g.

    %sudo ALL=(ALL:ALL) NOPASSWD: ALL

-- fail silently on OpenWrt today because no 'sudo' group exists in
/etc/group.  sudo(8) logs 'unknown group: sudo' and the rule is skipped.
Users also cannot 'usermod -aG sudo <user>' without the group present,
so there is no straightforward way to delegate root without hand-editing
/etc/group or writing per-user sudoers snippets.

Seeding the group here matches how OpenWrt already handles other
service accounts (chrony, dbus, ntpd, ...): the USERID mechanism
creates them lazily via add_group_and_user in the postinst script.

No privileges are granted by default -- an administrator still has to
add users to the group and ship a sudoers rule that references it.

No numeric GID is pinned. The group name is what sudoers, addgroup(1),
and getgrnam() operate on; the numeric GID is invisible to sudo's
authorisation path and matters only for on-disk group ownership
metadata (e.g. 'chgrp sudo' persisted to shared storage) -- something
this package does not do. Letting add_group_and_user pick a dynamic
GID in the 32768+ range keeps sudo out of base-files' reserved
low-range group space and avoids any name-vs-number collision debate.

Bump PKG_RELEASE.

Signed-off-by: Michael Pfeifroth <redacted>
6 weeks agoerlang: remove quiet mode from grep in test version checks
Josef Schlehofer [Thu, 6 Aug 2026 18:48:25 +0000 (20:48 +0200)]
erlang: remove quiet mode from grep in test version checks

Remove the quiet mode flag (-q) from grep in version check commands
to ensure that their stdout output is visible.

Signed-off-by: Josef Schlehofer <redacted>
6 weeks agoerlang: stop shipping sasl in the base package
Josef Schlehofer [Thu, 6 Aug 2026 18:48:19 +0000 (20:48 +0200)]
erlang: stop shipping sasl in the base package

Package/erlang/install copies erts, kernel, sasl and stdlib into
/usr/lib/erlang/lib, and BuildModule builds erlang-sasl from the very
same sasl directory, so both packages own
usr/lib/erlang/lib/sasl-*/ebin/*.beam.

apk refuses to overwrite files owned by another package, so installing
erlang-sasl next to erlang fails:

  ERROR: erlang-sasl-28.5-r1: trying to overwrite
  usr/lib/erlang/lib/sasl-4.3.2/ebin/alarm_handler.beam
  owned by erlang-28.5-r1.

That also takes down erlang-os-mon and erlang-reltool, which depend on
erlang-sasl. The overlap dates back to the import from the old packages
feed and only surfaced once CI started run-testing the subpackages.

Leave sasl to erlang-sasl, which is what that subpackage is for. The
base package keeps bin/start_sasl.boot: it is inert while the runtime
boots via start_clean, and it is needed once erlang-sasl is installed.

Signed-off-by: Josef Schlehofer <redacted>
6 weeks agohev-socks5-tproxy: update to 2.13.0
Ray Wang [Fri, 7 Aug 2026 05:32:16 +0000 (13:32 +0800)]
hev-socks5-tproxy: update to 2.13.0

Upstream changelog:
https://github.com/heiher/hev-socks5-tproxy/releases/tag/2.13.0

Signed-off-by: Ray Wang <redacted>
6 weeks agohev-socks5-server: update to 2.13.0
Ray Wang [Fri, 7 Aug 2026 05:32:05 +0000 (13:32 +0800)]
hev-socks5-server: update to 2.13.0

Upstream changelog:
https://github.com/heiher/hev-socks5-server/releases/tag/2.13.0

Signed-off-by: Ray Wang <redacted>
6 weeks agohev-socks5-tunnel: update to 2.17.0
Ray Wang [Fri, 7 Aug 2026 05:32:21 +0000 (13:32 +0800)]
hev-socks5-tunnel: update to 2.17.0

Upstream changelog:
https://github.com/heiher/hev-socks5-tunnel/releases/tag/2.17.0

Signed-off-by: Ray Wang <redacted>
6 weeks agoimagemagick: add test-version.sh version override
Alexandru Ardelean [Wed, 5 Aug 2026 06:51:17 +0000 (09:51 +0300)]
imagemagick: add test-version.sh version override

The binaries print the version as X.Y.Z-R while PKG_VERSION is X.Y.Z.R,
so the generic per-executable version probe never matches and the job
fails. Add a test-version.sh override that greps for the dashed form,
mirroring the conversion the runtime test.sh already does.

Signed-off-by: Alexandru Ardelean <redacted>
6 weeks agographicsmagick: expand test.sh coverage
Alexandru Ardelean [Tue, 4 Aug 2026 18:26:20 +0000 (21:26 +0300)]
graphicsmagick: expand test.sh coverage

Exercise more gm subcommands and codecs on top of the existing PNG/JPEG,
resize, pixel, draw and composite checks: TIFF round-trip, PPM and GIF
encoders, crop, 90-degree rotate, horizontal append and in-place mogrify.

Signed-off-by: Alexandru Ardelean <redacted>
6 weeks agoimagemagick: expand test.sh coverage
Alexandru Ardelean [Tue, 4 Aug 2026 18:26:20 +0000 (21:26 +0300)]
imagemagick: expand test.sh coverage

Exercise more of the toolchain on top of the existing PNG/JPEG/BMP,
resize, pixel-sampling, grayscale and composite checks: TIFF round-trip,
PPM and GIF encoders, crop, 90-degree rotate, horizontal append, the IM7
'magick' driver and in-place mogrify.

Signed-off-by: Alexandru Ardelean <redacted>
6 weeks agographicsmagick: update to 1.3.48
Alexandru Ardelean [Tue, 28 Jul 2026 12:47:37 +0000 (15:47 +0300)]
graphicsmagick: update to 1.3.48

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
6 weeks agoimagemagick: update to 7.1.2.29
Alexandru Ardelean [Tue, 28 Jul 2026 12:47:37 +0000 (15:47 +0300)]
imagemagick: update to 7.1.2.29

Update to the latest upstream stable release. Also fix PKG_SOURCE_URL:
imagemagick.org/archive no longer serves the release tarballs (404),
they live under download.imagemagick.org/archive/releases now.

Signed-off-by: Alexandru Ardelean <redacted>
6 weeks agochecksec: remove package
Josef Schlehofer [Thu, 6 Aug 2026 15:07:54 +0000 (17:07 +0200)]
checksec: remove package

The package ships checksec.bash, which upstream has discontinued. When
asked about the version the script reports, upstream answered that the
bash implementation is legacy, will be removed entirely in an upcoming
release and has been rewritten in Go:
https://github.com/slimm609/checksec.sh/issues/352

Signed-off-by: Josef Schlehofer <redacted>
6 weeks agosimple-captive-portal: update to 2026.08.06 / use port 80
Etienne Champetier [Fri, 7 Aug 2026 00:49:31 +0000 (20:49 -0400)]
simple-captive-portal: update to 2026.08.06 / use port 80

No issue reported but this is a bit cleaner.

Signed-off-by: Etienne Champetier <redacted>
6 weeks agobanip: report the last run timestamp as ISO 8601
Dirk Brenken [Thu, 6 Aug 2026 19:26:44 +0000 (21:26 +0200)]
banip: report the last run timestamp as ISO 8601

The runtime status reported the last run as DD/MM/YYYY, which reads as a
different date entirely for anyone used to month first ordering.

Use YYYY-MM-DD instead for the frontpage and the Set reporting.
The new ISO 8601 format is unambiguous regardless of the reader's locale.

Signed-off-by: Dirk Brenken <redacted>
6 weeks agotravelmate: release 2.4.7-1
Dirk Brenken [Thu, 6 Aug 2026 13:56:40 +0000 (15:56 +0200)]
travelmate: release 2.4.7-1

* harden the connectivity check in f_net()
* drop the ineffective 'trm_netcheck' term from the minimum signal
  quality branch in f_check()
* reset 'trm_connection' explicitly in the netcheck exit path
* log the affected uplink in the netcheck messages
* update and restructure the readme

Signed-off-by: Dirk Brenken <redacted>
6 weeks agoadblock: report the last run timestamp as ISO 8601
Dirk Brenken [Wed, 5 Aug 2026 16:27:10 +0000 (18:27 +0200)]
adblock: report the last run timestamp as ISO 8601

The runtime status reported the last run as DD/MM/YYYY, which reads as a
different date entirely for anyone used to month first ordering.

Use YYYY-MM-DD instead. The DNS report already derives its timestamps from
tcpdump -tttt and is ISO 8601, so both views now agree, and the format is
unambiguous regardless of the reader's locale.

Signed-off-by: Dirk Brenken <redacted>
6 weeks agostrongswan: swanctl.init: remove invalid privkeys option
Florian Eckert [Tue, 4 Aug 2026 11:47:33 +0000 (13:47 +0200)]
strongswan: swanctl.init: remove invalid privkeys option

The 'swanctl.conf' has no 'privkeys' option in
'connections.<conn>.local<suffix>'. The only local-round keys documented
for authentication are 'certs', 'cert<suffix>' and 'pubkeys'. Strongswan
does not let a connection reference a private key by name at all - swanctl
auto-selects the matching private key from '/etc/swanctl/private'
(or rsa/ecdsa/pkcs8) by comparing it against the certificate configured
via 'certs' when credentials are loaded.

Writing 'privkeys = $local_key' into the generated swanctl.conf is
therefore a no-op at best: the option is unknown to the parser and
gets silently dropped, so it never had any effect on which key was
used.

Drop the bogus assignment. The existing local_key validation making
sure the referenced file exists under '/etc/swanctl/private'. Since that's
still useful to catch misconfiguration early, and add a comment explaining
why nothing is written to swanctl.conf for it.

Signed-off-by: Florian Eckert <redacted>
6 weeks agoovpn-dco: fix build on 6.18.40
Qingfang Deng [Tue, 4 Aug 2026 10:56:32 +0000 (18:56 +0800)]
ovpn-dco: fix build on 6.18.40

6.18.40 commit 073d95725269 changed the prototype of proto::recvmsg.
Update the ifdef.

Signed-off-by: Qingfang Deng <redacted>
6 weeks agocligen: fix depends
Andy Chiang [Mon, 3 Aug 2026 05:42:14 +0000 (12:42 +0700)]
cligen: fix depends

fixes: https://github.com/openwrt/openwrt/pull/24247#issuecomment-5139402966

Signed-off-by: Andy Chiang <redacted>
6 weeks agocryptsetup: update to 2.8.7
Rosen Penev [Sat, 1 Aug 2026 00:17:17 +0000 (17:17 -0700)]
cryptsetup: update to 2.8.7

Use OpenSSL now as AF_ALG has been deprecated.

Signed-off-by: Rosen Penev <redacted>
6 weeks agoci: bump lewagon/wait-on-check-action from 1.8.1 to 1.9.0
dependabot[bot] [Sat, 1 Aug 2026 21:15:29 +0000 (21:15 +0000)]
ci: bump lewagon/wait-on-check-action from 1.8.1 to 1.9.0

Bumps [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases)
- [Changelog](https://github.com/lewagon/wait-on-check-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lewagon/wait-on-check-action/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: lewagon/wait-on-check-action
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <redacted>
6 weeks agotrafficshaper: avoid recursive dependency
Dharmik Parmar [Mon, 20 Jul 2026 03:03:37 +0000 (08:33 +0530)]
trafficshaper: avoid recursive dependency

The conditional nftables dependency causes Kconfig to select
PACKAGE_nftables-nojson from itself:

  symbol PACKAGE_nftables-nojson is selected by PACKAGE_nftables-nojson

Split the firewall dependencies into nftables and iptables variants. Keep
trafficshaper as the default nftables variant and provide
trafficshaper-iptables for older systems.

Fixes: 2e945de232bd ("trafficshaper: add nftables firewall backend")
Signed-off-by: Dharmik Parmar <redacted>
6 weeks agonano: update to 9.2
Hannu Nyman [Mon, 3 Aug 2026 15:10:36 +0000 (18:10 +0300)]
nano: update to 9.2

Update nano editor to version 9.2.
https://www.nano-editor.org/news.php

Signed-off-by: Hannu Nyman <redacted>
6 weeks agomodemmanager: skip virtual net devices in hotplug script
Michael Pfeifroth [Mon, 3 Aug 2026 09:13:18 +0000 (11:13 +0200)]
modemmanager: skip virtual net devices in hotplug script

Every net uevent - eth ports, USB hubs, bridges, taps, SQM IFB,
GRE tunnels, veth, tun/tap - is handed to mmcli via
25-modemmanager-net's mm_report_event call, so ModemManager logs a
'not supported by any plugin' notice per device on every boot and
hotplug replay:

  ModemManager[15132]: <msg> [base-manager] couldn't check support
    for device '.../fsl-ehci.0/usb1/1-1/1-1.1':
    not supported by any plugin

mm_report_event() already discards virtual devices internally, but
only after mm_log "info" has written a "hotplug: add network
interface XXX: event processed" line to daemon.info for every one
of them.

Mirror the same guard in the hotplug script by exiting early when
DEVPATH points under /devices/virtual/*, which covers SQM IFB, GRE,
bridges, veth, tun/tap.  This never rejects a physical modem port
(kernel wwan, MHI, USB CDC/RNDIS/QMI/MBIM are all under real bus
subtrees).

Signed-off-by: Michael Pfeifroth <redacted>
6 weeks agomodemmanager: skip live report when the service isn't up yet
Michael Pfeifroth [Fri, 31 Jul 2026 12:05:38 +0000 (14:05 +0200)]
modemmanager: skip live report when the service isn't up yet

At boot procd replays every previously-seen uevent before
/etc/init.d/modemmanager starts.  Each replay walks the hotplug.d/
tree, which calls mm_report_event() in modemmanager.common.  That
helper does two independent things:

  1) appends the event to ${MODEMMANAGER_EVENTS_CACHE}, and
  2) runs 'mmcli --report-kernel-event=...' to notify a live MM.

Step 1 is what matters for boot; step 2 exists so events fired
after MM is running get reported without waiting for the next
cache replay.  The cache path is intentional: ModemManager-wrapper
starts MM, then mm_report_events_from_cache() polls 'mmcli -L'
until the bus is available and replays every cached event.

At boot the modemmanager service instance hasn't been spawned by
procd yet, so step 2 always fails with:

  daemon.err ModemManager[NNN]: hotplug: Couldn't report kernel
    event: error: couldn't get bus: Could not connect: No such
    file or directory

That's one daemon.err line per hotplug script per port, per boot.
On a dual-modem board that's a dozen spurious errors before the
service even starts.  Nothing is lost -- the wrapper's cache
replay picks them all up seconds later -- but the log noise makes
real ModemManager errors harder to spot.

Guard the live call with a cheap pidfile-based liveness check.
The pidfile is procd's, so it proves the service instance has
been spawned, not that MM is already reachable on the bus; the
brief wrapper-startup window (procd spawns the wrapper -> wrapper
execs MM -> MM reaches the bus) is not covered.  In practice no
fresh uevents fire in that window on the boards this was tested
on, and events that do arrive there are still cached.  If the
service hasn't been spawned yet, the event is silently cached and
the wrapper handles it.  If it has, behavior is unchanged.

Signed-off-by: Michael Pfeifroth <redacted>
6 weeks agostrongswan: bump PKG_RELEASE by one
Florian Eckert [Mon, 27 Jul 2026 08:43:22 +0000 (10:43 +0200)]
strongswan: bump PKG_RELEASE by one

Update 'PKG_RELEASE'.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: write local_key to swanctl.conf
Florian Eckert [Mon, 27 Jul 2026 13:47:59 +0000 (15:47 +0200)]
strongswan: write local_key to swanctl.conf

The 'local_key' UCI option was validated (checked for existence
under /etc/swanctl/private/) but never written to the generated
'swanctl.conf'. As a result, setting 'local_key' had no actual effect
on which private key was used for local authentication.

Add the corresponding "privkeys" line to the local{} section,
mirroring how local_cert is already written as "certs", so that
swanctl explicitly uses the configured private key.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: rename 'local_sourceip' to 'vips'
Florian Eckert [Mon, 27 Jul 2026 12:00:24 +0000 (14:00 +0200)]
strongswan: rename 'local_sourceip' to 'vips'

The name 'local_sourceip' was misleading, since the option actually
refers to virtual IP addresses (VIPs) used for routing/binding,
not just a single local source IP. Renaming it to 'vips' better
reflects its purpose and makes the configuration more intuitive
for users, especially in setups with multiple virtual IPs.

Add a uci-defaults migration script to convert existing 'local_sourceip'
entries (whether stored as a plain option or as a list) to a
'vips' list on upgrade.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: rename 'local_ip' to 'local_addrs'
Florian Eckert [Thu, 23 Jul 2026 14:18:18 +0000 (16:18 +0200)]
strongswan: rename 'local_ip' to 'local_addrs'

Rename the 'local_ip' UCI option to 'local_addrs' to match the
'swanctl.conf' 'local_addrs' directive, which accepts one or more
local addresses rather than implying a single fixed IP. The
previous name suggested only one address could be configured.

Store the option as a UCI list to allow specifying multiple local
addresses, consistent with how 'remote_addrs' is already handled.
If left empty, no 'local_addrs' line is written to 'swanctl.conf',
so strongswan falls back to its own default of '%any'.

Add a uci-defaults migration script to convert existing 'local_ip'
entries (whether stored as a plain option or as a list) to a
'local_addrs' list on upgrade.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: rename 'remote_gateway' to 'remote_addrs'
Florian Eckert [Thu, 23 Jul 2026 13:30:23 +0000 (15:30 +0200)]
strongswan: rename 'remote_gateway' to 'remote_addrs'

Rename the 'remote_gateway' UCI option to 'remote_addrs' to match
the 'swanctl.conf' 'remote_addrs' directive, which accepts one or
more peer addresses rather than a single gateway. The previous
name implied a single value and did not reflect that multiple
remote addresses can be configured for a connection.

Store the option as a UCI list to allow specifying multiple
remote addresses, consistent with how 'local_subnet' and
'remote_subnet' are already handled.

Add a uci-defaults migration script to convert existing
'remote_gateway' entries (whether stored as a plain option or as
a list) to a 'remote_addrs' list on upgrade.

If the 'remote_addrs' option is empty, strongswan implicitly uses the value
'%any'. In the `swanctl.conf` documentation, '%any' is already the default
value for 'remote_addrs' if the directive is not specified at all.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: rename 'gateway' to 'remote_gateway'
Florian Eckert [Thu, 23 Jul 2026 12:25:53 +0000 (14:25 +0200)]
strongswan: rename 'gateway' to 'remote_gateway'

The UCI option 'gateway' in the ipsec config (consumed by
/etc/init.d/swanctl) is ambiguous. It is not clear from the name
alone whether it refers to the local or the remote IKE/IPsec
peer address, which has repeatedly led to misconfiguration.

Rename it to "remote_gateway" to make the direction explicit and
to match the existing "remote_subnet" naming. If the option is
unset, the init script now falls back to the strongSwan default
of '%any', so connections that accept any remote peer no longer
require an explicit placeholder value.

Add a uci-defaults migration script to rename existing 'gateway'
entries to 'remote_gateway' and remove the value 'any' on upgrade. This
is new default if 'remote_gateway' is not set.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: migration and merge local_nat into local_subnet
Florian Eckert [Thu, 23 Jul 2026 11:02:19 +0000 (13:02 +0200)]
strongswan: migration and merge local_nat into local_subnet

The UCI option 'local_nat' was a misleading legacy name for the
option that actually specifies the local traffic selector(s) used
by strongSwan/swanctl for a connection, i.e. the local subnet(s)
matched by the IPsec SA. It has nothing to do with NAT-T or NAT
detection, and the name repeatedly caused confusion when writing
or reviewing configs.

Merge it to 'local_subnet' to match its actual purpose and to
align with the naming already used for the corresponding
'local_subnet' option and with swanctl.conf's own 'local_ts/remote_ts'
terminology.

Add a uci-defaults migration script so existing installations are
upgraded automatically. It reads any existing 'local_nat' values
(whether stored as a plain option or as a list) and rewrites them
as a 'local_subnet' list.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: replace indentation spaces with tabs in swanctl.init
Florian Eckert [Thu, 23 Jul 2026 06:07:34 +0000 (08:07 +0200)]
strongswan: replace indentation spaces with tabs in swanctl.init

For consistency, the remaining spaces used for indentation have been
replaced with tabs.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: reorder local var in config_remote function
Florian Eckert [Thu, 23 Jul 2026 06:00:09 +0000 (08:00 +0200)]
strongswan: reorder local var in config_remote function

The local variables were completely jumbled. To keep track of them, they
have been sorted in the order in which the following 'config_get' calls
are made.

No functional change.

Signed-off-by: Florian Eckert <redacted>
6 weeks agostrongswan: reorder local var in config_child function
Florian Eckert [Thu, 23 Jul 2026 05:57:39 +0000 (07:57 +0200)]
strongswan: reorder local var in config_child function

The local variables were completely jumbled. To keep track of them, they
have been sorted to the order in which the following 'config_get' calls
are made.

No functional change.

Signed-off-by: Florian Eckert <redacted>
6 weeks agoadblock: release 4.5.7-1
Dirk Brenken [Sun, 2 Aug 2026 18:32:12 +0000 (20:32 +0200)]
adblock: release 4.5.7-1

* add new 'adb_repfilter' option to pass an additional, user
  defined tcpdump filter expression which is logically ANDed
  to the internal port filter. This allows to exclude redundant
  traffic upfront, e.g. DNS requests originating from the router
  itself which are routed via a VPN client interface and which
  are picked up again when 'adb_repiface' is set to 'any';
  see the readme for details/examples.

Signed-off-by: Dirk Brenken <redacted>
7 weeks agonode: bump to 22.23.2
Hirokazu MORIKAWA [Sun, 2 Aug 2026 01:01:48 +0000 (10:01 +0900)]
node: bump to 22.23.2

This is a security release.
Notable Changes
* (CVE-2026-56846) http2: retain header memory in session accounting (Matteo Collina) â€“ High
* (CVE-2026-56848) http2: defer rst stream while in scope (Matteo Collina) â€“ High
* (CVE-2026-58043) permission: avoid granting radix split nodes (RafaelGSS) â€“ High
* (CVE-2026-56850) https: distinguish PFX object-array agent keys (RafaelGSS) â€“ Medium
* (CVE-2026-58040) https: bind identity checks to session reuse (Matteo Collina) â€“ Medium
* (CVE-2026-58042) dns: handle large resolveAny address replies (RafaelGSS) â€“ Medium
* (CVE-2026-58045) zlib: throw on out-of-bounds write buffers (RafaelGSS) â€“ Medium
* (CVE-2026-56847) permission: enforce fs write permission for trace events (RafaelGSS) â€“ Low
* (CVE-2026-58039) permission: check final report output path (RafaelGSS) â€“ Low
* (CVE-2026-58044) http: reject requests exceeding max header count (Matteo Collina) â€“ Low
* deps: update llhttp to 9.4.3 (Paolo Insogna)
* deps: update undici to 6.28.0 (Node.js GitHub Bot)

Signed-off-by: Hirokazu MORIKAWA <redacted>
7 weeks agonghttp2: bump to 1.70.0
Hirokazu MORIKAWA [Sun, 2 Aug 2026 01:11:24 +0000 (10:11 +0900)]
nghttp2: bump to 1.70.0

Various Updates (1.66.0 to 1.70.0)

Notable Changes:
Fixes CVE-2026-27135 (1.68.1)

Signed-off-by: Hirokazu MORIKAWA <redacted>
7 weeks agofluent-bit: fix HTTP output SIGSEGV on too-small coroutine stack
Alexandru Ardelean [Fri, 31 Jul 2026 09:38:33 +0000 (12:38 +0300)]
fluent-bit: fix HTTP output SIGSEGV on too-small coroutine stack

Each output flush runs in a coroutine whose stack was forced to 4096 (one
page). The HTTP output plugin overflows it and crashes with SIGSEGV after
the flush (issue #30113). Pin FLB_CORO_STACK_SIZE to upstream's own 64K
floor (FLB_CORO_STACK_SIZE_MIN_BYTE), which the musl-shrunk default undercuts.

Also add a regression test: drive the dummy input into the http output and
assert fluent-bit survives a few flush cycles instead of dying from a signal
(no listener needed -- the overflow happens while composing the request).

Fixes: https://github.com/openwrt/packages/issues/30113
Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agofwupd: update to 2.1.7
Lukas Voegl [Fri, 31 Jul 2026 13:19:59 +0000 (15:19 +0200)]
fwupd: update to 2.1.7

Release notes: https://github.com/fwupd/fwupd/releases/tag/2.1.7

Signed-off-by: Lukas Voegl <redacted>
7 weeks agolibxmlb: update to 0.3.29
Lukas Voegl [Fri, 31 Jul 2026 13:21:21 +0000 (15:21 +0200)]
libxmlb: update to 0.3.29

Release notes: https://github.com/hughsie/libxmlb/releases/tag/0.3.29

Signed-off-by: Lukas Voegl <redacted>
7 weeks agongircd: update to 28
Alexandru Ardelean [Tue, 28 Jul 2026 11:22:08 +0000 (14:22 +0300)]
ngircd: update to 28

Update to the latest upstream stable release.

Also expand test.sh beyond the single loose configtest grep: assert the
daemon binary, init script and default config are installed, that
--configtest exits cleanly on the shipped config, and that it rejects an
explicitly-passed missing config file (so the positive check is real).
The daemon is never started, which would hang under QEMU emulation.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agocifs-utils: update to 7.7 + more tests + add python3-light dep
Alexandru Ardelean [Tue, 28 Jul 2026 11:22:08 +0000 (14:22 +0300)]
cifs-utils: update to 7.7 + more tests + add python3-light dep

Update to the latest upstream stable release.

Replace the version-only test.sh with checks that exercise the installed
binaries. smbinfo ships as a /usr/bin/python3 script, so add +python3-light
or it cannot exec; it also has no version flag, so add test-version.sh to
override the generic per-executable version probe (skipping smbinfo).

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agodnscrypt-proxy2: update to 2.1.18
Paul Lipps [Fri, 31 Jul 2026 05:11:09 +0000 (00:11 -0500)]
dnscrypt-proxy2: update to 2.1.18

Update dnscrypt-proxy2 to version 2.1.18.

Fix the blocked_names_file substitution. The previous expression did not
match the upstream example configuration, leaving the bundled blocklist
disabled. This enables blocked-names.txt on fresh installations.

Declare blocked-names.txt as a configuration file so that
local changes are preserved during package upgrades.

Signed-off-by: Paul Lipps <redacted>
7 weeks agoalsa-ucm-conf: update to 1.2.16.1
Alexandru Ardelean [Tue, 28 Jul 2026 12:50:22 +0000 (15:50 +0300)]
alsa-ucm-conf: update to 1.2.16.1

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoless: update to 704
Alexandru Ardelean [Tue, 28 Jul 2026 12:33:03 +0000 (15:33 +0300)]
less: update to 704

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agojq: update to 1.8.2
Alexandru Ardelean [Tue, 28 Jul 2026 12:33:03 +0000 (15:33 +0300)]
jq: update to 1.8.2

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agotransmission: update to version 4.1.3
Richard Muzik [Tue, 30 Jun 2026 09:17:01 +0000 (11:17 +0200)]
transmission: update to version 4.1.3

This is Transmission 4.1.3, a bugfix release. It fixes a potential
CRSF security issue for users who enable remote access to Transmission.
Users are encouraged to upgrade to this version.

Release notes: https://github.com/transmission/transmission/releases/tag/4.1.3

Signed-off-by: Richard Muzik <redacted>
7 weeks agozabbix: bring proxy to parity with server and agentd
Daniel F. Dickinson [Fri, 17 Jul 2026 01:01:36 +0000 (21:01 -0400)]
zabbix: bring proxy to parity with server and agentd

* Add config file patch for proxy
* Add initscript for proxy
* Update Makefile and support files to bring proxy to parity with
  agentd and server.

Signed-off-by: Daniel F. Dickinson <redacted>
7 weeks agozabbix: tweak server initscript and bring agentd to parity
Daniel F. Dickinson [Fri, 17 Jul 2026 00:21:41 +0000 (20:21 -0400)]
zabbix: tweak server initscript and bring agentd to parity

* Genericize zabbix_server initscript.
* Add shellcheck overrides where needed.
* Add a 'never_root' config option (default true) that determines
  whether server starts as an unprivileged user or starts as root and
  drops to an unprivileged user (unless config is changed so it always
  runs as root).
* Bring zabbix_agentd initscript to parity with zabbix_server for the
  initscript and configuration.
* Tweak Makefile to reduce repetition

Signed-off-by: Daniel F. Dickinson <redacted>
7 weeks agozabbix: tweak patch agent and server patch configs
Daniel F. Dickinson [Thu, 16 Jul 2026 23:47:53 +0000 (19:47 -0400)]
zabbix: tweak patch agent and server patch configs

Tweak the agentd and server patch configurations and bring agentd and
server confgurations to parity.

Signed-off-by: Daniel F. Dickinson <redacted>
7 weeks agozabbix: use separate users for server and proxy
Daniel F. Dickinson [Thu, 16 Jul 2026 02:30:00 +0000 (22:30 -0400)]
zabbix: use separate users for server and proxy

This is the upstream recommendation, and fits with our separation
of agent and server.

Signed-off-by: Daniel F. Dickinson <redacted>
7 weeks agoprosody: extend test.sh past the version string grep
Alexandru Ardelean [Sun, 31 May 2026 09:28:24 +0000 (12:28 +0300)]
prosody: extend test.sh past the version string grep

The previous test only grepped prosody.version and ran `prosodyctl
about`, which still passes when the parts that actually differ per
target architecture are broken.

Drive the rest of the package instead:

- Assert `prosodyctl about` reports Lua 5.4. The wrapper silently falls
  back to /usr/bin/lua (5.1 on OpenWrt) if --runwith is lost, and
  prosody 13 refuses to run on it.
- Require loader.lua to be installed, since prosody(ctl) cannot resolve
  any of its 'prosody.*' requires without it.
- Register and unregister an account on the sample VirtualHost. That is
  the only path exercising util.datamanager storage together with the
  internal_hashed SCRAM derivation, and it must not leave the cleartext
  password on disk.
- Load each of the 13 compiled util/*.so extensions through their
  luaopen_prosody_util_* entry points.
- Check known-answer vectors through util.hashes and an Ed25519
  sign/verify round trip through util.crypto (both linked against
  libopenssl), IDNA plus stringprep through util.encodings (libidn),
  and XML parsing through util.xml (luaexpat).
- Require lfs, socket and ssl, so a missing luafilesystem5.4 /
  luasocket5.4 / luasec5.4 runtime dependency fails here rather than on
  a user's router.

The XMPP daemon is still never started: it would block forever under
QEMU emulation.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoprosody: update to 13.0.6
Alexandru Ardelean [Tue, 26 May 2026 11:15:12 +0000 (14:15 +0300)]
prosody: update to 13.0.6

0.12.x is EOL upstream and accumulating CVEs. Bump to the current
stable 13.0.6, which carries the fix from security advisory
2026-04-29 / prosody.im/security/advisory_735dd9d3 that first shipped
in 13.0.5.

Prosody 13 requires Lua >= 5.2 (configure rejects 5.1). Switch the
build and runtime to Lua 5.4 and depend on the new
luafilesystem5.4 / luaexpat5.4 / luasec5.4 / luasocket5.4 variants.
Drop the now-unused luabitop dependency: bit operations are built in
since Lua 5.3.

Other notes:
- configure now needs an explicit --lua-version=5.4 and --runwith=lua5.4
  because the wrapper script defaults to '/usr/bin/lua' (5.1 on OpenWrt).
- Install the new mod_debug_stanzas plugin directory. The commented-out
  fallbacks/*.lua install is dropped rather than revived: upstream's
  'make install' never copies that directory, and fallbacks/lxp.lua is
  Lua 5.1 code using module(), which does not even load on 5.4.
- util-src/hashes.c now calls EVP_blake2{s256,b512}(), which libopenssl
  does not provide unless OPENSSL_WITH_BLAKE2 is set, so compile those
  two hashes out when libcrypto lacks them. Selecting the symbol instead
  is not enough: the resulting util/hashes.so still fails to relocate
  against a stock libcrypto, and prosody aborts at startup. Only the
  COMPAT util.hmac table references them, and it tolerates nil entries.
- Install loader.lua. 13.x moved every internal require() to the
  'prosody.*' namespace, and loader.lua is what maps those names back
  onto the installed layout. It is the first file prosodyctl looks for,
  so both prosody and prosodyctl abort at startup without it.

Refs: https://github.com/openwrt/packages/issues/29252
Release notes: https://blog.prosody.im/prosody-13.0.6-released/
Security: https://prosody.im/security/advisory_735dd9d3/

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoluasec: add Lua 5.4 variant
Alexandru Ardelean [Tue, 26 May 2026 11:15:12 +0000 (14:15 +0300)]
luasec: add Lua 5.4 variant

Add luasec5.4 (Lua 5.4 + luasocket5.4 + libopenssl) next to existing
luasec (Lua 5.1, default). Installs ssl.so / ssl.lua / ssl/https.lua
under /usr/lib/lua/5.4/.

Needed for the prosody 13.x upgrade.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoluasocket: add Lua 5.4 variant
Alexandru Ardelean [Tue, 26 May 2026 11:15:12 +0000 (14:15 +0300)]
luasocket: add Lua 5.4 variant

Add luasocket5.4 next to the existing luasocket (Lua 5.1) and
luasocket5.3 variants, installed via the upstream makefile's
'make install LUAV=5.4'.

That makefile defaults to prefix=/usr/local on linux, which is where
the luasocket5.3 variant still installs, so pass prefix=/usr explicitly
to land in /usr/share/lua/5.4 and /usr/lib/lua/5.4 like the other Lua
5.4 module packages.

Needed for the prosody 13.x upgrade.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoluaexpat: add Lua 5.4 variant
Alexandru Ardelean [Tue, 26 May 2026 11:15:12 +0000 (14:15 +0300)]
luaexpat: add Lua 5.4 variant

Add luaexpat5.4, parallel to existing luaexpat (Lua 5.1, default).
Builds against the Lua 5.4 headers under /usr/include/lua5.4 and
installs to /usr/lib/lua/5.4/. Same pattern as the luasocket 5.3
variant already shipped.

Needed for the prosody 13.x upgrade.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoluafilesystem: add Lua 5.4 variant
Alexandru Ardelean [Tue, 26 May 2026 11:15:12 +0000 (14:15 +0300)]
luafilesystem: add Lua 5.4 variant

Lua 5.1 is EOL and many downstream packages need 5.2+. Mirror the
luasocket multi-variant pattern: keep luafilesystem (Lua 5.1, default)
and add luafilesystem5.4 which builds the same source against
liblua5.4 and installs to /usr/lib/lua/5.4/.

Needed for the prosody 13.x upgrade (Lua 5.1 unsupported upstream).

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolua: look for lua5.4 modules under /usr instead of /usr/local
Alexandru Ardelean [Wed, 22 Jul 2026 11:52:14 +0000 (14:52 +0300)]
lua: look for lua5.4 modules under /usr instead of /usr/local

luaconf.h hardcodes LUA_ROOT to "/usr/local/", and nothing in this
package overrides it for the target build, so the interpreter only ever
searches /usr/local/{share,lib}/lua/5.4. Nothing installs there on
OpenWrt, which leaves every Lua 5.4 module package unreachable:

  # lua5.4 -e 'require "lfs"'
  lua5.4: module 'lfs' not found:
          no file '/usr/local/share/lua/5.4/lfs.lua'
          no file '/usr/local/lib/lua/5.4/lfs.so'
          [...]
  # find / -name lfs.so
  /usr/lib/lua/5.4/lfs.so

Point LUA_ROOT at /usr. LUA_LDIR and LUA_CDIR are derived from it and
keep the version suffix, so the search paths become /usr/share/lua/5.4
and /usr/lib/lua/5.4 - exactly where the Lua 5.4 module packages
install. The core lua (5.1) package carries an equivalent patch.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agohwdata: update to 0.409
Alexandru Ardelean [Tue, 28 Jul 2026 12:18:02 +0000 (15:18 +0300)]
hwdata: update to 0.409

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agochecksec: update to 3.2.0
Alexandru Ardelean [Tue, 28 Jul 2026 12:18:02 +0000 (15:18 +0300)]
checksec: update to 3.2.0

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoopenblas: update to 0.3.34
Alexandru Ardelean [Tue, 28 Jul 2026 12:18:02 +0000 (15:18 +0300)]
openblas: update to 0.3.34

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agounbound: update to 1.25.2
Tyrel M. McQueen [Thu, 30 Jul 2026 10:47:52 +0000 (06:47 -0400)]
unbound: update to 1.25.2
From upstream: 1.25.2 consolidates security fixes for issues reported over
a period of time. There are fixes for CVE-2026-14586, CVE-2026-32665,
CVE-2026-40691, CVE-2026-41637, CVE-2026-42955, CVE-2026-44621,
CVE-2026-44687, CVE-2026-44690, CVE-2026-46582, CVE-2026-50045,
CVE-2026-50046, CVE-2026-50243, CVE-2026-50248, CVE-2026-50251,
CVE-2026-50252, CVE-2026-52863, CVE-2026-54478, CVE-2026-55708,
CVE-2026-55717, CVE-2026-55973, CVE-2026-55990, CVE-2026-55991,
CVE-2026-56416 and CVE-2026-56444.

Full details at

https://github.com/NLnetLabs/unbound/releases/tag/release-1.25.2

Signed-off-by: Tyrel M. McQueen <redacted>
7 weeks agounbound: remove maintainer
Eric Luehrsen [Fri, 10 Jul 2026 03:18:47 +0000 (23:18 -0400)]
unbound: remove maintainer

PKG_MAINTAINER blank.

Signed-off-by: Eric Luehrsen <redacted>
7 weeks agolttng-tools: update to 2.15.1
Alexandru Ardelean [Tue, 28 Jul 2026 12:56:12 +0000 (15:56 +0300)]
lttng-tools: update to 2.15.1

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolttng-modules: update to 2.15.2
Alexandru Ardelean [Tue, 28 Jul 2026 12:56:12 +0000 (15:56 +0300)]
lttng-modules: update to 2.15.2

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolua-eco: fix LUA_ECO_CRASH_BACKTRACE recursive dependency
Alexandru Ardelean [Wed, 29 Jul 2026 12:22:33 +0000 (15:22 +0300)]
lua-eco: fix LUA_ECO_CRASH_BACKTRACE recursive dependency

LUA_ECO_CRASH_BACKTRACE declared "depends on PACKAGE_lua-eco" while
lua-eco's DEPENDS carries "+LUA_ECO_CRASH_BACKTRACE:libunwind", which the
generator turns into "select libunwind if LUA_ECO_CRASH_BACKTRACE". kconfig
then sees lua-eco and the symbol depending on each other:

  error: recursive dependency detected!
    symbol LUA_ECO_CRASH_BACKTRACE depends on PACKAGE_lua-eco
    symbol PACKAGE_lua-eco depends on LUA_ECO_CRASH_BACKTRACE

Drop the redundant guard; the option only affects lua-eco's own build, so
nothing is pulled in when lua-eco itself is not selected.

Fixes: https://github.com/openwrt/packages/pull/30098#issuecomment-5113528752
Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agopv: update to 1.11.0
Alexandru Ardelean [Tue, 28 Jul 2026 12:37:50 +0000 (15:37 +0300)]
pv: update to 1.11.0

Update to the latest upstream stable release and add a functional
test.sh that pipes a small text stream and a 256 KiB binary stream
through pv, checking both arrive unchanged.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolibssh: update to 0.12.1
Alexandru Ardelean [Tue, 28 Jul 2026 12:37:49 +0000 (15:37 +0300)]
libssh: update to 0.12.1

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoddns-scripts: fix root command injection through ddns_dateformat
Hauke Mehrtens [Sun, 26 Jul 2026 16:08:10 +0000 (18:08 +0200)]
ddns-scripts: fix root command injection through ddns_dateformat

The date format read from the UCI option ddns.global.ddns_dateformat was
embedded into a command string that is later executed through "eval", both
for the recurring log timestamps

  DATE_PROG="date +'$ddns_dateformat'"
  ...
  write_log 5 "PID '$$' started at $(eval $DATE_PROG)"

and for the "last update" timestamp in the updater

  EPOCH_TIME="date -d @$EPOCH_TIME +'$ddns_dateformat'"
  write_log 7 "last update: $(eval $EPOCH_TIME)"

The value is only wrapped in single quotes, so a single quote inside it
closes that quote and starts a new shell word. A user who can write the ddns
configuration - a delegated DDNS operator who was never granted shell access
- can set

  ddns_dateformat="%F'; touch /tmp/pwned; '"

and have arbitrary commands run as root, because the updater runs as root.
The injection triggers on the next start of the updater, so in practice on
the next reconfiguration or reboot.

Stop building shell code from the option. Provide date_prog() as an ordinary
shell function and pass the format as a single quoted argument in both
places, which leaves no way for its content to be interpreted by the shell.
The remaining use of ddns_dateformat in dynamic_dns_updater.sh, for
NEXT_CHECK_TIME, already substituted it as a quoted argument without eval
and was not affected.

luci-app-ddns consumes the same option and is fixed separately in the LuCI
repository.

Reported-by: Matthew Hickey (Hacker Fantastic, https://hacker.house)
Fixes: 1c20dcb71a69 ("ddns-scripts: update to 2.7.6-1")
Assisted-by: Claude:claude-opus-5
Signed-off-by: Hauke Mehrtens <redacted>
7 weeks agosnapcast: fix "dirty" cmake-add-build-with-soxr-option.patch
Mirko Vogt [Wed, 29 Jul 2026 13:40:38 +0000 (13:40 +0000)]
snapcast: fix "dirty" cmake-add-build-with-soxr-option.patch

Refresh "cmake-add-build-with-soxr-option"-patch.
The CI/CD pipeline checks whether patches are byte-identical to what
make package/$(PKG_NAME)/refresh produces.
While the patch applied cleanly, it contained the index-line and a
git-footer, which caused the CI/CD-pipeline's patch-check to bail out

Signed-off-by: Mirko Vogt <redacted>
7 weeks agov4l2camera: update to v0.3.2
Michel Promonet [Sat, 25 Jul 2026 15:40:32 +0000 (17:40 +0200)]
v4l2camera: update to v0.3.2
- Sync with upstream release 0.3.2
- Fix indentation in v4l2camera.init

Signed-off-by: Michel Promonet <redacted>
7 weeks agodumb-init: bump to 1.2.5
Wei-Ting Yang [Wed, 29 Jul 2026 14:37:43 +0000 (22:37 +0800)]
dumb-init: bump to 1.2.5

Release notes:
https://github.com/Yelp/dumb-init/releases/tag/v1.2.3
https://github.com/Yelp/dumb-init/releases/tag/v1.2.4
https://github.com/Yelp/dumb-init/releases/tag/v1.2.5

Signed-off-by: Wei-Ting Yang <redacted>
7 weeks agolibextractor: don't auto-link libapparmor
Alexandru Ardelean [Wed, 29 Jul 2026 11:40:03 +0000 (14:40 +0300)]
libextractor: don't auto-link libapparmor

When libapparmor installs headers and libraries for build, libextractor
picks it up and fails with "missing dependencies libapparmor.so.1").

Disable it explicitly via configure.

Fixes: https://github.com/openwrt/packages/pull/30068#issuecomment-5107754731
Fixes: 3253c6c9b ("apparmor: stage libapparmor headers via InstallDev")
Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agoarp-whisper: bump to 1.0.0
Facundo Acevedo [Sat, 11 Jul 2026 23:23:51 +0000 (20:23 -0300)]
arp-whisper: bump to 1.0.0

Updated arp-whisper package to 1.0.0
Add test file
Signed-off-by: Facundo Acevedo <redacted>
7 weeks agohev-socks5-tproxy: update to 2.12.0
Ray Wang [Wed, 22 Jul 2026 12:07:08 +0000 (20:07 +0800)]
hev-socks5-tproxy: update to 2.12.0

Upstream changelog:
https://github.com/heiher/hev-socks5-tproxy/releases/tag/2.12.0

Signed-off-by: Ray Wang <redacted>
7 weeks agotaglib: update to 2.3.1
Alexandru Ardelean [Tue, 28 Jul 2026 12:12:25 +0000 (15:12 +0300)]
taglib: update to 2.3.1

Update to the latest upstream stable release.

Also, add backslash for CMake options, so that they get activated.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agosqlite3: update to 3.53.4
Alexandru Ardelean [Tue, 28 Jul 2026 12:12:25 +0000 (15:12 +0300)]
sqlite3: update to 3.53.4

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolttng-ust: update to 2.15.1
Alexandru Ardelean [Tue, 28 Jul 2026 12:12:25 +0000 (15:12 +0300)]
lttng-ust: update to 2.15.1

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agongtcp2: update to 1.25.0
Alexandru Ardelean [Tue, 28 Jul 2026 11:58:35 +0000 (14:58 +0300)]
ngtcp2: update to 1.25.0

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agonghttp3: update to 1.18.0
Alexandru Ardelean [Tue, 28 Jul 2026 11:58:35 +0000 (14:58 +0300)]
nghttp3: update to 1.18.0

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agojsoncpp: update to 1.9.8
Alexandru Ardelean [Tue, 28 Jul 2026 11:58:35 +0000 (14:58 +0300)]
jsoncpp: update to 1.9.8

Update to the latest upstream stable release.

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agogperftools: allow building for powerpc
Josef Schlehofer [Wed, 24 Sep 2025 09:56:25 +0000 (11:56 +0200)]
gperftools: allow building for powerpc

Add pending patches submitted upstream, which fix the build failures
discovered on powerpc with musl, and drop the powerpc exclusion from
DEPENDS.

Patches are from https://github.com/gperftools/gperftools/pull/1616

Signed-off-by: Josef Schlehofer <redacted>
7 weeks agoci: add LLM review rules
Josef Schlehofer [Tue, 28 Jul 2026 06:28:02 +0000 (08:28 +0200)]
ci: add LLM review rules

Add `.github/llm-review-rules.md` to define project-specific patterns
and guidelines for the LLM review bot, alongside the equivalents in
openwrt/openwrt and openwrt/luci.

The rules cover what the review routine cannot infer from the diff
alone: quilt-managed patch refresh, the generic version check and the
test.sh / test-version.sh overrides, procd init scripts, conffiles
layout, source and mirror macro preferences, and Makefile indentation
per block type.

They also set the review posture. Formatting that changes what gets
built is treated as a defect, while cosmetic style is not worth
blocking a merge over; findings the formality bot already posts are
not repeated; and CI results are a reference rather than a gate.
Patches only need to be upstream-ready when they are candidates for
upstream, since many here are OpenWrt-specific hacks with nowhere to
go. Stable branches may carry a minor LTS update that has no
counterpart on master, so not every stable-branch PR is a cherry-pick.

Signed-off-by: Josef Schlehofer <redacted>
Co-Authored-By: Claude Opus 5 <redacted>
7 weeks agofreeradius3: fix recursive dependency from libopenssl-legacy
Alexandru Ardelean [Tue, 28 Jul 2026 08:43:36 +0000 (11:43 +0300)]
freeradius3: fix recursive dependency from libopenssl-legacy

The 3.2.10 update made freeradius3-common select libopenssl-legacy, which
hard-depends on libopenssl; the generator propagates that onto common's
selectors (freeradius3, freeradius3-utils) as a FREERADIUS3_OPENSSL depends,
looping with the SSL choice. Declare the OpenSSL deps there too to break it.

Fixes: https://github.com/openwrt/packages/pull/30081#issuecomment-5100951400
Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agolua-eco: update to 4.1.4
Jianhui Zhao [Sun, 26 Jul 2026 02:51:59 +0000 (10:51 +0800)]
lua-eco: update to 4.1.4

Add the new cli module as a separate subpackage.

Expose the optional C crash backtrace diagnostics through
CONFIG_LUA_ECO_CRASH_BACKTRACE. Depend on libunwind when enabled.
Keep the option unavailable on musl/powerpc, where OpenWrt's
libunwind package is not supported.

changelog: https://github.com/zhaojh329/lua-eco/compare/v4.0.0...v4.1.4

Signed-off-by: Jianhui Zhao <redacted>
7 weeks agoradsecproxy: add config options for UCI, fix escaping
Jan-Frederik Rieckers [Sun, 19 Jul 2026 08:41:03 +0000 (10:41 +0200)]
radsecproxy: add config options for UCI, fix escaping

This adds more config options for use in UCI, esp. new configuration
options that were introduced in newer radsecproxy versions and it fixes
an escaping issue in the init script where a string containing single
quotes would still be escaped using single quotes, causing radsecproxy
to reject the config.

This also bumps the PKG_RELEASE in the Makefile

Signed-off-by: Jan-Frederik Rieckers <redacted>
7 weeks agoapparmor: stage libapparmor headers via InstallDev
Alexandru Ardelean [Sat, 11 Jul 2026 16:31:51 +0000 (19:31 +0300)]
apparmor: stage libapparmor headers via InstallDev

Add a Build/InstallDev so libapparmor's header (sys/apparmor.h), the
libapparmor.so link and the pkg-config file are copied into the staging
directory. Without this, packages cannot build against libapparmor even
though the runtime shared library is provided; e.g. stress-ng's AppArmor
stressors fall back to "built without sys/apparmor.h".

Signed-off-by: Alexandru Ardelean <redacted>
7 weeks agopython-certifi: update to 2026.7.22
Wei-Ting Yang [Sun, 26 Jul 2026 06:41:24 +0000 (14:41 +0800)]
python-certifi: update to 2026.7.22

Use the latest CA bundle from Mozilla.

Signed-off-by: Wei-Ting Yang <redacted>
7 weeks agopython-idna: bump to 3.18
Wei-Ting Yang [Sun, 26 Jul 2026 06:35:27 +0000 (14:35 +0800)]
python-idna: bump to 3.18

Release notes:
https://github.com/kjd/idna/releases/tag/v3.18

Remove the test for UTS 46 transitional processing, which is now
deprecated and emits a warning. See [1].

[1] https://github.com/kjd/idna/commit/94bcdc38fd75ae8a259132f7e3f5f1fb5373c717

Signed-off-by: Wei-Ting Yang <redacted>
7 weeks agopython-charset-normalizer: bump to 3.4.9
Wei-Ting Yang [Sun, 26 Jul 2026 06:29:41 +0000 (14:29 +0800)]
python-charset-normalizer: bump to 3.4.9

Release notes:
https://github.com/jawah/charset_normalizer/releases/tag/3.4.8
https://github.com/jawah/charset_normalizer/releases/tag/3.4.9

Also update package GitHub URL.

Signed-off-by: Wei-Ting Yang <redacted>
7 weeks agogeoipupdate: update to 8.0.0
Tianling Shen [Mon, 27 Jul 2026 04:00:52 +0000 (12:00 +0800)]
geoipupdate: update to 8.0.0

Release note: https://github.com/maxmind/geoipupdate/releases/tag/v8.0.0

Signed-off-by: Tianling Shen <redacted>
7 weeks agocloudflared: update to 2026.7.3
Tianling Shen [Mon, 27 Jul 2026 03:26:55 +0000 (11:26 +0800)]
cloudflared: update to 2026.7.3

Release note:
- https://github.com/cloudflare/cloudflared/releases/tag/2026.7.0
- https://github.com/cloudflare/cloudflared/releases/tag/2026.7.1
- https://github.com/cloudflare/cloudflared/releases/tag/2026.7.2
- https://github.com/cloudflare/cloudflared/releases/tag/2026.7.3

Signed-off-by: Tianling Shen <redacted>
7 weeks agov2ray-geodata: update to latest version
Tianling Shen [Mon, 27 Jul 2026 03:28:43 +0000 (11:28 +0800)]
v2ray-geodata: update to latest version

Update all geodata.

Signed-off-by: Tianling Shen <redacted>
7 weeks agov2ray-core: update to 5.51.2
Tianling Shen [Mon, 27 Jul 2026 03:28:01 +0000 (11:28 +0800)]
v2ray-core: update to 5.51.2

Release note: https://github.com/v2fly/v2ray-core/releases/tag/v5.51.2

Signed-off-by: Tianling Shen <redacted>
7 weeks agoadblock: keep the GeoIP map usable without a local uplink
Dirk Brenken [Sun, 26 Jul 2026 19:53:09 +0000 (21:53 +0200)]
adblock: keep the GeoIP map usable without a local uplink

The map array anchor and the f_fetch call were placed inside the uplink branch, so a WAN
interface without a resolvable address left adb_map.jsn empty. That skipped the blocked domain
lookup as well and dropped the entire map, not just the local marker.

Signed-off-by: Dirk Brenken <redacted>
7 weeks agobanip: fix the local uplink lookup of the GeoIP map
Dirk Brenken [Sun, 26 Jul 2026 17:54:08 +0000 (19:54 +0200)]
banip: fix the local uplink lookup of the GeoIP map

- better extract Uplink addresses
- the map array anchor was written inside the runtime file branch,
  so a missing runtime file dropped the entire map instead of just the local marker

Signed-off-by: Dirk Brenken <redacted>
8 weeks agotravelmate: fix loss of configured uplink mac address
Dirk Brenken [Sun, 26 Jul 2026 04:48:30 +0000 (06:48 +0200)]
travelmate: fix loss of configured uplink mac address

- pass the station details to the "rev" call so the uplink section
  stays resolved, fixes #30099
- the same empty trm_uplinkcfg also silently skipped disabling the uplink
  after trm_maxretry was reached - fixed that too with this oneliner

Signed-off-by: Dirk Brenken <redacted>
8 weeks agouvol: bump version to 1.1
Daniel Golle [Sat, 25 Jul 2026 17:46:50 +0000 (18:46 +0100)]
uvol: bump version to 1.1

manage volume state over ubus instead of the rootfs

Rework the volume lifecycle around blockd's ubus API, so volume state
lives entirely on the self-describing LVM/UBI backing store and never
leaks into the firmware rootfs.

- register active volumes with blockd over ubus (mount.uc) instead of
  spooling mounts into /etc/config/fstab (uci.uc)

- bootstrap .meta from 'uvol boot' and drop the broken 90-uvol-init
  uci-default

- run 'uvol boot' straight from the mount.ready trigger, and query
  'ubus call block status' at service start to cover storage already
  being ready

- defer removal of a volume whose backing device is still held, and
  reap it from the mount.umount trigger once it is free

- enforce content-addressed "<algo>-<hexdigest>" volumes in the
  dispatcher: reuse an existing volume of the same digest, verify
  every write

- verify a content-addressed write in place while the volume is still
  incomplete, reporting EBADMSG on mismatch instead of flipping
  volume state

- purge incomplete wo/wp leftovers on boot and reclaim an exactly
  matching one on create

- serialise mutating commands with a device-wide lock, plus a
  per-volume lock ordered after it so a slow write cannot stall other
  volumes

- add a grow-only 'resize' verb to both backends: lvextend plus the
  matching fs-grow tool for lvm, ubirsvol for ubi

- create ext4 volumes with a journal (was ext2) and request check_fs
  when registering a read-write volume

- declare read-only mounts to blockd rather than letting block guess
  from the filesystem

- reject non-numeric and non-positive sizes in create and resize

- report its own version

- simplify command line parsing (drop compatibility with ancient ucode)

Requires the matching fstools changes from
openwrt/openwrt@9b11fa4088c6a.

Signed-off-by: Daniel Golle <redacted>
8 weeks agoswgp-go: add at 1.10.0
Florian Klink [Wed, 1 Jul 2026 22:03:24 +0000 (01:03 +0300)]
swgp-go: add at 1.10.0

Compiled on x86_64-linux, successfully tested on mediatek/filogic,
25.12.5.

Signed-off-by: Florian Klink <redacted>
git clone https://git.99rst.org/PROJECT