From b22fce1522410970dfc517e079db671a4c425282 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 13 Nov 2025 21:23:45 +0800 Subject: [PATCH 01/37] ecdsautils: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- .../patches/010-Fix-build-with-CMake-4.patch | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch diff --git a/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch b/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch new file mode 100644 index 00000000000000..4e946bfad9e08c --- /dev/null +++ b/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch @@ -0,0 +1,138 @@ +From 19f096f9c10264f4efe4b926fe83126e85642cba Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 1 Sep 2025 10:21:38 +0200 +Subject: [PATCH] Fix build with CMake 4 + +CMake 4 dropped support for policies which were introduced before version +3.5. Trying to build uisng cmake 4 results in: + + Compatibility with CMake < 3.5 has been removed from CMake. + + Update the VERSION argument value. Or, use the ... syntax + to tell CMake that the project requires at least but has been updated + to work with policies introduced by or earlier. + + Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway. + +Just increasing minimum version to 3.18 (from 2020-07-15) fixes this +problem. This version is low enough to still support Debian bullseye or +Ubuntu 22.04. + +With this version increase, following policies are enabled + +* 3.18 + - CMP0108: A target cannot link to itself through an alias. + - CMP0107: An ALIAS target cannot overwrite another target. + - CMP0106: The Documentation module is removed. + - CMP0105: Device link step uses the link options. + - CMP0104: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. + - CMP0103: Multiple export() with same FILE without APPEND is not allowed. +* 3.17 + - CMP0102: mark_as_advanced() does nothing if a cache entry does not exist. + - CMP0101: target_compile_options honors BEFORE keyword in all scopes. + - CMP0100: Let AUTOMOC and AUTOUIC process .hh header files. + - CMP0099: Link properties are transitive over private dependencies of static libraries. + - CMP0098: FindFLEX runs flex in CMAKE_CURRENT_BINARY_DIR when executing. +* 3.16 + - CMP0097: ExternalProject_Add with GIT_SUBMODULES "" initializes no submodules. + - CMP0096: project() preserves leading zeros in version components. + - CMP0095: RPATH entries are properly escaped in the intermediary CMake install script. +* 3.15 + - CMP0094: FindPython3, FindPython2 and FindPython use LOCATION for lookup strategy. + - CMP0093: FindBoost reports Boost_VERSION in x.y.z format. + - CMP0092: MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. + - CMP0091: MSVC runtime library flags are selected by an abstraction. + - CMP0090: export(PACKAGE) does not populate package registry by default. + - CMP0089: Compiler id for IBM Clang-based XL compilers is now XLClang. +* 3.14 + - CMP0088: FindBISON runs bison in CMAKE_CURRENT_BINARY_DIR when executing. + - CMP0087: install(SCRIPT | CODE) supports generator expressions. + - CMP0086: UseSWIG honors SWIG_MODULE_NAME via -module flag. + - CMP0085: IN_LIST generator expression handles empty list items. + - CMP0084: The FindQt module does not exist for find_package(). + - CMP0083: Add PIE options when linking executable. + - CMP0082: Install rules from add_subdirectory() are interleaved with those in caller. +* 3.13 + - CMP0081: Relative paths not allowed in LINK_DIRECTORIES target property. + - CMP0080: BundleUtilities cannot be included at configure time. + - CMP0079: target_link_libraries allows use with targets in other directories. + - CMP0078: UseSWIG generates standard target names. + - CMP0077: option() honors normal variables. + - CMP0076: target_sources() command converts relative paths to absolute. +* 3.12 + - CMP0075: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. + - CMP0074: find_package uses PackageName_ROOT variables. + - CMP0073: Do not produce legacy _LIB_DEPENDS cache entries. +* 3.11 + - CMP0072: FindOpenGL prefers GLVND by default when available. +* 3.10 + - CMP0071: Let AUTOMOC and AUTOUIC process GENERATED files. + - CMP0070: Define file(GENERATE) behavior for relative paths. +* 3.9 + - CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. + - CMP0068: RPATH settings on macOS do not affect install_name. +* 3.8 + - CMP0067: Honor language standard in try_compile() source-file signature. +* 3.7 + - CMP0066: Honor per-config flags in try_compile() source-file signature. +* 3.4 + - CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. + - CMP0064: Support new TEST if() operator. +* 3.3 + - CMP0063: Honor visibility properties for all target types. + - CMP0062: Disallow install() of export() result. + - CMP0061: CTest does not by default tell make to ignore errors (-i). + - CMP0060: Link libraries by full path even in implicit directories. + - CMP0059: Do not treat DEFINITIONS as a built-in directory property. + - CMP0058: Ninja requires custom command byproducts to be explicit. + - CMP0057: Support new IN_LIST if() operator. +* 3.2 + - CMP0056: Honor link flags in try_compile() source-file signature. + - CMP0055: Strict checking for break() command. +* 3.1 + - CMP0054: Only interpret if() arguments as variables or keywords when unquoted. + - CMP0053: Simplify variable reference and escape sequence evaluation. + - CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. + - CMP0051: List TARGET_OBJECTS in SOURCES target property. +* 3.0 + - CMP0050: Disallow add_custom_command SOURCE signatures. + - CMP0049: Do not expand variables in target source entries. + - CMP0048: project() command manages VERSION variables. + - CMP0047: Use QCC compiler id for the qcc drivers on QNX. + - CMP0046: Error on non-existent dependency in add_dependencies. + - CMP0045: Error on non-existent target in get_target_property. + - CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. + - CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. + - CMP0042: MACOSX_RPATH is enabled by default. + - CMP0041: Error on relative include with generator expression. + - CMP0040: The target in the TARGET signature of add_custom_command() must exist. + - CMP0039: Utility targets may not have link dependencies. + - CMP0038: Targets may not link directly to themselves. + - CMP0037: Target names should not be reserved and should match a validity pattern. + - CMP0036: The build_name command should not be called. + - CMP0035: The variable_requires command should not be called. + - CMP0034: The utility_source command should not be called. + - CMP0033: The export_library_dependencies command should not be called. + - CMP0032: The output_required_files command should not be called. + - CMP0031: The load_command command should not be called. + - CMP0030: The use_mangled_mesa command should not be called. + - CMP0029: The subdir_depends command should not be called. + - CMP0028: Double colon in target name means ALIAS or IMPORTED target. + - CMP0027: Conditionally linked imported targets with missing include directories. + - CMP0026: Disallow use of the LOCATION target property. + - CMP0025: Compiler id for Apple Clang is now AppleClang. + - CMP0024: Disallow include export result. + +Signed-off-by: Sven Eckelmann +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8.3) ++cmake_minimum_required(VERSION 3.18) + project(ECDSAUTIL C) + set(ECDSAUTIL_VERSION 0.4.2) + From 1a1c0d07a9e70d781eb75ca7f99f4f64430ad26c Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Fri, 14 Nov 2025 22:00:14 +0100 Subject: [PATCH 02/37] travelmate: update 2.2.1-6 - rework the iw device detection in the scan function - remove any limits from the radio selection - control the reverse radio processing order with a separate option 'trm_revradio' - tweak a few (debug) log statements - LuCI updates (separate commit) - readme update Signed-off-by: Dirk Brenken --- net/travelmate/Makefile | 2 +- net/travelmate/files/README.md | 3 +- net/travelmate/files/travelmate.init | 53 +++++++++++------------- net/travelmate/files/travelmate.sh | 60 +++++++++++++--------------- 4 files changed, 54 insertions(+), 64 deletions(-) diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile index 9357d97f5bc882..5fe39b42ef29a8 100644 --- a/net/travelmate/Makefile +++ b/net/travelmate/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=travelmate PKG_VERSION:=2.2.1 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/travelmate/files/README.md b/net/travelmate/files/README.md index 8c024cc3894c16..b6f36ed830d185 100644 --- a/net/travelmate/files/README.md +++ b/net/travelmate/files/README.md @@ -92,7 +92,8 @@ automatically (re)connnects to configured APs/hotspots as they become available. | trm_debug | 0, disabled | set to 1 to get the full debug output (logread -e "trm-") | | trm_iface | -, not set | uplink- and procd trigger network interface, configured by the 'Interface Wizard' | | trm_laniface | -, lan | logical LAN network interface, default is 'lan' | -| trm_radio | -, not set | restrict travelmate to a single radio or change the overall scanning order ('radio1 radio0') | +| trm_radio | -, not set | restrict travelmate to certain radio(s) | +| trm_revradio | 0, disabled | change the radio processing order, e.g. 'radio1 radio0' | | trm_scanmode | -, active | send active probe requests or passively listen for beacon frames with 'passive' | | trm_captive | 1, enabled | check the internet availability and handle captive portal redirections | | trm_netcheck | 0, disabled | treat missing internet availability as an error | diff --git a/net/travelmate/files/travelmate.init b/net/travelmate/files/travelmate.init index a5bf899de1b11f..d245dcb48a1f4e 100755 --- a/net/travelmate/files/travelmate.init +++ b/net/travelmate/files/travelmate.init @@ -76,39 +76,32 @@ status_service() { } scan() { - local result scan_dev scan_mode radio_num radio_phy radio="${1}" + local result scan_dev scan_mode radio_num radio_phy radio="${1:-"radio0"}" - scan_dev="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -ql1 -e "@.${radio}.interfaces[0].ifname")" + radio_num="${radio//[a-z]/}" + radio_phy="phy${radio_num}" + scan_mode="$(uci_get travelmate global trm_scanmode "active")" + [ "${scan_mode}" != "passive" ] && scan_mode="" + + scan_dev="$(iw dev | awk -v phy="${radio_phy}" '/Interface/{iface=$2} /type/{if(($2=="AP"||$2=="managed")&&iface ~ "^"phy"-"){printf"%s",iface;exit}}')" if [ -z "${scan_dev}" ]; then - radio_num="${radio//[a-z]/}" - radio_phy="phy#${radio_num}" - scan_dev="$(iw dev 2>/dev/null | awk -v iw_phy="${radio_phy}" '{if($0==iw_phy){inside=1;next}if(inside&&/^phy#/){exit}if(inside&&$1=="Interface"){print $2;exit}}')" - if [ -z "${scan_dev}" ]; then - if iw phy "phy${radio_num}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1; then - if ip link set "trmscan${radio_num}" up >/dev/null 2>&1; then - scan_dev="trmscan${radio_num}" - fi - fi - fi - fi - if [ -n "${scan_dev}" ]; then - scan_mode="$(uci_get travelmate global trm_scanmode "active")" - [ "${scan_mode}" != "passive" ] && scan_mode="" - result="$(iw dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | - awk '/^BSS /{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid};signal="";channel="";rsn="-";wpa="-";cipher="-";auth="-";ssid="";bssid=toupper(substr($2,1,17))} - /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} - /SSID:/{$1="";sub(/^ /,"",$0);ssid=$0} - /freq:/{channel=int($2);if(channel>=2400&&channel<=2500)channel=int((channel-2407)/5);else if(channel>=4900&&channel<=5900)channel=int((channel-5000)/5);else if(channel>=5925&&channel<=7125)channel=int(((channel-5950)/5)+1)} - /WPA:/{wpa="+"} - /RSN:/{rsn="+"} - /Group cipher:/{cipher=$4} - /Authentication suites:/{auth="";for(i=4;i<=NF;i++){auth=auth (i==4?"":",")$i}} - END{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)" - printf "%b\n" "${result}" > "${trm_scanfile}" - else - : > "${trm_scanfile}" + iw phy "${radio_phy}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1 + ip link set "trmscan${radio_num}" up >/dev/null 2>&1 + scan_dev="trmscan${radio_num}" fi - if [ -n "${radio_phy}" ] && [ -n "${radio_num}" ]; then + result="$(iw dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | + awk '/^BSS /{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid};signal="";channel="";rsn="-";wpa="-";cipher="-";auth="-";ssid="";bssid=toupper(substr($2,1,17))} + /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} + /SSID:/{$1="";sub(/^ /,"",$0);ssid=$0} + /freq:/{channel=int($2);if(channel>=2400&&channel<=2500)channel=int((channel-2407)/5);else if(channel>=4900&&channel<=5900)channel=int((channel-5000)/5);else if(channel>=5925&&channel<=7125)channel=int(((channel-5950)/5)+1)} + /WPA:/{wpa="+"} + /RSN:/{rsn="+"} + /Group cipher:/{cipher=$4} + /Authentication suites:/{auth="";for(i=4;i<=NF;i++){auth=auth (i==4?"":",")$i}} + END{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)" + [ -n "${result}" ] && printf "%b\n" "${result}" > "${trm_scanfile}" || : > "${trm_scanfile}" + + if [ "${scan_dev}" = "trmscan${radio_num}" ]; then ip link set "trmscan${radio_num}" down >/dev/null 2>&1 iw dev "trmscan${radio_num}" del >/dev/null 2>&1 fi diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh index 0b6b614157b04f..70504b31d29df3 100755 --- a/net/travelmate/files/travelmate.sh +++ b/net/travelmate/files/travelmate.sh @@ -28,6 +28,7 @@ trm_maxwait="30" trm_maxautoadd="5" trm_timeout="60" trm_radio="" +trm_revradio="0" trm_scanmode="active" trm_connection="" trm_ssidfilter="" @@ -475,7 +476,7 @@ f_setdev() { if { [ -z "${trm_radio}" ] && ! printf "%s" "${trm_radiolist}" | "${trm_grepcmd}" -q "${radio}"; } || { [ -n "${trm_radio}" ] && printf "%s" "${trm_radio}" | "${trm_grepcmd}" -q "${radio}"; }; then - if [ -n "${trm_radio}" ] && [ "${trm_radio}" = "radio1 radio0" ]; then + if [ "${trm_revradio}" = "1" ]; then trm_radiolist="$(f_trim "${radio} ${trm_radiolist}")" else trm_radiolist="$(f_trim "${trm_radiolist} ${radio}")" @@ -485,7 +486,7 @@ f_setdev() { uci_set wireless "${radio}" "disabled" "0" fi fi - f_log "debug" "f_setdev ::: radio: ${radio:-"-"}, radio_conf: ${trm_radio:-"-"}, radio_list: ${trm_radiolist:-"-"}, disabled: ${disabled:-"-"}" + f_log "debug" "f_setdev ::: device: ${radio:-"-"}, radio: ${trm_radio:-"-"}, radio_list: ${trm_radiolist:-"-"}, disabled: ${disabled:-"-"}" } # set 'wifi-iface' sections @@ -732,11 +733,15 @@ f_check() { else ifname="$(printf "%s" "${dev_status}" | "${trm_jsoncmd}" -ql1 -e '@.*.interfaces[@.config.mode="sta"].ifname')" if [ -n "${ifname}" ] && [ "${enabled}" = "1" ]; then - trm_ifquality="$("${trm_iwcmd}" dev "${ifname}" link 2>/dev/null | "${trm_awkcmd}" '/signal: /{printf "%s",2*($2+100)}')" + trm_ifquality="$("${trm_iwcmd}" dev "${ifname}" link 2>/dev/null | "${trm_awkcmd}" '/signal:/ {val=2*($2+100); printf "%s", (val>100 ? 100 : val)}')" if [ -z "${trm_ifquality}" ]; then trm_ifstatus="$("${trm_ubuscmd}" -S call network.interface dump 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.interface[@.device=\"${ifname}\"].up")" if { [ -n "${trm_connection}" ] && [ "${trm_ifstatus}" = "false" ]; } || [ "${wait_time}" -eq "${trm_maxwait}" ]; then - f_log "info" "no signal from uplink" + if [ -n "${trm_connection}" ] && [ "${trm_ifstatus}" = "false" ]; then + f_log "info" "no signal from uplink" + else + f_log "info" "uplink connection could not be established after ${trm_maxwait} seconds" + fi f_vpn "disable" trm_connection="" trm_ifstatus="${status}" @@ -824,7 +829,7 @@ f_check() { break fi done - f_log "debug" "f_check ::: mode: ${mode}, name: ${ifname:-"-"}, status: ${trm_ifstatus}, enabled: ${enabled}, connection: ${trm_connection:-"-"}, wait: ${wait_time}, max_wait: ${trm_maxwait}, min_quality: ${trm_minquality}, captive: ${trm_captive}, netcheck: ${trm_netcheck}" + f_log "debug" "f_check ::: mode: ${mode}, name: ${ifname:-"-"}, status: ${trm_ifstatus}, enabled: ${enabled}, connection: ${trm_connection:-"-"}, wait: ${wait_time}, max_wait: ${trm_maxwait}, min_quality/quality: ${trm_minquality}/${trm_ifquality:-"-"}, captive: ${trm_captive}, netcheck: ${trm_netcheck}" } # update runtime information @@ -974,38 +979,29 @@ f_main() { f_log "debug" "f_main-5 ::: sta_radio: ${sta_radio}, sta_essid: \"${sta_essid}\", sta_bssid: ${sta_bssid:-"-"}" fi if [ -z "${scan_list}" ]; then - scan_dev="$("${trm_ubuscmd}" -S call network.wireless status 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.${radio}.interfaces[0].ifname")" + radio_num="${radio//[a-z]/}" + radio_phy="phy${radio_num}" + [ "${trm_scanmode}" != "passive" ] && scan_mode="" + + scan_dev="$("${trm_iwcmd}" dev | "${trm_awkcmd}" -v phy="${radio_phy}" '/Interface/{iface=$2} /type/{if(($2=="AP"||$2=="managed")&&iface ~ "^"phy"-"){printf"%s",iface;exit}}')" if [ -z "${scan_dev}" ]; then - radio_num="${radio//[a-z]/}" - radio_phy="phy#${radio_num}" - scan_dev="$("${trm_iwcmd}" dev 2>/dev/null | "${trm_awkcmd}" -v iw_phy="${radio_phy}" '{if($0==iw_phy){inside=1;next}if(inside&&/^phy#/){exit}if(inside&&$1=="Interface"){print $2;exit}}')" - if [ -z "${scan_dev}" ]; then - if "${trm_iwcmd}" phy "phy${radio_num}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1; then - if "${trm_ipcmd}" link set "trmscan${radio_num}" up >/dev/null 2>&1; then - scan_dev="trmscan${radio_num}" - fi - fi - fi + "${trm_iwcmd}" phy "${radio_phy}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1 + "${trm_ipcmd}" link set "trmscan${radio_num}" up >/dev/null 2>&1 + scan_dev="trmscan${radio_num}" fi - if [ -n "${scan_dev}" ]; then - [ "${trm_scanmode}" != "passive" ] && scan_mode="" - scan_list="$(printf "%b" "$("${trm_iwcmd}" dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | - "${trm_awkcmd}" '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid};bssid=toupper(substr($2,1,17));ssid="";signal="";rsn="-";wpa="-"} - /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} - /SSID:/{$1="";sub(/^ /,"",$0);ssid="\""$0"\""} - /WPA:/{wpa="+"} - /RSN:/{rsn="+"} - END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid}}' | "${trm_sortcmd}" -rn)")" - f_log "debug" "f_main-6 ::: radio: ${radio}, scan_device: ${scan_dev}, scan_mode: ${trm_scanmode:-"active"}, scan_cnt: $(printf "%s" "${scan_list}" | "${trm_grepcmd}" -c "^")" - fi - if [ -n "${radio_phy}" ] && [ -n "${radio_num}" ]; then + scan_list="$(printf "%b" "$("${trm_iwcmd}" dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | + "${trm_awkcmd}" '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid};bssid=toupper(substr($2,1,17));ssid="";signal="";rsn="-";wpa="-"} + /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} + /SSID:/{$1="";sub(/^ /,"",$0);ssid="\""$0"\""} + /WPA:/{wpa="+"} + /RSN:/{rsn="+"} + END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid}}' | "${trm_sortcmd}" -rn)")" + f_log "debug" "f_main-6 ::: radio: ${radio}, scan_device: ${scan_dev}, scan_mode: ${trm_scanmode:-"active"}, scan_cnt: $(printf "%s" "${scan_list}" | "${trm_grepcmd}" -c "^")" + + if [ "${scan_dev}" = "trmscan${radio_num}" ]; then "${trm_ipcmd}" link set "trmscan${radio_num}" down >/dev/null 2>&1 "${trm_iwcmd}" dev "trmscan${radio_num}" del >/dev/null 2>&1 fi - if [ -z "${scan_dev}" ]; then - f_log "info" "no scan device on '${radio}'" - continue 2 - fi if [ -z "${scan_list}" ]; then f_log "info" "no scan results on '${radio}'" continue 2 From 9813aded124e20a38a850f650e5a23afe7e955d9 Mon Sep 17 00:00:00 2001 From: John Audia Date: Fri, 14 Nov 2025 19:18:32 -0500 Subject: [PATCH 03/37] iperf3: update to 3.20 Update to latest upstream release. Changelog: https://github.com/esnet/iperf/releases/tag/3.20 Build system: x86/64 Build-tested: x86/64-glibc Run-tested: x86/64-glibc Signed-off-by: John Audia --- net/iperf3/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/iperf3/Makefile b/net/iperf3/Makefile index c99b8c5770be7a..4bd3f7e9d2d42a 100644 --- a/net/iperf3/Makefile +++ b/net/iperf3/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iperf -PKG_VERSION:=3.19.1 +PKG_VERSION:=3.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.es.net/pub/iperf -PKG_HASH:=dc63f89ec581ea99f8b558d8eb35109de06383010db5a1906c208a562ba0c270 +PKG_HASH:=3acc572d1ecca4e0b20359c7bf0132ddc80d982efeee20c86f6726a9a6094388 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause From ae8e14e8cd4ceb38972f63f272f470a22d8d5543 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Fri, 14 Nov 2025 09:27:31 +0100 Subject: [PATCH 04/37] msmtp: update to version 1.8.32 Release notes: https://marlam.de/msmtp/news/msmtp-1-8-32/ Signed-off-by: Josef Schlehofer --- mail/msmtp/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail/msmtp/Makefile b/mail/msmtp/Makefile index bd069fbad46717..94032bcdbe2ff9 100644 --- a/mail/msmtp/Makefile +++ b/mail/msmtp/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=msmtp -PKG_VERSION:=1.8.31 +PKG_VERSION:=1.8.32 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://marlam.de/msmtp/releases -PKG_HASH:=c262b11762d8582a3c6d6ca8d8b2cca2b1605497324ca27cc57fdc145a27119f +PKG_HASH:=20cd58b58dd007acf7b937fa1a1e21f3afb3e9ef5bbcfb8b4f5650deadc64db4 PKG_MAINTAINER:= PKG_LICENSE:=GPL-3.0-or-later From 98391be841dea2ffb9a892b7be7805b79ccaca4e Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Sat, 15 Nov 2025 04:43:55 +0200 Subject: [PATCH 05/37] zmq: add cmake 4.x compatibility Add upstream patches. Signed-off-by: George Sapkin --- libs/zmq/Makefile | 2 +- libs/zmq/patches/029-cmake-1.patch | 36 +++++++++++++++++++++++ libs/zmq/patches/030-cmake-2.patch | 47 ++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 libs/zmq/patches/029-cmake-1.patch create mode 100644 libs/zmq/patches/030-cmake-2.patch diff --git a/libs/zmq/Makefile b/libs/zmq/Makefile index c9dccd0a7b3d50..d8d30e7930b521 100644 --- a/libs/zmq/Makefile +++ b/libs/zmq/Makefile @@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zeromq PKG_VERSION:=4.3.5 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/zeromq/libzmq/releases/download/v$(PKG_VERSION) diff --git a/libs/zmq/patches/029-cmake-1.patch b/libs/zmq/patches/029-cmake-1.patch new file mode 100644 index 00000000000000..d7e2e4f94dffca --- /dev/null +++ b/libs/zmq/patches/029-cmake-1.patch @@ -0,0 +1,36 @@ +From 34f7fa22022bed9e0e390ed3580a1c83ac4a2834 Mon Sep 17 00:00:00 2001 +From: rp42 +Date: Mon, 30 Dec 2024 11:01:39 +0000 +Subject: [PATCH] cmake_minimum_required() before project() + + * Without this CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded (MT) Windows builds still produced incompatible MultiThreadedDLL (MD) output. + + * Resolves following warning: + +CMake Warning (dev) at CMakeLists.txt:2 (project): + cmake_minimum_required() should be called prior to this top-level project() + call. + + * Use ${CMAKE_HOST_SYSTEM_NAME} as ${CMAKE_SYSTEM_NAME} not set before project(). +--- + CMakeLists.txt | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,12 +1,13 @@ + # CMake build script for ZeroMQ +-project(ZeroMQ) + +-if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) ++if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL Darwin) + cmake_minimum_required(VERSION 3.0.2) + else() + cmake_minimum_required(VERSION 2.8.12) + endif() + ++project(ZeroMQ) ++ + include(CheckIncludeFiles) + include(CheckCCompilerFlag) + include(CheckCXXCompilerFlag) diff --git a/libs/zmq/patches/030-cmake-2.patch b/libs/zmq/patches/030-cmake-2.patch new file mode 100644 index 00000000000000..24f0ff78489ccc --- /dev/null +++ b/libs/zmq/patches/030-cmake-2.patch @@ -0,0 +1,47 @@ +From b91a6201307b72beb522300366aad763d19b1456 Mon Sep 17 00:00:00 2001 +From: Min RK +Date: Thu, 20 Mar 2025 14:51:18 +0100 +Subject: [PATCH] set upper bound in cmake_minimum_required + +setting an upper bound improves forward-compatibility as legacy version support is dropped + +- 3.5 compat is deprecated in 3.27 (2023), removed in 4.0 (2025) +- 3.10 compat is deprecated in 3.31 (2024) +--- + CMakeLists.txt | 4 ++-- + tests/CMakeLists.txt | 2 +- + unittests/CMakeLists.txt | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,9 +1,9 @@ + # CMake build script for ZeroMQ + + if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL Darwin) +- cmake_minimum_required(VERSION 3.0.2) ++ cmake_minimum_required(VERSION 3.0.2...3.31) + else() +- cmake_minimum_required(VERSION 2.8.12) ++ cmake_minimum_required(VERSION 2.8.12...3.31) + endif() + + project(ZeroMQ) +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -1,5 +1,5 @@ + # CMake build script for ZeroMQ tests +-cmake_minimum_required(VERSION "2.8.1") ++cmake_minimum_required(VERSION 2.8.1...3.31) + + # On Windows: solution file will be called tests.sln + project(tests) +--- a/unittests/CMakeLists.txt ++++ b/unittests/CMakeLists.txt +@@ -1,5 +1,5 @@ + # CMake build script for ZeroMQ unit tests +-cmake_minimum_required(VERSION "2.8.1") ++cmake_minimum_required(VERSION 2.8.1...3.31) + + set(unittests + unittest_ypipe From 13ea3654c3343361157e87d4128b555c58dff4c4 Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Fri, 14 Nov 2025 19:27:51 -0700 Subject: [PATCH 06/37] isc-dhcp: Missing trailing dot on SRV RRs When generating SRV RRs we're omitting the trailing dot that roots the domain. Signed-off-by: Philip Prindeville --- net/isc-dhcp/Makefile | 2 +- net/isc-dhcp/files/dhcpd.init | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net/isc-dhcp/Makefile b/net/isc-dhcp/Makefile index f4486423144abf..6ee6b90009a864 100644 --- a/net/isc-dhcp/Makefile +++ b/net/isc-dhcp/Makefile @@ -11,7 +11,7 @@ PKG_NAME:=isc-dhcp UPSTREAM_NAME:=dhcp PKG_REALVERSION:=4.4.3-P1 PKG_VERSION:=4.4.3_p1 -PKG_RELEASE:=11 +PKG_RELEASE:=12 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/net/isc-dhcp/files/dhcpd.init b/net/isc-dhcp/files/dhcpd.init index 5b5f2b4e037970..b6e454cc546764 100755 --- a/net/isc-dhcp/files/dhcpd.init +++ b/net/isc-dhcp/files/dhcpd.init @@ -318,7 +318,7 @@ static_srvhost_add() { config_get weight "$cfg" "weight" [ -n "$weight" ] || return 0 - update "$srv.$domain." IN SRV "$priority" "$weight" "$port" "$target.$domain" + update "$srv.$domain." IN SRV "$priority" "$weight" "$port" "$target.$domain." } static_srvhosts() { From 8efcd79a690328a7b540379c268f591a9b464089 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 13 Nov 2025 22:11:39 +0800 Subject: [PATCH 07/37] luv: Update to 1.51.0-1 Changelog: - https://github.com/luvit/luv/releases/tag/1.41.0-0 - https://github.com/luvit/luv/releases/tag/1.41.1-0 - https://github.com/luvit/luv/releases/tag/1.42.0-0 - https://github.com/luvit/luv/releases/tag/1.42.0-1 - https://github.com/luvit/luv/releases/tag/1.43.0-0 - https://github.com/luvit/luv/releases/tag/1.44.2-0 - https://github.com/luvit/luv/releases/tag/1.44.2-1 - https://github.com/luvit/luv/releases/tag/1.45.0-0 - https://github.com/luvit/luv/releases/tag/1.46.0-0 - https://github.com/luvit/luv/releases/tag/1.47.0-0 - https://github.com/luvit/luv/releases/tag/v1.48.0-0 - https://github.com/luvit/luv/releases/tag/1.48.0-1 - https://github.com/luvit/luv/releases/tag/v1.50.0-0 - https://github.com/luvit/luv/releases/tag/1.50.0-1 - https://github.com/luvit/luv/releases/tag/1.51.0-0 - https://github.com/luvit/luv/releases/tag/1.51.0-1 Signed-off-by: Tianling Shen --- lang/luv/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/luv/Makefile b/lang/luv/Makefile index bf9cfeca612742..cf9f1dd93645a3 100644 --- a/lang/luv/Makefile +++ b/lang/luv/Makefile @@ -1,15 +1,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luv -PKG_REAL_VERSION:=1.40.0-0 +PKG_REAL_VERSION:=1.51.0-1 PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION)) -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/luvit/luv/releases/download/$(PKG_REAL_VERSION) -PKG_HASH:=24473a081c3928eec2a352369cbafda97059574f4a4276861274473e7c7d17a0 +PKG_HASH:=dc706d9141c185bdce08b6fc8a9d4df05c3ac3676809ee4e9e37e1553d821237 -PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) PKG_MAINTAINER:=Morteza Milani PKG_LICENSE:=Apache-2.0 @@ -55,7 +55,7 @@ endef define Package/luv/install $(INSTALL_DIR) $(1)/usr/lib/lua - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so.1.40.0 $(1)/usr/lib/lua/luv.so + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so.1.51.0 $(1)/usr/lib/lua/luv.so endef From ecce493e586f93c8d53e864db5a2f773ce3791c8 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 18:00:03 +0800 Subject: [PATCH 08/37] zlog: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- .../011-upgrade-cmake-minimum-version.patch | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 libs/zlog/patches/011-upgrade-cmake-minimum-version.patch diff --git a/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch b/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch new file mode 100644 index 00000000000000..43349ec6c19a9b --- /dev/null +++ b/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch @@ -0,0 +1,20 @@ +From 3715879775f725260aeda14f94887bbc7a007e29 Mon Sep 17 00:00:00 2001 +From: haydenZhou +Date: Sun, 8 Jun 2025 10:45:05 +0800 +Subject: [PATCH] upgrade cmake minimum version + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + # create by lsm + # cmake + +-cmake_minimum_required(VERSION 2.8.5) ++cmake_minimum_required(VERSION 3.12) + + message(STATUS "path : ${CMAKE_FIND_ROOT_PATH}") + project(zlog) From 79313818a9bb141c329a8d8650f87b1645001071 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 18:11:59 +0800 Subject: [PATCH 09/37] zlog: remove absent maintainer Remove inactive maintainer. Signed-off-by: Tianling Shen --- libs/zlog/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/zlog/Makefile b/libs/zlog/Makefile index cfca1fc7b0174c..e4505706ddbb24 100644 --- a/libs/zlog/Makefile +++ b/libs/zlog/Makefile @@ -2,14 +2,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zlog PKG_VERSION:=1.2.17 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/HardySimpson/zlog PKG_SOURCE_VERSION:=$(PKG_VERSION) PKG_MIRROR_HASH:=501d89c6883de14e8e6c53e1597f425814b3b467b31da04c50390d4924efecf3 -PKG_MAINTAINER:=Marko Ratkaj +PKG_MAINTAINER:= PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:zlog_project:zlog From c5bb72a2294d94668c30dcfad0407738a15a74b2 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 17:38:29 +0800 Subject: [PATCH 10/37] czmq: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- ...om-zproject-to-update-cmakelists-txt.patch | 363 ++++++++++++++++++ ...sts-txt-broken-since-CMake-4-support.patch | 79 ++++ 2 files changed, 442 insertions(+) create mode 100644 libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch create mode 100644 libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch diff --git a/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch b/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch new file mode 100644 index 00000000000000..3724cce65f0978 --- /dev/null +++ b/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch @@ -0,0 +1,363 @@ +From 00d7750304f1c144f47225274b22ea8d638641ed Mon Sep 17 00:00:00 2001 +From: Arnaud Loonstra +Date: Fri, 6 Jun 2025 09:27:05 +0200 +Subject: [PATCH] regen from zproject to update cmakelists.txt + +--- + CMakeLists.txt | 152 +++++-------------- + bindings/jni/czmq-jni/CMakeLists.txt | 2 +- + bindings/jni/czmq-jni/android/CMakeLists.txt | 2 +- + configure.ac | 12 ++ + 4 files changed, 55 insertions(+), 113 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,12 +6,13 @@ + ######################################################################## + # Project setup + ######################################################################## +-cmake_minimum_required(VERSION 2.8.12) ++cmake_minimum_required(VERSION 2.8...4.0) + project(czmq) + enable_language(C) + enable_testing() + +-set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") ++include(GNUInstallDirs) ++ + set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + # Select flags + if(MSVC) +@@ -30,7 +31,7 @@ set(pkg_config_names_private "") + # options + ######################################################################## + if (NOT CMAKE_BUILD_TYPE) +- if (EXISTS "${SOURCE_DIR}/.git") ++ if (EXISTS "${PROJECT_SOURCE_DIR}/.git") + set (CMAKE_BUILD_TYPE Debug) + else () + # http://xit0.org/2013/04/cmake-use-git-branch-and-commit-details-in-project/ +@@ -79,7 +80,7 @@ endif() + include(CheckSymbolExists) + check_symbol_exists(AI_V4MAPPED "czmq.h" HAVE_DECL_AI_V4MAPPED) + +-file(REMOVE "${SOURCE_DIR}/src/platform.h") ++file(REMOVE "${PROJECT_SOURCE_DIR}/src/platform.h") + + file(WRITE "${PROJECT_BINARY_DIR}/platform.h.in" " + #cmakedefine HAVE_LINUX_WIRELESS_H +@@ -97,7 +98,7 @@ if (WIN32) + #so the sources have to be compiled as c++ + if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + enable_language(CXX) +- file(GLOB sources "${SOURCE_DIR}/src/*.c") ++ file(GLOB sources "${PROJECT_SOURCE_DIR}/src/*.c") + set_source_files_properties( + ${sources} + PROPERTIES LANGUAGE CXX +@@ -123,7 +124,7 @@ if (CYGWIN) + set(MORE_LIBRARIES) + endif() + +-list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}") ++list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + set(OPTIONAL_LIBRARIES) + set(OPTIONAL_LIBRARIES_STATIC) + +@@ -326,14 +327,14 @@ IF (ENABLE_DRAFTS) + ENDIF (ENABLE_DRAFTS) + + source_group ("Header Files" FILES ${czmq_headers}) +-install(FILES ${czmq_headers} DESTINATION include) ++install(FILES ${czmq_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + ######################################################################## + # library + ######################################################################## + + +-include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}") ++include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}") + set (czmq_sources + src/zactor.c + src/zarmour.c +@@ -434,15 +435,12 @@ if (CZMQ_BUILD_SHARED) + + install(TARGETS czmq + EXPORT czmq-targets +- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file +- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file +- RUNTIME DESTINATION bin # .dll file + ) + + target_include_directories(czmq + PUBLIC + $ +- $ ++ $ + ) + endif() + +@@ -471,15 +469,12 @@ if (CZMQ_BUILD_STATIC) + + install(TARGETS czmq-static + EXPORT czmq-targets +- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file +- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file +- RUNTIME DESTINATION bin # .dll file + ) + + target_include_directories(czmq-static + PUBLIC + $ +- $ ++ $ + ) + target_compile_definitions(czmq-static + PUBLIC CZMQ_STATIC +@@ -496,21 +491,21 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/src/ + set (VERSION "4.2.1") + set (prefix "${CMAKE_INSTALL_PREFIX}") + set (exec_prefix "\${prefix}") +-set (libdir "\${prefix}/lib${LIB_SUFFIX}") +-set (includedir "\${prefix}/include") ++set (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}") ++set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") + IF (ENABLE_DRAFTS) + set (pkg_config_defines "-DCZMQ_BUILD_DRAFT_API=1") + ELSE (ENABLE_DRAFTS) + set (pkg_config_defines "") + ENDIF (ENABLE_DRAFTS) + configure_file( +- "${SOURCE_DIR}/src/libczmq.pc.in" +- "${SOURCE_DIR}/src/libczmq.pc" ++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc.in" ++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc" + @ONLY) + + install( +- FILES "${SOURCE_DIR}/src/libczmq.pc" +- DESTINATION "lib${LIB_SUFFIX}/pkgconfig" ++ FILES "${PROJECT_SOURCE_DIR}/src/libczmq.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + ) + + ######################################################################## +@@ -520,8 +515,7 @@ include(CMakePackageConfigHelpers) + if (WIN32) + set(CMAKECONFIG_INSTALL_DIR "CMake" CACHE STRING "install path for czmqConfig.cmake") + else() +- # GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share". +- set(CMAKECONFIG_INSTALL_DIR "share/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake") ++ set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake") + endif() + + if (NOT CMAKE_VERSION VERSION_LESS 3.0) +@@ -546,7 +540,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR + ######################################################################## + add_executable( + zmakecert +- "${SOURCE_DIR}/src/zmakecert.c" ++ "${PROJECT_SOURCE_DIR}/src/zmakecert.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -565,12 +559,10 @@ target_link_libraries( + ${OPTIONAL_LIBRARIES_STATIC} + ) + endif() +-install(TARGETS zmakecert +- RUNTIME DESTINATION bin +-) ++install(TARGETS zmakecert) + add_executable( + zsp +- "${SOURCE_DIR}/src/zsp.c" ++ "${PROJECT_SOURCE_DIR}/src/zsp.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -591,7 +583,7 @@ target_link_libraries( + endif() + add_executable( + test_randof +- "${SOURCE_DIR}/src/test_randof.c" ++ "${PROJECT_SOURCE_DIR}/src/test_randof.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -612,7 +604,7 @@ target_link_libraries( + endif() + add_executable( + czmq_selftest +- "${SOURCE_DIR}/src/czmq_selftest.c" ++ "${PROJECT_SOURCE_DIR}/src/czmq_selftest.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -748,83 +740,21 @@ include(CTest) + # cleanup + ######################################################################## + if (NOT TARGET distclean) +- add_custom_target (distclean @echo Cleaning for source distribution) +-endif() +- +-set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt +- ${PROJECT_BINARY_DIR}/cmake_install.cmake +- ${PROJECT_BINARY_DIR}/Makefile +- ${PROJECT_BINARY_DIR}/CMakeFiles +- ${PROJECT_BINARY_DIR}/CTestTestfile.cmake +- ${PROJECT_BINARY_DIR}/DartConfiguration.tcl +- ${PROJECT_BINARY_DIR}/Testing +- ${PROJECT_BINARY_DIR}/compile_commands.json +- ${PROJECT_BINARY_DIR}/platform.h +- ${PROJECT_BINARY_DIR}/src/libczmq.pc +- ${PROJECT_BINARY_DIR}/src/libczmq.so +- ${PROJECT_BINARY_DIR}/src/czmq_selftest +- ${PROJECT_BINARY_DIR}/src/zmakecert +- ${PROJECT_BINARY_DIR}/src/zsp +- ${PROJECT_BINARY_DIR}/src/test_randof +- ${PROJECT_BINARY_DIR}/src/czmq_selftest +-) +- +-add_custom_command( +- DEPENDS clean +- COMMENT "distribution clean" +- COMMAND rm +- ARGS -rf CMakeTmp ${cmake_generated} +- TARGET distclean +-) +- +-include(ClangFormat OPTIONAL) +- +-######################################################################## +-# summary +-######################################################################## +-message ("") +-message (STATUS "******************* Configuration Summary *******************") +-message (STATUS "General:") +-message (STATUS " Version : ${VERSION}") +-message (STATUS " System : ${CMAKE_SYSTEM_NAME}") +-message (STATUS " C compiler : ${CMAKE_C_COMPILER}") +-message (STATUS " Debug C flags : ${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") +-message (STATUS " Release C flags : ${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") +-message (STATUS " Build type : ${CMAKE_BUILD_TYPE}") +-message (STATUS " Static build : ${CZMQ_BUILD_STATIC}") +-message (STATUS " Shared build : ${CZMQ_BUILD_SHARED}") +-IF (ENABLE_DRAFTS) +-message (STATUS " Draft API : Yes") +-ELSE (ENABLE_DRAFTS) +-message (STATUS " Draft API : No") +-ENDIF (ENABLE_DRAFTS) +-message (STATUS "") +-message (STATUS "Dependencies:") +-include(FeatureSummary) +-feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +-message (STATUS "") +-message (STATUS "Install:") +-message (STATUS " Install prefix :" "${CMAKE_INSTALL_PREFIX}") +-message (STATUS "") +-message (STATUS "************************* Options ***************************") +-message (STATUS "Options:") +-message (STATUS " Use the Draft API (default = yes):") +-message (STATUS " -DENABLE-DRAFTS=[yes|no]") +-message (STATUS "") +-message (STATUS "*************************************************************") +-message (STATUS "Configuration complete! Now procced with:") +-message (STATUS " 'make' compile the project") +-message (STATUS " 'make test' run the project's selftest") +-message (STATUS " 'make install' install the project to ${CMAKE_INSTALL_PREFIX}") +-message (STATUS "") +-message (STATUS "Further options are:") +-message (STATUS " 'ctest -V run test with verbose logging") +-message (STATUS " 'ctest -R ' run a specific test") +-message (STATUS " 'ctest -T memcheck' run the project's selftest with") +-message (STATUS " valgrind to check for memory leaks") +-message (STATUS "") +- +-################################################################################ +-# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # +-# Read the zproject/README.md for information about making permanent changes. # +-################################################################################ ++ if (CMAKE_VERSION VERSION_LESS 3.17) ++ set(rm_command rm -rf) ++ else() ++ set(rm_command ${CMAKE_COMMAND} -E rm -rf --) ++ endif() ++ set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt ++ ${PROJECT_BINARY_DIR}/cmake_install.cmake ++ ${PROJECT_BINARY_DIR}/Makefile ++ ${PROJECT_BINARY_DIR}/CMakeFiles ++ ${PROJECT_BINARY_DIR}/CTestTestfile.cmake ++ ${PROJECT_BINARY_DIR}/DartConfiguration.tcl ++ ${PROJECT_BINARY_DIR}/Testing ++ ${PROJECT_BINARY_DIR}/compile_commands.json ++ ${PROJECT_BINARY_DIR}/platform.h ++ ${PROJECT_BINARY_DIR}/src/libczmq.pc ++ ${PROJECT_BINARY_DIR}/src/libczmq.so ++ ${PROJECT_BINARY_DIR}/src/czmq_selftest ++ .for project.main +--- a/bindings/jni/czmq-jni/CMakeLists.txt ++++ b/bindings/jni/czmq-jni/CMakeLists.txt +@@ -2,7 +2,7 @@ + # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # + # Read the zproject/README.md for information about making permanent changes. # + ################################################################################ +-cmake_minimum_required (VERSION 2.8) ++cmake_minimum_required (VERSION 2.8...4.0) + + project (czmqjni CXX) + enable_language (C) +--- a/bindings/jni/czmq-jni/android/CMakeLists.txt ++++ b/bindings/jni/czmq-jni/android/CMakeLists.txt +@@ -2,7 +2,7 @@ + # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # + # Read the zproject/README.md for information about making permanent changes. # + ################################################################################ +-cmake_minimum_required (VERSION 3.6) ++cmake_minimum_required (VERSION 3.6...4.0) + + project (czmqjni CXX) + enable_language (C) +--- a/configure.ac ++++ b/configure.ac +@@ -947,6 +947,9 @@ AC_ARG_ENABLE([zmakecert], + AM_CONDITIONAL([ENABLE_ZMAKECERT], [test x$enable_zmakecert != xno]) + AM_COND_IF([ENABLE_ZMAKECERT], [AC_MSG_NOTICE([ENABLE_ZMAKECERT defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for zsp intent + AC_ARG_ENABLE([zsp], + AS_HELP_STRING([--enable-zsp], +@@ -957,6 +960,9 @@ AC_ARG_ENABLE([zsp], + AM_CONDITIONAL([ENABLE_ZSP], [test x$enable_zsp != xno]) + AM_COND_IF([ENABLE_ZSP], [AC_MSG_NOTICE([ENABLE_ZSP defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for test_randof intent + AC_ARG_ENABLE([test_randof], + AS_HELP_STRING([--enable-test_randof], +@@ -967,6 +973,9 @@ AC_ARG_ENABLE([test_randof], + AM_CONDITIONAL([ENABLE_TEST_RANDOF], [test x$enable_test_randof != xno]) + AM_COND_IF([ENABLE_TEST_RANDOF], [AC_MSG_NOTICE([ENABLE_TEST_RANDOF defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for czmq_selftest intent + AC_ARG_ENABLE([czmq_selftest], + AS_HELP_STRING([--enable-czmq_selftest], +@@ -976,6 +985,9 @@ AC_ARG_ENABLE([czmq_selftest], + + AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) + AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) + + # Checks for library functions. + AC_TYPE_SIGNAL diff --git a/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch b/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch new file mode 100644 index 00000000000000..1362361cc65cb5 --- /dev/null +++ b/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch @@ -0,0 +1,79 @@ +From 53b46d63b41c51e32b5d539aa78ca91846f6a2a1 Mon Sep 17 00:00:00 2001 +From: Stephan Guilloux +Date: Fri, 6 Jun 2025 16:55:13 +0200 +Subject: [PATCH] Problem: CMakeLists.txt broken since CMake 4 support. + +Solution: Regenerate from ZProject. +--- + CMakeLists.txt | 63 +++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 62 insertions(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -757,4 +757,65 @@ if (NOT TARGET distclean) + ${PROJECT_BINARY_DIR}/src/libczmq.pc + ${PROJECT_BINARY_DIR}/src/libczmq.so + ${PROJECT_BINARY_DIR}/src/czmq_selftest +- .for project.main ++ ${PROJECT_BINARY_DIR}/src/zmakecert ++ ${PROJECT_BINARY_DIR}/src/zsp ++ ${PROJECT_BINARY_DIR}/src/test_randof ++ ${PROJECT_BINARY_DIR}/src/czmq_selftest ++ ) ++ add_custom_target(distclean ++ COMMAND ${rm_command} CMakeTmp ${cmake_generated} ++ COMMENT Cleaning for source distribution ++ ) ++endif() ++ ++include(ClangFormat OPTIONAL) ++ ++######################################################################## ++# summary ++######################################################################## ++message ("") ++message (STATUS "******************* Configuration Summary *******************") ++message (STATUS "General:") ++message (STATUS " Version : ${VERSION}") ++message (STATUS " System : ${CMAKE_SYSTEM_NAME}") ++message (STATUS " C compiler : ${CMAKE_C_COMPILER}") ++message (STATUS " Debug C flags : ${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") ++message (STATUS " Release C flags : ${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") ++message (STATUS " Build type : ${CMAKE_BUILD_TYPE}") ++message (STATUS " Static build : ${CZMQ_BUILD_STATIC}") ++message (STATUS " Shared build : ${CZMQ_BUILD_SHARED}") ++IF (ENABLE_DRAFTS) ++message (STATUS " Draft API : Yes") ++ELSE (ENABLE_DRAFTS) ++message (STATUS " Draft API : No") ++ENDIF (ENABLE_DRAFTS) ++message (STATUS "") ++message (STATUS "Dependencies:") ++include(FeatureSummary) ++feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) ++message (STATUS "") ++message (STATUS "Install:") ++message (STATUS " Install prefix :" "${CMAKE_INSTALL_PREFIX}") ++message (STATUS "") ++message (STATUS "************************* Options ***************************") ++message (STATUS "Options:") ++message (STATUS " Use the Draft API (default = yes):") ++message (STATUS " -DENABLE-DRAFTS=[yes|no]") ++message (STATUS "") ++message (STATUS "*************************************************************") ++message (STATUS "Configuration complete! Now procced with:") ++message (STATUS " 'make' compile the project") ++message (STATUS " 'make test' run the project's selftest") ++message (STATUS " 'make install' install the project to ${CMAKE_INSTALL_PREFIX}") ++message (STATUS "") ++message (STATUS "Further options are:") ++message (STATUS " 'ctest -V run test with verbose logging") ++message (STATUS " 'ctest -R ' run a specific test") ++message (STATUS " 'ctest -T memcheck' run the project's selftest with") ++message (STATUS " valgrind to check for memory leaks") ++message (STATUS "") ++ ++################################################################################ ++# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # ++# Read the zproject/README.md for information about making permanent changes. # ++################################################################################ From 76707324961b33f445789ad77fca3c5fbb443d05 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 20:36:42 +0800 Subject: [PATCH 11/37] czmq: remove absent maintainer Remove inactive maintainer. Signed-off-by: Tianling Shen --- libs/czmq/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/czmq/Makefile b/libs/czmq/Makefile index 169463edcedcb1..725da9e7fa021c 100644 --- a/libs/czmq/Makefile +++ b/libs/czmq/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=czmq PKG_VERSION:=4.2.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/zeromq/czmq/releases/download/v$(PKG_VERSION)/ PKG_HASH:=5d720a204c2a58645d6f7643af15d563a712dad98c9d32c1ed913377daa6ac39 -PKG_MAINTAINER:=Jan Pavlinec +PKG_MAINTAINER:= PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE From fa1dd531e8dc26cbd94f2ec6b1004fd7a534dda5 Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Sat, 15 Nov 2025 04:57:17 +0200 Subject: [PATCH 12/37] mjpg-streamer: add cmake 4.x compatibility Project is abandoned, add a DIY patch. Signed-off-by: George Sapkin --- multimedia/mjpg-streamer/Makefile | 2 +- multimedia/mjpg-streamer/patches/001-cmake4.patch | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 multimedia/mjpg-streamer/patches/001-cmake4.patch diff --git a/multimedia/mjpg-streamer/Makefile b/multimedia/mjpg-streamer/Makefile index 272197c1a45786..2a9a9687e5b70e 100644 --- a/multimedia/mjpg-streamer/Makefile +++ b/multimedia/mjpg-streamer/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mjpg-streamer PKG_VERSION:=1.0.0 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/jacksonliam/mjpg-streamer/tar.gz/v$(PKG_VERSION)? diff --git a/multimedia/mjpg-streamer/patches/001-cmake4.patch b/multimedia/mjpg-streamer/patches/001-cmake4.patch new file mode 100644 index 00000000000000..c36be08bd3b814 --- /dev/null +++ b/multimedia/mjpg-streamer/patches/001-cmake4.patch @@ -0,0 +1,8 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8.3) ++cmake_minimum_required(VERSION 3.10) + set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + + project("mjpg-streamer" C) From e3024cc5b4ff627da5e541458b5709c25822706c Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 12:35:11 +0200 Subject: [PATCH 13/37] python-eventlet: bump to version 0.40.3 This change updates eventlet to 0.40.3 It no longer needs 'six' Needs python-setuptools/host & python-hatchling/host & python-hatch-vcs/host as PKG_BUILD_DEPENDS. Signed-off-by: Alexandru Ardelean --- lang/python/python-eventlet/Makefile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lang/python/python-eventlet/Makefile b/lang/python/python-eventlet/Makefile index 8b01f5be20c94c..82fbff0367d0fc 100644 --- a/lang/python/python-eventlet/Makefile +++ b/lang/python/python-eventlet/Makefile @@ -8,16 +8,22 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-eventlet -PKG_VERSION:=0.33.3 +PKG_VERSION:=0.40.3 PKG_RELEASE:=1 PYPI_NAME:=eventlet -PKG_HASH:=722803e7eadff295347539da363d68ae155b8b26ae6a634474d0a920be73cfda +PKG_HASH:=290852db0065d78cec17a821b78c8a51cafb820a792796a354592ae4d5fceeb0 PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE +PKG_BUILD_DEPENDS:= \ + python3/host \ + python-setuptools/host \ + python-hatch-vcs/host \ + python-hatchling/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk @@ -30,10 +36,8 @@ define Package/python3-eventlet URL:=https://eventlet.net/ DEPENDS:= \ +python3-light \ - +python3-six \ +python3-dns \ +python3-greenlet \ - +python3-distutils \ +python3-email \ +python3-logging \ +python3-openssl \ From 33d013e51ba989c306b20be29e67a2316e9e9f33 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 18:41:03 +0200 Subject: [PATCH 14/37] python-markdown: upgrade to version 3.10 This change updates markdown to version 3.10 Signed-off-by: Alexandru Ardelean --- lang/python/python-markdown/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lang/python/python-markdown/Makefile b/lang/python/python-markdown/Makefile index 1ab6bda3e3d3a1..5c288dda3f8bce 100644 --- a/lang/python/python-markdown/Makefile +++ b/lang/python/python-markdown/Makefile @@ -8,16 +8,18 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-markdown -PKG_VERSION:=3.4.4 +PKG_VERSION:=3.10 PKG_RELEASE:=1 -PYPI_NAME:=Markdown -PKG_HASH:=225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6 +PYPI_NAME:=markdown +PKG_HASH:=37062d4f2aa4b2b6b32aefb80faa300f82cc790cb949a35b8caede34f2b68c0e PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE.md +PKG_BUILD_DEPENDS:=python3/host python-setuptools/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk From 085c2eb58cb7e15d969ad6bcb1e48c9fc0071a0f Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 18:45:50 +0200 Subject: [PATCH 15/37] python-greenlet: upgrade to version 3.2.4 This upgrades greenlet to 3.2.4 Signed-off-by: Alexandru Ardelean --- lang/python/python-greenlet/Makefile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lang/python/python-greenlet/Makefile b/lang/python/python-greenlet/Makefile index dced8ade5abe72..a1513fa4690729 100644 --- a/lang/python/python-greenlet/Makefile +++ b/lang/python/python-greenlet/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-greenlet -PKG_VERSION:=3.0.2 +PKG_VERSION:=3.2.4 PKG_RELEASE:=1 PYPI_NAME:=greenlet -PKG_HASH:=1c1129bc47266d83444c85a8e990ae22688cf05fb20d7951fd2866007c2ba9bc +PKG_HASH:=0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT @@ -20,7 +20,12 @@ PKG_LICENSE_FILES:=LICENSE # FIXME: remove when GCC10 is the oldest supported compiler, or the issue goes away PKG_BUILD_FLAGS:=no-mips16 -HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-setuptools/host \ + python-build/host \ + python-installer/host \ + python-wheel/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk From 0c908eed83012ce34aa254df7f7659755456cb3e Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 15 Nov 2025 22:25:53 +0200 Subject: [PATCH 16/37] python-hatch-vcs: upgrade to version 0.5.0 Upgrade to version 0.5.0 Add python-setuptools/host as dep. Signed-off-by: Alexandru Ardelean --- lang/python/python-hatch-vcs/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lang/python/python-hatch-vcs/Makefile b/lang/python/python-hatch-vcs/Makefile index 6726a77768d63b..126a071c0e05a0 100644 --- a/lang/python/python-hatch-vcs/Makefile +++ b/lang/python/python-hatch-vcs/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-hatch-vcs -PKG_VERSION:=0.4.0 +PKG_VERSION:=0.5.0 PKG_RELEASE:=1 PYPI_NAME:=hatch-vcs PYPI_SOURCE_NAME:=hatch_vcs -PKG_HASH:=093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7 +PKG_HASH:=0395fa126940340215090c344a2bf4e2a77bcbe7daab16f41b37b98c95809ff9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE.txt @@ -22,6 +22,7 @@ PKG_MAINTAINER:=Jeffery To PKG_HOST_ONLY:=1 HOST_BUILD_DEPENDS:= \ python3/host \ + python-setuptools/host \ python-build/host \ python-installer/host \ python-hatchling/host \ From 2fa5ae76479bd6f250b6f6e4b877a79c084f3306 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 17 Nov 2025 01:03:37 +0800 Subject: [PATCH 17/37] yq: Update to 4.48.2 Signed-off-by: Tianling Shen --- utils/yq/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/yq/Makefile b/utils/yq/Makefile index ffea7866026b57..b50020fc669e92 100644 --- a/utils/yq/Makefile +++ b/utils/yq/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=yq -PKG_VERSION:=4.48.1 +PKG_VERSION:=4.48.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/mikefarah/yq/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=591158368f8155421bd8821754a67b4478ee2cde205b7abfbf2d50f90769cf0e +PKG_HASH:=af464e5c227ad3894628de65db2996db0e4716a16388eaf08bfa73e93ad0604e PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 65c403a54b97d3020d45b581f3482fc5f2629e63 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Sun, 16 Nov 2025 19:19:39 +0100 Subject: [PATCH 18/37] adblock: release 4.4.3-1 * support TLDs in feeds and local block-/allowlist, e.g. to block all 'de' domains with a single entry * add active feed domains (of the feed download URLs) automatically to the local allowlist, to prevent download erros * update the feed categories of 1hosts * update and change the feed categories of hagezi: new categories are 'abusetlds', 'social', 'urlshortener' and 'nrd' (newly registered domains). The latter one required download URL changes. Please note: if you use hagezi than remove and re-add the categories in LuCI feed selection after the updae * Add an external adblock test (https://adblock.turtlecute.org/) on the DNS reporting tab, itprovides a simple way to check whether your current adblock setup is working as expected * readme update Signed-off-by: Dirk Brenken --- net/adblock/Makefile | 4 +- net/adblock/files/README.md | 32 ++++++++---- net/adblock/files/adblock.categories | 78 +++++++++++++++------------- net/adblock/files/adblock.feeds | 56 ++++++++++---------- net/adblock/files/adblock.sh | 26 +++++++--- 5 files changed, 113 insertions(+), 83 deletions(-) diff --git a/net/adblock/Makefile b/net/adblock/Makefile index 9a341b03ce0dec..3611ebe327ed2e 100644 --- a/net/adblock/Makefile +++ b/net/adblock/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adblock -PKG_VERSION:=4.4.2 -PKG_RELEASE:=3 +PKG_VERSION:=4.4.3 +PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/adblock/files/README.md b/net/adblock/files/README.md index 617e0611d0c187..01a5b880b5ec84 100644 --- a/net/adblock/files/README.md +++ b/net/adblock/files/README.md @@ -267,8 +267,8 @@ Adblock does use RAM by default and never writes to the flash space of the route The following feeds are just my personal recommendation as an initial setup: * 'adguard', 'adguard_tracking' and 'certpl' -In total, this feed selection blocks about 100K domains. It may also be useful to include compilations like hagezi, stevenblack or oisd. -Please note: don't just blindly activate (too) many feeds at once, sooner or later this will lead to OOM conditions. +In total, this feed selection blocks about 280K domains. It may also be useful to include compilations like hagezi, stevenblack or oisd. +Please note: don't just blindly activate too many feeds at once, sooner or later this will lead to OOM conditions. **DNS reporting, enable the GeoIP Map** adblock includes a powerful reporting tool on the DNS Report tab which shows the latest DNS statistics generated by tcpdump. To get the latest statistics always press the "Refresh" button. @@ -282,6 +282,11 @@ To make this work, adblock uses the following external components: * [CARTO basemap styles](https://github.com/CartoDB/basemap-styles) based on [OpenMapTiles](https://openmaptiles.org/schema) * The free and quite fast [IP Geolocation API](https://ip-api.com/) to resolve the required IP/geolocation information (max. 45 blocked Domains per request) +**External adblock test** +In addition to the built‑in DNS reporting and GeoIP map, adblock users can verify the effectiveness of their configuration with an external test page. The [Adblock Test](https://adblock.turtlecute.org/) provides a simple way to check whether your current adblock setup is working as expected. It loads a series of test elements (ads, trackers, and other resources) and reports whether they are successfully blocked by your configuration. + +The test runs entirely in the browser and does not require additional configuration. For best results, open the page in the same environment where adblock is active and review the results displayed. + **Use the jail mode, a restrictive DNS blocklist:** You can enable a restrictive 'adb_list.jail' to block access to all domains except those listed in the allowlist file. Usually this list will be generated as an additional list for guest or kidsafe configurations (for a separate dns server instance). If the jail directory points to your primary dns directory, the jail blocklist replaces your default blocklist. @@ -304,22 +309,29 @@ from dev.adblock@gmail.com user dev.adblock password xxx -Finally enable E-Mail support and add a valid E-Mail receiver address in LuCI. +Finally enable E-Mail support, add a valid E-Mail receiver address in LuCI and setup an appropriate cron job. -**Automatic feed updates and status reports via E-Mail** -For a regular, automatic update of the used feeds or other regular adblock activities set up a cron job, e.g.: +**Automatic adblock feed updates and E-Mail reports** +For a regular, automatic update of the used feeds or other regular adblock tasks set up a cron job. In LuCI you find the cron settings under 'System' => 'Scheduled Tasks'. On the command line the cron file is located at '/etc/crontabs/root': +Example 1 ``` -# update the feeds every morning at 4 o'clock +# update the adblock feeds every morning at 4 o'clock 00 04 * * * /etc/init.d/adblock reload +``` -# send a report E-Mail every morning at 3 o'clock -00 03 * * * /etc/init.d/adblock report mail - -# update the feeds every hour +Example 2 +``` +# update the adblock feeds every hour 0 */1 * * * /etc/init.d/adblock reload ``` +Example 3 +``` +# send an adblock E-Mail report every morning at 3 o'clock +00 03 * * * /etc/init.d/adblock report mail +``` + **Change/add adblock feeds** The adblock blocklist feeds are stored in an external JSON file '/etc/adblock/adblock.feeds'. All custom changes should be stored in an external JSON file '/etc/adblock/adblock.custom.feeds' (empty by default). It's recommended to use the LuCI based Custom Feed Editor to make changes to this file. A valid JSON source object contains the following information, e.g.: diff --git a/net/adblock/files/adblock.categories b/net/adblock/files/adblock.categories index ea247e212dc153..f4e484d266b16b 100644 --- a/net/adblock/files/adblock.categories +++ b/net/adblock/files/adblock.categories @@ -1,40 +1,46 @@ -hag;multi-light;light-onlydomains.txt -hag;multi-normal;multi-onlydomains.txt -hag;multi-pro;pro-onlydomains.txt -hag;multi-pro.mini;pro.mini-onlydomains.txt -hag;multi-pro.plus;pro.plus-onlydomains.txt -hag;multi-pro.plus.mini;pro.plus.mini-onlydomains.txt -hag;multi-ultimate;ultimate-onlydomains.txt -hag;multi-ultimate.mini;ultimate.mini-onlydomains.txt -hag;threat-intelligence;tif-onlydomains.txt -hag;threat-intelligence.medium;tif.medium-onlydomains.txt -hag;threat-intelligence.mini;tif.mini-onlydomains.txt -hag;anti.piracy;anti.piracy-onlydomains.txt -hag;doh;doh-onlydomains.txt -hag;doh-vpn-proxy-bypass;doh-vpn-proxy-bypass-onlydomains.txt -hag;dyndns;dyndns-onlydomains.txt -hag;fake;fake-onlydomains.txt -hag;gambling;gambling-onlydomains.txt -hag;gambling.medium;gambling.medium-onlydomains.txt -hag;gambling.mini;gambling.mini-onlydomains.txt -hag;hoster;hoster-onlydomains.txt -hag;nsfw;nsfw-onlydomains.txt -hag;tracker.amazon;native.amazon-onlydomains.txt -hag;tracker.apple;native.apple-onlydomains.txt -hag;tracker.huawei;native.huawei-onlydomains.txt -hag;tracker.lgwebos;native.lgwebos-onlydomains.txt -hag;tracker.oppo-realme;native.oppo-realme-onlydomains.txt -hag;tracker.samsung;native.samsung-onlydomains.txt -hag;tracker.tiktok;native.tiktok-onlydomains.txt -hag;tracker.tiktok.extended;native.tiktok.extended-onlydomains.txt -hag;tracker.vivo;native.vivo-onlydomains.txt -hag;tracker.winoffice;native.winoffice-onlydomains.txt -hag;tracker.xiaomi;native.xiaomi-onlydomains.txt -hag;nosafesearch;nosafesearch-onlydomains.txt -hag;popupads;popupads-onlydomains.txt -hst;mini;mini/domains.wildcards +hag;multi-light;wildcard/light-onlydomains.txt +hag;multi-normal;wildcard/multi-onlydomains.txt +hag;multi-pro;wildcard/pro-onlydomains.txt +hag;multi-pro.mini;wildcard/pro.mini-onlydomains.txt +hag;multi-pro.plus;wildcard/pro.plus-onlydomains.txt +hag;multi-pro.plus.mini;wildcard/pro.plus.mini-onlydomains.txt +hag;multi-ultimate;wildcard/ultimate-onlydomains.txt +hag;multi-ultimate.mini;wildcard/ultimate.mini-onlydomains.txt +hag;threat-intelligence;wildcard/tif-onlydomains.txt +hag;threat-intelligence.medium;wildcard/tif.medium-onlydomains.txt +hag;threat-intelligence.mini;wildcard/tif.mini-onlydomains.txt +hag;anti.piracy;wildcard/anti.piracy-onlydomains.txt +hag;doh;wildcard/doh-onlydomains.txt +hag;doh-vpn-proxy-bypass;wildcard/doh-vpn-proxy-bypass-onlydomains.txt +hag;dyndns;wildcard/dyndns-onlydomains.txt +hag;fake;wildcard/fake-onlydomains.txt +hag;gambling;wildcard/gambling-onlydomains.txt +hag;gambling.medium;wildcard/gambling.medium-onlydomains.txt +hag;gambling.mini;wildcard/gambling.mini-onlydomains.txt +hag;hoster;wildcard/hoster-onlydomains.txt +hag;nsfw;wildcard/nsfw-onlydomains.txt +hag;tracker.amazon;wildcard/native.amazon-onlydomains.txt +hag;tracker.apple;wildcard/native.apple-onlydomains.txt +hag;tracker.huawei;wildcard/native.huawei-onlydomains.txt +hag;tracker.lgwebos;wildcard/native.lgwebos-onlydomains.txt +hag;tracker.oppo-realme;wildcard/native.oppo-realme-onlydomains.txt +hag;tracker.samsung;wildcard/native.samsung-onlydomains.txt +hag;tracker.tiktok;wildcard/native.tiktok-onlydomains.txt +hag;tracker.tiktok.extended;wildcard/native.tiktok.extended-onlydomains.txt +hag;tracker.vivo;wildcard/native.vivo-onlydomains.txt +hag;tracker.winoffice;wildcard/native.winoffice-onlydomains.txt +hag;tracker.xiaomi;wildcard/native.xiaomi-onlydomains.txt +hag;nosafesearch;wildcard/nosafesearch-onlydomains.txt +hag;popupads;wildcard/popupads-onlydomains.txt +hag;urlshortener;wildcard/urlshortener-onlydomains.txt +hag;abusetlds;wildcard/spam-tlds-onlydomains.txt +hag;social;wildcard/social-onlydomains.txt +hag;nrd-7days;domains/nrd7.txt +hag;nrd-14days;domains/nrd14-8.txt +hag;nrd-21days;domains/nrd21-15.txt +hag;nrd-28days;domains/nrd28-22.txt +hag;nrd-35days;domains/nrd35-29.txt hst;lite;Lite/domains.wildcards -hst;pro;Pro/domains.wildcards hst;xtra;Xtra/domains.wildcards stb;standard;hosts stb;standard-fakenews;alternates/fakenews/hosts diff --git a/net/adblock/files/adblock.feeds b/net/adblock/files/adblock.feeds index 3aca04db18993c..c451d4aa302bc1 100644 --- a/net/adblock/files/adblock.feeds +++ b/net/adblock/files/adblock.feeds @@ -1,7 +1,7 @@ { "1hosts": { "url": "https://raw.githubusercontent.com/badmojr/1Hosts/master/", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "compilation" }, @@ -19,25 +19,25 @@ }, "adguard_tracking": { "url": "https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "tracking" }, "android_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/android-tracking.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, "andryou": { "url": "https://gitlab.com/andryou/block/raw/master/kouhai-compressed-domains", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, "anti_ad": { "url": "https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, @@ -55,31 +55,31 @@ }, "certpl": { "url": "https://hole.cert.pl/domains/v2/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "phishing" }, "cpbl": { "url": "https://raw.githubusercontent.com/bongochong/CombinedPrivacyBlockLists/master/NoFormatting/cpbl-ctld.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "disconnect": { "url": "https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" }, "divested": { "url": "https://divested.dev/hosts-domains-wildcards", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "compilation" }, "doh_blocklist": { "url": "https://raw.githubusercontent.com/dibdot/DoH-IP-blocklists/master/doh-domains_overall.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "doh_server" }, @@ -97,25 +97,25 @@ }, "energized_blu": { "url": "https://energized.pro/blu/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "energized_spark": { "url": "https://energized.pro/spark/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, "energized_ultimate": { "url": "https://energized.pro/ultimate/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "compilation" }, "firetv_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/AmazonFireTV.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, @@ -127,13 +127,13 @@ }, "hblock": { "url": "https://hblock.molinero.dev/hosts_domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "hagezi": { - "url": "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/wildcard/", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "url": "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "compilation" }, @@ -145,31 +145,31 @@ }, "notracking": { "url": "https://raw.githubusercontent.com/notracking/hosts-blocklists/master/dnscrypt-proxy/dnscrypt-proxy.blacklist.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "tracking" }, "oisd_big": { "url": "https://big.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "general" }, "oisd_nsfw": { "url": "https://nsfw.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "porn" }, "oisd_nsfw_small": { "url": "https://nsfw-small.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "M", "descr": "porn" }, "oisd_small": { "url": "https://small.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "general" }, @@ -181,7 +181,7 @@ }, "phishing_army": { "url": "https://phishing.army/download/phishing_army_blocklist_extended.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "phishing" }, @@ -289,13 +289,13 @@ }, "smarttv_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, "spam404": { "url": "https://raw.githubusercontent.com/Dawsey21/Lists/master/main-blacklist.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" }, @@ -313,13 +313,13 @@ }, "utcapitole": { "url": "https://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "general" }, "wally3k": { "url": "https://v.firebog.net/hosts/static/w3kbl.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "compilation" }, @@ -343,7 +343,7 @@ }, "yoyo": { "url": "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml&showintro=0&mimetype=plaintext", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" } diff --git a/net/adblock/files/adblock.sh b/net/adblock/files/adblock.sh index af08de8297a534..abfb188a55a570 100755 --- a/net/adblock/files/adblock.sh +++ b/net/adblock/files/adblock.sh @@ -699,7 +699,7 @@ f_list() { ;; "blocklist" | "allowlist") src_name="${mode}" - rset="/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}" + rset="/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower(\$1)}" case "${src_name}" in "blocklist") if [ -f "${adb_blocklist}" ]; then @@ -723,7 +723,7 @@ f_list() { "allowlist") if [ -f "${adb_allowlist}" ] && [ "${adb_dnsallow}" != "0" ]; then file_name="${adb_tmpdir}/tmp.raw.${src_name}" - printf "%s\n" "${adb_lookupdomain}" | "${adb_awkcmd}" "${rset}" >"${file_name}" + [ "${adb_lookupdomain}" != "localhost" ] && printf "%s\n" "${adb_lookupdomain}" | "${adb_awkcmd}" "${rset}" >"${file_name}" "${adb_awkcmd}" "${rset}" "${adb_allowlist}" >>"${file_name}" "${adb_awkcmd}" "${rset}" "${file_name}" >"${adb_tmpdir}/tmp.rem.${src_name}" eval "${adb_dnsallow}" "${file_name}" >"${adb_tmpdir}/tmp.add.${src_name}" @@ -744,7 +744,7 @@ f_list() { fi case "${src_name}" in "google") - rset="/^\\.([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{printf \"%s\n%s\n\",tolower(\"www\"\$1),tolower(substr(\$1,2,length(\$1)))}" + rset="/^(\\.([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{printf \"%s\n%s\n\",tolower(\"www\"\$1),tolower(substr(\$1,2,length(\$1)))}" safe_url="https://www.google.com/supported_domains" safe_cname="forcesafesearch.google.com" if [ -s "${adb_backupdir}/safesearch.${src_name}.gz" ]; then @@ -878,8 +878,8 @@ f_list() { file_name="${adb_finaldir}/${adb_dnsfile}" rm -f "${file_name}" [ -n "${adb_dnsheader}" ] && printf "%b" "${adb_dnsheader}" >>"${file_name}" - [ -s "${adb_tmpdir}/tmp.add.iplist" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.add.iplist" >>"${file_name}" - [ -s "${adb_tmpdir}/tmp.add.allowlist" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.add.allowlist" >>"${file_name}" + [ -s "${adb_tmpdir}/tmp.add.iplist" ] && "${adb_sortcmd}" ${adb_srtopts} -u "${adb_tmpdir}/tmp.add.iplist" >>"${file_name}" + [ -s "${adb_tmpdir}/tmp.add.allowlist" ] && "${adb_sortcmd}" ${adb_srtopts} -u "${adb_tmpdir}/tmp.add.allowlist" >>"${file_name}" [ "${adb_safesearch}" = "1" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.safesearch."* 2>/dev/null >>"${file_name}" if [ "${adb_dnsdeny}" != "0" ]; then eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" >>"${file_name}" @@ -1150,7 +1150,7 @@ f_log() { # main function for blocklist processing # f_main() { - local src_tmpload src_tmpfile src_name src_rset src_url src_cat src_item src_list src_entries src_suffix src_rc entry cnt + local src_tmpload src_tmpfile src_name src_domain src_rset src_url src_cat src_item src_list src_entries src_suffix src_rc entry cnt # allow- and blocklist preparation # @@ -1215,6 +1215,9 @@ f_main() { adb_feed="${adb_feed/${src_name}/}" continue fi + + # get feed information + # json_get_var src_url "url" >/dev/null 2>&1 json_get_var src_rset "rule" >/dev/null 2>&1 json_select .. @@ -1231,6 +1234,15 @@ f_main() { continue fi + # add domains of active feed URLs to the allowlist + # + src_domain="${src_url#*://}" + src_domain="${src_domain%%/*}" + if [ -n "${src_domain}" ] && [ "${adb_dnsallow}" != "0" ] && ! "${adb_grepcmd}" -qxF "${src_domain}" "${adb_tmpdir}/tmp.raw.allowlist"; then + printf "%s\n" "${src_domain}" >>"${adb_tmpdir}/tmp.raw.allowlist" + eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.raw.allowlist" >>"${adb_tmpdir}/tmp.add.allowlist" + fi + # download queue processing # src_cat="" @@ -1465,7 +1477,7 @@ f_report() { json_get_keys details >/dev/null 2>&1 json_get_var rc "rc" >/dev/null 2>&1 json_get_var domain "domain" >/dev/null 2>&1 - if [ "${rc}" = "NX" ] && ! "${adb_catcmd}" "${map_jsn}" 2>/dev/null | "${adb_grepcmd}" -q "${domain}"; then + if [ "${rc}" = "NX" ] && ! "${adb_catcmd}" "${map_jsn}" 2>/dev/null | "${adb_grepcmd}" -qxF "${domain}"; then ( "${adb_fetchcmd}" ${adb_geoparm} "${adb_geourl}/${domain}" 2>/dev/null | "${adb_awkcmd}" -v feed="${domain}" '{printf ",{\"%s\": %s}\n",feed,$0}' >>"${map_jsn}" From ad5193ac6653a8d12b34493de7a9df55ab738f5d Mon Sep 17 00:00:00 2001 From: Daniele Bonomi Date: Sat, 15 Nov 2025 14:40:15 +0100 Subject: [PATCH 19/37] dnsdist: use luajit on luajit archs except aarch64; lua on other archs Avoid using luajit for dnsdist on aarch64, where it fails with SIGILL at runtim Signed-off-by: Daniele Bonomi --- net/dnsdist/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/dnsdist/Makefile b/net/dnsdist/Makefile index 08642a573adf84..58c8828a5f6535 100644 --- a/net/dnsdist/Makefile +++ b/net/dnsdist/Makefile @@ -35,7 +35,9 @@ define Package/dnsdist/Default +libatomic \ +libcap \ +libstdcpp \ - @HAS_LUAJIT_ARCH +luajit + @(HAS_LUAJIT_ARCH&&!aarch64):+luajit \ + @aarch64:+liblua \ + @!HAS_LUAJIT_ARCH:+liblua URL:=https://dnsdist.org/ VARIANT:=$(1) PROVIDES:=dnsdist @@ -147,7 +149,7 @@ TARGET_CXXFLAGS+=-Os -fvisibility=hidden -flto -fno-ipa-cp -DNDEBUG \ CONFIGURE_ARGS+= \ --with-pic \ - --with-lua=luajit \ + $(if $(and $(HAS_LUAJIT_ARCH),$(filter-out aarch64,$(ARCH))),--with-lua=luajit,--with-lua) \ --with-libcap \ --without-xsk \ $(if $(call IsEnabled,DNSDIST_PIE),,--disable-hardening) \ From 946b3ddc84e792aa4f3779ad18a971e4496267fc Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 13 Nov 2025 21:23:45 +0800 Subject: [PATCH 20/37] ecdsautils: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- .../patches/010-Fix-build-with-CMake-4.patch | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch diff --git a/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch b/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch new file mode 100644 index 00000000000000..4e946bfad9e08c --- /dev/null +++ b/utils/ecdsautils/patches/010-Fix-build-with-CMake-4.patch @@ -0,0 +1,138 @@ +From 19f096f9c10264f4efe4b926fe83126e85642cba Mon Sep 17 00:00:00 2001 +From: Sven Eckelmann +Date: Mon, 1 Sep 2025 10:21:38 +0200 +Subject: [PATCH] Fix build with CMake 4 + +CMake 4 dropped support for policies which were introduced before version +3.5. Trying to build uisng cmake 4 results in: + + Compatibility with CMake < 3.5 has been removed from CMake. + + Update the VERSION argument value. Or, use the ... syntax + to tell CMake that the project requires at least but has been updated + to work with policies introduced by or earlier. + + Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway. + +Just increasing minimum version to 3.18 (from 2020-07-15) fixes this +problem. This version is low enough to still support Debian bullseye or +Ubuntu 22.04. + +With this version increase, following policies are enabled + +* 3.18 + - CMP0108: A target cannot link to itself through an alias. + - CMP0107: An ALIAS target cannot overwrite another target. + - CMP0106: The Documentation module is removed. + - CMP0105: Device link step uses the link options. + - CMP0104: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. + - CMP0103: Multiple export() with same FILE without APPEND is not allowed. +* 3.17 + - CMP0102: mark_as_advanced() does nothing if a cache entry does not exist. + - CMP0101: target_compile_options honors BEFORE keyword in all scopes. + - CMP0100: Let AUTOMOC and AUTOUIC process .hh header files. + - CMP0099: Link properties are transitive over private dependencies of static libraries. + - CMP0098: FindFLEX runs flex in CMAKE_CURRENT_BINARY_DIR when executing. +* 3.16 + - CMP0097: ExternalProject_Add with GIT_SUBMODULES "" initializes no submodules. + - CMP0096: project() preserves leading zeros in version components. + - CMP0095: RPATH entries are properly escaped in the intermediary CMake install script. +* 3.15 + - CMP0094: FindPython3, FindPython2 and FindPython use LOCATION for lookup strategy. + - CMP0093: FindBoost reports Boost_VERSION in x.y.z format. + - CMP0092: MSVC warning flags are not in CMAKE_{C,CXX}_FLAGS by default. + - CMP0091: MSVC runtime library flags are selected by an abstraction. + - CMP0090: export(PACKAGE) does not populate package registry by default. + - CMP0089: Compiler id for IBM Clang-based XL compilers is now XLClang. +* 3.14 + - CMP0088: FindBISON runs bison in CMAKE_CURRENT_BINARY_DIR when executing. + - CMP0087: install(SCRIPT | CODE) supports generator expressions. + - CMP0086: UseSWIG honors SWIG_MODULE_NAME via -module flag. + - CMP0085: IN_LIST generator expression handles empty list items. + - CMP0084: The FindQt module does not exist for find_package(). + - CMP0083: Add PIE options when linking executable. + - CMP0082: Install rules from add_subdirectory() are interleaved with those in caller. +* 3.13 + - CMP0081: Relative paths not allowed in LINK_DIRECTORIES target property. + - CMP0080: BundleUtilities cannot be included at configure time. + - CMP0079: target_link_libraries allows use with targets in other directories. + - CMP0078: UseSWIG generates standard target names. + - CMP0077: option() honors normal variables. + - CMP0076: target_sources() command converts relative paths to absolute. +* 3.12 + - CMP0075: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. + - CMP0074: find_package uses PackageName_ROOT variables. + - CMP0073: Do not produce legacy _LIB_DEPENDS cache entries. +* 3.11 + - CMP0072: FindOpenGL prefers GLVND by default when available. +* 3.10 + - CMP0071: Let AUTOMOC and AUTOUIC process GENERATED files. + - CMP0070: Define file(GENERATE) behavior for relative paths. +* 3.9 + - CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. + - CMP0068: RPATH settings on macOS do not affect install_name. +* 3.8 + - CMP0067: Honor language standard in try_compile() source-file signature. +* 3.7 + - CMP0066: Honor per-config flags in try_compile() source-file signature. +* 3.4 + - CMP0065: Do not add flags to export symbols from executables without the ENABLE_EXPORTS target property. + - CMP0064: Support new TEST if() operator. +* 3.3 + - CMP0063: Honor visibility properties for all target types. + - CMP0062: Disallow install() of export() result. + - CMP0061: CTest does not by default tell make to ignore errors (-i). + - CMP0060: Link libraries by full path even in implicit directories. + - CMP0059: Do not treat DEFINITIONS as a built-in directory property. + - CMP0058: Ninja requires custom command byproducts to be explicit. + - CMP0057: Support new IN_LIST if() operator. +* 3.2 + - CMP0056: Honor link flags in try_compile() source-file signature. + - CMP0055: Strict checking for break() command. +* 3.1 + - CMP0054: Only interpret if() arguments as variables or keywords when unquoted. + - CMP0053: Simplify variable reference and escape sequence evaluation. + - CMP0052: Reject source and build dirs in installed INTERFACE_INCLUDE_DIRECTORIES. + - CMP0051: List TARGET_OBJECTS in SOURCES target property. +* 3.0 + - CMP0050: Disallow add_custom_command SOURCE signatures. + - CMP0049: Do not expand variables in target source entries. + - CMP0048: project() command manages VERSION variables. + - CMP0047: Use QCC compiler id for the qcc drivers on QNX. + - CMP0046: Error on non-existent dependency in add_dependencies. + - CMP0045: Error on non-existent target in get_target_property. + - CMP0044: Case sensitive Lang_COMPILER_ID generator expressions. + - CMP0043: Ignore COMPILE_DEFINITIONS_Config properties. + - CMP0042: MACOSX_RPATH is enabled by default. + - CMP0041: Error on relative include with generator expression. + - CMP0040: The target in the TARGET signature of add_custom_command() must exist. + - CMP0039: Utility targets may not have link dependencies. + - CMP0038: Targets may not link directly to themselves. + - CMP0037: Target names should not be reserved and should match a validity pattern. + - CMP0036: The build_name command should not be called. + - CMP0035: The variable_requires command should not be called. + - CMP0034: The utility_source command should not be called. + - CMP0033: The export_library_dependencies command should not be called. + - CMP0032: The output_required_files command should not be called. + - CMP0031: The load_command command should not be called. + - CMP0030: The use_mangled_mesa command should not be called. + - CMP0029: The subdir_depends command should not be called. + - CMP0028: Double colon in target name means ALIAS or IMPORTED target. + - CMP0027: Conditionally linked imported targets with missing include directories. + - CMP0026: Disallow use of the LOCATION target property. + - CMP0025: Compiler id for Apple Clang is now AppleClang. + - CMP0024: Disallow include export result. + +Signed-off-by: Sven Eckelmann +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8.3) ++cmake_minimum_required(VERSION 3.18) + project(ECDSAUTIL C) + set(ECDSAUTIL_VERSION 0.4.2) + From af07fba3b6d43d156215736d2feaff71beebf272 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Fri, 14 Nov 2025 22:00:14 +0100 Subject: [PATCH 21/37] travelmate: update 2.2.1-6 - rework the iw device detection in the scan function - remove any limits from the radio selection - control the reverse radio processing order with a separate option 'trm_revradio' - tweak a few (debug) log statements - LuCI updates (separate commit) - readme update Signed-off-by: Dirk Brenken --- net/travelmate/Makefile | 2 +- net/travelmate/files/README.md | 3 +- net/travelmate/files/travelmate.init | 53 +++++++++++------------- net/travelmate/files/travelmate.sh | 60 +++++++++++++--------------- 4 files changed, 54 insertions(+), 64 deletions(-) diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile index 9357d97f5bc882..5fe39b42ef29a8 100644 --- a/net/travelmate/Makefile +++ b/net/travelmate/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=travelmate PKG_VERSION:=2.2.1 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/travelmate/files/README.md b/net/travelmate/files/README.md index 8c024cc3894c16..b6f36ed830d185 100644 --- a/net/travelmate/files/README.md +++ b/net/travelmate/files/README.md @@ -92,7 +92,8 @@ automatically (re)connnects to configured APs/hotspots as they become available. | trm_debug | 0, disabled | set to 1 to get the full debug output (logread -e "trm-") | | trm_iface | -, not set | uplink- and procd trigger network interface, configured by the 'Interface Wizard' | | trm_laniface | -, lan | logical LAN network interface, default is 'lan' | -| trm_radio | -, not set | restrict travelmate to a single radio or change the overall scanning order ('radio1 radio0') | +| trm_radio | -, not set | restrict travelmate to certain radio(s) | +| trm_revradio | 0, disabled | change the radio processing order, e.g. 'radio1 radio0' | | trm_scanmode | -, active | send active probe requests or passively listen for beacon frames with 'passive' | | trm_captive | 1, enabled | check the internet availability and handle captive portal redirections | | trm_netcheck | 0, disabled | treat missing internet availability as an error | diff --git a/net/travelmate/files/travelmate.init b/net/travelmate/files/travelmate.init index a5bf899de1b11f..d245dcb48a1f4e 100755 --- a/net/travelmate/files/travelmate.init +++ b/net/travelmate/files/travelmate.init @@ -76,39 +76,32 @@ status_service() { } scan() { - local result scan_dev scan_mode radio_num radio_phy radio="${1}" + local result scan_dev scan_mode radio_num radio_phy radio="${1:-"radio0"}" - scan_dev="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -ql1 -e "@.${radio}.interfaces[0].ifname")" + radio_num="${radio//[a-z]/}" + radio_phy="phy${radio_num}" + scan_mode="$(uci_get travelmate global trm_scanmode "active")" + [ "${scan_mode}" != "passive" ] && scan_mode="" + + scan_dev="$(iw dev | awk -v phy="${radio_phy}" '/Interface/{iface=$2} /type/{if(($2=="AP"||$2=="managed")&&iface ~ "^"phy"-"){printf"%s",iface;exit}}')" if [ -z "${scan_dev}" ]; then - radio_num="${radio//[a-z]/}" - radio_phy="phy#${radio_num}" - scan_dev="$(iw dev 2>/dev/null | awk -v iw_phy="${radio_phy}" '{if($0==iw_phy){inside=1;next}if(inside&&/^phy#/){exit}if(inside&&$1=="Interface"){print $2;exit}}')" - if [ -z "${scan_dev}" ]; then - if iw phy "phy${radio_num}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1; then - if ip link set "trmscan${radio_num}" up >/dev/null 2>&1; then - scan_dev="trmscan${radio_num}" - fi - fi - fi - fi - if [ -n "${scan_dev}" ]; then - scan_mode="$(uci_get travelmate global trm_scanmode "active")" - [ "${scan_mode}" != "passive" ] && scan_mode="" - result="$(iw dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | - awk '/^BSS /{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid};signal="";channel="";rsn="-";wpa="-";cipher="-";auth="-";ssid="";bssid=toupper(substr($2,1,17))} - /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} - /SSID:/{$1="";sub(/^ /,"",$0);ssid=$0} - /freq:/{channel=int($2);if(channel>=2400&&channel<=2500)channel=int((channel-2407)/5);else if(channel>=4900&&channel<=5900)channel=int((channel-5000)/5);else if(channel>=5925&&channel<=7125)channel=int(((channel-5950)/5)+1)} - /WPA:/{wpa="+"} - /RSN:/{rsn="+"} - /Group cipher:/{cipher=$4} - /Authentication suites:/{auth="";for(i=4;i<=NF;i++){auth=auth (i==4?"":",")$i}} - END{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)" - printf "%b\n" "${result}" > "${trm_scanfile}" - else - : > "${trm_scanfile}" + iw phy "${radio_phy}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1 + ip link set "trmscan${radio_num}" up >/dev/null 2>&1 + scan_dev="trmscan${radio_num}" fi - if [ -n "${radio_phy}" ] && [ -n "${radio_num}" ]; then + result="$(iw dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | + awk '/^BSS /{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid};signal="";channel="";rsn="-";wpa="-";cipher="-";auth="-";ssid="";bssid=toupper(substr($2,1,17))} + /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} + /SSID:/{$1="";sub(/^ /,"",$0);ssid=$0} + /freq:/{channel=int($2);if(channel>=2400&&channel<=2500)channel=int((channel-2407)/5);else if(channel>=4900&&channel<=5900)channel=int((channel-5000)/5);else if(channel>=5925&&channel<=7125)channel=int(((channel-5950)/5)+1)} + /WPA:/{wpa="+"} + /RSN:/{rsn="+"} + /Group cipher:/{cipher=$4} + /Authentication suites:/{auth="";for(i=4;i<=NF;i++){auth=auth (i==4?"":",")$i}} + END{if(bssid!=""){printf "%3s %3s %17s %s %s %10s %30s %s\n",signal,channel,bssid,rsn,wpa,cipher,auth,ssid}}' | sort -rn)" + [ -n "${result}" ] && printf "%b\n" "${result}" > "${trm_scanfile}" || : > "${trm_scanfile}" + + if [ "${scan_dev}" = "trmscan${radio_num}" ]; then ip link set "trmscan${radio_num}" down >/dev/null 2>&1 iw dev "trmscan${radio_num}" del >/dev/null 2>&1 fi diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh index 0b6b614157b04f..70504b31d29df3 100755 --- a/net/travelmate/files/travelmate.sh +++ b/net/travelmate/files/travelmate.sh @@ -28,6 +28,7 @@ trm_maxwait="30" trm_maxautoadd="5" trm_timeout="60" trm_radio="" +trm_revradio="0" trm_scanmode="active" trm_connection="" trm_ssidfilter="" @@ -475,7 +476,7 @@ f_setdev() { if { [ -z "${trm_radio}" ] && ! printf "%s" "${trm_radiolist}" | "${trm_grepcmd}" -q "${radio}"; } || { [ -n "${trm_radio}" ] && printf "%s" "${trm_radio}" | "${trm_grepcmd}" -q "${radio}"; }; then - if [ -n "${trm_radio}" ] && [ "${trm_radio}" = "radio1 radio0" ]; then + if [ "${trm_revradio}" = "1" ]; then trm_radiolist="$(f_trim "${radio} ${trm_radiolist}")" else trm_radiolist="$(f_trim "${trm_radiolist} ${radio}")" @@ -485,7 +486,7 @@ f_setdev() { uci_set wireless "${radio}" "disabled" "0" fi fi - f_log "debug" "f_setdev ::: radio: ${radio:-"-"}, radio_conf: ${trm_radio:-"-"}, radio_list: ${trm_radiolist:-"-"}, disabled: ${disabled:-"-"}" + f_log "debug" "f_setdev ::: device: ${radio:-"-"}, radio: ${trm_radio:-"-"}, radio_list: ${trm_radiolist:-"-"}, disabled: ${disabled:-"-"}" } # set 'wifi-iface' sections @@ -732,11 +733,15 @@ f_check() { else ifname="$(printf "%s" "${dev_status}" | "${trm_jsoncmd}" -ql1 -e '@.*.interfaces[@.config.mode="sta"].ifname')" if [ -n "${ifname}" ] && [ "${enabled}" = "1" ]; then - trm_ifquality="$("${trm_iwcmd}" dev "${ifname}" link 2>/dev/null | "${trm_awkcmd}" '/signal: /{printf "%s",2*($2+100)}')" + trm_ifquality="$("${trm_iwcmd}" dev "${ifname}" link 2>/dev/null | "${trm_awkcmd}" '/signal:/ {val=2*($2+100); printf "%s", (val>100 ? 100 : val)}')" if [ -z "${trm_ifquality}" ]; then trm_ifstatus="$("${trm_ubuscmd}" -S call network.interface dump 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.interface[@.device=\"${ifname}\"].up")" if { [ -n "${trm_connection}" ] && [ "${trm_ifstatus}" = "false" ]; } || [ "${wait_time}" -eq "${trm_maxwait}" ]; then - f_log "info" "no signal from uplink" + if [ -n "${trm_connection}" ] && [ "${trm_ifstatus}" = "false" ]; then + f_log "info" "no signal from uplink" + else + f_log "info" "uplink connection could not be established after ${trm_maxwait} seconds" + fi f_vpn "disable" trm_connection="" trm_ifstatus="${status}" @@ -824,7 +829,7 @@ f_check() { break fi done - f_log "debug" "f_check ::: mode: ${mode}, name: ${ifname:-"-"}, status: ${trm_ifstatus}, enabled: ${enabled}, connection: ${trm_connection:-"-"}, wait: ${wait_time}, max_wait: ${trm_maxwait}, min_quality: ${trm_minquality}, captive: ${trm_captive}, netcheck: ${trm_netcheck}" + f_log "debug" "f_check ::: mode: ${mode}, name: ${ifname:-"-"}, status: ${trm_ifstatus}, enabled: ${enabled}, connection: ${trm_connection:-"-"}, wait: ${wait_time}, max_wait: ${trm_maxwait}, min_quality/quality: ${trm_minquality}/${trm_ifquality:-"-"}, captive: ${trm_captive}, netcheck: ${trm_netcheck}" } # update runtime information @@ -974,38 +979,29 @@ f_main() { f_log "debug" "f_main-5 ::: sta_radio: ${sta_radio}, sta_essid: \"${sta_essid}\", sta_bssid: ${sta_bssid:-"-"}" fi if [ -z "${scan_list}" ]; then - scan_dev="$("${trm_ubuscmd}" -S call network.wireless status 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.${radio}.interfaces[0].ifname")" + radio_num="${radio//[a-z]/}" + radio_phy="phy${radio_num}" + [ "${trm_scanmode}" != "passive" ] && scan_mode="" + + scan_dev="$("${trm_iwcmd}" dev | "${trm_awkcmd}" -v phy="${radio_phy}" '/Interface/{iface=$2} /type/{if(($2=="AP"||$2=="managed")&&iface ~ "^"phy"-"){printf"%s",iface;exit}}')" if [ -z "${scan_dev}" ]; then - radio_num="${radio//[a-z]/}" - radio_phy="phy#${radio_num}" - scan_dev="$("${trm_iwcmd}" dev 2>/dev/null | "${trm_awkcmd}" -v iw_phy="${radio_phy}" '{if($0==iw_phy){inside=1;next}if(inside&&/^phy#/){exit}if(inside&&$1=="Interface"){print $2;exit}}')" - if [ -z "${scan_dev}" ]; then - if "${trm_iwcmd}" phy "phy${radio_num}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1; then - if "${trm_ipcmd}" link set "trmscan${radio_num}" up >/dev/null 2>&1; then - scan_dev="trmscan${radio_num}" - fi - fi - fi + "${trm_iwcmd}" phy "${radio_phy}" interface add "trmscan${radio_num}" type managed >/dev/null 2>&1 + "${trm_ipcmd}" link set "trmscan${radio_num}" up >/dev/null 2>&1 + scan_dev="trmscan${radio_num}" fi - if [ -n "${scan_dev}" ]; then - [ "${trm_scanmode}" != "passive" ] && scan_mode="" - scan_list="$(printf "%b" "$("${trm_iwcmd}" dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | - "${trm_awkcmd}" '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid};bssid=toupper(substr($2,1,17));ssid="";signal="";rsn="-";wpa="-"} - /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} - /SSID:/{$1="";sub(/^ /,"",$0);ssid="\""$0"\""} - /WPA:/{wpa="+"} - /RSN:/{rsn="+"} - END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid}}' | "${trm_sortcmd}" -rn)")" - f_log "debug" "f_main-6 ::: radio: ${radio}, scan_device: ${scan_dev}, scan_mode: ${trm_scanmode:-"active"}, scan_cnt: $(printf "%s" "${scan_list}" | "${trm_grepcmd}" -c "^")" - fi - if [ -n "${radio_phy}" ] && [ -n "${radio_num}" ]; then + scan_list="$(printf "%b" "$("${trm_iwcmd}" dev "${scan_dev}" scan ${scan_mode} 2>/dev/null | + "${trm_awkcmd}" '/^BSS /{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid};bssid=toupper(substr($2,1,17));ssid="";signal="";rsn="-";wpa="-"} + /signal:/{signal=(2*($2+100)>100 ? 100 : 2*($2+100))} + /SSID:/{$1="";sub(/^ /,"",$0);ssid="\""$0"\""} + /WPA:/{wpa="+"} + /RSN:/{rsn="+"} + END{if(bssid!=""){if(ssid=="")ssid="unknown";printf "%s %s %s %s %s\n",signal,rsn,wpa,bssid,ssid}}' | "${trm_sortcmd}" -rn)")" + f_log "debug" "f_main-6 ::: radio: ${radio}, scan_device: ${scan_dev}, scan_mode: ${trm_scanmode:-"active"}, scan_cnt: $(printf "%s" "${scan_list}" | "${trm_grepcmd}" -c "^")" + + if [ "${scan_dev}" = "trmscan${radio_num}" ]; then "${trm_ipcmd}" link set "trmscan${radio_num}" down >/dev/null 2>&1 "${trm_iwcmd}" dev "trmscan${radio_num}" del >/dev/null 2>&1 fi - if [ -z "${scan_dev}" ]; then - f_log "info" "no scan device on '${radio}'" - continue 2 - fi if [ -z "${scan_list}" ]; then f_log "info" "no scan results on '${radio}'" continue 2 From 0f37c3c2a83b06ca06d9e4d0456f8651bb75b584 Mon Sep 17 00:00:00 2001 From: John Audia Date: Fri, 14 Nov 2025 19:18:32 -0500 Subject: [PATCH 22/37] iperf3: update to 3.20 Update to latest upstream release. Changelog: https://github.com/esnet/iperf/releases/tag/3.20 Build system: x86/64 Build-tested: x86/64-glibc Run-tested: x86/64-glibc Signed-off-by: John Audia --- net/iperf3/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/iperf3/Makefile b/net/iperf3/Makefile index c99b8c5770be7a..4bd3f7e9d2d42a 100644 --- a/net/iperf3/Makefile +++ b/net/iperf3/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iperf -PKG_VERSION:=3.19.1 +PKG_VERSION:=3.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.es.net/pub/iperf -PKG_HASH:=dc63f89ec581ea99f8b558d8eb35109de06383010db5a1906c208a562ba0c270 +PKG_HASH:=3acc572d1ecca4e0b20359c7bf0132ddc80d982efeee20c86f6726a9a6094388 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=BSD-3-Clause From a6c80843ebbde7d6f5068fbe93a22086fe539937 Mon Sep 17 00:00:00 2001 From: Josef Schlehofer Date: Fri, 14 Nov 2025 09:27:31 +0100 Subject: [PATCH 23/37] msmtp: update to version 1.8.32 Release notes: https://marlam.de/msmtp/news/msmtp-1-8-32/ Signed-off-by: Josef Schlehofer --- mail/msmtp/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail/msmtp/Makefile b/mail/msmtp/Makefile index bd069fbad46717..94032bcdbe2ff9 100644 --- a/mail/msmtp/Makefile +++ b/mail/msmtp/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=msmtp -PKG_VERSION:=1.8.31 +PKG_VERSION:=1.8.32 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://marlam.de/msmtp/releases -PKG_HASH:=c262b11762d8582a3c6d6ca8d8b2cca2b1605497324ca27cc57fdc145a27119f +PKG_HASH:=20cd58b58dd007acf7b937fa1a1e21f3afb3e9ef5bbcfb8b4f5650deadc64db4 PKG_MAINTAINER:= PKG_LICENSE:=GPL-3.0-or-later From fe1e5c893640738348cc32706c228190eb38892a Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Sat, 15 Nov 2025 04:43:55 +0200 Subject: [PATCH 24/37] zmq: add cmake 4.x compatibility Add upstream patches. Signed-off-by: George Sapkin --- libs/zmq/Makefile | 2 +- libs/zmq/patches/029-cmake-1.patch | 36 +++++++++++++++++++++++ libs/zmq/patches/030-cmake-2.patch | 47 ++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 libs/zmq/patches/029-cmake-1.patch create mode 100644 libs/zmq/patches/030-cmake-2.patch diff --git a/libs/zmq/Makefile b/libs/zmq/Makefile index c9dccd0a7b3d50..d8d30e7930b521 100644 --- a/libs/zmq/Makefile +++ b/libs/zmq/Makefile @@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zeromq PKG_VERSION:=4.3.5 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/zeromq/libzmq/releases/download/v$(PKG_VERSION) diff --git a/libs/zmq/patches/029-cmake-1.patch b/libs/zmq/patches/029-cmake-1.patch new file mode 100644 index 00000000000000..d7e2e4f94dffca --- /dev/null +++ b/libs/zmq/patches/029-cmake-1.patch @@ -0,0 +1,36 @@ +From 34f7fa22022bed9e0e390ed3580a1c83ac4a2834 Mon Sep 17 00:00:00 2001 +From: rp42 +Date: Mon, 30 Dec 2024 11:01:39 +0000 +Subject: [PATCH] cmake_minimum_required() before project() + + * Without this CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded (MT) Windows builds still produced incompatible MultiThreadedDLL (MD) output. + + * Resolves following warning: + +CMake Warning (dev) at CMakeLists.txt:2 (project): + cmake_minimum_required() should be called prior to this top-level project() + call. + + * Use ${CMAKE_HOST_SYSTEM_NAME} as ${CMAKE_SYSTEM_NAME} not set before project(). +--- + CMakeLists.txt | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,12 +1,13 @@ + # CMake build script for ZeroMQ +-project(ZeroMQ) + +-if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) ++if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL Darwin) + cmake_minimum_required(VERSION 3.0.2) + else() + cmake_minimum_required(VERSION 2.8.12) + endif() + ++project(ZeroMQ) ++ + include(CheckIncludeFiles) + include(CheckCCompilerFlag) + include(CheckCXXCompilerFlag) diff --git a/libs/zmq/patches/030-cmake-2.patch b/libs/zmq/patches/030-cmake-2.patch new file mode 100644 index 00000000000000..24f0ff78489ccc --- /dev/null +++ b/libs/zmq/patches/030-cmake-2.patch @@ -0,0 +1,47 @@ +From b91a6201307b72beb522300366aad763d19b1456 Mon Sep 17 00:00:00 2001 +From: Min RK +Date: Thu, 20 Mar 2025 14:51:18 +0100 +Subject: [PATCH] set upper bound in cmake_minimum_required + +setting an upper bound improves forward-compatibility as legacy version support is dropped + +- 3.5 compat is deprecated in 3.27 (2023), removed in 4.0 (2025) +- 3.10 compat is deprecated in 3.31 (2024) +--- + CMakeLists.txt | 4 ++-- + tests/CMakeLists.txt | 2 +- + unittests/CMakeLists.txt | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,9 +1,9 @@ + # CMake build script for ZeroMQ + + if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL Darwin) +- cmake_minimum_required(VERSION 3.0.2) ++ cmake_minimum_required(VERSION 3.0.2...3.31) + else() +- cmake_minimum_required(VERSION 2.8.12) ++ cmake_minimum_required(VERSION 2.8.12...3.31) + endif() + + project(ZeroMQ) +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -1,5 +1,5 @@ + # CMake build script for ZeroMQ tests +-cmake_minimum_required(VERSION "2.8.1") ++cmake_minimum_required(VERSION 2.8.1...3.31) + + # On Windows: solution file will be called tests.sln + project(tests) +--- a/unittests/CMakeLists.txt ++++ b/unittests/CMakeLists.txt +@@ -1,5 +1,5 @@ + # CMake build script for ZeroMQ unit tests +-cmake_minimum_required(VERSION "2.8.1") ++cmake_minimum_required(VERSION 2.8.1...3.31) + + set(unittests + unittest_ypipe From e9af400f778c36736c82f2cbdcfa4acb8a9349cf Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Fri, 14 Nov 2025 19:27:51 -0700 Subject: [PATCH 25/37] isc-dhcp: Missing trailing dot on SRV RRs When generating SRV RRs we're omitting the trailing dot that roots the domain. Signed-off-by: Philip Prindeville --- net/isc-dhcp/Makefile | 2 +- net/isc-dhcp/files/dhcpd.init | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/net/isc-dhcp/Makefile b/net/isc-dhcp/Makefile index f4486423144abf..6ee6b90009a864 100644 --- a/net/isc-dhcp/Makefile +++ b/net/isc-dhcp/Makefile @@ -11,7 +11,7 @@ PKG_NAME:=isc-dhcp UPSTREAM_NAME:=dhcp PKG_REALVERSION:=4.4.3-P1 PKG_VERSION:=4.4.3_p1 -PKG_RELEASE:=11 +PKG_RELEASE:=12 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/net/isc-dhcp/files/dhcpd.init b/net/isc-dhcp/files/dhcpd.init index 5b5f2b4e037970..b6e454cc546764 100755 --- a/net/isc-dhcp/files/dhcpd.init +++ b/net/isc-dhcp/files/dhcpd.init @@ -318,7 +318,7 @@ static_srvhost_add() { config_get weight "$cfg" "weight" [ -n "$weight" ] || return 0 - update "$srv.$domain." IN SRV "$priority" "$weight" "$port" "$target.$domain" + update "$srv.$domain." IN SRV "$priority" "$weight" "$port" "$target.$domain." } static_srvhosts() { From d027e97e97cfe8b7463f8ca804e11273c60993ea Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 13 Nov 2025 22:11:39 +0800 Subject: [PATCH 26/37] luv: Update to 1.51.0-1 Changelog: - https://github.com/luvit/luv/releases/tag/1.41.0-0 - https://github.com/luvit/luv/releases/tag/1.41.1-0 - https://github.com/luvit/luv/releases/tag/1.42.0-0 - https://github.com/luvit/luv/releases/tag/1.42.0-1 - https://github.com/luvit/luv/releases/tag/1.43.0-0 - https://github.com/luvit/luv/releases/tag/1.44.2-0 - https://github.com/luvit/luv/releases/tag/1.44.2-1 - https://github.com/luvit/luv/releases/tag/1.45.0-0 - https://github.com/luvit/luv/releases/tag/1.46.0-0 - https://github.com/luvit/luv/releases/tag/1.47.0-0 - https://github.com/luvit/luv/releases/tag/v1.48.0-0 - https://github.com/luvit/luv/releases/tag/1.48.0-1 - https://github.com/luvit/luv/releases/tag/v1.50.0-0 - https://github.com/luvit/luv/releases/tag/1.50.0-1 - https://github.com/luvit/luv/releases/tag/1.51.0-0 - https://github.com/luvit/luv/releases/tag/1.51.0-1 Signed-off-by: Tianling Shen --- lang/luv/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/luv/Makefile b/lang/luv/Makefile index bf9cfeca612742..cf9f1dd93645a3 100644 --- a/lang/luv/Makefile +++ b/lang/luv/Makefile @@ -1,15 +1,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luv -PKG_REAL_VERSION:=1.40.0-0 +PKG_REAL_VERSION:=1.51.0-1 PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION)) -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/luvit/luv/releases/download/$(PKG_REAL_VERSION) -PKG_HASH:=24473a081c3928eec2a352369cbafda97059574f4a4276861274473e7c7d17a0 +PKG_HASH:=dc706d9141c185bdce08b6fc8a9d4df05c3ac3676809ee4e9e37e1553d821237 -PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) PKG_MAINTAINER:=Morteza Milani PKG_LICENSE:=Apache-2.0 @@ -55,7 +55,7 @@ endef define Package/luv/install $(INSTALL_DIR) $(1)/usr/lib/lua - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so.1.40.0 $(1)/usr/lib/lua/luv.so + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libluv.so.1.51.0 $(1)/usr/lib/lua/luv.so endef From abc90d4b66c4eb67617d51f80c3e73ed7263db4b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 18:00:03 +0800 Subject: [PATCH 27/37] zlog: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- .../011-upgrade-cmake-minimum-version.patch | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 libs/zlog/patches/011-upgrade-cmake-minimum-version.patch diff --git a/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch b/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch new file mode 100644 index 00000000000000..43349ec6c19a9b --- /dev/null +++ b/libs/zlog/patches/011-upgrade-cmake-minimum-version.patch @@ -0,0 +1,20 @@ +From 3715879775f725260aeda14f94887bbc7a007e29 Mon Sep 17 00:00:00 2001 +From: haydenZhou +Date: Sun, 8 Jun 2025 10:45:05 +0800 +Subject: [PATCH] upgrade cmake minimum version + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + # create by lsm + # cmake + +-cmake_minimum_required(VERSION 2.8.5) ++cmake_minimum_required(VERSION 3.12) + + message(STATUS "path : ${CMAKE_FIND_ROOT_PATH}") + project(zlog) From 6da8987c077f77fb52dbb2497fadf8a7ead830fd Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 18:11:59 +0800 Subject: [PATCH 28/37] zlog: remove absent maintainer Remove inactive maintainer. Signed-off-by: Tianling Shen --- libs/zlog/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/zlog/Makefile b/libs/zlog/Makefile index cfca1fc7b0174c..e4505706ddbb24 100644 --- a/libs/zlog/Makefile +++ b/libs/zlog/Makefile @@ -2,14 +2,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zlog PKG_VERSION:=1.2.17 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/HardySimpson/zlog PKG_SOURCE_VERSION:=$(PKG_VERSION) PKG_MIRROR_HASH:=501d89c6883de14e8e6c53e1597f425814b3b467b31da04c50390d4924efecf3 -PKG_MAINTAINER:=Marko Ratkaj +PKG_MAINTAINER:= PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:zlog_project:zlog From bbadd0cfbd9f79a005934b1e6de1685b6877c332 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 17:38:29 +0800 Subject: [PATCH 29/37] czmq: add cmake 4.x compatibility Upstream backport. Signed-off-by: Tianling Shen --- ...om-zproject-to-update-cmakelists-txt.patch | 363 ++++++++++++++++++ ...sts-txt-broken-since-CMake-4-support.patch | 79 ++++ 2 files changed, 442 insertions(+) create mode 100644 libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch create mode 100644 libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch diff --git a/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch b/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch new file mode 100644 index 00000000000000..3724cce65f0978 --- /dev/null +++ b/libs/czmq/patches/010-regen-from-zproject-to-update-cmakelists-txt.patch @@ -0,0 +1,363 @@ +From 00d7750304f1c144f47225274b22ea8d638641ed Mon Sep 17 00:00:00 2001 +From: Arnaud Loonstra +Date: Fri, 6 Jun 2025 09:27:05 +0200 +Subject: [PATCH] regen from zproject to update cmakelists.txt + +--- + CMakeLists.txt | 152 +++++-------------- + bindings/jni/czmq-jni/CMakeLists.txt | 2 +- + bindings/jni/czmq-jni/android/CMakeLists.txt | 2 +- + configure.ac | 12 ++ + 4 files changed, 55 insertions(+), 113 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,12 +6,13 @@ + ######################################################################## + # Project setup + ######################################################################## +-cmake_minimum_required(VERSION 2.8.12) ++cmake_minimum_required(VERSION 2.8...4.0) + project(czmq) + enable_language(C) + enable_testing() + +-set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") ++include(GNUInstallDirs) ++ + set(CMAKE_EXPORT_COMPILE_COMMANDS 1) + # Select flags + if(MSVC) +@@ -30,7 +31,7 @@ set(pkg_config_names_private "") + # options + ######################################################################## + if (NOT CMAKE_BUILD_TYPE) +- if (EXISTS "${SOURCE_DIR}/.git") ++ if (EXISTS "${PROJECT_SOURCE_DIR}/.git") + set (CMAKE_BUILD_TYPE Debug) + else () + # http://xit0.org/2013/04/cmake-use-git-branch-and-commit-details-in-project/ +@@ -79,7 +80,7 @@ endif() + include(CheckSymbolExists) + check_symbol_exists(AI_V4MAPPED "czmq.h" HAVE_DECL_AI_V4MAPPED) + +-file(REMOVE "${SOURCE_DIR}/src/platform.h") ++file(REMOVE "${PROJECT_SOURCE_DIR}/src/platform.h") + + file(WRITE "${PROJECT_BINARY_DIR}/platform.h.in" " + #cmakedefine HAVE_LINUX_WIRELESS_H +@@ -97,7 +98,7 @@ if (WIN32) + #so the sources have to be compiled as c++ + if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + enable_language(CXX) +- file(GLOB sources "${SOURCE_DIR}/src/*.c") ++ file(GLOB sources "${PROJECT_SOURCE_DIR}/src/*.c") + set_source_files_properties( + ${sources} + PROPERTIES LANGUAGE CXX +@@ -123,7 +124,7 @@ if (CYGWIN) + set(MORE_LIBRARIES) + endif() + +-list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}") ++list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") + set(OPTIONAL_LIBRARIES) + set(OPTIONAL_LIBRARIES_STATIC) + +@@ -326,14 +327,14 @@ IF (ENABLE_DRAFTS) + ENDIF (ENABLE_DRAFTS) + + source_group ("Header Files" FILES ${czmq_headers}) +-install(FILES ${czmq_headers} DESTINATION include) ++install(FILES ${czmq_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + ######################################################################## + # library + ######################################################################## + + +-include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}") ++include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}") + set (czmq_sources + src/zactor.c + src/zarmour.c +@@ -434,15 +435,12 @@ if (CZMQ_BUILD_SHARED) + + install(TARGETS czmq + EXPORT czmq-targets +- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file +- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file +- RUNTIME DESTINATION bin # .dll file + ) + + target_include_directories(czmq + PUBLIC + $ +- $ ++ $ + ) + endif() + +@@ -471,15 +469,12 @@ if (CZMQ_BUILD_STATIC) + + install(TARGETS czmq-static + EXPORT czmq-targets +- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file +- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file +- RUNTIME DESTINATION bin # .dll file + ) + + target_include_directories(czmq-static + PUBLIC + $ +- $ ++ $ + ) + target_compile_definitions(czmq-static + PUBLIC CZMQ_STATIC +@@ -496,21 +491,21 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/src/ + set (VERSION "4.2.1") + set (prefix "${CMAKE_INSTALL_PREFIX}") + set (exec_prefix "\${prefix}") +-set (libdir "\${prefix}/lib${LIB_SUFFIX}") +-set (includedir "\${prefix}/include") ++set (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}") ++set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") + IF (ENABLE_DRAFTS) + set (pkg_config_defines "-DCZMQ_BUILD_DRAFT_API=1") + ELSE (ENABLE_DRAFTS) + set (pkg_config_defines "") + ENDIF (ENABLE_DRAFTS) + configure_file( +- "${SOURCE_DIR}/src/libczmq.pc.in" +- "${SOURCE_DIR}/src/libczmq.pc" ++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc.in" ++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc" + @ONLY) + + install( +- FILES "${SOURCE_DIR}/src/libczmq.pc" +- DESTINATION "lib${LIB_SUFFIX}/pkgconfig" ++ FILES "${PROJECT_SOURCE_DIR}/src/libczmq.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + ) + + ######################################################################## +@@ -520,8 +515,7 @@ include(CMakePackageConfigHelpers) + if (WIN32) + set(CMAKECONFIG_INSTALL_DIR "CMake" CACHE STRING "install path for czmqConfig.cmake") + else() +- # GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share". +- set(CMAKECONFIG_INSTALL_DIR "share/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake") ++ set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake") + endif() + + if (NOT CMAKE_VERSION VERSION_LESS 3.0) +@@ -546,7 +540,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR + ######################################################################## + add_executable( + zmakecert +- "${SOURCE_DIR}/src/zmakecert.c" ++ "${PROJECT_SOURCE_DIR}/src/zmakecert.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -565,12 +559,10 @@ target_link_libraries( + ${OPTIONAL_LIBRARIES_STATIC} + ) + endif() +-install(TARGETS zmakecert +- RUNTIME DESTINATION bin +-) ++install(TARGETS zmakecert) + add_executable( + zsp +- "${SOURCE_DIR}/src/zsp.c" ++ "${PROJECT_SOURCE_DIR}/src/zsp.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -591,7 +583,7 @@ target_link_libraries( + endif() + add_executable( + test_randof +- "${SOURCE_DIR}/src/test_randof.c" ++ "${PROJECT_SOURCE_DIR}/src/test_randof.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -612,7 +604,7 @@ target_link_libraries( + endif() + add_executable( + czmq_selftest +- "${SOURCE_DIR}/src/czmq_selftest.c" ++ "${PROJECT_SOURCE_DIR}/src/czmq_selftest.c" + ) + if (TARGET czmq) + target_link_libraries( +@@ -748,83 +740,21 @@ include(CTest) + # cleanup + ######################################################################## + if (NOT TARGET distclean) +- add_custom_target (distclean @echo Cleaning for source distribution) +-endif() +- +-set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt +- ${PROJECT_BINARY_DIR}/cmake_install.cmake +- ${PROJECT_BINARY_DIR}/Makefile +- ${PROJECT_BINARY_DIR}/CMakeFiles +- ${PROJECT_BINARY_DIR}/CTestTestfile.cmake +- ${PROJECT_BINARY_DIR}/DartConfiguration.tcl +- ${PROJECT_BINARY_DIR}/Testing +- ${PROJECT_BINARY_DIR}/compile_commands.json +- ${PROJECT_BINARY_DIR}/platform.h +- ${PROJECT_BINARY_DIR}/src/libczmq.pc +- ${PROJECT_BINARY_DIR}/src/libczmq.so +- ${PROJECT_BINARY_DIR}/src/czmq_selftest +- ${PROJECT_BINARY_DIR}/src/zmakecert +- ${PROJECT_BINARY_DIR}/src/zsp +- ${PROJECT_BINARY_DIR}/src/test_randof +- ${PROJECT_BINARY_DIR}/src/czmq_selftest +-) +- +-add_custom_command( +- DEPENDS clean +- COMMENT "distribution clean" +- COMMAND rm +- ARGS -rf CMakeTmp ${cmake_generated} +- TARGET distclean +-) +- +-include(ClangFormat OPTIONAL) +- +-######################################################################## +-# summary +-######################################################################## +-message ("") +-message (STATUS "******************* Configuration Summary *******************") +-message (STATUS "General:") +-message (STATUS " Version : ${VERSION}") +-message (STATUS " System : ${CMAKE_SYSTEM_NAME}") +-message (STATUS " C compiler : ${CMAKE_C_COMPILER}") +-message (STATUS " Debug C flags : ${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") +-message (STATUS " Release C flags : ${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") +-message (STATUS " Build type : ${CMAKE_BUILD_TYPE}") +-message (STATUS " Static build : ${CZMQ_BUILD_STATIC}") +-message (STATUS " Shared build : ${CZMQ_BUILD_SHARED}") +-IF (ENABLE_DRAFTS) +-message (STATUS " Draft API : Yes") +-ELSE (ENABLE_DRAFTS) +-message (STATUS " Draft API : No") +-ENDIF (ENABLE_DRAFTS) +-message (STATUS "") +-message (STATUS "Dependencies:") +-include(FeatureSummary) +-feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +-message (STATUS "") +-message (STATUS "Install:") +-message (STATUS " Install prefix :" "${CMAKE_INSTALL_PREFIX}") +-message (STATUS "") +-message (STATUS "************************* Options ***************************") +-message (STATUS "Options:") +-message (STATUS " Use the Draft API (default = yes):") +-message (STATUS " -DENABLE-DRAFTS=[yes|no]") +-message (STATUS "") +-message (STATUS "*************************************************************") +-message (STATUS "Configuration complete! Now procced with:") +-message (STATUS " 'make' compile the project") +-message (STATUS " 'make test' run the project's selftest") +-message (STATUS " 'make install' install the project to ${CMAKE_INSTALL_PREFIX}") +-message (STATUS "") +-message (STATUS "Further options are:") +-message (STATUS " 'ctest -V run test with verbose logging") +-message (STATUS " 'ctest -R ' run a specific test") +-message (STATUS " 'ctest -T memcheck' run the project's selftest with") +-message (STATUS " valgrind to check for memory leaks") +-message (STATUS "") +- +-################################################################################ +-# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # +-# Read the zproject/README.md for information about making permanent changes. # +-################################################################################ ++ if (CMAKE_VERSION VERSION_LESS 3.17) ++ set(rm_command rm -rf) ++ else() ++ set(rm_command ${CMAKE_COMMAND} -E rm -rf --) ++ endif() ++ set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt ++ ${PROJECT_BINARY_DIR}/cmake_install.cmake ++ ${PROJECT_BINARY_DIR}/Makefile ++ ${PROJECT_BINARY_DIR}/CMakeFiles ++ ${PROJECT_BINARY_DIR}/CTestTestfile.cmake ++ ${PROJECT_BINARY_DIR}/DartConfiguration.tcl ++ ${PROJECT_BINARY_DIR}/Testing ++ ${PROJECT_BINARY_DIR}/compile_commands.json ++ ${PROJECT_BINARY_DIR}/platform.h ++ ${PROJECT_BINARY_DIR}/src/libczmq.pc ++ ${PROJECT_BINARY_DIR}/src/libczmq.so ++ ${PROJECT_BINARY_DIR}/src/czmq_selftest ++ .for project.main +--- a/bindings/jni/czmq-jni/CMakeLists.txt ++++ b/bindings/jni/czmq-jni/CMakeLists.txt +@@ -2,7 +2,7 @@ + # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # + # Read the zproject/README.md for information about making permanent changes. # + ################################################################################ +-cmake_minimum_required (VERSION 2.8) ++cmake_minimum_required (VERSION 2.8...4.0) + + project (czmqjni CXX) + enable_language (C) +--- a/bindings/jni/czmq-jni/android/CMakeLists.txt ++++ b/bindings/jni/czmq-jni/android/CMakeLists.txt +@@ -2,7 +2,7 @@ + # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # + # Read the zproject/README.md for information about making permanent changes. # + ################################################################################ +-cmake_minimum_required (VERSION 3.6) ++cmake_minimum_required (VERSION 3.6...4.0) + + project (czmqjni CXX) + enable_language (C) +--- a/configure.ac ++++ b/configure.ac +@@ -947,6 +947,9 @@ AC_ARG_ENABLE([zmakecert], + AM_CONDITIONAL([ENABLE_ZMAKECERT], [test x$enable_zmakecert != xno]) + AM_COND_IF([ENABLE_ZMAKECERT], [AC_MSG_NOTICE([ENABLE_ZMAKECERT defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for zsp intent + AC_ARG_ENABLE([zsp], + AS_HELP_STRING([--enable-zsp], +@@ -957,6 +960,9 @@ AC_ARG_ENABLE([zsp], + AM_CONDITIONAL([ENABLE_ZSP], [test x$enable_zsp != xno]) + AM_COND_IF([ENABLE_ZSP], [AC_MSG_NOTICE([ENABLE_ZSP defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for test_randof intent + AC_ARG_ENABLE([test_randof], + AS_HELP_STRING([--enable-test_randof], +@@ -967,6 +973,9 @@ AC_ARG_ENABLE([test_randof], + AM_CONDITIONAL([ENABLE_TEST_RANDOF], [test x$enable_test_randof != xno]) + AM_COND_IF([ENABLE_TEST_RANDOF], [AC_MSG_NOTICE([ENABLE_TEST_RANDOF defined])]) + ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ + # Check for czmq_selftest intent + AC_ARG_ENABLE([czmq_selftest], + AS_HELP_STRING([--enable-czmq_selftest], +@@ -976,6 +985,9 @@ AC_ARG_ENABLE([czmq_selftest], + + AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) + AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) ++ ++AM_CONDITIONAL([ENABLE_CZMQ_SELFTEST], [test x$enable_czmq_selftest != xno]) ++AM_COND_IF([ENABLE_CZMQ_SELFTEST], [AC_MSG_NOTICE([ENABLE_CZMQ_SELFTEST defined])]) + + # Checks for library functions. + AC_TYPE_SIGNAL diff --git a/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch b/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch new file mode 100644 index 00000000000000..1362361cc65cb5 --- /dev/null +++ b/libs/czmq/patches/011-Problem-CMakeLists-txt-broken-since-CMake-4-support.patch @@ -0,0 +1,79 @@ +From 53b46d63b41c51e32b5d539aa78ca91846f6a2a1 Mon Sep 17 00:00:00 2001 +From: Stephan Guilloux +Date: Fri, 6 Jun 2025 16:55:13 +0200 +Subject: [PATCH] Problem: CMakeLists.txt broken since CMake 4 support. + +Solution: Regenerate from ZProject. +--- + CMakeLists.txt | 63 +++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 62 insertions(+), 1 deletion(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -757,4 +757,65 @@ if (NOT TARGET distclean) + ${PROJECT_BINARY_DIR}/src/libczmq.pc + ${PROJECT_BINARY_DIR}/src/libczmq.so + ${PROJECT_BINARY_DIR}/src/czmq_selftest +- .for project.main ++ ${PROJECT_BINARY_DIR}/src/zmakecert ++ ${PROJECT_BINARY_DIR}/src/zsp ++ ${PROJECT_BINARY_DIR}/src/test_randof ++ ${PROJECT_BINARY_DIR}/src/czmq_selftest ++ ) ++ add_custom_target(distclean ++ COMMAND ${rm_command} CMakeTmp ${cmake_generated} ++ COMMENT Cleaning for source distribution ++ ) ++endif() ++ ++include(ClangFormat OPTIONAL) ++ ++######################################################################## ++# summary ++######################################################################## ++message ("") ++message (STATUS "******************* Configuration Summary *******************") ++message (STATUS "General:") ++message (STATUS " Version : ${VERSION}") ++message (STATUS " System : ${CMAKE_SYSTEM_NAME}") ++message (STATUS " C compiler : ${CMAKE_C_COMPILER}") ++message (STATUS " Debug C flags : ${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}") ++message (STATUS " Release C flags : ${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}") ++message (STATUS " Build type : ${CMAKE_BUILD_TYPE}") ++message (STATUS " Static build : ${CZMQ_BUILD_STATIC}") ++message (STATUS " Shared build : ${CZMQ_BUILD_SHARED}") ++IF (ENABLE_DRAFTS) ++message (STATUS " Draft API : Yes") ++ELSE (ENABLE_DRAFTS) ++message (STATUS " Draft API : No") ++ENDIF (ENABLE_DRAFTS) ++message (STATUS "") ++message (STATUS "Dependencies:") ++include(FeatureSummary) ++feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) ++message (STATUS "") ++message (STATUS "Install:") ++message (STATUS " Install prefix :" "${CMAKE_INSTALL_PREFIX}") ++message (STATUS "") ++message (STATUS "************************* Options ***************************") ++message (STATUS "Options:") ++message (STATUS " Use the Draft API (default = yes):") ++message (STATUS " -DENABLE-DRAFTS=[yes|no]") ++message (STATUS "") ++message (STATUS "*************************************************************") ++message (STATUS "Configuration complete! Now procced with:") ++message (STATUS " 'make' compile the project") ++message (STATUS " 'make test' run the project's selftest") ++message (STATUS " 'make install' install the project to ${CMAKE_INSTALL_PREFIX}") ++message (STATUS "") ++message (STATUS "Further options are:") ++message (STATUS " 'ctest -V run test with verbose logging") ++message (STATUS " 'ctest -R ' run a specific test") ++message (STATUS " 'ctest -T memcheck' run the project's selftest with") ++message (STATUS " valgrind to check for memory leaks") ++message (STATUS "") ++ ++################################################################################ ++# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # ++# Read the zproject/README.md for information about making permanent changes. # ++################################################################################ From cbd82dba3b23d06f6c9d64c7d12723228d66f8e0 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 15 Nov 2025 20:36:42 +0800 Subject: [PATCH 30/37] czmq: remove absent maintainer Remove inactive maintainer. Signed-off-by: Tianling Shen --- libs/czmq/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/czmq/Makefile b/libs/czmq/Makefile index 169463edcedcb1..725da9e7fa021c 100644 --- a/libs/czmq/Makefile +++ b/libs/czmq/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=czmq PKG_VERSION:=4.2.1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/zeromq/czmq/releases/download/v$(PKG_VERSION)/ PKG_HASH:=5d720a204c2a58645d6f7643af15d563a712dad98c9d32c1ed913377daa6ac39 -PKG_MAINTAINER:=Jan Pavlinec +PKG_MAINTAINER:= PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE From 9c55e15e1819dd8534ce91680d7e05b0b27115da Mon Sep 17 00:00:00 2001 From: George Sapkin Date: Sat, 15 Nov 2025 04:57:17 +0200 Subject: [PATCH 31/37] mjpg-streamer: add cmake 4.x compatibility Project is abandoned, add a DIY patch. Signed-off-by: George Sapkin --- multimedia/mjpg-streamer/Makefile | 2 +- multimedia/mjpg-streamer/patches/001-cmake4.patch | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 multimedia/mjpg-streamer/patches/001-cmake4.patch diff --git a/multimedia/mjpg-streamer/Makefile b/multimedia/mjpg-streamer/Makefile index 272197c1a45786..2a9a9687e5b70e 100644 --- a/multimedia/mjpg-streamer/Makefile +++ b/multimedia/mjpg-streamer/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mjpg-streamer PKG_VERSION:=1.0.0 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/jacksonliam/mjpg-streamer/tar.gz/v$(PKG_VERSION)? diff --git a/multimedia/mjpg-streamer/patches/001-cmake4.patch b/multimedia/mjpg-streamer/patches/001-cmake4.patch new file mode 100644 index 00000000000000..c36be08bd3b814 --- /dev/null +++ b/multimedia/mjpg-streamer/patches/001-cmake4.patch @@ -0,0 +1,8 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.8.3) ++cmake_minimum_required(VERSION 3.10) + set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) + + project("mjpg-streamer" C) From ae7a13be62bb4ad13ee9ad1898a61ccea3c6e66e Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 12:35:11 +0200 Subject: [PATCH 32/37] python-eventlet: bump to version 0.40.3 This change updates eventlet to 0.40.3 It no longer needs 'six' Needs python-setuptools/host & python-hatchling/host & python-hatch-vcs/host as PKG_BUILD_DEPENDS. Signed-off-by: Alexandru Ardelean --- lang/python/python-eventlet/Makefile | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lang/python/python-eventlet/Makefile b/lang/python/python-eventlet/Makefile index 8b01f5be20c94c..82fbff0367d0fc 100644 --- a/lang/python/python-eventlet/Makefile +++ b/lang/python/python-eventlet/Makefile @@ -8,16 +8,22 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-eventlet -PKG_VERSION:=0.33.3 +PKG_VERSION:=0.40.3 PKG_RELEASE:=1 PYPI_NAME:=eventlet -PKG_HASH:=722803e7eadff295347539da363d68ae155b8b26ae6a634474d0a920be73cfda +PKG_HASH:=290852db0065d78cec17a821b78c8a51cafb820a792796a354592ae4d5fceeb0 PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE +PKG_BUILD_DEPENDS:= \ + python3/host \ + python-setuptools/host \ + python-hatch-vcs/host \ + python-hatchling/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk @@ -30,10 +36,8 @@ define Package/python3-eventlet URL:=https://eventlet.net/ DEPENDS:= \ +python3-light \ - +python3-six \ +python3-dns \ +python3-greenlet \ - +python3-distutils \ +python3-email \ +python3-logging \ +python3-openssl \ From 7d7f9c077c0661a6c8fc9c6e64480b4679ffe9d2 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 18:41:03 +0200 Subject: [PATCH 33/37] python-markdown: upgrade to version 3.10 This change updates markdown to version 3.10 Signed-off-by: Alexandru Ardelean --- lang/python/python-markdown/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lang/python/python-markdown/Makefile b/lang/python/python-markdown/Makefile index 1ab6bda3e3d3a1..5c288dda3f8bce 100644 --- a/lang/python/python-markdown/Makefile +++ b/lang/python/python-markdown/Makefile @@ -8,16 +8,18 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-markdown -PKG_VERSION:=3.4.4 +PKG_VERSION:=3.10 PKG_RELEASE:=1 -PYPI_NAME:=Markdown -PKG_HASH:=225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6 +PYPI_NAME:=markdown +PKG_HASH:=37062d4f2aa4b2b6b32aefb80faa300f82cc790cb949a35b8caede34f2b68c0e PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE.md +PKG_BUILD_DEPENDS:=python3/host python-setuptools/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk include ../python3-package.mk From 7db6be5df9bcd3e425db5a477177a0c87ecb9a5e Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Fri, 14 Nov 2025 18:45:50 +0200 Subject: [PATCH 34/37] python-greenlet: upgrade to version 3.2.4 This upgrades greenlet to 3.2.4 Signed-off-by: Alexandru Ardelean --- lang/python/python-greenlet/Makefile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lang/python/python-greenlet/Makefile b/lang/python/python-greenlet/Makefile index dced8ade5abe72..a1513fa4690729 100644 --- a/lang/python/python-greenlet/Makefile +++ b/lang/python/python-greenlet/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-greenlet -PKG_VERSION:=3.0.2 +PKG_VERSION:=3.2.4 PKG_RELEASE:=1 PYPI_NAME:=greenlet -PKG_HASH:=1c1129bc47266d83444c85a8e990ae22688cf05fb20d7951fd2866007c2ba9bc +PKG_HASH:=0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT @@ -20,7 +20,12 @@ PKG_LICENSE_FILES:=LICENSE # FIXME: remove when GCC10 is the oldest supported compiler, or the issue goes away PKG_BUILD_FLAGS:=no-mips16 -HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host +HOST_BUILD_DEPENDS:= \ + python3/host \ + python-setuptools/host \ + python-build/host \ + python-installer/host \ + python-wheel/host include ../pypi.mk include $(INCLUDE_DIR)/package.mk From 09495c5c8cdb612e17b3f4d87ee7f5cfa6ab63d5 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 15 Nov 2025 22:25:53 +0200 Subject: [PATCH 35/37] python-hatch-vcs: upgrade to version 0.5.0 Upgrade to version 0.5.0 Add python-setuptools/host as dep. Signed-off-by: Alexandru Ardelean --- lang/python/python-hatch-vcs/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lang/python/python-hatch-vcs/Makefile b/lang/python/python-hatch-vcs/Makefile index 6726a77768d63b..126a071c0e05a0 100644 --- a/lang/python/python-hatch-vcs/Makefile +++ b/lang/python/python-hatch-vcs/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-hatch-vcs -PKG_VERSION:=0.4.0 +PKG_VERSION:=0.5.0 PKG_RELEASE:=1 PYPI_NAME:=hatch-vcs PYPI_SOURCE_NAME:=hatch_vcs -PKG_HASH:=093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7 +PKG_HASH:=0395fa126940340215090c344a2bf4e2a77bcbe7daab16f41b37b98c95809ff9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE.txt @@ -22,6 +22,7 @@ PKG_MAINTAINER:=Jeffery To PKG_HOST_ONLY:=1 HOST_BUILD_DEPENDS:= \ python3/host \ + python-setuptools/host \ python-build/host \ python-installer/host \ python-hatchling/host \ From 83c6a29598687a89fdb1c9f93865fde1b46a0297 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 17 Nov 2025 01:03:37 +0800 Subject: [PATCH 36/37] yq: Update to 4.48.2 Signed-off-by: Tianling Shen --- utils/yq/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/yq/Makefile b/utils/yq/Makefile index ffea7866026b57..b50020fc669e92 100644 --- a/utils/yq/Makefile +++ b/utils/yq/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=yq -PKG_VERSION:=4.48.1 +PKG_VERSION:=4.48.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/mikefarah/yq/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=591158368f8155421bd8821754a67b4478ee2cde205b7abfbf2d50f90769cf0e +PKG_HASH:=af464e5c227ad3894628de65db2996db0e4716a16388eaf08bfa73e93ad0604e PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 368fbd7896998033683f142ce2662c7644ee90a2 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Sun, 16 Nov 2025 19:19:39 +0100 Subject: [PATCH 37/37] adblock: release 4.4.3-1 * support TLDs in feeds and local block-/allowlist, e.g. to block all 'de' domains with a single entry * add active feed domains (of the feed download URLs) automatically to the local allowlist, to prevent download erros * update the feed categories of 1hosts * update and change the feed categories of hagezi: new categories are 'abusetlds', 'social', 'urlshortener' and 'nrd' (newly registered domains). The latter one required download URL changes. Please note: if you use hagezi than remove and re-add the categories in LuCI feed selection after the updae * Add an external adblock test (https://adblock.turtlecute.org/) on the DNS reporting tab, itprovides a simple way to check whether your current adblock setup is working as expected * readme update Signed-off-by: Dirk Brenken Signed-off-by: Daniele Bonomi --- net/adblock/Makefile | 4 +- net/adblock/files/README.md | 32 ++++++++---- net/adblock/files/adblock.categories | 78 +++++++++++++++------------- net/adblock/files/adblock.feeds | 56 ++++++++++---------- net/adblock/files/adblock.sh | 26 +++++++--- net/dnsdist/Makefile | 4 +- 6 files changed, 114 insertions(+), 86 deletions(-) diff --git a/net/adblock/Makefile b/net/adblock/Makefile index 9a341b03ce0dec..3611ebe327ed2e 100644 --- a/net/adblock/Makefile +++ b/net/adblock/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adblock -PKG_VERSION:=4.4.2 -PKG_RELEASE:=3 +PKG_VERSION:=4.4.3 +PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/adblock/files/README.md b/net/adblock/files/README.md index 617e0611d0c187..01a5b880b5ec84 100644 --- a/net/adblock/files/README.md +++ b/net/adblock/files/README.md @@ -267,8 +267,8 @@ Adblock does use RAM by default and never writes to the flash space of the route The following feeds are just my personal recommendation as an initial setup: * 'adguard', 'adguard_tracking' and 'certpl' -In total, this feed selection blocks about 100K domains. It may also be useful to include compilations like hagezi, stevenblack or oisd. -Please note: don't just blindly activate (too) many feeds at once, sooner or later this will lead to OOM conditions. +In total, this feed selection blocks about 280K domains. It may also be useful to include compilations like hagezi, stevenblack or oisd. +Please note: don't just blindly activate too many feeds at once, sooner or later this will lead to OOM conditions. **DNS reporting, enable the GeoIP Map** adblock includes a powerful reporting tool on the DNS Report tab which shows the latest DNS statistics generated by tcpdump. To get the latest statistics always press the "Refresh" button. @@ -282,6 +282,11 @@ To make this work, adblock uses the following external components: * [CARTO basemap styles](https://github.com/CartoDB/basemap-styles) based on [OpenMapTiles](https://openmaptiles.org/schema) * The free and quite fast [IP Geolocation API](https://ip-api.com/) to resolve the required IP/geolocation information (max. 45 blocked Domains per request) +**External adblock test** +In addition to the built‑in DNS reporting and GeoIP map, adblock users can verify the effectiveness of their configuration with an external test page. The [Adblock Test](https://adblock.turtlecute.org/) provides a simple way to check whether your current adblock setup is working as expected. It loads a series of test elements (ads, trackers, and other resources) and reports whether they are successfully blocked by your configuration. + +The test runs entirely in the browser and does not require additional configuration. For best results, open the page in the same environment where adblock is active and review the results displayed. + **Use the jail mode, a restrictive DNS blocklist:** You can enable a restrictive 'adb_list.jail' to block access to all domains except those listed in the allowlist file. Usually this list will be generated as an additional list for guest or kidsafe configurations (for a separate dns server instance). If the jail directory points to your primary dns directory, the jail blocklist replaces your default blocklist. @@ -304,22 +309,29 @@ from dev.adblock@gmail.com user dev.adblock password xxx -Finally enable E-Mail support and add a valid E-Mail receiver address in LuCI. +Finally enable E-Mail support, add a valid E-Mail receiver address in LuCI and setup an appropriate cron job. -**Automatic feed updates and status reports via E-Mail** -For a regular, automatic update of the used feeds or other regular adblock activities set up a cron job, e.g.: +**Automatic adblock feed updates and E-Mail reports** +For a regular, automatic update of the used feeds or other regular adblock tasks set up a cron job. In LuCI you find the cron settings under 'System' => 'Scheduled Tasks'. On the command line the cron file is located at '/etc/crontabs/root': +Example 1 ``` -# update the feeds every morning at 4 o'clock +# update the adblock feeds every morning at 4 o'clock 00 04 * * * /etc/init.d/adblock reload +``` -# send a report E-Mail every morning at 3 o'clock -00 03 * * * /etc/init.d/adblock report mail - -# update the feeds every hour +Example 2 +``` +# update the adblock feeds every hour 0 */1 * * * /etc/init.d/adblock reload ``` +Example 3 +``` +# send an adblock E-Mail report every morning at 3 o'clock +00 03 * * * /etc/init.d/adblock report mail +``` + **Change/add adblock feeds** The adblock blocklist feeds are stored in an external JSON file '/etc/adblock/adblock.feeds'. All custom changes should be stored in an external JSON file '/etc/adblock/adblock.custom.feeds' (empty by default). It's recommended to use the LuCI based Custom Feed Editor to make changes to this file. A valid JSON source object contains the following information, e.g.: diff --git a/net/adblock/files/adblock.categories b/net/adblock/files/adblock.categories index ea247e212dc153..f4e484d266b16b 100644 --- a/net/adblock/files/adblock.categories +++ b/net/adblock/files/adblock.categories @@ -1,40 +1,46 @@ -hag;multi-light;light-onlydomains.txt -hag;multi-normal;multi-onlydomains.txt -hag;multi-pro;pro-onlydomains.txt -hag;multi-pro.mini;pro.mini-onlydomains.txt -hag;multi-pro.plus;pro.plus-onlydomains.txt -hag;multi-pro.plus.mini;pro.plus.mini-onlydomains.txt -hag;multi-ultimate;ultimate-onlydomains.txt -hag;multi-ultimate.mini;ultimate.mini-onlydomains.txt -hag;threat-intelligence;tif-onlydomains.txt -hag;threat-intelligence.medium;tif.medium-onlydomains.txt -hag;threat-intelligence.mini;tif.mini-onlydomains.txt -hag;anti.piracy;anti.piracy-onlydomains.txt -hag;doh;doh-onlydomains.txt -hag;doh-vpn-proxy-bypass;doh-vpn-proxy-bypass-onlydomains.txt -hag;dyndns;dyndns-onlydomains.txt -hag;fake;fake-onlydomains.txt -hag;gambling;gambling-onlydomains.txt -hag;gambling.medium;gambling.medium-onlydomains.txt -hag;gambling.mini;gambling.mini-onlydomains.txt -hag;hoster;hoster-onlydomains.txt -hag;nsfw;nsfw-onlydomains.txt -hag;tracker.amazon;native.amazon-onlydomains.txt -hag;tracker.apple;native.apple-onlydomains.txt -hag;tracker.huawei;native.huawei-onlydomains.txt -hag;tracker.lgwebos;native.lgwebos-onlydomains.txt -hag;tracker.oppo-realme;native.oppo-realme-onlydomains.txt -hag;tracker.samsung;native.samsung-onlydomains.txt -hag;tracker.tiktok;native.tiktok-onlydomains.txt -hag;tracker.tiktok.extended;native.tiktok.extended-onlydomains.txt -hag;tracker.vivo;native.vivo-onlydomains.txt -hag;tracker.winoffice;native.winoffice-onlydomains.txt -hag;tracker.xiaomi;native.xiaomi-onlydomains.txt -hag;nosafesearch;nosafesearch-onlydomains.txt -hag;popupads;popupads-onlydomains.txt -hst;mini;mini/domains.wildcards +hag;multi-light;wildcard/light-onlydomains.txt +hag;multi-normal;wildcard/multi-onlydomains.txt +hag;multi-pro;wildcard/pro-onlydomains.txt +hag;multi-pro.mini;wildcard/pro.mini-onlydomains.txt +hag;multi-pro.plus;wildcard/pro.plus-onlydomains.txt +hag;multi-pro.plus.mini;wildcard/pro.plus.mini-onlydomains.txt +hag;multi-ultimate;wildcard/ultimate-onlydomains.txt +hag;multi-ultimate.mini;wildcard/ultimate.mini-onlydomains.txt +hag;threat-intelligence;wildcard/tif-onlydomains.txt +hag;threat-intelligence.medium;wildcard/tif.medium-onlydomains.txt +hag;threat-intelligence.mini;wildcard/tif.mini-onlydomains.txt +hag;anti.piracy;wildcard/anti.piracy-onlydomains.txt +hag;doh;wildcard/doh-onlydomains.txt +hag;doh-vpn-proxy-bypass;wildcard/doh-vpn-proxy-bypass-onlydomains.txt +hag;dyndns;wildcard/dyndns-onlydomains.txt +hag;fake;wildcard/fake-onlydomains.txt +hag;gambling;wildcard/gambling-onlydomains.txt +hag;gambling.medium;wildcard/gambling.medium-onlydomains.txt +hag;gambling.mini;wildcard/gambling.mini-onlydomains.txt +hag;hoster;wildcard/hoster-onlydomains.txt +hag;nsfw;wildcard/nsfw-onlydomains.txt +hag;tracker.amazon;wildcard/native.amazon-onlydomains.txt +hag;tracker.apple;wildcard/native.apple-onlydomains.txt +hag;tracker.huawei;wildcard/native.huawei-onlydomains.txt +hag;tracker.lgwebos;wildcard/native.lgwebos-onlydomains.txt +hag;tracker.oppo-realme;wildcard/native.oppo-realme-onlydomains.txt +hag;tracker.samsung;wildcard/native.samsung-onlydomains.txt +hag;tracker.tiktok;wildcard/native.tiktok-onlydomains.txt +hag;tracker.tiktok.extended;wildcard/native.tiktok.extended-onlydomains.txt +hag;tracker.vivo;wildcard/native.vivo-onlydomains.txt +hag;tracker.winoffice;wildcard/native.winoffice-onlydomains.txt +hag;tracker.xiaomi;wildcard/native.xiaomi-onlydomains.txt +hag;nosafesearch;wildcard/nosafesearch-onlydomains.txt +hag;popupads;wildcard/popupads-onlydomains.txt +hag;urlshortener;wildcard/urlshortener-onlydomains.txt +hag;abusetlds;wildcard/spam-tlds-onlydomains.txt +hag;social;wildcard/social-onlydomains.txt +hag;nrd-7days;domains/nrd7.txt +hag;nrd-14days;domains/nrd14-8.txt +hag;nrd-21days;domains/nrd21-15.txt +hag;nrd-28days;domains/nrd28-22.txt +hag;nrd-35days;domains/nrd35-29.txt hst;lite;Lite/domains.wildcards -hst;pro;Pro/domains.wildcards hst;xtra;Xtra/domains.wildcards stb;standard;hosts stb;standard-fakenews;alternates/fakenews/hosts diff --git a/net/adblock/files/adblock.feeds b/net/adblock/files/adblock.feeds index 3aca04db18993c..c451d4aa302bc1 100644 --- a/net/adblock/files/adblock.feeds +++ b/net/adblock/files/adblock.feeds @@ -1,7 +1,7 @@ { "1hosts": { "url": "https://raw.githubusercontent.com/badmojr/1Hosts/master/", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "compilation" }, @@ -19,25 +19,25 @@ }, "adguard_tracking": { "url": "https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "tracking" }, "android_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/android-tracking.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, "andryou": { "url": "https://gitlab.com/andryou/block/raw/master/kouhai-compressed-domains", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, "anti_ad": { "url": "https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, @@ -55,31 +55,31 @@ }, "certpl": { "url": "https://hole.cert.pl/domains/v2/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "phishing" }, "cpbl": { "url": "https://raw.githubusercontent.com/bongochong/CombinedPrivacyBlockLists/master/NoFormatting/cpbl-ctld.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "disconnect": { "url": "https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" }, "divested": { "url": "https://divested.dev/hosts-domains-wildcards", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "compilation" }, "doh_blocklist": { "url": "https://raw.githubusercontent.com/dibdot/DoH-IP-blocklists/master/doh-domains_overall.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "doh_server" }, @@ -97,25 +97,25 @@ }, "energized_blu": { "url": "https://energized.pro/blu/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "energized_spark": { "url": "https://energized.pro/spark/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "compilation" }, "energized_ultimate": { "url": "https://energized.pro/ultimate/domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "compilation" }, "firetv_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/AmazonFireTV.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, @@ -127,13 +127,13 @@ }, "hblock": { "url": "https://hblock.molinero.dev/hosts_domains.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "compilation" }, "hagezi": { - "url": "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/wildcard/", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "url": "https://raw.githubusercontent.com/hagezi/dns-blocklists/main/", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "compilation" }, @@ -145,31 +145,31 @@ }, "notracking": { "url": "https://raw.githubusercontent.com/notracking/hosts-blocklists/master/dnscrypt-proxy/dnscrypt-proxy.blacklist.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XL", "descr": "tracking" }, "oisd_big": { "url": "https://big.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "general" }, "oisd_nsfw": { "url": "https://nsfw.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "XXL", "descr": "porn" }, "oisd_nsfw_small": { "url": "https://nsfw-small.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "M", "descr": "porn" }, "oisd_small": { "url": "https://small.oisd.nl/domainswild2", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "L", "descr": "general" }, @@ -181,7 +181,7 @@ }, "phishing_army": { "url": "https://phishing.army/download/phishing_army_blocklist_extended.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "phishing" }, @@ -289,13 +289,13 @@ }, "smarttv_tracking": { "url": "https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "tracking" }, "spam404": { "url": "https://raw.githubusercontent.com/Dawsey21/Lists/master/main-blacklist.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" }, @@ -313,13 +313,13 @@ }, "utcapitole": { "url": "https://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "VAR", "descr": "general" }, "wally3k": { "url": "https://v.firebog.net/hosts/static/w3kbl.txt", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "compilation" }, @@ -343,7 +343,7 @@ }, "yoyo": { "url": "https://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml&showintro=0&mimetype=plaintext", - "rule": "/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower($1)}", + "rule": "/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower($1)}", "size": "S", "descr": "general" } diff --git a/net/adblock/files/adblock.sh b/net/adblock/files/adblock.sh index af08de8297a534..abfb188a55a570 100755 --- a/net/adblock/files/adblock.sh +++ b/net/adblock/files/adblock.sh @@ -699,7 +699,7 @@ f_list() { ;; "blocklist" | "allowlist") src_name="${mode}" - rset="/^([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$1)}" + rset="/^(([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{print tolower(\$1)}" case "${src_name}" in "blocklist") if [ -f "${adb_blocklist}" ]; then @@ -723,7 +723,7 @@ f_list() { "allowlist") if [ -f "${adb_allowlist}" ] && [ "${adb_dnsallow}" != "0" ]; then file_name="${adb_tmpdir}/tmp.raw.${src_name}" - printf "%s\n" "${adb_lookupdomain}" | "${adb_awkcmd}" "${rset}" >"${file_name}" + [ "${adb_lookupdomain}" != "localhost" ] && printf "%s\n" "${adb_lookupdomain}" | "${adb_awkcmd}" "${rset}" >"${file_name}" "${adb_awkcmd}" "${rset}" "${adb_allowlist}" >>"${file_name}" "${adb_awkcmd}" "${rset}" "${file_name}" >"${adb_tmpdir}/tmp.rem.${src_name}" eval "${adb_dnsallow}" "${file_name}" >"${adb_tmpdir}/tmp.add.${src_name}" @@ -744,7 +744,7 @@ f_list() { fi case "${src_name}" in "google") - rset="/^\\.([[:alnum:]_-]{1,63}\\.)+[[:alpha:]]+([[:space:]]|$)/{printf \"%s\n%s\n\",tolower(\"www\"\$1),tolower(substr(\$1,2,length(\$1)))}" + rset="/^(\\.([[:alnum:]_-]{1,63}\\.)*[[:alnum:]-]{2,63}([[:space:]]|$))/{printf \"%s\n%s\n\",tolower(\"www\"\$1),tolower(substr(\$1,2,length(\$1)))}" safe_url="https://www.google.com/supported_domains" safe_cname="forcesafesearch.google.com" if [ -s "${adb_backupdir}/safesearch.${src_name}.gz" ]; then @@ -878,8 +878,8 @@ f_list() { file_name="${adb_finaldir}/${adb_dnsfile}" rm -f "${file_name}" [ -n "${adb_dnsheader}" ] && printf "%b" "${adb_dnsheader}" >>"${file_name}" - [ -s "${adb_tmpdir}/tmp.add.iplist" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.add.iplist" >>"${file_name}" - [ -s "${adb_tmpdir}/tmp.add.allowlist" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.add.allowlist" >>"${file_name}" + [ -s "${adb_tmpdir}/tmp.add.iplist" ] && "${adb_sortcmd}" ${adb_srtopts} -u "${adb_tmpdir}/tmp.add.iplist" >>"${file_name}" + [ -s "${adb_tmpdir}/tmp.add.allowlist" ] && "${adb_sortcmd}" ${adb_srtopts} -u "${adb_tmpdir}/tmp.add.allowlist" >>"${file_name}" [ "${adb_safesearch}" = "1" ] && "${adb_catcmd}" "${adb_tmpdir}/tmp.safesearch."* 2>/dev/null >>"${file_name}" if [ "${adb_dnsdeny}" != "0" ]; then eval "${adb_dnsdeny}" "${adb_tmpdir}/${adb_dnsfile}" >>"${file_name}" @@ -1150,7 +1150,7 @@ f_log() { # main function for blocklist processing # f_main() { - local src_tmpload src_tmpfile src_name src_rset src_url src_cat src_item src_list src_entries src_suffix src_rc entry cnt + local src_tmpload src_tmpfile src_name src_domain src_rset src_url src_cat src_item src_list src_entries src_suffix src_rc entry cnt # allow- and blocklist preparation # @@ -1215,6 +1215,9 @@ f_main() { adb_feed="${adb_feed/${src_name}/}" continue fi + + # get feed information + # json_get_var src_url "url" >/dev/null 2>&1 json_get_var src_rset "rule" >/dev/null 2>&1 json_select .. @@ -1231,6 +1234,15 @@ f_main() { continue fi + # add domains of active feed URLs to the allowlist + # + src_domain="${src_url#*://}" + src_domain="${src_domain%%/*}" + if [ -n "${src_domain}" ] && [ "${adb_dnsallow}" != "0" ] && ! "${adb_grepcmd}" -qxF "${src_domain}" "${adb_tmpdir}/tmp.raw.allowlist"; then + printf "%s\n" "${src_domain}" >>"${adb_tmpdir}/tmp.raw.allowlist" + eval "${adb_dnsallow}" "${adb_tmpdir}/tmp.raw.allowlist" >>"${adb_tmpdir}/tmp.add.allowlist" + fi + # download queue processing # src_cat="" @@ -1465,7 +1477,7 @@ f_report() { json_get_keys details >/dev/null 2>&1 json_get_var rc "rc" >/dev/null 2>&1 json_get_var domain "domain" >/dev/null 2>&1 - if [ "${rc}" = "NX" ] && ! "${adb_catcmd}" "${map_jsn}" 2>/dev/null | "${adb_grepcmd}" -q "${domain}"; then + if [ "${rc}" = "NX" ] && ! "${adb_catcmd}" "${map_jsn}" 2>/dev/null | "${adb_grepcmd}" -qxF "${domain}"; then ( "${adb_fetchcmd}" ${adb_geoparm} "${adb_geourl}/${domain}" 2>/dev/null | "${adb_awkcmd}" -v feed="${domain}" '{printf ",{\"%s\": %s}\n",feed,$0}' >>"${map_jsn}" diff --git a/net/dnsdist/Makefile b/net/dnsdist/Makefile index 58c8828a5f6535..bbb5dfb2de85eb 100644 --- a/net/dnsdist/Makefile +++ b/net/dnsdist/Makefile @@ -35,9 +35,7 @@ define Package/dnsdist/Default +libatomic \ +libcap \ +libstdcpp \ - @(HAS_LUAJIT_ARCH&&!aarch64):+luajit \ - @aarch64:+liblua \ - @!HAS_LUAJIT_ARCH:+liblua + $(if $(and $(HAS_LUAJIT_ARCH),$(filter-out aarch64,$(ARCH))), +luajit, +liblua) \ URL:=https://dnsdist.org/ VARIANT:=$(1) PROVIDES:=dnsdist