Andrea Ferro [Sat, 10 Jan 2026 17:46:13 +0000 (18:46 +0100)]
ddns-scripts: add ApertoDNS DDNS provider
Add support for ApertoDNS dynamic DNS service with two configuration
options:
- apertodns.com: Standard DynDNS2 compatible authentication (user/pass)
- apertodns.com-token: Token-based authentication for DDNS clients
Both configurations support IPv4 and IPv6 updates via the standard
/nic/update endpoint.
Florian Eckert [Thu, 18 Dec 2025 13:12:49 +0000 (14:12 +0100)]
zabbix: zabbix-server-frontend: update dependency
Only show zabbix-server-frontend if the build dependency 'PACKEGE_php8' is
fulfilled. This means that 'zabbix-server-frotend' can only be selected if
PHP has also been enabled for building.
This change is needed to fix the following recursive dependency warning.
error: recursive dependency detected!
symbol PACKAGE_php8 is selected by PACKAGE_zabbix-server-frontend
symbol PACKAGE_zabbix-server-frontend depends on PHP8_DOM
symbol PHP8_DOM depends on PACKAGE_php8
For a resolution refer to Documentation/kbuild/kconfig-language.rst
Florian Eckert [Thu, 18 Dec 2025 12:11:23 +0000 (13:11 +0100)]
php8: add php8 depends and move compile option to Config.in
The php8 Makefile is already quite large. To improve readability, move
config section to a separate 'Config.in' file. To ensure that the PHP8
option is only saved in '.config' if PHP8 has been selected for building. A
depends on 'PACKAGE_php8' is added to the configuration option in the
'Config.in' file.
Torbjorn Tyridal [Tue, 18 Nov 2025 14:02:25 +0000 (14:02 +0000)]
strongswan: Add support for EAP-TLS authentication
Support for configuring EAP-TLS authentication scheme is added.
Similar to EAP-MSCHAPv2, this one is usually asymmetric
in the way that server auth method (pubkey) is different from
the client auth method (eap-tls).
The code handles this asymmetry automatically.
* Various options have changed since radicale2, and the current
initscripts set configuration that prevents radicale3 from starting
in some cases. So update the options to radicale3.
* LuCI will not display the app when the config file is empty, so
uncomment the first (server section) line.
* Changed the default data directory to /var (emphemeral storage) as
OpenWrt policy is to not write flash by default. As with PostgreSQL,
to be useful the user will need to set configuration for an
appropriate path.
* fix service_reload in initscript so it reloads configuration
* fold long lines for readability
* shellcheck is a useful linter, if a bit pedantic, so use it and
update script to address its warnings.
Wei-Ting Yang [Thu, 8 Jan 2026 04:35:42 +0000 (12:35 +0800)]
python-urllib3: update to 2.6.3
- Fixed HTTPResponse.read_chunked() to properly handle leftover data
in the decoder's buffer when reading compressed chunked responses.
- Fixed a security issue where decompression-bomb safeguards of the
streaming API were bypassed when HTTP redirects were followed.
(CVE-2026-21441)
- Started treating Retry-After times greater than 6 hours as 6 hours
by default.
- Fixed urllib3.connection.VerifiedHTTPSConnection on Emscripten.
This package is not compiled due to this build log failure:
```
adding 'radicale-2.1.12.dist-info/RECORD'
removing build/bdist.linux-aarch64/wheel
Successfully built radicale-2.1.12-py3-none-any.whl
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/__main__.py", line 98, in <module>
_main(sys.argv[1:], "python -m installer")
~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/__main__.py", line 86, in _main
with WheelFile.open(args.wheel) as source:
~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/builder/shared-workdir/build/sdk/staging_dir/target-aarch64_cortex-a53_musl/usr/lib/python3.13/contextlib.py", line 141, in __enter__
return next(self.gen)
File "/builder/shared-workdir/build/sdk/staging_dir/hostpkg/lib/python3.13/site-packages/installer/sources.py", line 162, in open
with zipfile.ZipFile(path) as f:
~~~~~~~~~~~~~~~^^^^^^
File "/builder/shared-workdir/build/sdk/staging_dir/target-aarch64_cortex-a53_musl/usr/lib/python3.13/zipfile/__init__.py", line 1367, in __init__
self.fp = io.open(file, filemode)
~~~~~~~^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/builder/shared-workdir/build/sdk/build_dir/target-aarch64_cortex-a53_musl/pypi/Radicale-2.1.12//openwrt-build/Radicale-2.1.12-*.whl'
```
This occurred due to PEP 625, which requires wheel filenames in lowercase.
The local build produces lowercase-compliant names (radicale-2.1.12-*.whl),
but the script searches for uppercase (Radicale-2.1.12-*.whl).
Josef Schlehofer [Mon, 29 Dec 2025 09:04:15 +0000 (10:04 +0100)]
radicale3: new package
Radicale is a small but powerful CalDAV (calendars, to-do lists) and
CardDAV (contacts) server.
This package provides the latest 3.x series, which succeeds radicale2.
This is replacament for recently dropped radicale2 and radicale1.
Stan Grishin [Thu, 8 Jan 2026 03:22:38 +0000 (03:22 +0000)]
https-dns-proxy: update to 2025-12-29-1
* bump binary to 2025.12.29 with support for -S
* update README and delete README in files/
* bugfix: properly load global option for `force_ipv6_resolvers`
* add global and per-instance `source_addr` option
Thanks to @karl82 for adding source_addr support upstream.
Qingfang Deng [Sun, 4 Jan 2026 03:15:23 +0000 (11:15 +0800)]
libteam: add new package
libteam is a userspace tool to configure Linux network teaming.
This consists of 5 packages:
- libteam.so is a wrapper library to interface the Team Netlink API.
- teamd is a service/daemon to control a team netdev using the libteam library.
- teamdctl is a utility to alter teamd configuration at runtime.
- libteamdctl.so is a library used by teamdctl.
- teamnl is a utility mainly for debugging.
Instead of the xinetd-org sources, the OpenSUSE fork is used now
because the xinetd-org version is not maintained anymore. This fork
is used by Debian too and obsoletes the patches that were used
previously for the packaging at OpenWrt.
This rework was unneeded, rather the fix in
https://github.com/openwrt/packages/pull/28174 is required to resolve
missing HTTP_AUTH support.
The original issue in https://github.com/openwrt/packages/issues/27526
(unable to update OVH DynHost IP address) was wrongly attributed to a
change on the OVH API. As discussed in
https://github.com/openwrt/packages/issues/28172 the API continues to
work for 24.10.5 system, as well as users using wget-ssl.
The changes in https://github.com/openwrt/packages/pull/27561 and
the followup fix https://github.com/openwrt/packages/pull/27694 add
unnecessary dependencies which are heavier than the actually needed
minimum.
Therefore return the OVH provider to the previous state, and let
https://github.com/openwrt/packages/pull/28174 resolved the issue.
kea: fix build issue with boost-1.90 static assert
The headers apparently changed in 1.90 from 1.89 and the
definition for BOOST_STATIC_ASSERT() needs to be brought
in explicitly from <boost/static_assert.hpp> which wasn't
previously the case.
John Audia [Sat, 3 Jan 2026 22:14:17 +0000 (17:14 -0500)]
fscrypt: update to 0.3.6
Latest upstream source. shortlog:
Eric Biggers (13):
README.md: fix a typo
Fix non-constant format string passed to errors.Wrapf()
ci.yml: upgrade ubuntu-20.04 to ubuntu-latest
filesystem/mountpoint: fall back to using mount source field
Bump up required Go version to 1.23
Upgrade golang.org/x/sys
Upgrade golang.org/x/term
Upgrade golang.org/x/crypto
Upgrade google.golang.org/protobuf
Upgrade honnef.co/go/tools
Upgrade golang.org/x/tools
Upgrade github.com/urfave/cli
v0.3.6
NymanRobin (1):
Compare mount by value instead of reference
Petteri Räty (1):
Document stdin behaviour for getting raw key
dependabot[bot] (1):
build(deps): bump golang.org/x/crypto in the go_modules group
dkg (1):
README.md: link to RFE about systemd-homed fscrypt version support (#412)
John Audia [Fri, 19 Dec 2025 21:52:44 +0000 (16:52 -0500)]
libpfring: update to 9.2.0
Bump to 9.2.0 and swtich from git build to tagged tarball.
Added the following patches:
900-Fix-Compilation-on-kernel-6.17.patch (backport)
901-pf_ring-fix-virt_to_page-type-mismatch.patch (pending backport)[1,2]
Removed all upstreamed patches and removed MAINTAINER as no one is
maintaining this pkg. Note that this version is needed in order to
build against linux 6.18.
1. Suggested by CI co-pilot to prevent failure builds for ARM targets
including: arm_cortex9_vfpv3-d16, arm_cortex-a15_neon-vfpv4,
powerpc_464fp, and powerpc_8548.
Norman Gehrsitz [Wed, 31 Dec 2025 02:02:10 +0000 (03:02 +0100)]
acme-acme.sh: support --cert-profile option
acme 3.1.2 added a new --cert-profile option to request specific certificates.
This makes it possible to request shortlived six day certificates from Letsencrypt.
Josef Schlehofer [Wed, 31 Dec 2025 02:38:27 +0000 (03:38 +0100)]
pigeonhole: update to version 0.5.21.1
Release notes:
```
v0.5.21.1 2024-08-14 Aki Tuomi <redacted>
- sieve: When saving to local storage failed after a successful action
in sieve (e.g. redirect, vacation), the mail was reported as
successfully delivered, although it was lost locally.
```
Copy&pasted from
https://raw.githubusercontent.com/dovecot/pigeonhole/0.5.21.1/NEWS
Josef Schlehofer [Wed, 31 Dec 2025 02:33:18 +0000 (03:33 +0100)]
pigeonhole: change package versioning
The current pigeonhole Makefile is more complex than it needs to be, with
too many unique variables and the resulting package version
is currently this one:
```
dovecot-pigeonhole_2.3.21.0.5.21-r1_aarch64_cortex-a53.ipk
```
and based on Repology [1], it looks like we are the only GNU/Linux
distribution, who includes dovecot version and pigeonhole version
together. We should not include the extra dovecot version, because
even project [2] website does not do it except their tarball.
What we can do better is that we added and modify a little bit
EXTRA_DEPENDS, which ensures that pigenhole 0.5.21.1 will be used
for Dovecot 2.3, because of that, we can have package version as
it should be.
Josef Schlehofer [Wed, 31 Dec 2025 01:21:38 +0000 (02:21 +0100)]
dovecot-pigeonhole: fix Makefile syntax to match dovecot
Use $(XARGS) variable instead of plain xargs command, consistent with
the dovecot package implementation. Remove unnecessary space in
EXTRA_DEPENDS version constraint.
Fixes failing error on buildbot:
```
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Makefile:62: *** multiple target patterns. Stop.
time: package/feeds/packages/pigeonhole/compile#0.52#0.42#1.15
```
After that faulty commit the 'icu' package is always selected
even if php8 itself is not even selected.
Simple bug reproduction process:
perus@ub2510:/OpenWrt/aarch64$ rm .config
perus@ub2510:/OpenWrt/aarch64$ touch .config
perus@ub2510:/OpenWrt/aarch64$ make defconfig
Collecting package info: done
...
#
# configuration written to .config
#
perus@ub2510:/OpenWrt/aarch64$ grep -iE "php8|icu" .config
# PHP8
# CONFIG_PACKAGE_php8 is not set
CONFIG_PHP8_LIBXML=y
CONFIG_PHP8_DOM=y
CONFIG_PHP8_GETTEXT=y
CONFIG_PHP8_INTL=y
# CONFIG_PHP8_FULLICUDATA is not set
# end of PHP8
CONFIG_PACKAGE_icu=y
# CONFIG_PACKAGE_icu-data-tools is not set
# CONFIG_PACKAGE_icu-full-data is not set
Revert the commit, so that a fix can be developed and tested.
With CONFIG_PHP8_GETTEXT php8 always gains a
dependency on a version of the 'icu' package,
however said dependency is not declared, so
on gets compilation errors when
CONFIG_PHP8_GETTEXT=y but PACKAGE_icu is not
selected.
Therefore select PACKAGE_icu when PHP8_GETTEXT is
selected.
- Add coredns package 1.13.2
- Make wgsd-coredns package transitional to coredns with wgsd plugin enabled
- Make coredns plugin list configurable, disable heavy plugins by
default and add wgsd plugin
- Place the service into ujail
- Add netbox plugin
Co-authored-by: Tianling Shen <redacted> Signed-off-by: Vladimir Ermakov <redacted>
Josef Schlehofer [Mon, 29 Dec 2025 12:28:31 +0000 (13:28 +0100)]
treewide: remove Home Assistant dependencies
I previously attempted to package Home Assistant for OpenWrt.
However, given the announcement that Home Assistant will
primarily be supported via containers (e.g., Docker) or HA OS [1],
these specific Python package dependencies [2] are no longer needed.
I no longer maintain these packages, I don't use them, and there
are no other internal dependencies on them. Removing them will
result in slightly faster build times since they no longer require compilation.
Glenn Strauss [Sat, 27 Dec 2025 06:14:14 +0000 (01:14 -0500)]
lighttpd: mbedtls 3.x EC certs require drbg init
EC certs require drbg init with mbedtls >= 3.0.0
in addition to MBEDTLS_USE_PSA_CRYPTO requiring drbg init
x-ref:
"mbedtls error with ec certificates"
https://redmine.lighttpd.net/boards/2/topics/12097
"mod_mbedtls: ECDSA OpenSSL certificates do not work with lighttpd + mbedTLS/PSA (MBEDTLS_USE_PSA_CRYPTO)"
https://redmine.lighttpd.net/issues/3288
Alarcon Laurent [Wed, 24 Dec 2025 08:28:19 +0000 (09:28 +0100)]
lighttpd: fix plugin malformed dependencies
Dependencies for plugin authn_gssapi, authn_ldap, authn_pam, authn_dbi
and authn_sasl are not correctly written.
This cause lighttpd package to always compile krb5-libs, libopenldap and
libpam, even if not selected
Before the fix:
grep -e libpam -e krb5-libs -e libopenldap .config
\# CONFIG_PACKAGE_libpam is not set
\# CONFIG_PACKAGE_libopenldap is not set
\# CONFIG_PACKAGE_krb5-libs is not set
Josef Schlehofer [Mon, 29 Dec 2025 12:11:18 +0000 (13:11 +0100)]
jq: refactor variants and fix PROVIDES
Refactor package variants definition to be cleaner and more robust.
E.g.:
- Remove redundant PROVIDES:=jq from the main 'jq' package (it provides
itself automatically).
- Keep PROVIDES:=jq only on the 'jq-full' variant so it can serve as a
drop-in replacement.
- Use $(CP) macro rather than $(INSTALL_BIN) to preserve symlinks on shared objects
INSTALL_BIN turns all of the symlinks to files, increasing size.
Fixes: 711a19c4b23f3517ece5296d323c8f0220a0ff4e ("jq: provide regex support in additional package jq-full") Signed-off-by: Josef Schlehofer <redacted>
Obsolete use of $(SDK) in configure conditionals can result in
dependency errors when building a subset of packages for packages which
have multiple sub-packages.
The reason it causes dependency issues is that (using libdbi-drivers as
an example) lines like:
ifneq ($(SDK)$(CONFIG_PACKAGE_libdbd-sqlite3),)
always evaluate to true if you are compiling in the SDK. So for a user
compiling from the SDK, the configure arguments are always added to the package build.
Jordan Ngako [Thu, 25 Dec 2025 19:04:47 +0000 (20:04 +0100)]
libopen62541: preserve symlinks on install
$(INSTALL_BIN) follows symlinks, causing the .so to be copied multiple times.
Use $(CP) instead to preserve symlinks and cut package size by ~2/3.
OpenWrt libraries don’t need to be executable, so $(INSTALL_BIN) isn’t required.
Ruby 4.0 introduces "Ruby Box" and "ZJIT", and adds many improvements.
- Introduce experimental ZJIT compiler
- Improve YJIT performance and memory usage
- Add experimental Ruby Boxes object layout optimization
- VM and GC performance improvements
- Ractor runtime and scheduling enhancements
- Update language syntax and semantics (*nil behavior, logical operator parsing)
- Add Array#rfind and optimized Array#find
- Improve Binding API and implicit parameter access
- Extend Enumerator.produce with size keyword
- Enhance ArgumentError diagnostics with caller/callee context
- Add Fiber#raise(cause:)
- IO.select accepts Float::INFINITY timeout
- Improve Kernel#inspect extensibility
- Add Math.log1p and Math.expm1
- Promote Pathname and Set to core classes
- Extend Ractor API (join, value, lifecycle helpers)
- Fix endless and infinite Range behavior
- Define new top-level Ruby module
- Update Unicode to 17.0 and extend String strip methods
- Update bundled gems (RubyGems, Bundler, IRB, etc.)
Packaging changes:
- Include license files for all packages
- As ruby set moved into core, ruby-set is gone.
ruby-setsubclasscompact was added to include the set subclass
compatible layer
- Added conditional libatomic dependency for libruby
- YJIT and ZJIT are not built when cross-compiling (almost always for
openwrt, even when archs matches). However, the Makefile is ready for
both when upstream adds that feature. Config entries are marked as
BROKEN for now.
Changelog: https://github.com/ruby/ruby/compare/v3_4_0...v4.0.0 Signed-off-by: Luiz Angelo Daros de Luca <redacted>
TeleostNaCl Dai [Sun, 16 Nov 2025 04:05:11 +0000 (12:05 +0800)]
tcpreplay: add libbpf dependency
Since compiling tcpbridge requires linking libbpf.so.1, compiling tcpbridge first may result in compilation failure, like:
Package tcpbridge is missing dependencies for the following libraries: libbpf.so.1
The simplest way to solve it is to add libbpf dependency in Makefile
I use a small, custom application to convert data from my
electricity meter into Modbus format for my inverter and wallbox.
I developed this program against an earlier version of libmodbus
on x86, and it ran flawlessly on my ath79 router (big endian).
After migrating to a Mediatek router (little endian), the program
only outputted huge, meaningless values. However, it ran perfectly
fine on my x86 system (little endian), which is running Fedora
with libmodbus v3.1.11.
I then found several bug reports and the changelogs for libmodbus 3.1.11
that described and resolved my problem. So update openwrt to 3.1.11.
- Drop chcon and runcon as they require SELinux support and cannot be built from
coreutils 9.9 when configured with --without-selinux.
- Add libgmp dependency for coreutils-basenc to fix missing libgmp.so.10.
- Switch to -std=gnu17 to avoid build failure.
```
lib/openat-die.c: In function 'openat_save_fail':
lib/openat-die.c:37:3: error: format not a string literal and no format arguments [-Werror=format-security]
37 | error (exit_failure, errnum,
| ^~~~~
lib/openat-die.c: In function 'openat_restore_fail':
lib/openat-die.c:56:3: error: format not a string literal and no format arguments [-Werror=format-security]
56 | error (exit_failure, errnum,
| ^~~~~
```
- Refresh patch.
Ivan Diaz [Tue, 23 Dec 2025 13:30:29 +0000 (08:30 -0500)]
luci-app-watchcat: revert unnecessary quoting in init script
The quoting added in r18 for pinghosts is not needed. Multi-host support
remains fully functional, but the extra quotes caused inconsistent argument
handling between /etc/init.d/watchcat and /usr/bin/watchcat.sh,
especially for single-IP configurations.
This revert removes the unnecessary quoting in the init script and LUCI,
restoring consistent behavior while keeping multiple ping hosts supported.
Fixes: #28100 (watchcat: error if only one address is specified in pinghosts) Signed-off-by: Ivan Diaz <redacted>
commit ea66e463cffc0811757eedee80889323ff66191c added a new config
option LIBCURL_HTTP_AUTH to enable or disable HTTP_AUTH support in
cURL. It defaulted the option to n (disabled).
However, prior to this change HTTP_AUTH was enabled for cURL, as the
configure script defaults to HTTP_AUTH enabled when it is not
explicitly disabled.
This impacts any consumer of cURL that uses HTTP_AUTH, including
authentication by username and password in the URL. (Confirmed via
run testing).
So we set the default for the option to y (enabled).
For zabbix-server-frontend, the absence of php8-mod-filter results in
many of the frontend's pages failing to render. Therefore add this
module as a frontend dependency.
Without php8-mod-openssl the frontend fails with:
[13-Dec-2025 18:47:25 UTC] PHP Fatal error: Uncaught Error: Call to
undefined function openssl_random_pseudo_bytes() in
/www/zabbix/include/classes/helpers/CEncryptHelper.php:89
Stack trace:
CEncryptHelper::generateKey()
thrown in /www/zabbix/include/classes/helpers/CEncryptHelper.php on
line 89
Therefore add php8-mod-openssl as a frontend dependency.
TeleostNaCl Dai [Wed, 24 Dec 2025 14:59:36 +0000 (22:59 +0800)]
vim: fix depends configuration
Due to the incorrect DEPENDS configuration, the vim-full and vim-fuller
packages won't show up in menuconfig if the vim-runtime package is not
selected. This happens because these packages depend on vim-runtime.
To fix this, add the '+' symbol to the DEPENDS line. This ensures that
when either vim-full or vim-fuller is selected, the vim-runtime package
(which is a dependency) will also be selected automatically.
Fixes: d1351b3 ("vim: fix config and runtime") Signed-off-by: TeleostNaCl Dai <redacted>
miniupnpd: update to 2.3.9 to fix issues, refresh building
- Update daemon to 2.3.9 to fix removal of nftables rules in
`upnp_forward` and return the correct internal port; also resulted in
the excessive opening of new ports. Accept interface names starting
with digits
- Build from GitHub releases to get a reliable HTTPS server, as the
HTTP-only/HTTPS mirror were only available ~85%/77% over 3 months
https://redirect.github.com/miniupnp/miniupnp/issues/770
https://stats.uptimerobot.com/DwGDxUB914
- Build daemon with `--disable-pppconn` to remove the old/IGDv1-only
extra WANPPPConnection SSDP announcements workaround not included in
other implementations since >15y
- Build daemon with `--vendorcfg` to allow customisation of the
router/friendly name (+5 potential options) displayed in Windows
Explorer, 384 bytes extra required on ARMv7 (binary)
- Remove old (iptables variant only) patches, as no longer needed
- Remove `clean_ruleset_interval/threshold` UCI config options as not
standard/working since OpenWrt 22.03, as nftables not supported
George Sapkin [Mon, 22 Dec 2025 01:28:07 +0000 (03:28 +0200)]
tar: fix circular dependency on xz
tar depended both on xz and xz-utils which xz already depended on.
Coupled with if PACKAGE_tar check it caused all packages that depended
on tar to have a circular Kconfig dependency. Remove the check and
dependency on xz-utils and leave xz one only.
A patch is included in order to get the compiler (csc) to work properly
on the target device (comment in the OpenWRT package Makefile). csc,
chicken-install, chicken-status have been verified to work. What the
patch does is to remove -fmacro-prefix-map and -ldl in the strings that
are passed to gcc when the Scheme compiler runs. Without that, the
compiler will not run on the router. A longer description is in the
patch header.
Co-authored-by: George Sapkin <redacted> Signed-off-by: Jeronimo Pellegrini <redacted>