Error if shebang to host python interpreter would exceed 127 characters
(124 characters plus shebang and newline). This is used to alert user
when python-installer would fail to correctly set a Python program's
shebang line.
Closes: https://github.com/openwrt/packages/issues/28310 Signed-off-by: Daniel F. Dickinson <redacted>
George Sapkin [Wed, 21 Jan 2026 00:53:04 +0000 (02:53 +0200)]
golang: add generic package definition
Move version definition to a helper file so multiple versions can be
easily defined using it.
Variables HOST_GO_VARS, PKG_GO_ASMFLAGS, PKG_GO_GCFLAGS,
PKG_GO_INSTALL_ARGS, PKG_GO_LDFLAGS, PKG_GO_VARS, and
PKG_GO_ZBOOTSTRAP_MODS are defined using conditional variable
assignment and can be overridden for each go version.
Eugenio Pérez [Sun, 25 Jan 2026 15:20:32 +0000 (17:20 +0200)]
domoticz: fix chown call
Busybox's chown stops reading the username at the dot, so only user was
changed and the group remained as root. Properly use ':' instead of '.'
as the delimeter.
Fixes: a98239c "domoticz: update to 3.9571 and clean up FHS handling" Signed-off-by: Eugenio Pérez <redacted>
[add PKG_RELEASE bump, modify commit message, add Fixes line] Signed-off-by: Hannu Nyman <redacted>
Hannu Nyman [Sun, 25 Jan 2026 10:56:01 +0000 (12:56 +0200)]
irqbalance: update to version 1.9.5
Update to version 1.9.5
* Use upstream meson.build file, as they now support meson
* patch it locally to continue using static glib linking
* Disable numa, systemd and thermal functions via meson options
* Resurrect the patch to silence repetitive EINVAL warnings.
(patch was used with 1.9.3, but was not needed with 1.9.4)
Related discussion in upstream issue 336 and 349
Michal Kazior [Thu, 4 Sep 2025 17:18:47 +0000 (17:18 +0000)]
lxc: fix meson.build on esoteric host systems
When building lxc's meson.build tries to infer
something for the target system out of the host
build OS. This isn't reproducible and can actually
fail on some OS' like NixOS.
The failure looked like this, early in the
building stage of lxc:
> ../../../../build_dir/target-aarch64_cortex-a53_musl/lxc-6.0.5/meson.build:166:8: ERROR: Problem encountered: "distrosysconfdir" is not set
The /etc/default seems to be something that is
derived on most host systems, so use that as the
explicit config.
This fixes building lxc on NixOS and similar.
This also makes the build more pure and
reproducible. Before this commit building the same
set of checkouts, same config would yield
different lxc artifacts on RedHat and Ubuntu.
It was probably harmless though.
This also removes inactive maintainer from the
Makefile.
Michael Heimpold [Sat, 17 Jan 2026 21:15:22 +0000 (22:15 +0100)]
php8: small maintainance cleanups
- align the config option names
- re-order the configuration options
- add some help text
- drop obsolete notes regarding older PHP versions and obsolete CONFLICT
- remove (meanwhile) unrecognized configure options
John Audia [Thu, 22 Jan 2026 21:04:22 +0000 (16:04 -0500)]
snort3: update to 3.10.2.0
New upstream release. Changelog:
appid: configurable midstream service discovery
appid: prefer QUIC client appid over SSL
appid: prevent out-of-bounds read in bootp option parsing
appid: prevent out-of-bounds read in sslv2 server-hello detection
control: refactor connection ownership model and improve thread safety
extractor: avoid reporting default values for missing SSL fields
file_api: coverity fix
flow: refactor dump_flows command to dump flow state in binary format
mime: fix compile issues
react: block flow when packets are not reset candidates
show_flows: implement utility program to convert dump_flows binary files to text Flow state data for each flow
smtp: handle split CRLF in multi-line response parsing
ssl: ssl client hello event is published with empty hostname
% snort --version
,,_ -*> Snort++ <*-
o" )~ Version 3.10.2.0
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
Copyright (C) 2014-2025 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using DAQ version 3.0.24
Using Vectorscan version 5.4.12 2026-01-11
Using libpcap version 1.10.5 (with TPACKET_V3)
Using LuaJIT version 2.1.0-beta3
Using LZMA version 5.8.1
Using OpenSSL 3.5.4 30 Sep 2025
Using PCRE2 version 10.47 2025-10-21
Using ZLIB version 1.3.1
John Audia [Thu, 15 Jan 2026 14:42:48 +0000 (09:42 -0500)]
snort3: update to 3.10.1.0
New upstream release. Changelog:
alert_fast: ensure call_once definition doesn't collide in std vs glibc, thanks to krag on GitHub for suggesting this fix
alert_json: add support for logging appid, thanks to ssam18 on GitHub for suggesting this change
appid: add check to avoid setting brute force state for pending sessions that are pruned
appid: allow out-of-order packet inspection in third-party engine
appid: check for Lua table errors during initialization and cleanup
appid: enable out-of-order inspection by default
appid: fix client process regex mapping logic
appid: fix eve process handler event debug logging
appid: fix setting global ssh ignore flag
appid: fix size check in TFTP service detector
appid: mDNS TXT records parsing and deviceinfo event generation
appid: prevent multiple out-of-bounds reads in ssl
build: address compilation warnings
build: fix Coverity warnings in related components
cmake: fix pkg-config path for libdir, thanks to brianmcgillion on GitHub for submitting a similar fix
decoder: adding encode function for TransbridgeCodec
dns: add fix infinite recursion vulnerability
file: use new EVP functions rather than deprecated SHA functions
flow: add logs to show different ways a flow can fail to create
ftp_telnet: fix coverity errors and improve cmd_len configurability
ftp_telnet: fix ftp_cmd_pipe_index handling
ftp_telnet: Handle malformed traffic in ftp to generate alert
hash: update hashes to use new EVP functions, thanks to
http_inspect: add urlencoded to content-type list
http_inspect: fix coverity error
iec104: fix IEC 104 SQ0 bounds checks by removing duplicate asdu_size_map entries and using IO_GROUP sizes, preventing out-of-bounds reads
iec104: validate Type I length to prevent ASDU out-of-bounds read
ips_options: fix cursor position for byte_extract
ips_options: reset PCRE rule counts on new configuration loaded
main: update dioctl daqSnort latency common change
mime: add unit tests for data fitting memory limit
mime: add unit tests for data over memory limit
mime: add unit tests for file logging
mime: fix mime boundary parsing
mime: ignore field collection if not configured
mime: implement content parsing of multipart/form_data
mime: improve form-data collection for incomplete boundaries
mime: leave room for null-character in case of size limit hit
mime: remove unused forward-declaration
mime: rename class field to comply with the style
mime: return error code if cannot add headers for logging
pub_sub: add is_urlencoded method
sip: fix out-of-bounds reads in sip_parse_sdp_m
smb,dlp: update filename,filesize of FileInfo handling to enable dlp evaluation for repeated txns
smtp: usage of config cmds
snort2lua: fix failure in converting patterns containing commas
snort_ml: enable client body scanning by default
snort_ml: scan multipart form data
ssl: free certificate data if certificate length is 0
ssl: tls client hello check out of bounds fix
unified2: use proper API for obtaining VLAN ID from packet
% snort --version
,,_ -*> Snort++ <*-
o" )~ Version 3.10.1.0
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
Copyright (C) 2014-2025 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using DAQ version 3.0.24
Using Vectorscan version 5.4.12 2026-01-11
Using libpcap version 1.10.5 (with TPACKET_V3)
Using LuaJIT version 2.1.0-beta3
Using LZMA version 5.8.1
Using OpenSSL 3.5.4 30 Sep 2025
Using PCRE2 version 10.47 2025-10-21
Using ZLIB version 1.3.1
Dirk Brenken [Sat, 24 Jan 2026 13:33:24 +0000 (14:33 +0100)]
adblock: update 4.5.0-2
* rework DNS reporting: more reliable, more information (request type), better performance
* fixed minor issues
* readme update
* LuCI: added new DNS page (incl. Allowed/Blocked canvas)
The last PR (https://github.com/openwrt/packages/pull/28370) missed
including two needed changes, and had a minor packaging Makefile
mistake.
The Zabbix Agent needs to drop privileges to the zabbix-agent user.
Similarly, if run as root (not the default), the Zabbix server needs to
drop privileges to the zabbix-server user.
There are also, in the Makefile, three instances of using BUILD_VARIANT
instead of VARIANT in package definitions.
passlib is unmaintained since 2020 and a maintained fork called libpass,
which is a drop-in replacement (even using the passlib module name), is
now available. https://github.com/Kozea/Radicale/issues/1952 has more
information.
Therefore we remove the python-passlib package from this repo.
This eliminates a dependency on the unmaintained passlib
(python3-passlib) package and add a dependency on libpass, a maintained
fork of passlib: https://github.com/Kozea/Radicale/pull/1953
In addition Radicale auth type 'autodetect' for `htpasswd` auth has
been improved by upstream.
passlib has not be updated since 2020 and is therefore a dead project.
Radicale (used in this repo as radicale3) has updated to use libpass (a
maintained fork of passlib): https://github.com/Kozea/Radicale/pull/1953
therefore add python3-libpass to provide libpass, a drop-in replacement
for passlib, and a dependency for Radicale v3.6.0.
Juan Antonio [Sun, 7 Dec 2025 15:08:50 +0000 (16:08 +0100)]
ddns-scripts: fix luci XHR timeout when restarting ddns service
Redirect stdout and stderr to /dev/null when starting/restarting the ddns
service in the background. Without this redirection, file descriptors are
inherited by the child process, preventing proper process detachment and
causing luci's XHR requests to timeout.
We update the missing sections defaults to match the upstream default,
which are also our defaults when there is an UCI configuration, and
are also the defaults for the LuCI app.
We update the initscript to rebuild the radicale3 target configuration
file and then HUP the radicale3 process to reload it, on a reload
event, rather than the default which does not regenerate the target
configuration.
With recent changes to the proposed PR
(https://github.com/openwrt/luci/pull/8216) for the LuCI app for
radicale3, it is not longer necessary that uncommented configuration
be present in /etc/config/radicale3 for the LuCI app to work.
Therefore make the initial uci config commented sample only.
When LuCI uploads files like the SSL key and certificate, it makes the
files readable only by root. Since radicale is running as a
non-privileged user it is unable to access a certificate and key
uploaded by LuCI, therefore when SSL cert and key (and optional CA) are
configured, make them group radicale3 and group readable, so the
radicale server can use them.
Stijn Tintel [Thu, 15 Jan 2026 18:10:10 +0000 (20:10 +0200)]
kea: create /var/lib/kea directory in init script
This is required to fix the following error:
kea-dhcp4: ERROR [kea-dhcp4.dhcpsrv.548449842384] DHCPSRV_MEMFILE_FAILED_TO_OPEN Could not open lease file: invalid path specified: '/var', supported path is '/var/lib/kea'
Stijn Tintel [Thu, 15 Jan 2026 18:03:16 +0000 (20:03 +0200)]
kea: fix /var/run/kea permissions
This is required to fix the following error:
kea-dhcp-ddns[3115]: 2026-01-15 20:00:36.776 FATAL [kea-dhcp-ddns.dctl/3115.547785590368] DCTL_CONFIG_FILE_LOAD_FAIL DhcpDdns reason: 'socket-name' is invalid: socket path:/var/run/kea does not exist or does not have permssions = 750
Dirk Brenken [Sun, 18 Jan 2026 22:34:19 +0000 (23:34 +0100)]
adblock: release 4.5.0-1
* added firewall rules based on nftables in a separate isolated nftables table (inet adblock)
and chains (prerouting), with MAC addresses stored in an nftables set.
Implemented the following firewall‑integrated features:
* external DNS Routing (unfiltered): routes DNS queries from selected devices or interfaces
to an external unfiltered DNS resolver
* external DNS Routing (filtered): routes DNS queries from selected devices or interfaces
to an external filtered DNS resolver
* force DNS: blocks or redirects all external DNS traffic from selected interfaces
to ensure that clients use the local resolver
* removed the optional generation of an additional jail list (only supported bydnsmasq),
use the new, resolver independent ext. DNS routing instead
* removed the pz-client-ip feature (only supported by bind),
use the new, resolver independent ext. DNS routing instead
* removed the obsolete, hardcoded fw4 rules for DNS enforcement
existing rules will be removed via uci-defaults script after adblock update
* changed the Jail mode to a simple allowlist-only mode
* fixed minor issues in the mail template
* readme update
* LuCI: added a new config tab "Firewall Settings"
* LuCI: fixed minor usability issues
For items which are only copied from the source code, avoid the
prepare, configure, and compile steps, while preserving the special
behaviour of the mac80211 addon, which has a unique prepare and
compile.
Avoid unnecessary duplication on zabbix-agentd package definitions by
using a common zabbix-agentd/Default and extending it for different
zabbix-agentd flavours.
Wei-Ting Yang [Fri, 9 Jan 2026 12:14:24 +0000 (20:14 +0800)]
coreutils: patch possible infinite loop with SEEK_HOLE
cp, install, and mv no longer enter an infinite loop copying sparse files
with SEEK_HOLE. E.g., this was seen on ext4 when copying sparse files with
extents that are being actively updated, and copy offload is not being used.
Wei-Ting Yang [Thu, 8 Jan 2026 04:50:46 +0000 (12:50 +0800)]
bash: update to 5.3 patch level 9
- Fix posix-mode issue with "wait -n", where it can return process IDs
outside the requested set
- Do not try to use shm_open, there is too much variance in behavior
across systems
- Remove internal quoting that causes failures when expanding nested
array subscripts in an arithmetic context
- Fix issue with source when read(2) returns fewer characters than
fstat(2) says are available
- Fix crash when restoring default disposition for SIGINT in
asynchronous subshell
- Fix issues with range expressions and non-ascii characters in glob
patterns when globasciiranges is enabled
- Fix issue where nofork command substitutions can affect
redirections in the calling shell
- Fix issue with calling mbrtowc too much when translating
ansic-single-quoted strings
- Fix crash when interrupting reverse i-search with ^C
* Add a needed BUILD_DEPENDENCY on icu package, when PHP8_INTL is
defined.
* Make PHP8_DOM selecting PHP8_LIBXML instead of depending on it.
* PHP8_INTL does not depend on PHP8_GETTEXT, it builds also
without gettext.
* Always show option for choosing PHP8_FULLUCIDATA
* For php8-cgi, php-cli, etc, a libstdcpp dependency is only gained
when PHP8_INTL is selected, therefore update those conditional depends.
As some combinations of these changes can change the binaries output,
PKG_RELEASE has been bumped.
Signed-off-by: Daniel F. Dickinson <redacted> Signed-off-by: Michael Heimpold <redacted>
xmlreader was selecting package php8-mod-dom as well as depending on
PHP8_DOM, while php8-mod-dom also depended on PHP8_DOM (and therefore
selected PHP8_DOM when php8-mod-dom was selected). This is a Kconfig
recursive dependency, so break the recursion by noting that because
php8-mod-xmlreader selects php8-mod-dom, PHP8_DOM is a transitive
depends, so php8-mod-xmlreader should not depend on PHP8_DOM itself.
Adds an initscript for zabbix_server, and related helper files
+ uses a zabbix_server uci conf to enable/disable startup
+ updates the default zabbix_server.conf to work with initscript
+ add a sysctl.d conf to set max-files more appropriate for zabbix_server
Addresses the issue pointed out in #28165, which is that zabbix_agentd
always creates a PidFile and has no option to disable PidFile creation.
Therefore update the configuration file to default to create a PidFile
where we want it.
We are pleased to announce the release of Unicode® ICU 78.2. It updates to CLDR 48.1. These are maintenance releases for ICU 78 and CLDR 48, with limited sets of bug fixes and no API or structural changes.
ICU 78.2 also includes a small number of bug fixes, as well as a minor update for time zone data (tzdata) version 2025c (2025-dec) ICU-23296.
Andrea Ferro [Mon, 12 Jan 2026 14:10:01 +0000 (15:10 +0100)]
ddns-scripts: add apertodns.com-token to provider list
Add missing provider entry for apertodns.com-token.
The service configuration (apertodns.com-token.json) was already
merged in PR #28160, but the provider list entry was missing.
Dirk Brenken [Mon, 12 Jan 2026 21:59:19 +0000 (22:59 +0100)]
banip: release 1.8.0-1
* hardened the uci config parsing
* added a fast, flexible & secure IPv4/IPv6 validator function, it eliminates > 99 % of garbage inputs
Please note: The ‘rule’ in the feed file now only contains parameters for the IP validator;
details can be found in the readme file. Old custom feed files are not compatible and will be
backed up/removed via the uci-defaults script
* added BCP38 support: to block packets with spoofed source IP addresses in all supported chains
* optimized the log monitor plus performance improvements
* removed the pallebone feed (discontinued)
* added the ipexdbl feed
* various small improvements
* LuCI: add the BC38 option under Table/Chain Settings
* LuCI: updating the custom feed editor
* LuCI: small usability improvements
* readme update
Michael Gray [Sat, 10 Jan 2026 04:42:36 +0000 (15:42 +1100)]
miniupnpd: enable IPv6 leases file
Introduces the IPv6 Leases file by default. This file will display active IPv6 leases requested under the IPv6 PCP (Port Control Protocol) a.k.a IPv6 Pinholes.
miniupnpd must be compiled with ENABLE_UPNPPINHOLE set for this to take effect. This is taken care of currently by setting CONFIG_IPV6.
The lease file looks something like
Proto;ClientIP;ClientPort;RemoteIP;RemotePort;UID;Timestamp;Description
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.