diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000..7feba4b7e9c43 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.alwaysSignOff": true +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4bf5626c4f5f5..4c0d0d4b08b65 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -200,9 +200,7 @@ created packages and runs a script called `test.sh` located next to the package Makefile. The script is executed with the two arguments `PKG_NAME` and `PKG_VERSION`. The `PKG_NAME` can be used to distinguish package variants, e.g. `foobar` vs. `foobar-full`. The `PKG_VERSION` can be used for a trivial test -checking if `foobar --version` prints the correct version. `PKG_VERSION` is the -OpenWrt version and therefore includes the `PKG_RELEASE`, which isn't usually -part of the running programs version. +checking if `foobar --version` prints the correct version. The following snippet shows a script that tests different binaries depending on what IPK package was installed. The `gpsd` Makefile produces both a `gpsd` and diff --git a/admin/btop/Makefile b/admin/btop/Makefile index 46e86ad49d415..75c04e411349e 100644 --- a/admin/btop/Makefile +++ b/admin/btop/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=btop -PKG_VERSION:=1.3.2 +PKG_VERSION:=1.4.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL=https://codeload.github.com/aristocratos/btop/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=331d18488b1dc7f06cfa12cff909230816a24c57790ba3e8224b117e3f0ae03e +PKG_HASH:=ac0d2371bf69d5136de7e9470c6fb286cbee2e16b4c7a6d2cd48a14796e86650 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=Apache-2.0 diff --git a/admin/fluent-bit/Makefile b/admin/fluent-bit/Makefile index 9fa1dd12eb947..a4c2e5a4a7367 100644 --- a/admin/fluent-bit/Makefile +++ b/admin/fluent-bit/Makefile @@ -41,7 +41,10 @@ CMAKE_OPTIONS+= \ -DFLB_CHUNK_TRACE=No \ -DFLB_BACKTRACE=No \ -DFLB_WASM=No \ - -DFLB_LUAJIT=No + -DFLB_LUAJIT=No \ + -DWITH_SASL=No \ + -DWITH_ZLIB=No \ + -DWITH_ZSTD=No define Package/fluent-bit/install $(INSTALL_DIR) $(1)/usr/sbin diff --git a/admin/openwisp-config/Makefile b/admin/openwisp-config/Makefile index 16847b5e86760..e2c409c9bc61d 100644 --- a/admin/openwisp-config/Makefile +++ b/admin/openwisp-config/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openwisp-config -PKG_VERSION:=1.0.1 -PKG_RELEASE:=3 +PKG_VERSION:=1.1.0 +PKG_RELEASE:=1 PKG_MAINTAINER:=Federico Capoano PKG_LICENSE:=GPL-3.0-or-later PKG_SOURCE_URL:=https://github.com/openwisp/openwisp-config.git -PKG_MIRROR_HASH:=14d65c0aa092b5815bcc3b53c26784a069adf783d3e2c6f5f13a4d62024e5620 +PKG_MIRROR_HASH:=c78dc17353c642a6f998531f18e20f0651f946d665506a000308e77c02324a79 PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=$(PKG_VERSION) diff --git a/admin/openwisp-monitoring/Makefile b/admin/openwisp-monitoring/Makefile index 1ed6ca575003a..959c788775969 100644 --- a/admin/openwisp-monitoring/Makefile +++ b/admin/openwisp-monitoring/Makefile @@ -5,15 +5,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openwisp-monitoring -PKG_VERSION:=0.1.1 -PKG_RELEASE:=3 +PKG_VERSION:=0.2.0 +PKG_RELEASE:=1 PKG_MAINTAINER:=Federico Capoano PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE PKG_SOURCE_URL:=https://github.com/openwisp/openwrt-openwisp-monitoring.git -PKG_MIRROR_HASH:=97ae00b37518919079d894622c664d330bbf0cb0ee1b68c84991b459c1a087ee +PKG_MIRROR_HASH:=6baad2b319cdc072a83547593b447e2c93c42fcdda386f5993c22b88ad991cdd PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=$(PKG_VERSION) PKGARCH:=all diff --git a/lang/golang/golang-build.sh b/lang/golang/golang-build.sh index fe8718ee761eb..01df4aa427a5b 100644 --- a/lang/golang/golang-build.sh +++ b/lang/golang/golang-build.sh @@ -120,7 +120,7 @@ build() { if [ "$GO_GO_GENERATE" = 1 ]; then log "Calling go generate" # shellcheck disable=SC2086 - GOOS='' GOARCH='' GO386='' GOARM='' GOMIPS='' GOMIPS64='' \ + GOOS='' GOARCH='' GO386='' GOARM='' GOARM64='' GOMIPS='' GOMIPS64='' GORISCV64=''\ go generate -v $targets log fi diff --git a/lang/golang/golang-compiler.mk b/lang/golang/golang-compiler.mk index 50cc44905165c..44defed7b4442 100644 --- a/lang/golang/golang-compiler.mk +++ b/lang/golang/golang-compiler.mk @@ -19,14 +19,11 @@ define GoCompiler/Default/CheckHost endef # $(1) source go root -# $(2) destination prefix -# $(3) go version id -# $(4) additional environment variables (optional) +# $(2) additional environment variables (optional) define GoCompiler/Default/Make ( \ cd "$(1)/src" ; \ - $(if $(2),GOROOT_FINAL="$(2)/lib/go-$(3)") \ - $(4) \ + $(2) \ $(BASH) make.bash \ $(if $(findstring s,$(OPENWRT_VERBOSE)),-v) \ --no-banner \ @@ -156,7 +153,7 @@ define GoCompiler/AddProfile # $$(1) additional environment variables (optional) define GoCompiler/$(1)/Make - $$(call GoCompiler/Default/Make,$(2),$(3),$(4),$$(1)) + $$(call GoCompiler/Default/Make,$(2),$$(1)) endef # $$(1) override install prefix (optional) diff --git a/lang/golang/golang-values.mk b/lang/golang/golang-values.mk index a2a10f04d33c2..d57de5f3256cb 100644 --- a/lang/golang/golang-values.mk +++ b/lang/golang/golang-values.mk @@ -59,11 +59,13 @@ unexport \ # Architecture-specific environment variables: unexport \ GOARM \ + GOARM64 \ GO386 \ GOAMD64 \ GOMIPS \ GOMIPS64 \ GOPPC64 \ + GORISCV64 \ GOWASM # Environment variables for use with code coverage: diff --git a/lang/golang/golang/Makefile b/lang/golang/golang/Makefile index b1ee96c76de12..902f4180d2573 100644 --- a/lang/golang/golang/Makefile +++ b/lang/golang/golang/Makefile @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk -GO_VERSION_MAJOR_MINOR:=1.22 -GO_VERSION_PATCH:=7 +GO_VERSION_MAJOR_MINOR:=1.23 +GO_VERSION_PATCH:=2 PKG_NAME:=golang PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH)) @@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \ PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz PKG_SOURCE_URL:=$(GO_SOURCE_URLS) -PKG_HASH:=66432d87d85e0cfac3edffe637d5930fc4ddf5793313fe11e4a0f333023c879f +PKG_HASH:=36930162a93df417d90bd22c6e14daff4705baac2b02418edda671cdfa9cd07f PKG_MAINTAINER:=Jeffery To PKG_LICENSE:=BSD-3-Clause @@ -34,7 +34,6 @@ PKG_BUILD_FLAGS:=no-mips16 PKG_GO_PREFIX:=/usr PKG_GO_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR) -PKG_GO_ROOT:=$(PKG_GO_PREFIX)/lib/go-$(PKG_GO_VERSION_ID) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION) HOST_BUILD_PARALLEL:=1 @@ -65,6 +64,7 @@ HOST_GO_VALID_OS_ARCH:= \ wasip1_wasm \ \ freebsd_riscv64 \ + openbsd_riscv64 \ \ linux_ppc64 linux_ppc64le \ linux_mips linux_mipsle linux_mips64 linux_mips64le \ @@ -394,7 +394,6 @@ define Build/Compile cd "$(PKG_BUILD_DIR)/bin" ; \ export $(GO_PKG_TARGET_VARS) ; \ $(CP) go go-host ; \ - GOROOT_FINAL="$(PKG_GO_ROOT)" \ GO_GCC_HELPER_CC="$(TARGET_CC)" \ GO_GCC_HELPER_CXX="$(TARGET_CXX)" \ $(PKG_GO_VARS) \ diff --git a/lang/node/Makefile b/lang/node/Makefile index ae149edf21c14..3cc837fccc7c4 100644 --- a/lang/node/Makefile +++ b/lang/node/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=node -PKG_VERSION:=20.17.0 +PKG_VERSION:=20.18.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://nodejs.org/dist/v$(PKG_VERSION) -PKG_HASH:=409bda5f1896c7c20866610d778d1760991884ad2e7940837cd3f2854cf73747 +PKG_HASH:=c0819f8fc5038584d24c22002aeffd23f2d4a6fd6b337b30c502cbe4a659720c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-v$(PKG_VERSION) diff --git a/lang/node/patches/201-zlib_gyp.patch b/lang/node/patches/201-zlib_gyp.patch index cc1a46eb3aba4..47175ae2d391f 100644 --- a/lang/node/patches/201-zlib_gyp.patch +++ b/lang/node/patches/201-zlib_gyp.patch @@ -1,8 +1,8 @@ --- a/deps/zlib/zlib.gyp +++ b/deps/zlib/zlib.gyp -@@ -9,6 +9,7 @@ +@@ -8,6 +8,7 @@ + 'use_system_zlib%': 0, 'arm_fpu%': '', - 'llvm_version%': '0.0', }, + 'include_dirs!': [ ' @@ -16,7 +16,7 @@ PKG_CPE_ID:=cpe:/a:php:php PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://www.php.net/distributions/ -PKG_HASH:=b862b098a08ab9bf4b36ed12c7d0d9f65353656b36fb0e3c5344093aceb35802 +PKG_HASH:=f774e28633e26fc8c5197f4dae58ec9e3ff87d1b4311cbc61ab05a7ad24bd131 PKG_BUILD_PARALLEL:=1 PKG_BUILD_FLAGS:=no-mips16 diff --git a/lang/php8/patches/0025-php-5.4.9-fixheader.patch b/lang/php8/patches/0025-php-5.4.9-fixheader.patch index d3dae7223fed9..b223012cf0bc8 100644 --- a/lang/php8/patches/0025-php-5.4.9-fixheader.patch +++ b/lang/php8/patches/0025-php-5.4.9-fixheader.patch @@ -9,7 +9,7 @@ Make generated php_config.h constant across rebuilds. --- a/configure.ac +++ b/configure.ac -@@ -1493,7 +1493,7 @@ PHP_REMOVE_USR_LIB(LDFLAGS) +@@ -1507,7 +1507,7 @@ PHP_REMOVE_USR_LIB(LDFLAGS) EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS" EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS" diff --git a/lang/php8/patches/1004-disable-phar-command.patch b/lang/php8/patches/1004-disable-phar-command.patch index 317f55f37548f..ad527bfb0241c 100644 --- a/lang/php8/patches/1004-disable-phar-command.patch +++ b/lang/php8/patches/1004-disable-phar-command.patch @@ -11,7 +11,7 @@ --- a/configure.ac +++ b/configure.ac -@@ -1689,13 +1689,13 @@ CFLAGS_CLEAN="$CFLAGS \$(PROF_FLAGS)" +@@ -1703,13 +1703,13 @@ CFLAGS_CLEAN="$CFLAGS \$(PROF_FLAGS)" CFLAGS="\$(CFLAGS_CLEAN) $standard_libtool_flag" CXXFLAGS="$CXXFLAGS $standard_libtool_flag \$(PROF_FLAGS)" diff --git a/lang/rust/rust-values.mk b/lang/rust/rust-values.mk index d423d0a87f230..035a4e07735e1 100644 --- a/lang/rust/rust-values.mk +++ b/lang/rust/rust-values.mk @@ -104,3 +104,5 @@ CARGO_PKG_CONFIG_VARS= \ TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)" CARGO_PKG_PROFILE:=$(if $(CONFIG_DEBUG),dev,release) + +CARGO_RUSTFLAGS+=-Clink-arg=-fuse-ld=$(TARGET_LINKER) diff --git a/libs/libgudev/Makefile b/libs/libgudev/Makefile deleted file mode 100644 index 42d3d9c36f991..0000000000000 --- a/libs/libgudev/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright (C) 2024 TDT AG -# -# This is free software, licensed under the GNU General Public License v2. -# See https://www.gnu.org/licenses/gpl-2.0.txt for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libgudev -PKG_VERSION:=238 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=@GNOME/libgudev/$(basename $(PKG_VERSION)) -PKG_HASH:=61266ab1afc9d73dbc60a8b2af73e99d2fdff47d99544d085760e4fa667b5dd1 - -PKG_MAINTAINER:=Lukas Voegl -PKG_LICENSE:=LGPL-2.1-or-later -PKG_LICENSE_FILES:=COPYING - -PKG_BUILD_DEPENDS:=glib2/host - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/nls.mk -include $(INCLUDE_DIR)/meson.mk - -define Package/libgudev - SECTION:=libs - CATEGORY:=Libraries - TITLE:=libgudev - URL:=https://gitlab.gnome.org/GNOME/libgudev - DEPENDS:= \ - +glib2 \ - +libudev -endef - -define Package/libgusb/description - libgudev is a GObject-based wrapper library providing bindings for libudev. -endef - -MESON_ARGS+= \ - -Db_lto=true \ - -Dtests=disabled \ - -Dintrospection=disabled \ - -Dvapi=disabled \ - -Dgtk_doc=false - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/gudev-1.0/gudev - $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/*.h $(1)/usr/include/gudev-1.0/gudev - - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgudev-1.0.so* $(1)/usr/lib - - $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/gudev-1.0.pc $(1)/usr/lib/pkgconfig -endef - -define Package/libgudev/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgudev-1.0.so* $(1)/usr/lib -endef - -$(eval $(call BuildPackage,libgudev)) diff --git a/libs/libmaxminddb/Makefile b/libs/libmaxminddb/Makefile index 901294d7bd96d..f5c3e228c2805 100644 --- a/libs/libmaxminddb/Makefile +++ b/libs/libmaxminddb/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libmaxminddb PKG_VERSION:=1.11.0 -PKG_RELEASE=1 +PKG_RELEASE=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/maxmind/libmaxminddb/releases/download/$(PKG_VERSION) @@ -45,6 +45,8 @@ define Build/InstallDev $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmaxminddb.so* $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libmaxminddb.pc $(1)/usr/lib/pkgconfig + $(SED) 's,libdir=lib,libdir=$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libmaxminddb.pc + $(SED) 's,includedir=include,includedir=$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libmaxminddb.pc endef define Package/libmaxminddb/install diff --git a/libs/libpng/Makefile b/libs/libpng/Makefile index 90de202202e3c..748752faac03e 100644 --- a/libs/libpng/Makefile +++ b/libs/libpng/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libpng -PKG_VERSION:=1.6.43 -PKG_RELEASE:=1 +PKG_VERSION:=1.6.44 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@SF/libpng -PKG_HASH:=6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c +PKG_HASH:=60c4da1d5b7f0aa8d158da48e8f8afa9773c1c8baa5d21974df61f1886b8ce8e PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=Libpng GPL-2.0-or-later BSD-3-Clause @@ -36,8 +36,12 @@ CMAKE_OPTIONS += \ -DPNG_TOOLS=OFF \ -DPNG_TESTS=OFF \ -DPNG_FRAMEWORK=OFF \ - -DPNG_HARDWARE_OPTIMIZATIONS=O$(if $(findstring powerpc,$(CONFIG_ARCH))$(findstring mips,$(CONFIG_ARCH)),FF,N) \ + -DPNG_HARDWARE_OPTIMIZATIONS=ON \ -DPNG_ARM_NEON=$(if $(or $(findstring aarch64,$(CONFIG_ARCH)),$(findstring neon,$(CONFIG_CPU_TYPE))),on,off) \ + -DPNG_LOONGARCH_LSX=off \ + -DPNG_MIPS_MMI=off \ + -DPNG_MIPS_MSA=off \ + -DPNG_POWERPC_VSX=off \ -Dld-version-script=OFF define Build/InstallDev diff --git a/libs/libpng/patches/200-ccache.patch b/libs/libpng/patches/200-ccache.patch index eb489a8331008..a08dcd14857f6 100644 --- a/libs/libpng/patches/200-ccache.patch +++ b/libs/libpng/patches/200-ccache.patch @@ -6,9 +6,9 @@ set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@") +set(CMAKE_C_COMPILER_ARG1 "@CMAKE_C_COMPILER_ARG1@") set(CMAKE_C_FLAGS @CMAKE_C_FLAGS@) + set(CMAKE_SYSROOT @CMAKE_SYSROOT@) set(INCDIR "@CMAKE_CURRENT_BINARY_DIR@") - set(PNG_PREFIX "@PNG_PREFIX@") -@@ -62,7 +63,7 @@ if(INPUTEXT STREQUAL ".c" AND OUTPUTEXT +@@ -67,7 +68,7 @@ if(INPUTEXT STREQUAL ".c" AND OUTPUTEXT set(PNG_PREFIX_DEF "-DPNG_PREFIX=${PNG_PREFIX}") endif() diff --git a/libs/libucontext/Makefile b/libs/libucontext/Makefile index 1154bfe7525c0..3515eabe858b2 100644 --- a/libs/libucontext/Makefile +++ b/libs/libucontext/Makefile @@ -1,21 +1,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libucontext -PKG_VERSION:=1.3.1 +PKG_VERSION:=1.3.2 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/kaniini/libucontext/tar.gz/$(PKG_NAME)-$(PKG_VERSION)? -PKG_HASH:=1243ee9f03ad38e624f6844427b7bc1f0a05aa5de70f15f3b03805a364b971d6 +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/kaniini/libucontext +PKG_SOURCE_VERSION:=$(PKG_NAME)-$(PKG_VERSION) +PKG_MIRROR_HASH:=eef55c05aca03c6d62672838638f49daa95ab8f9bf87126df32cedfe150e333c PKG_MAINTAINER:=Volker Christian PKG_LICENSE:=ISC PKG_LICENSE_FILES:=LICENSE -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_FLAGS:=no-mips16 -PKG_BUILD_PARALLEL:=1 -PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/meson.mk diff --git a/libs/libucontext/patches/010-trampoline_fix.patch b/libs/libucontext/patches/010-trampoline_fix.patch deleted file mode 100644 index 676d584d643d4..0000000000000 --- a/libs/libucontext/patches/010-trampoline_fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/meson.build -+++ b/meson.build -@@ -40,7 +40,7 @@ if cpu in ['ppc', 'ppc64'] - 'arch' / cpu / 'retfromsyscall.c' - ] - endif --if cpu not in ['mips', 'mips64', 'ppc', 'ppc64', 's390x'] -+if cpu not in ['loongarch64', 'mips', 'mips64', 'ppc', 'ppc64', 's390x', 'x86'] - project_source_files += [ - 'arch' / cpu / 'trampoline.c' - ] diff --git a/libs/libxslt/Makefile b/libs/libxslt/Makefile index d9c0873c96dc1..7761bd58d57e3 100644 --- a/libs/libxslt/Makefile +++ b/libs/libxslt/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libxslt -PKG_VERSION:=1.1.39 +PKG_VERSION:=1.1.42 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNOME/libxslt/$(basename $(PKG_VERSION)) -PKG_HASH:=2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0 +PKG_HASH:=85ca62cac0d41fc77d3f6033da9df6fd73d20ea2fc18b0a3609ffb4110e1baeb PKG_MAINTAINER:=Jiri Slachta PKG_LICENSE:=MIT diff --git a/libs/srt/Config.in b/libs/srt/Config.in new file mode 100644 index 0000000000000..905dca67beba5 --- /dev/null +++ b/libs/srt/Config.in @@ -0,0 +1,33 @@ +if PACKAGE_srt + +comment "Encryption support" + +choice + prompt "Selected Encryption library" + default SRT_OPENSSL + + config SRT_OPENSSL + bool "OpenSSL" + + config SRT_MBEDTLS + bool "mbed TLS" + + config SRT_GNUTLS + bool "GNUTLS" + + config SRT_NOENCRYPTION + bool "No encryption support" + +endchoice + +comment "Options" + +config SRT_MONOTONIC_CLOCK + bool "Monotonic clock" + default y + +config SRT_BONDING + bool "Bonding" + default n + +endif diff --git a/libs/srt/Makefile b/libs/srt/Makefile new file mode 100644 index 0000000000000..aaee44a54f39e --- /dev/null +++ b/libs/srt/Makefile @@ -0,0 +1,79 @@ +# +# Copyright (C) 2024 Koen Vandeputte +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=srt +PKG_VERSION:=1.5.3 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/haivision/srt/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=befaeb16f628c46387b898df02bc6fba84868e86a6f6d8294755375b9932d777 +PKG_MAINTAINER:=Koen Vandeputte + +PKG_LICENSE:=MPL-2.0 +PKG_LICENSE_FILES:=LICENSE + +CMAKE_INSTALL:=1 + +PKG_CONFIG_DEPENDS:= \ + \ + CONFIG_SRT_OPENSSL \ + CONFIG_SRT_MBEDTLS \ + CONFIG_SRT_GNUTLS \ + CONFIG_SRT_NOENCRYPTION \ + \ + CONFIG_SRT_MONOTONIC_CLOCK \ + CONFIG_SRT_BONDING + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/srt + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:= +libstdcpp +libatomic + DEPENDS += +SRT_OPENSSL:libopenssl +SRT_MBEDTLS:libmbedtls +SRT_GNUTLS:libgnutls + TITLE:=secure reliable transport + URL:=https://github.com/Haivision/srt + MENU:=1 +endef + +define Package/srt/description + This package provides the Secure Reliable Transport library which + is mostly used by the gstreamer srt sink plugin +endef + +define Package/srt/config + source "$(SOURCE)/Config.in" +endef + +TARGET_LDFLAGS += -Wl,--gc-sections + +CMAKE_OPTIONS += \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DENABLE_APPS=OFF \ + -DENABLE_PKTINFO=OFF \ + -DENABLE_SHARED=ON \ + -DENABLE_STATIC=OFF \ + -DENABLE_TESTING=OFF \ + -DENABLE_UNITTESTS=OFF \ + -DUSE_BUSY_WAITING=OFF \ + -DENABLE_BONDING=$(if $(CONFIG_SRT_BONDING),ON,OFF) \ + -DENABLE_MONOTONIC_CLOCK=$(if $(CONFIG_SRT_MONOTONIC_CLOCK),ON,OFF) \ + -DENABLE_ENCRYPTION=$(if $(CONFIG_SRT_OPENSSL)$(CONFIG_SRT_MBEDTLS)$(CONFIG_SRT_GNUTLS),ON,OFF) \ + $(if $(CONFIG_SRT_OPENSSL),-DUSE_ENCLIB=openssl-evp) \ + $(if $(CONFIG_SRT_MBEDTLS),-DUSE_ENCLIB=mbedtls) \ + $(if $(CONFIG_SRT_GNUTLS),-DUSE_ENCLIB=gnutls) + +define Package/srt/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrt.so.* $(1)/usr/lib/ +endef + +$(eval $(call BuildPackage,srt)) diff --git a/multimedia/go2rtc/Makefile b/multimedia/go2rtc/Makefile new file mode 100644 index 0000000000000..217d8bbc4d7d1 --- /dev/null +++ b/multimedia/go2rtc/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=go2rtc +PKG_VERSION:=1.9.4 +PKG_RELEASE:=2 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/AlexxIT/go2rtc/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=90c1273c84d8f538d573cf638493ab30981d4445ff8451b485ab26c60353ed48 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Vladimir Ermakov + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_BUILD_FLAGS:=no-mips16 + +GO_PKG:=github.com/AlexxIT/go2rtc +GO_PKG_EXCLUDES:=test + +include $(INCLUDE_DIR)/package.mk +include ../../lang/golang/golang-package.mk + +define Package/go2rtc + SECTION:=multimedia + CATEGORY:=Multimedia + TITLE:=go2rtc camera streaming + URL:=https://github.com/AlexxIT/go2rtc + DEPENDS:=$(GO_ARCH_DEPENDS) +ffmpeg + USERID:=go2rtc:go2rtc +endef + +define Package/go2rtc/description + Ultimate camera streaming application with support RTSP, WebRTC, HomeKit, FFmpeg, RTMP, etc. +endef + +define Package/go2rtc/conffiles +/etc/go2rtc.yaml +endef + +define Package/go2rtc/install + $(call GoPackage/Package/Install/Bin,$(1)) + + $(INSTALL_DIR) $(1)/etc/ + $(INSTALL_CONF) $(CURDIR)/files/go2rtc.yaml $(1)/etc/go2rtc.yaml + $(INSTALL_DIR) $(1)/etc/init.d/ + $(INSTALL_BIN) $(CURDIR)/files/go2rtc.init $(1)/etc/init.d/go2rtc +endef + +$(eval $(call BuildPackage,go2rtc)) diff --git a/multimedia/go2rtc/files/go2rtc.init b/multimedia/go2rtc/files/go2rtc.init new file mode 100644 index 0000000000000..1cc4aba83b785 --- /dev/null +++ b/multimedia/go2rtc/files/go2rtc.init @@ -0,0 +1,17 @@ +#!/bin/sh /etc/rc.common + +START=99 + +USE_PROCD=1 +PROG=/usr/bin/go2rtc +USER=go2rtc +GROUP=go2rtc + +start_service() { + procd_open_instance + procd_set_param command "$PROG" -config /etc/go2rtc.yaml + procd_set_param user "$USER" + procd_set_param group "$GROUP" + procd_set_param respawn + procd_close_instance +} diff --git a/multimedia/go2rtc/files/go2rtc.yaml b/multimedia/go2rtc/files/go2rtc.yaml new file mode 100644 index 0000000000000..63ad800eaf63b --- /dev/null +++ b/multimedia/go2rtc/files/go2rtc.yaml @@ -0,0 +1,25 @@ +# See also: https://github.com/AlexxIT/go2rtc/blob/master/README.md +--- + +log: + level: info # default level + # api: trace + # exec: debug + # ngrok: info + # rtsp: warn + # streams: error + # webrtc: fatal + +api: + listen: "127.0.0.1:1984" + +rtsp: + listen: "127.0.0.1:8554" + +webrtc: + listen: ":8555" # external TCP/UDP port + +ffmpeg: + bin: /usr/bin/ffmpeg # path to ffmpeg binary + +streams: {} diff --git a/multimedia/gst1-libav/Makefile b/multimedia/gst1-libav/Makefile index 4ef8c5bcb44ac..8437c20538b66 100644 --- a/multimedia/gst1-libav/Makefile +++ b/multimedia/gst1-libav/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gst1-libav -PKG_VERSION:=1.24.4 +PKG_VERSION:=1.24.8 PKG_RELEASE:=1 PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-libav -PKG_HASH:=4d3803f36008e847fc4842c8dd366162baf8359526cc46c1851bf68bb638da73 +PKG_HASH:=1e4a8fd537621d236442cf90a6e9ad5e00f87bffffdaeb1fd8bfd23719de8c75 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-libav-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ diff --git a/multimedia/gst1-plugins-bad/Makefile b/multimedia/gst1-plugins-bad/Makefile index 80c47f47e1d96..08fa7d66a6abb 100644 --- a/multimedia/gst1-plugins-bad/Makefile +++ b/multimedia/gst1-plugins-bad/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gst1-plugins-bad -PKG_VERSION:=1.24.4 -PKG_RELEASE:=1 +PKG_VERSION:=1.24.8 +PKG_RELEASE:=2 PKG_SOURCE:=gst-plugins-bad-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-bad/ -PKG_HASH:=260bd0a463b4faff9a42f41e5e028f787f10a92b779af8959aec64586f546bd3 +PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-plugins-bad/ +PKG_HASH:=35ad70de3d7cbca3089f33bb77c45750daad2ae93d79827fdbb469fa8aba84eb PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-bad-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ @@ -228,7 +228,7 @@ MESON_ARGS += \ $(call GST_COND_SELECT,sndfile) \ -Dsoundtouch=disabled \ -Dspandsp=disabled \ - -Dsrt=disabled \ + $(call GST_COND_SELECT,srt) \ -Dsrtp=disabled \ -Dteletext=disabled \ -Dtinyalsa=disabled \ @@ -415,6 +415,7 @@ $(eval $(call GstBuildPlugin,opusparse,OPUS streams library,pbutils,,+libopus)) $(eval $(call GstBuildPlugin,sbc,sbc support,audio,,+sbc)) $(eval $(call GstBuildPlugin,shm,POSIX shared memory source and sink,,,+librt)) $(eval $(call GstBuildPlugin,sndfile,sndfile support,audio,,+libsndfile)) +$(eval $(call GstBuildPlugin,srt,srt support,,,+srt)) #$(eval $(call GstBuildPlugin,srtp,srtp support,rtp,,+libsrtp)) $(eval $(call GstBuildPlugin,webp,webp support,,,+libwebp)) #$(eval $(call GstBuildPlugin,yadif,yadif support,,,)) diff --git a/multimedia/gst1-plugins-base/Makefile b/multimedia/gst1-plugins-base/Makefile index 50feb0b2a0fb3..2cc8a8ccb41b5 100644 --- a/multimedia/gst1-plugins-base/Makefile +++ b/multimedia/gst1-plugins-base/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gst1-plugins-base -PKG_VERSION:=1.24.4 +PKG_VERSION:=1.24.8 PKG_RELEASE:=1 PKG_SOURCE:=gst-plugins-base-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-plugins-base -PKG_HASH:=09f4ddf246eeb819da1494ce336316edbbcb28fdff3ee2f9804891e84df39b2a +PKG_HASH:=10fb31743750ccd498d3933e8aaecda563ebc65596a6ab875b47ee936e4b9599 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-base-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ diff --git a/multimedia/gst1-plugins-good/Makefile b/multimedia/gst1-plugins-good/Makefile index 159ecccec089e..61047c5ee5b31 100644 --- a/multimedia/gst1-plugins-good/Makefile +++ b/multimedia/gst1-plugins-good/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gst1-plugins-good -PKG_VERSION:=1.24.4 +PKG_VERSION:=1.24.8 PKG_RELEASE:=1 PKG_SOURCE:=gst-plugins-good-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-plugins-good/ -PKG_HASH:=023096d661cf58cde3e0dcdbf56897bf588830232358c305f3e15fd63e116626 +PKG_HASH:=613a20f03bd4544b52f10f6ceb4e0fffd25eff15bf338ab8b12b971982eb0153 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-good-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ @@ -170,6 +170,7 @@ MESON_ARGS += \ \ -Dximagesrc=disabled \ -Dv4l2=$(if $(CONFIG_PACKAGE_gst1-mod-video4linux2),en,dis)abled \ + -Dv4l2-gudev=disabled \ -Dexamples=disabled \ -Dtests=disabled \ -Dnls=enabled \ diff --git a/multimedia/gst1-plugins-ugly/Makefile b/multimedia/gst1-plugins-ugly/Makefile index 2e724b92db177..cca4d7974a81a 100644 --- a/multimedia/gst1-plugins-ugly/Makefile +++ b/multimedia/gst1-plugins-ugly/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gst1-plugins-ugly -PKG_VERSION:=1.24.4 +PKG_VERSION:=1.24.8 PKG_RELEASE:=1 PKG_SOURCE:=gst-plugins-ugly-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gst-plugins-ugly -PKG_HASH:=4604f8709c0bc4d6960ef6ae6fd91e0b20af011bfe22e103f5b85377cf3f1ef4 +PKG_HASH:=3dfc12bf0b766682b7d6e1e29a404b55e2375ba172d11900179738ae89b7a2d5 PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-ugly-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ diff --git a/multimedia/gstreamer1/Makefile b/multimedia/gstreamer1/Makefile index 610d16ffde86d..a61538564ffda 100644 --- a/multimedia/gstreamer1/Makefile +++ b/multimedia/gstreamer1/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gstreamer1 -PKG_VERSION:=1.24.4 +PKG_VERSION:=1.24.8 PKG_RELEASE:=1 PKG_SOURCE:=gstreamer-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://gstreamer.freedesktop.org/src/gstreamer -PKG_HASH:=52c93bc48e03533aa676fd8c15eb6b5fc326c68db311c50bcc0a865f31a6c653 +PKG_HASH:=b807dbf36c5d2b3ce1c604133ed0c737350f9523ce4d8d644a1177c5f9d6ded3 PKG_BUILD_DIR:=$(BUILD_DIR)/gstreamer-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo \ diff --git a/net/adblock/Makefile b/net/adblock/Makefile index ea3d74d382f75..1218c8b12fb8a 100644 --- a/net/adblock/Makefile +++ b/net/adblock/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adblock PKG_VERSION:=4.2.2 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/adblock/files/adblock.init b/net/adblock/files/adblock.init index f1acb456f23f0..d3253e57a62b6 100755 --- a/net/adblock/files/adblock.init +++ b/net/adblock/files/adblock.init @@ -133,36 +133,21 @@ status() { } status_service() { - local key keylist value idxval values type rtfile + local key keylist value values rtfile rtfile="$(uci_get adblock global adb_rtfile "/tmp/adb_runtime.json")" - + json_init json_load_file "${rtfile}" >/dev/null 2>&1 json_get_keys keylist if [ -n "${keylist}" ]; then printf "%s\n" "::: adblock runtime information" for key in ${keylist}; do json_get_var value "${key}" >/dev/null 2>&1 - if [ "${key%_*}" = "active" ]; then - printf " + %-15s : " "${key}" - json_select "${key}" >/dev/null 2>&1 - values="" - index="1" - while json_get_type type "${index}" && [ "${type}" = "object" ]; do - json_get_values idxval "${index}" >/dev/null 2>&1 - if [ "${index}" = "1" ]; then - values="${idxval}" - else - values="${values}, ${idxval}" - fi - index="$((index + 1))" - done - values="$(printf "%s" "${values}" | awk '{NR=1;max=98;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{printf"%-22s%s\n","",substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')" - printf "%s\n" "${values:-"-"}" - json_select ".." - else - printf " + %-15s : %s\n" "${key}" "${value:-"-"}" + if [ "${key}" = "active_sources" ]; then + json_get_values values "${key}" >/dev/null 2>&1 + value="${values// /, }" fi + printf " + %-15s : %s\n" "${key}" "${value:-"-"}" done else printf "%s\n" "::: no adblock runtime information available" diff --git a/net/adblock/files/adblock.mail b/net/adblock/files/adblock.mail index 67fc011aa5c55..f5f74d57b6829 100755 --- a/net/adblock/files/adblock.mail +++ b/net/adblock/files/adblock.mail @@ -1,6 +1,6 @@ #!/bin/sh # send mail script for adblock notifications -# Copyright (c) 2015-2022 Dirk Brenken (dev@brenken.org) +# Copyright (c) 2015-2024 Dirk Brenken (dev@brenken.org) # This is free software, licensed under the GNU General Public License v3. # Please note: you have to manually install and configure the package 'msmtp' before using this script @@ -12,46 +12,26 @@ LC_ALL=C PATH="/usr/sbin:/usr/bin:/sbin:/bin" [ -r "/lib/functions.sh" ] && . "/lib/functions.sh" +[ -r "/usr/bin/adblock.sh" ] && . "/usr/bin/adblock.sh" "mail" adb_debug="$(uci_get adblock global adb_debug "0")" adb_mailsender="$(uci_get adblock global adb_mailsender "no-reply@adblock")" adb_mailreceiver="$(uci_get adblock global adb_mailreceiver)" adb_mailtopic="$(uci_get adblock global adb_mailtopic "adblock notification")" adb_mailprofile="$(uci_get adblock global adb_mailprofile "adb_notify")" -adb_ver="${1}" -adb_mail="$(command -v msmtp)" -adb_logger="$(command -v logger)" -adb_logread="$(command -v logread)" -adb_rc="1" -f_log() { - local class="${1}" log_msg="${2}" - - if [ -x "${adb_logger}" ]; then - "${adb_logger}" -p "${class}" -t "adblock-${adb_ver}[${$}]" "${log_msg}" - else - printf "%s %s %s\n" "${class}" "adblock-${adb_ver}[${$}]" "${log_msg}" - fi -} - -if [ -z "${adb_mailreceiver}" ]; then - f_log "err" "please set the mail receiver with the 'adb_mailreceiver' option" - exit ${adb_rc} -fi +[ -z "${adb_mailreceiver}" ] && f_log "err" "please set the mail receiver with the 'adb_mailreceiver' option" [ "${adb_debug}" = "1" ] && debug="--debug" adb_mailhead="From: ${adb_mailsender}\nTo: ${adb_mailreceiver}\nSubject: ${adb_mailtopic}\nReply-to: ${adb_mailsender}\nMime-Version: 1.0\nContent-Type: text/html;charset=utf-8\nContent-Disposition: inline\n\n" # info preparation # -sys_info="$( - strings /etc/banner 2>/dev/null - ubus call system board | sed -e 's/\"release\": {//' | sed -e 's/^[ \t]*//' | sed -e 's/[{}\",]//g' | sed -e 's/[ ]/ \t/' | sed '/^$/d' 2>/dev/null -)" +sys_info="$("${adb_stringscmd}" /etc/banner 2>/dev/null; "${adb_ubuscmd}" call system board | "${adb_awkcmd}" 'BEGIN{FS="[{}\"]"}{if($2=="kernel"||$2=="hostname"||$2=="system"||$2=="model"||$2=="description")printf " + %-12s: %s\n",$2,$4}' 2>/dev/null)" adb_info="$(/etc/init.d/adblock status 2>/dev/null)" -rep_info="${2}" -if [ -x "${adb_logread}" ]; then - log_info="$("${adb_logread}" -l 100 -e "adblock-" | awk '{NR=1;max=120;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{print substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')" +rep_info="${1}" +if [ -x "${adb_logreadcmd}" ]; then + log_info="$("${adb_logreadcmd}" -l 100 -e "adblock-" | "${adb_awkcmd}" '{NR=1;max=120;if(length($0)>max+1)while($0){if(NR==1){print substr($0,1,max)}else{print substr($0,1,max)}{$0=substr($0,max+1);NR=NR+1}}else print}')" fi # mail body @@ -67,11 +47,9 @@ adb_mailtext="${adb_mailtext}" # send mail # -if [ -x "${adb_mail}" ]; then - printf "%b" "${adb_mailhead}${adb_mailtext}" 2>/dev/null | "${adb_mail}" ${debug} -a "${adb_mailprofile}" "${adb_mailreceiver}" >/dev/null 2>&1 - adb_rc=${?} - f_log "info" "mail sent to '${adb_mailreceiver}' with rc '${adb_rc}'" +if [ -x "${adb_mailcmd}" ]; then + printf "%b" "${adb_mailhead}${adb_mailtext}" 2>/dev/null | "${adb_mailcmd}" ${debug} -a "${adb_mailprofile}" "${adb_mailreceiver}" >/dev/null 2>&1 + f_log "info" "mail sent to '${adb_mailreceiver}' with rc '${?}'" else f_log "err" "msmtp mail daemon not found" fi -exit ${adb_rc} diff --git a/net/adblock/files/adblock.sh b/net/adblock/files/adblock.sh index 9b15ad8b67b37..b8688116a1754 100755 --- a/net/adblock/files/adblock.sh +++ b/net/adblock/files/adblock.sh @@ -11,7 +11,7 @@ export LC_ALL=C export PATH="/usr/sbin:/usr/bin:/sbin:/bin" -adb_ver="4.2.2-r5" +adb_ver="4.2.2-r6" adb_enabled="0" adb_debug="0" adb_forcedns="0" @@ -255,7 +255,7 @@ f_dns() { if [ -z "${adb_dns}" ]; then utils="knot-resolver bind unbound dnsmasq raw" for util in ${utils}; do - if [ "${util}" = "raw" ] || printf "%s" "${adb_packages}" | grep -q "^${util}"; then + if [ "${util}" = "raw" ] || printf "%s" "${adb_packages}" | "${adb_grepcmd}" -q "^${util}"; then if [ "${util}" = "knot-resolver" ]; then util="kresd" elif [ "${util}" = "bind" ]; then @@ -401,8 +401,8 @@ f_fetch() { if [ -z "${adb_fetchutil}" ]; then utils="aria2c curl wget uclient-fetch" for util in ${utils}; do - if { [ "${util}" = "uclient-fetch" ] && printf "%s" "${adb_packages}" | grep -q "^libustream-"; } || - { [ "${util}" = "wget" ] && printf "%s" "${adb_packages}" | grep -q "^wget -"; } || + if { [ "${util}" = "uclient-fetch" ] && printf "%s" "${adb_packages}" | "${adb_grepcmd}" -q "^libustream-"; } || + { [ "${util}" = "wget" ] && printf "%s" "${adb_packages}" | "${adb_grepcmd}" -q "^wget -"; } || [ "${util}" = "curl" ] || [ "${util}" = "aria2c" ]; then if [ -x "$(command -v "${util}")" ]; then adb_fetchutil="${util}" @@ -542,7 +542,7 @@ f_count() { adb_cnt="$((adb_cnt - $(wc -l 2>/dev/null <"${file}")))" fi done - [ -n "${adb_dnsheader}" ] && adb_cnt="$(((adb_cnt - $(printf "%b" "${adb_dnsheader}" | grep -c "^")) / 2))" + [ -n "${adb_dnsheader}" ] && adb_cnt="$(((adb_cnt - $(printf "%b" "${adb_dnsheader}" | "${adb_grepcmd}" -c "^")) / 2))" fi ;; esac @@ -556,14 +556,14 @@ f_extconf() { case "${adb_dns}" in "dnsmasq") config="dhcp" - config_dir="$(uci_get dhcp "@dnsmasq[${adb_dnsinstance}]" confdir | grep -Fo "${adb_dnsdir}")" + config_dir="$(uci_get dhcp "@dnsmasq[${adb_dnsinstance}]" confdir | "${adb_grepcmd}" -Fo "${adb_dnsdir}")" if [ "${adb_enabled}" = "1" ] && [ -z "${config_dir}" ]; then uci_set dhcp "@dnsmasq[${adb_dnsinstance}]" confdir "${adb_dnsdir}" 2>/dev/null fi ;; "kresd") config="resolver" - config_file="$(uci_get resolver kresd rpz_file | grep -Fo "${adb_dnsdir}/${adb_dnsfile}")" + config_file="$(uci_get resolver kresd rpz_file | "${adb_grepcmd}" -Fo "${adb_dnsdir}/${adb_dnsfile}")" if [ "${adb_enabled}" = "1" ] && [ -z "${config_file}" ]; then uci -q add_list resolver.kresd.rpz_file="${adb_dnsdir}/${adb_dnsfile}" elif [ "${adb_enabled}" = "0" ] && [ -n "${config_file}" ]; then @@ -579,7 +579,7 @@ f_extconf() { /etc/init.d/firewall enabled; then for zone in ${adb_zonelist}; do for port in ${adb_portlist}; do - if ! printf "%s" "${fwcfg}" | grep -q "adblock_${zone}${port}[ |\$]"; then + if ! printf "%s" "${fwcfg}" | "${adb_grepcmd}" -q "adblock_${zone}${port}[ |\$]"; then uci -q batch <<-EOC set firewall."adblock_${zone}${port}"="redirect" set firewall."adblock_${zone}${port}".name="Adblock DNS (${zone}, ${port})" @@ -1026,7 +1026,7 @@ f_query() { # update runtime information # f_jsnup() { - local entry sources runtime utils bg_pid status="${1:-"enabled"}" + local object sources runtime utils bg_pid status="${1:-"enabled"}" adb_memory="$("${adb_awkcmd}" '/^MemTotal|^MemFree|^MemAvailable/{ORS="/"; print int($2/1000)}' "/proc/meminfo" 2>/dev/null | "${adb_awkcmd}" '{print substr($0,1,length($0)-1)}')" @@ -1064,15 +1064,12 @@ f_jsnup() { : >"${adb_rtfile}" json_init json_load_file "${adb_rtfile}" >/dev/null 2>&1 - json_init json_add_string "adblock_status" "${status:-"enabled"}" json_add_string "adblock_version" "${adb_ver}" json_add_string "blocked_domains" "${adb_cnt:-0}" json_add_array "active_sources" - for entry in ${sources}; do - json_add_object - json_add_string "source" "${entry}" - json_close_object + for object in ${sources:-"-"}; do + json_add_string "${object}" "${object}" done json_close_array json_add_string "dns_backend" "${adb_dns:-"-"} (${adb_dnscachecmd##*/}), ${adb_dnsdir:-"-"}" @@ -1085,9 +1082,8 @@ f_jsnup() { json_dump >"${adb_rtfile}" if [ "${adb_mail}" = "1" ] && [ -x "${adb_mailservice}" ] && - { [ "${status}" = "error" ] || { [ "${status}" = "enabled" ] && [ "${adb_cnt}" -le "${adb_mailcnt}" ]; }; }; then - ("${adb_mailservice}" "${adb_ver}" >/dev/null 2>&1) & - bg_pid="${!}" + [ "${status}" = "enabled" ] && [ "${adb_cnt}" -le "${adb_mailcnt}" ]; then + "${adb_mailservice}" >/dev/null 2>&1 fi f_log "debug" "f_jsnup ::: status: ${status:-"-"}, cnt: ${adb_cnt}, mail: ${adb_mail}, mail_service: ${adb_mailservice}, mail_cnt: ${adb_mailcnt}, mail_pid: ${bg_pid:-"-"}" } @@ -1101,7 +1097,7 @@ f_log() { [ -x "${adb_loggercmd}" ] && "${adb_loggercmd}" -p "${class}" -t "adblock-${adb_ver}[${$}]" "${log_msg}" || \ printf "%s %s %s\n" "${class}" "adblock-${adb_ver}[${$}]" "${log_msg}" if [ "${class}" = "err" ] || [ "${class}" = "emerg" ]; then - f_rmdns + [ "${adb_action}" != "mail" ] && f_rmdns f_jsnup "error" exit 1 fi @@ -1199,7 +1195,7 @@ f_main() { src_suffix="$(eval printf "%s" \"\$\{adb_src_suffix_${src_name}:-\"domains\"\}\")" src_list="$(tar -tzf "${src_arc}" 2>/dev/null)" for src_item in ${src_cat}; do - src_entries="${src_entries} $(printf "%s" "${src_list}" | grep -E "${src_item}/${src_suffix}$")" + src_entries="${src_entries} $(printf "%s" "${src_list}" | "${adb_grepcmd}" -E "${src_item}/${src_suffix}$")" done if [ -n "${src_entries}" ]; then tar -xOzf "${src_arc}" ${src_entries} 2>/dev/null >"${src_tmpload}" @@ -1330,8 +1326,8 @@ f_report() { {domain=substr($(NF-1),1,length($(NF-1))-1);type="RQ"} else {if($(NF-2)~/NXDomain/||$(NF-1)=="0.0.0.0"){type="NX"}else{type="OK"};domain=""}; - if(int($9)>0) - printf "%08d\t%s\t%s\t%s\t%-25s\t%s\n",$9,type,$1,substr($2,1,8),$6,domain}' >>"${report_raw}" + if(int($9)>0) + printf "%08d\t%s\t%s\t%s\t%-25s\t%s\n",$9,type,$1,substr($2,1,8),$6,domain}' >>"${report_raw}" else "${adb_dumpcmd}" "${resolve}" --immediate-mode -T domain -tttt -r "${file}" 2>/dev/null | "${adb_awkcmd}" -v cnt="${cnt}" '!/\.lan\. |PTR\? | SOA\? | Flags /&&/ A[A]*\? |NXDomain|0\.0\.0\.0|[0-9]\/[0-9]\/[0-9]/{sub(/\.[0-9]+$/,"",$4); @@ -1340,8 +1336,8 @@ f_report() { {domain=substr($(NF-1),1,length($(NF-1))-1);type="RQ"} else {if($(NF-2)~/NXDomain/||$(NF-1)=="0.0.0.0"){type="NX"}else{type="OK"};domain=""}; - if(int($7)>0) - printf "%08d\t%s\t%s\t%s\t%-25s\t%s\n",$7,type,$1,substr($2,1,8),$4,domain}' >>"${report_raw}" + if(int($7)>0) + printf "%08d\t%s\t%s\t%s\t%-25s\t%s\n",$7,type,$1,substr($2,1,8),$4,domain}' >>"${report_raw}" fi ) & hold="$((cnt % adb_cores))" @@ -1352,7 +1348,7 @@ f_report() { if [ -s "${report_raw}" ]; then "${adb_sortcmd}" ${adb_srtopts} -k3,3 -k4,4 -k1,1 -k2,2 -u -r "${report_raw}" | "${adb_awkcmd}" '{currA=($1+0);currB=$1;currC=$2;if(reqA==currB){reqA=0;printf "%-90s\t%s\n",d,$2}else if(currC=="RQ"){reqA=currA;d=$3"\t"$4"\t"$5"\t"$6}}' | - "${adb_sortcmd}" ${adb_srtopts} -u -r >"${report_srt}" + "${adb_grepcmd}" -v "RQ" | "${adb_sortcmd}" ${adb_srtopts} -u -r >"${report_srt}" : >"${report_raw}" fi @@ -1462,8 +1458,7 @@ f_report() { elif [ "${action}" = "json" ]; then cat "${report_jsn}" elif [ "${action}" = "mail" ] && [ "${adb_mail}" = "1" ] && [ -x "${adb_mailservice}" ]; then - ("${adb_mailservice}" "${adb_ver}" "${content}" >/dev/null 2>&1) & - bg_pid="${!}" + "${adb_mailservice}" "${content}" >/dev/null 2>&1 fi f_log "debug" "f_report ::: action: ${action}, top_count: ${top_count}, res_count: ${res_count}, search: ${search}, dump_util: ${adb_dumpcmd}, rep_dir: ${adb_reportdir}, rep_iface: ${adb_repiface:-"-"}, rep_listen: ${adb_replisten}, rep_chunksize: ${adb_repchunksize}, rep_chunkcnt: ${adb_repchunkcnt}, rep_resolve: ${adb_represolve}" } @@ -1490,6 +1485,9 @@ adb_ubuscmd="$(f_cmd ubus)" adb_loggercmd="$(f_cmd logger)" adb_dumpcmd="$(f_cmd tcpdump optional)" adb_lookupcmd="$(f_cmd nslookup)" +adb_mailcmd="$(f_cmd msmtp optional)" +adb_stringscmd="$(f_cmd strings optional)" +adb_logreadcmd="$(f_cmd logread optional)" # handle different adblock actions # diff --git a/net/adguardhome/Makefile b/net/adguardhome/Makefile index 220a1a2660a1a..4b7bd1b2c59cd 100644 --- a/net/adguardhome/Makefile +++ b/net/adguardhome/Makefile @@ -6,13 +6,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adguardhome -PKG_VERSION:=0.107.52 -PKG_RELEASE:=2 +PKG_VERSION:=0.107.53 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_VERSION:=v$(PKG_VERSION) PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome -PKG_MIRROR_HASH:=1416358cfa1ab86f0b9b3a421e501be11214b6c33ac80e674913e2385f81d5b8 +PKG_MIRROR_HASH:=d74702bc4f8b82bda64a0a937a98e73ee602c21b9361c0c683671212e03e9316 PKG_LICENSE:=GPL-3.0-only PKG_LICENSE_FILES:=LICENSE.txt diff --git a/net/banip/Makefile b/net/banip/Makefile index c423f13406241..1c231bbbe6a9d 100644 --- a/net/banip/Makefile +++ b/net/banip/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=banip PKG_VERSION:=1.0.0 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/banip/files/README.md b/net/banip/files/README.md index c20e27d940cf7..773cfd7a7371a 100644 --- a/net/banip/files/README.md +++ b/net/banip/files/README.md @@ -38,6 +38,7 @@ IP address blocking is commonly used to protect against brute force attacks, pre | firehol3 | firehol level 3 compilation | x | x | | | [Link](https://iplists.firehol.org/?ipset=firehol_level3) | | firehol4 | firehol level 4 compilation | x | x | | | [Link](https://iplists.firehol.org/?ipset=firehol_level4) | | greensnow | suspicious server IPs | x | x | | | [Link](https://greensnow.co) | +| hagezi | Threat IP blocklist | | | x | tcp: 80, 443 | [Link](https://github.com/hagezi/dns-blocklists) | | iblockads | Advertising IPs | | | x | tcp: 80, 443 | [Link](https://www.iblocklist.com) | | iblockspy | Malicious spyware IPs | | | x | tcp: 80, 443 | [Link](https://www.iblocklist.com) | | ipblackhole | blackhole IPs | x | x | | | [Link](https://github.com/BlackHoleMonster/IP-BlackHole) | @@ -52,7 +53,6 @@ IP address blocking is commonly used to protect against brute force attacks, pre | proxy | open proxies | x | x | | | [Link](https://iplists.firehol.org/?ipset=proxylists) | | ssbl | SSL botnet IPs | x | x | | | [Link](https://sslbl.abuse.ch) | | stevenblack | stevenblack IPs | | | x | tcp: 80, 443 | [Link](https://github.com/dibdot/banIP-IP-blocklists) | -| talos | talos IPs | x | x | | | [Link](https://talosintelligence.com/reputation_center) | | threat | emerging threats | x | x | | | [Link](https://rules.emergingthreats.net) | | threatview | malicious IPs | x | x | | | [Link](https://threatview.io) | | tor | tor exit nodes | x | x | x | | [Link](https://www.dan.me.uk) | @@ -333,6 +333,7 @@ sshd2 : 'sshd.*Connection closed by.*\[preauth\]' asterisk : 'SecurityEvent=\"InvalidAccountID\".*RemoteAddress=' nginx : 'received a suspicious remote IP '\''.*'\''' openvpn : 'TLS Error: could not determine wrapping from \[AF_INET\]' +AdGuard : 'AdGuardHome.*\[error\].*/control/login: from ip' ``` You find the 'Log Terms' option in LuCI under the 'Log Settings' tab. Feel free to add more log terms to meet your needs and protect additional services. diff --git a/net/banip/files/banip-functions.sh b/net/banip/files/banip-functions.sh index 35201afafa29a..4daddf642c162 100644 --- a/net/banip/files/banip-functions.sh +++ b/net/banip/files/banip-functions.sh @@ -873,11 +873,11 @@ f_down() { printf "%s\n\n" "#!/usr/sbin/nft -f" [ -s "${tmp_flush}" ] && "${ban_catcmd}" "${tmp_flush}" if [ "${proto}" = "4MAC" ]; then - "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([1-9][0-9]?[0-9]?\.){1}([0-9]{1,3}\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\/(1?[0-9]|2?[0-9]|3?[0-2]))?[[:space:]]*$|[[:space:]]+$|$)/{if(!$2)$2="0.0.0.0/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${tmp_allow}" >"${tmp_file}" + "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([1-9][0-9]?[0-9]?\.){1}([0-9]{1,3}\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\/(1?[0-9]|2?[0-9]|3?[0-2]))?([[:space:]]+#.*$|[[:space:]]*$)|[[:space:]]+#.*$|$)/{if(!$2||$2~/#/)$2="0.0.0.0/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${tmp_allow}" >"${tmp_file}" printf "%s\n" "add set inet banIP ${feed} { type ether_addr . ipv4_addr; flags interval; auto-merge; policy ${ban_nftpolicy}; $(f_getelements "${tmp_file}") }" [ -z "${feed_direction##*forwardlan*}" ] && printf "%s\n" "add rule inet banIP lan-forward ether saddr . ip saddr @${feed} counter accept" elif [ "${proto}" = "6MAC" ]; then - "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([0-9A-f]{0,4}:){1,7}[0-9A-f]{0,4}:?(\/(1?[0-2][0-8]|[0-9][0-9]))?[[:space:]]*$|[[:space:]]+$|$)/{if(!$2)$2="::/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${tmp_allow}" >"${tmp_file}" + "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([0-9A-f]{0,4}:){1,7}[0-9A-f]{0,4}:?(\/(1?[0-2][0-8]|[0-9][0-9]))?([[:space:]]+#.*$|[[:space:]]*$)|[[:space:]]+#.*$|$)/{if(!$2||$2~/#/)$2="::/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${tmp_allow}" >"${tmp_file}" printf "%s\n" "add set inet banIP ${feed} { type ether_addr . ipv6_addr; flags interval; auto-merge; policy ${ban_nftpolicy}; $(f_getelements "${tmp_file}") }" [ -z "${feed_direction##*forwardlan*}" ] && printf "%s\n" "add rule inet banIP lan-forward ether saddr . ip6 saddr @${feed} counter accept" elif [ "${proto}" = "4" ]; then @@ -938,11 +938,11 @@ f_down() { printf "%s\n\n" "#!/usr/sbin/nft -f" [ -s "${tmp_flush}" ] && "${ban_catcmd}" "${tmp_flush}" if [ "${proto}" = "4MAC" ]; then - "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([1-9][0-9]?[0-9]?\.){1}([0-9]{1,3}\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\/(1?[0-9]|2?[0-9]|3?[0-2]))?[[:space:]]*$|[[:space:]]+$|$)/{if(!$2)$2="0.0.0.0/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${ban_blocklist}" >"${tmp_file}" + "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([1-9][0-9]?[0-9]?\.){1}([0-9]{1,3}\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\/(1?[0-9]|2?[0-9]|3?[0-2]))?([[:space:]]+#.*$|[[:space:]]*$)|[[:space:]]+#.*$|$)/{if(!$2||$2~/#/)$2="0.0.0.0/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${ban_blocklist}" >"${tmp_file}" printf "%s\n" "add set inet banIP ${feed} { type ether_addr . ipv4_addr; flags interval; auto-merge; policy ${ban_nftpolicy}; $(f_getelements "${tmp_file}") }" [ -z "${feed_direction##*forwardlan*}" ] && printf "%s\n" "add rule inet banIP lan-forward ether saddr . ip saddr @${feed} counter goto reject-chain" elif [ "${proto}" = "6MAC" ]; then - "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([0-9A-f]{0,4}:){1,7}[0-9A-f]{0,4}:?(\/(1?[0-2][0-8]|[0-9][0-9]))?[[:space:]]*$|[[:space:]]+$|$)/{if(!$2)$2="::/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${ban_blocklist}" >"${tmp_file}" + "${ban_awkcmd}" '/^([0-9A-f]{2}:){5}[0-9A-f]{2}(\/([0-9]|[1-3][0-9]|4[0-8]))?([[:space:]]+([0-9A-f]{0,4}:){1,7}[0-9A-f]{0,4}:?(\/(1?[0-2][0-8]|[0-9][0-9]))?([[:space:]]+#.*$|[[:space:]]*$)|[[:space:]]+#.*$|$)/{if(!$2||$2~/#/)$2="::/0";if(!seen[$1]++)printf "%s . %s, ",tolower($1),$2}' "${ban_blocklist}" >"${tmp_file}" printf "%s\n" "add set inet banIP ${feed} { type ether_addr . ipv6_addr; flags interval; auto-merge; policy ${ban_nftpolicy}; $(f_getelements "${tmp_file}") }" [ -z "${feed_direction##*forwardlan*}" ] && printf "%s\n" "add rule inet banIP lan-forward ether saddr . ip6 saddr @${feed} counter goto reject-chain" elif [ "${proto}" = "4" ]; then diff --git a/net/banip/files/banip.feeds b/net/banip/files/banip.feeds index 801639de1d1c2..da93ece0c4060 100644 --- a/net/banip/files/banip.feeds +++ b/net/banip/files/banip.feeds @@ -142,6 +142,12 @@ "rule_4": "/^127\\./{next}/^(([1-9][0-9]{0,2}\\.){1}([0-9]{1,3}\\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\\/(1?[0-9]|2?[0-9]|3?[0-2]))?)$/{printf \"%s,\\n\",$1}", "descr": "suspicious server IPs" }, + "hagezi":{ + "url_4": "https://raw.githubusercontent.com/hagezi/dns-blocklists/refs/heads/main/ips/tif.txt", + "rule_4": "/^127\\./{next}/^(([1-9][0-9]{0,2}\\.){1}([0-9]{1,3}\\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\\/(1?[0-9]|2?[0-9]|3?[0-2]))?)$/{printf \"%s,\\n\",$1}", + "descr": "Threat IP blocklist", + "flag": "tcp 80 443" + }, "iblockads":{ "url_4": "https://list.iblocklist.com/?list=dgxtneitpuvgqqcpfulq&fileformat=cidr&archiveformat=gz", "rule_4": "/^127\\./{next}/^(([1-9][0-9]{0,2}\\.){1}([0-9]{1,3}\\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\\/(1?[0-9]|2?[0-9]|3?[0-2]))?)$/{printf \"%s,\\n\",$1}", @@ -230,11 +236,6 @@ "descr": "stevenblack IPs", "flag": "tcp 80 443" }, - "talos":{ - "url_4": "https://www.talosintelligence.com/documents/ip-blacklist", - "rule_4": "/^127\\./{next}/^(([1-9][0-9]{0,2}\\.){1}([0-9]{1,3}\\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\\/(1?[0-9]|2?[0-9]|3?[0-2]))?)$/{printf \"%s,\\n\",$1}", - "descr": "talos IPs" - }, "threat":{ "url_4": "https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt", "rule_4": "/^127\\./{next}/^(([1-9][0-9]{0,2}\\.){1}([0-9]{1,3}\\.){2}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(\\/(1?[0-9]|2?[0-9]|3?[0-2]))?)$/{printf \"%s,\\n\",$1}", diff --git a/net/chrony/Makefile b/net/chrony/Makefile index 813cb8350c434..67ec8f8947591 100644 --- a/net/chrony/Makefile +++ b/net/chrony/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chrony -PKG_VERSION:=4.6 +PKG_VERSION:=4.6.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://chrony-project.org/releases/ -PKG_HASH:=9adad4a5014420fc52b695896556fdfb49709dc7cd72d7f688d9eb85d5a274d5 +PKG_HASH:=571ff73fbf0ae3097f0604eca2e00b1d8bb2e91affe1a3494785ff21d6199c5c PKG_MAINTAINER:=Miroslav Lichvar PKG_LICENSE:=GPL-2.0 diff --git a/net/crowdsec-firewall-bouncer/Makefile b/net/crowdsec-firewall-bouncer/Makefile index d7b63b8e0eeb9..152449d264fa5 100644 --- a/net/crowdsec-firewall-bouncer/Makefile +++ b/net/crowdsec-firewall-bouncer/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=crowdsec-firewall-bouncer -PKG_VERSION:=0.0.30 -PKG_RELEASE:=1 +PKG_VERSION:=0.0.31 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/crowdsecurity/cs-firewall-bouncer/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1acd787692acd692ce8f9ce27ea9add8c3941b266e16f449b20a97c161e6879e +PKG_HASH:=c34963f0680ae296ae974d8f6444a2d1e2dd7617e7b05d4ad85c320529eec5f5 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/net/crowdsec-firewall-bouncer/files/crowdsec-firewall-bouncer.initd b/net/crowdsec-firewall-bouncer/files/crowdsec-firewall-bouncer.initd index 23c4b55022324..33ebbb0eaef25 100755 --- a/net/crowdsec-firewall-bouncer/files/crowdsec-firewall-bouncer.initd +++ b/net/crowdsec-firewall-bouncer/files/crowdsec-firewall-bouncer.initd @@ -41,7 +41,6 @@ init_yaml() { local chain6_name local retry_initial_connect - config_get set_only $section set_only '1' config_get hook_priority $section priority "4" config_get update_frequency $section update_frequency '10s' config_get log_level $section log_level 'info' @@ -101,13 +100,13 @@ init_yaml() { nftables: ipv4: enabled: bool($ipv4) - set-only: bool($set_only) + set-only: false table: $TABLE chain: $chain_name priority: $hook_priority ipv6: enabled: bool($ipv6) - set-only: bool($set_only) + set-only: false table: $TABLE6 chain: $chain6_name priority: $hook_priority @@ -178,11 +177,13 @@ init_nftables() { if [ "$filter_input" -eq "1" ] ; then nft add chain ip "$TABLE" $chain_name-input "{ type filter hook input priority $hook_priority; policy accept; }" - nft add rule ip "$TABLE" $chain_name-input iifname { $interface } ct state new ip saddr @crowdsec-blacklists ${log_term} counter $deny_action + nft add rule ip "$TABLE" $chain_name-input ct state established,related accept + nft add rule ip "$TABLE" $chain_name-input iifname != { $interface } accept fi if [ "$filter_forward" -eq "1" ] ; then nft add chain ip "$TABLE" $chain_name-forward "{ type filter hook forward priority $hook_priority; policy accept; }" - nft add rule ip "$TABLE" $chain_name-forward iifname { $interface } ct state new ip daddr != 224.0.0.0/4 ip saddr @crowdsec-blacklists ${log_term} counter $deny_action + nft add rule ip "$TABLE" $chain_name-forward ct state established,related accept + nft add rule ip "$TABLE" $chain_name-forward iifname != { $interface } accept fi fi @@ -193,11 +194,13 @@ init_nftables() { if [ "$filter_input" -eq "1" ] ; then nft add chain ip6 "$TABLE6" $chain6_name-input "{ type filter hook input priority $hook_priority; policy accept; }" - nft add rule ip6 "$TABLE6" $chain6_name-input iifname { $interface } ct state new ip6 saddr @crowdsec6-blacklists ${log_term} counter $deny_action + nft add rule ip6 "$TABLE6" $chain6_name-input ct state established,related accept + nft add rule ip6 "$TABLE6" $chain6_name-input iifname != { $interface } accept fi if [ "$filter_forward" -eq "1" ] ; then nft add chain ip6 "$TABLE6" $chain6_name-forward "{ type filter hook forward priority $hook_priority; policy accept; }" - nft add rule ip6 "$TABLE6" $chain6_name-forward iifname { $interface } ct state new ip6 saddr @crowdsec6-blacklists ${log_term} counter $deny_action + nft add rule ip6 "$TABLE6" $chain6_name-forward ct state established,related accept + nft add rule ip6 "$TABLE6" $chain6_name-forward iifname != { $interface } accept fi fi } @@ -208,14 +211,11 @@ run_bouncer() { local enabled config_get_bool enabled $section enabled 0 - config_get_bool set_only $section set_only 1 if [ "$enabled" -eq "1" ] ; then init_yaml "$section" - if [ "$set_only" -eq "1" ] ; then - init_nftables "$section" - fi + init_nftables "$section" procd_open_instance procd_set_param command "$PROG" -c "$VARCONFIG" diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index 103130558d330..cd23443fa24d5 100644 --- a/net/ddns-scripts/Makefile +++ b/net/ddns-scripts/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ddns-scripts PKG_VERSION:=2.8.2 -PKG_RELEASE:=47 +PKG_RELEASE:=49 PKG_LICENSE:=GPL-2.0 @@ -307,6 +307,15 @@ define Package/ddns-scripts-porkbun/description "option domain" to be the FQDN for which to configure DDNS endef +define Package/ddns-scripts-huaweicloud + $(call Package/ddns-scripts/Default) + TITLE:=Extension for huaweicloud.com API + DEPENDS:=ddns-scripts +curl +openssl-util +endef + +define Package/ddns-scripts-huaweicloud/description + Dynamic DNS Client scripts extension for huaweicloud.com API (require curl and openssl) +endef define Build/Configure endef @@ -386,6 +395,7 @@ define Package/ddns-scripts-services/install rm $(1)/usr/share/ddns/default/ns1.com.json rm $(1)/usr/share/ddns/default/one.com.json rm $(1)/usr/share/ddns/default/porkbun.com-v3.json + rm $(1)/usr/share/ddns/default/huaweicloud.com.json endef @@ -721,6 +731,25 @@ exit 0 endef +define Package/ddns-scripts-huaweicloud/install + $(INSTALL_DIR) $(1)/usr/lib/ddns + $(INSTALL_BIN) ./files/usr/lib/ddns/update_huaweicloud_com.sh \ + $(1)/usr/lib/ddns + + $(INSTALL_DIR) $(1)/usr/share/ddns/default + $(INSTALL_DATA) ./files/usr/share/ddns/default/huaweicloud.com.json \ + $(1)/usr/share/ddns/default/ +endef + +define Package/ddns-scripts-huaweicloud/prerm +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + /etc/init.d/ddns stop +fi +exit 0 +endef + + $(eval $(call BuildPackage,ddns-scripts)) $(eval $(call BuildPackage,ddns-scripts-services)) $(eval $(call BuildPackage,ddns-scripts-utils)) @@ -741,3 +770,4 @@ $(eval $(call BuildPackage,ddns-scripts-transip)) $(eval $(call BuildPackage,ddns-scripts-ns1)) $(eval $(call BuildPackage,ddns-scripts-one)) $(eval $(call BuildPackage,ddns-scripts-porkbun)) +$(eval $(call BuildPackage,ddns-scripts-huaweicloud)) diff --git a/net/ddns-scripts/files/usr/lib/ddns/update_huaweicloud_com.sh b/net/ddns-scripts/files/usr/lib/ddns/update_huaweicloud_com.sh new file mode 100644 index 0000000000000..1c21b1d2e7556 --- /dev/null +++ b/net/ddns-scripts/files/usr/lib/ddns/update_huaweicloud_com.sh @@ -0,0 +1,152 @@ +#!/bin/sh +# +# script for sending updates to huaweicloud.com +# 2023-2024 sxlehua +# API documentation at https://support.huaweicloud.com/api-dns/dns_api_62003.html +# API signature documentation at https://support.huaweicloud.com/api-dns/dns_api_30003.html +# +# This script is parsed by dynamic_dns_functions.sh inside send_update() function +# +# useage: +# using following options from /etc/config/ddns +# option username - huaweicloud Access Key Id +# option password - huaweicloud Secret Access Key,AK、SK documentation from https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html +# option domain - "hostname@yourdomain.TLD" # syntax changed to remove split_FQDN() function and tld_names.dat.gz +# + +# Check inputs +[ -z "$username" ] && write_log 14 "Configuration error! [username] cannot be empty" +[ -z "$password" ] && write_log 14 "Configuration error! [password] cannot be empty" + +[ -z "$CURL" ] && [ -z "$CURL_SSL" ] && write_log 14 "huaweicloud API require cURL with SSL support. Please install" +command -v openssl >/dev/null 2>&1 || write_log 14 "huaweicloud API require openssl-util support. Please install" + +# public variable +local __HOST __DOMAIN __TYPE __ZONE_ID __RECORD_ID +local __ENDPOINT="dns.cn-north-1.myhuaweicloud.com" +local __TTL=120 +[ $use_ipv6 -eq 0 ] && __TYPE="A" || __TYPE="AAAA" + +# Get host and domain from $domain +[ "${domain:0:2}" == "@." ] && domain="${domain/./}" # host +[ "$domain" == "${domain/@/}" ] && domain="${domain/./@}" # host with no sperator +__HOST="${domain%%@*}" +__DOMAIN="${domain#*@}" +[ -z "$__HOST" -o "$__HOST" == "$__DOMAIN" ] && __HOST="@" + +hcloud_transfer() { + local method=$1 + local path=$2 + local query=$3 + local body=$4 + + local timestamp=$(date -u +'%Y%m%dT%H%M%SZ') + local contentType="" + if [ ! "$method" = "GET" ]; then + contentType="application/json" + fi + local _H_Content_Type="" + + local canonicalUri="${path}" + # add / if need + echo $canonicalUri | grep -qE "/$" || canonicalUri="$canonicalUri/" + local canonicalQuery="$query" # for extend + + local canonicalHeaders="host:$__ENDPOINT\nx-sdk-date:$timestamp\n" + local signedHeaders="host;x-sdk-date" + + if [ ! "$contentType" = "" ]; then + canonicalHeaders="content-type:$contentType\n${canonicalHeaders}" + signedHeaders="content-type;$signedHeaders" + _H_Content_Type="Content-Type: ${contentType}" + fi + + local hexencode=$(printf "%s" "$body" | openssl dgst -sha256 -hex 2>/dev/null | sed 's/^.* //') + local canonicalRequest="$method\n$canonicalUri\n$canonicalQuery\n$canonicalHeaders\n$signedHeaders\n$hexencode" + canonicalRequest="$(printf "$canonicalRequest%s")" + + local stringToSign="SDK-HMAC-SHA256\n$timestamp\n$(printf "%s" "$canonicalRequest" | openssl dgst -sha256 -hex 2>/dev/null | sed 's/^.* //')" + stringToSign="$(printf "$stringToSign%s")" + + local signature=$(printf "%s" "$stringToSign" | openssl dgst -sha256 -hmac "$password" 2>/dev/null | sed 's/^.* //') + authorization="SDK-HMAC-SHA256 Access=$username, SignedHeaders=$signedHeaders, Signature=$signature" + + reqUrl="$__ENDPOINT$path" + if [ ! -z "$query" ]; then + reqUrl="$reqUrl""?$query" + fi + + curl -s -X "${method}" \ + -H "Host: $__ENDPOINT" \ + -H "$_H_Content_Type" \ + -H "Authorization: $authorization" \ + -H "X-Sdk-Date: $timestamp" \ + -d "${body}" \ + "https://$reqUrl" + + if [ $? -ne 0 ]; then + write_log 14 "rest api error" + fi +} + +get_zone() { + local resp=`hcloud_transfer GET /v2/zones "name=$__DOMAIN.&search_mode=equal" ""` + __ZONE_ID=`printf "%s" $resp | grep -Eo '"id":"[a-z0-9]+"' | cut -d':' -f2 | tr -d '"'` + if [ "$__ZONE_ID" = "" ]; then + write_log 14 "error, no zone" + fi +} + +upd_record() { + local body="{\"name\":\"$__HOST.$__DOMAIN.\",\"type\":\"$__TYPE\",\"records\":[\"$__IP\"],\"ttl\":$__TTL}" + local resp=`hcloud_transfer PUT /v2/zones/"$__ZONE_ID"/recordsets/$__RECORD_ID "" "$body"` + local recordId=`printf "%s" $resp | grep -Eo '"id":"[a-z0-9]+"' | cut -d':' -f2 | tr -d '"'` + if [ ! "$recordId" = "" ]; then + write_log 7 "upd [$recordId] success [$__TYPE] [$__IP]" + else + write_log 14 "upd ecord error [$resp]" + fi +} + +add_record() { + local body="{\"name\":\"$__HOST.$__DOMAIN.\",\"type\":\"$__TYPE\",\"records\":[\"$__IP\"],\"ttl\":$__TTL}" + local resp=`hcloud_transfer POST /v2/zones/"$__ZONE_ID"/recordsets "" "$body"` + local recordId=`printf "%s" $resp | grep -Eo '"id":"[a-z0-9]+"' | cut -d':' -f2 | tr -d '"'` + if [ ! "$recordId" = "" ]; then + write_log 7 "add [$recordId] success [$__TYPE] [$__IP]" + else + write_log 14 "add record error [$resp]" + fi +} + +# Get DNS record +get_record() { + local ret=0 + local resp=`hcloud_transfer GET /v2/zones/$__ZONE_ID/recordsets "name=$__HOST.$__DOMAIN.&search_mode=equal" ""` + __RECORD_ID=`printf "%s" $resp | grep -Eo '"id":"[a-z0-9]+"' | cut -d':' -f2 | tr -d '"' | head -1` + if [ "$__RECORD_ID" = "" ]; then + # Record needs to be add + ret=1 + else + local remoteIp=`printf "%s" $resp | grep -Eo '"records":\[[^]]+]' | cut -d ':' -f 2-10 | tr -d '[' | tr -d ']' | tr -d '"' | head -1` + if [ ! "$remoteIp" = "$__IP" ]; then + # Record needs to be updated + ret=2 + fi + fi + return $ret +} + +get_zone +get_record + +ret=$? +if [ $ret -eq 0 ]; then + write_log 7 "nochg [$__IP]" +fi +if [ $ret -eq 1 ]; then + add_record +fi +if [ $ret -eq 2 ]; then + upd_record +fi diff --git a/net/ddns-scripts/files/usr/lib/ddns/update_porkbun_v3.sh b/net/ddns-scripts/files/usr/lib/ddns/update_porkbun_v3.sh index 037a4aa6e7abc..f1824d9d5be65 100644 --- a/net/ddns-scripts/files/usr/lib/ddns/update_porkbun_v3.sh +++ b/net/ddns-scripts/files/usr/lib/ddns/update_porkbun_v3.sh @@ -62,7 +62,7 @@ function api_call() { response=$($CURL --data "$2" "$url") write_log 7 "API response JSON payload: $response" echo "$response" - +} # Check Porkbun API response status function json_check_status() { diff --git a/net/ddns-scripts/files/usr/share/ddns/default/huaweicloud.com.json b/net/ddns-scripts/files/usr/share/ddns/default/huaweicloud.com.json new file mode 100644 index 0000000000000..be549deb6416b --- /dev/null +++ b/net/ddns-scripts/files/usr/share/ddns/default/huaweicloud.com.json @@ -0,0 +1,9 @@ +{ + "name": "huaweicloud.com", + "ipv4": { + "url": "update_huaweicloud_com.sh" + }, + "ipv6": { + "url": "update_huaweicloud_com.sh" + } +} diff --git a/net/dnsdist/Makefile b/net/dnsdist/Makefile index 1594b27b0bd0f..206e87461dad2 100644 --- a/net/dnsdist/Makefile +++ b/net/dnsdist/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsdist -PKG_VERSION:=1.9.6 +PKG_VERSION:=1.9.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/ -PKG_HASH:=f6c48d95525693fea6bd9422f3fdf69a77c75b06f02ed14ff0f42072f72082c9 +PKG_HASH:=285111c2b7dff6bc8a2407106a51c365cc5bf5e6287fe459a29b396c74620332 PKG_MAINTAINER:=Peter van Dijk , Remi Gacogne PKG_LICENSE:=GPL-2.0-only diff --git a/net/git/Makefile b/net/git/Makefile index e79b400f5916b..ffa5fdea38ba2 100644 --- a/net/git/Makefile +++ b/net/git/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=git -PKG_VERSION:=2.45.2 +PKG_VERSION:=2.46.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/scm/git/ -PKG_HASH:=51bfe87eb1c02fed1484051875365eeab229831d30d0cec5d89a14f9e40e9adb +PKG_HASH:=5ee8a1c68536094a4f7f9515edc154b12a275b8a57dda4c21ecfbf1afbae2ca3 PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE_FILES:=COPYING diff --git a/net/git/patches/200-imapsend_without_curl.patch b/net/git/patches/200-imapsend_without_curl.patch index 725c62ec8b285..061a44341fbf6 100644 --- a/net/git/patches/200-imapsend_without_curl.patch +++ b/net/git/patches/200-imapsend_without_curl.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -1642,7 +1642,7 @@ else +@@ -1636,7 +1636,7 @@ else endif curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p) ifeq "$(curl_check)" "072200" diff --git a/net/git/patches/300-openssl-deprecated.patch b/net/git/patches/300-openssl-deprecated.patch index abd5c61ada77e..16b5543a0d8b5 100644 --- a/net/git/patches/300-openssl-deprecated.patch +++ b/net/git/patches/300-openssl-deprecated.patch @@ -14,7 +14,7 @@ Signed-off-by: Rosen Penev --- a/imap-send.c +++ b/imap-send.c -@@ -261,8 +261,10 @@ static int ssl_socket_connect(struct ima +@@ -259,8 +259,10 @@ static int ssl_socket_connect(struct ima int ret; X509 *cert; diff --git a/net/hev-socks5-server/Makefile b/net/hev-socks5-server/Makefile index bdcb628c297ac..813e4ba15a166 100644 --- a/net/hev-socks5-server/Makefile +++ b/net/hev-socks5-server/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hev-socks5-server -PKG_VERSION:=2.6.7 +PKG_VERSION:=2.6.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/heiher/hev-socks5-server/releases/download/$(PKG_VERSION) -PKG_HASH:=4f51610e38b952e7e422ab154c8afc48e6ff0e58ad6c605bb6e823c98a706906 +PKG_HASH:=43fadd353767fdd6b750948289fdae855a473f9335fb5a4e42c5d362dc99d0a8 PKG_MAINTAINER:=Ray Wang PKG_LICENSE:=MIT diff --git a/net/i2pd/Makefile b/net/i2pd/Makefile index ccba2ecb12577..5d02f14b39aaa 100644 --- a/net/i2pd/Makefile +++ b/net/i2pd/Makefile @@ -1,7 +1,7 @@ # # Copyright (C) 2015, 2016 gxcreator # Copyright (C) 2017 OpenWrt.org -# Copyright (C) 2021-2023 PurpleI2P team +# Copyright (C) 2021-2024 PurpleI2P team # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -10,13 +10,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=i2pd -PKG_VERSION:=2.53.1 +PKG_VERSION:=2.54.0 PKG_RELEASE:=1 PKG_BUILD_PARALLEL:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/PurpleI2P/i2pd/tar.gz/$(PKG_VERSION)? -PKG_HASH:=c6863d853905e7594ea661595ea591055f8f2f018b9b90507d5a43a6456188ea +PKG_HASH:=5c3f703417bb5f3e5dda642d39c5d30593a5dcf69d5a5ecfe82d5e8a7d454aaf PKG_MAINTAINER:=David Yang PKG_LICENSE:=BSD-3-Clause @@ -28,8 +28,8 @@ include $(INCLUDE_DIR)/package.mk define Package/i2pd SECTION:=net CATEGORY:=Network - DEPENDS:=+libopenssl +boost +boost-system +boost-filesystem \ - +boost-program_options +boost-date_time +libatomic +zlib + DEPENDS:=+libopenssl +boost +boost-system \ + +boost-program_options +libatomic +zlib TITLE:=full-featured C++ implementation of I2P client URL:=https://github.com/PurpleI2P/i2pd USERID:=i2pd:i2pd @@ -51,8 +51,8 @@ define Package/i2pd/conffiles endef define Package/i2pd/install - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/i2pd $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/i2pd $(1)/usr/bin $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/i2pd.init $(1)/etc/init.d/i2pd $(INSTALL_DIR) $(1)/usr/share/i2pd diff --git a/net/i2pd/files/i2pd.init b/net/i2pd/files/i2pd.init index 49ef4ffd211b8..3e42065340f5a 100755 --- a/net/i2pd/files/i2pd.init +++ b/net/i2pd/files/i2pd.init @@ -8,7 +8,7 @@ START=90 STOP=10 # default params -PROG=/usr/sbin/i2pd +PROG=/usr/bin/i2pd USER="i2pd" GROUP="i2pd" PIDFILE=/var/run/i2pd.pid diff --git a/net/iputils/Makefile b/net/iputils/Makefile index 824717f468660..774c06ae321ad 100644 --- a/net/iputils/Makefile +++ b/net/iputils/Makefile @@ -9,13 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iputils -PKG_VERSION:=20240117 +PKG_VERSION:=20240905 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/iputils/iputils/tar.gz/$(PKG_VERSION)? -PKG_HASH:=a5d66e2997945b2541b8f780a7f5a5ec895d53a517ae1dc4f3ab762573edea9a -PKG_BUILD_DIR:=$(BUILD_DIR)/iputils-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=https://github.com/iputils/iputils/releases/download/$(PKG_VERSION) +PKG_HASH:=1ff0c762578d5b0c1c5fbbd081f80f3137ba4f115e5854a4439e36449343bfdb PKG_MAINTAINER:=Noah Meyerhans PKG_LICENSE:=BSD-3-Clause diff --git a/net/iputils/patches/001_version_fix.patch b/net/iputils/patches/001_version_fix.patch index e8dbd369b1b3e..a589d51f8c558 100644 --- a/net/iputils/patches/001_version_fix.patch +++ b/net/iputils/patches/001_version_fix.patch @@ -1,7 +1,7 @@ Description: set a static version string rather than discern it from git --- a/meson.build +++ b/meson.build -@@ -19,6 +19,7 @@ add_project_arguments( +@@ -20,6 +20,7 @@ add_project_arguments( conf = configuration_data() conf.set_quoted('PACKAGE_NAME', meson.project_name()) @@ -9,7 +9,7 @@ Description: set a static version string rather than discern it from git build_arping = get_option('BUILD_ARPING') build_clockdiff = get_option('BUILD_CLOCKDIFF') -@@ -148,10 +149,10 @@ foreach h : [ +@@ -149,10 +150,10 @@ foreach h : [ endif endforeach diff --git a/net/jool/Makefile b/net/jool/Makefile index 8fe57271151ae..fed3f2b0d1608 100644 --- a/net/jool/Makefile +++ b/net/jool/Makefile @@ -102,7 +102,7 @@ endef define Package/jool-tools-netfilter $(call Package/jool/Default) TITLE:=Jool userspace control programs - DEPENDS:=+libnl +kmod-jool-netfilter + DEPENDS:=+libnl +libnl-genl +kmod-jool-netfilter +ethtool endef define Package/jool-tools-netfilter/description @@ -135,6 +135,9 @@ define Package/jool-tools-netfilter/install $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/jool.init $(1)/etc/init.d/jool + $(INSTALL_DIR) $(1)/etc/hotplug.d/net + $(INSTALL_BIN) ./files/jool-disable-fraglist-gro.sh $(1)/etc/hotplug.d/net/90-jool-disable-fraglist-gro.sh + $(INSTALL_DIR) $(1)/etc/jool $(INSTALL_CONF) ./files/jool-nat64.conf.json $(1)/etc/jool/jool-nat64.conf.json $(INSTALL_CONF) ./files/jool-siit.conf.json $(1)/etc/jool/jool-siit.conf.json diff --git a/net/jool/files/jool-disable-fraglist-gro.sh b/net/jool/files/jool-disable-fraglist-gro.sh new file mode 100644 index 0000000000000..2d43c2e4b208c --- /dev/null +++ b/net/jool/files/jool-disable-fraglist-gro.sh @@ -0,0 +1,6 @@ +if [ "$ACTION" = add ]; then + for dev in `ls /sys/class/net`; do + [ -d "/sys/class/net/$dev" ] || continue + ethtool -K $dev rx-gro-list off 2>/dev/null + done +fi diff --git a/net/knot/Makefile b/net/knot/Makefile index cd7e2ea341691..86115c5706806 100644 --- a/net/knot/Makefile +++ b/net/knot/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=knot -PKG_VERSION:=3.4.0 +PKG_VERSION:=3.4.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/ -PKG_HASH:=2730b11398944faa5151c51b0655cf26631090343c303597814f2a57df424736 +PKG_HASH:=252a2b83a9319a605103f7491d73a881e97c63339d09170ac9d525155fa41b1a PKG_MAINTAINER:=Daniel Salzman PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD BSD-3-Clause OLDAP-2.8 diff --git a/net/knot/patches/03-atomic.patch b/net/knot/patches/03-atomic.patch new file mode 100644 index 0000000000000..12e2a222972b8 --- /dev/null +++ b/net/knot/patches/03-atomic.patch @@ -0,0 +1,18 @@ +--- a/src/contrib/atomic.h ++++ b/src/contrib/atomic.h +@@ -41,6 +41,7 @@ + + #include + #include ++ #include + + #define ATOMIC_SET(dst, val) __atomic_store_n(&(dst), (val), __ATOMIC_RELAXED) + #define ATOMIC_GET(src) __atomic_load_n(&(src), __ATOMIC_RELAXED) +@@ -58,6 +59,7 @@ + + #include + #include ++ #include + + #define ATOMIC_SET(dst, val) ((dst) = (val)) + #define ATOMIC_GET(src) (src) diff --git a/net/knxd/Makefile b/net/knxd/Makefile index 9ab9d8981b083..419491af12209 100644 --- a/net/knxd/Makefile +++ b/net/knxd/Makefile @@ -11,12 +11,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=knxd -PKG_VERSION:=0.14.63 +PKG_VERSION:=0.14.65 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/knxd/knxd/tar.gz/$(PKG_VERSION)? -PKG_HASH:=02117be61f720f8b41f5cdbd9a18b29bb117808ddeef775c7c011f9d8898c4b3 +PKG_HASH:=b9d98898004fc19803077c821f8b73dea94825843845d6edd29b73590cfdcc4c PKG_MAINTAINER:=Othmar Truniger PKG_LICENSE:=GPL-2.0-or-later diff --git a/net/knxd/patches/0100-version.patch b/net/knxd/patches/0100-version.patch index 61162b23c1d75..c892497cb2b18 100644 --- a/net/knxd/patches/0100-version.patch +++ b/net/knxd/patches/0100-version.patch @@ -7,4 +7,4 @@ -test -d .git || exit -# git describe --tags -git log --format=format:%D | perl -ne 'next unless s#.*tag: ##; s#,.*##; next if m#/#; print; exit;' -+echo -n "0.14.63" ++echo -n "0.14.65" diff --git a/net/modemmanager/Makefile b/net/modemmanager/Makefile index 69df258b5d469..8ec657a0e9d4d 100644 --- a/net/modemmanager/Makefile +++ b/net/modemmanager/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=modemmanager PKG_VERSION:=1.22.0 -PKG_RELEASE:=18 +PKG_RELEASE:=19 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git diff --git a/net/modemmanager/files/lib/netifd/proto/modemmanager.sh b/net/modemmanager/files/lib/netifd/proto/modemmanager.sh index 562f2e3c378a8..669acb38e0b41 100644 --- a/net/modemmanager/files/lib/netifd/proto/modemmanager.sh +++ b/net/modemmanager/files/lib/netifd/proto/modemmanager.sh @@ -308,46 +308,159 @@ modemmanager_set_allowed_mode() { } } +modemmanager_check_state_failed() { + local device="$1" + local interface="$2" + local modemstatus="$3" + + local reason + + reason="$(modemmanager_get_field "${modemstatus}" "modem.generic.state-failed-reason")" + + case "$reason" in + "sim-missing") + echo "SIM missing" + proto_notify_error "${interface}" MM_FAILED_REASON_SIM_MISSING + proto_block_restart "${interface}" + return 1 + ;; + *) + proto_notify_error "${interface}" MM_FAILED_REASON_UNKNOWN + proto_block_restart "${interface}" + return 1 + ;; + esac +} + +modemmanager_check_state_lock_simpin() { + local interface="$1" + local unlock_value="$2" + + [ $unlock_value -ge 2 ] && return 0 + + echo "please check PIN (remaining attempts: ${unlock_value})" + proto_notify_error "${interface}" MM_CHECK_UNLOCK_PIN + proto_block_restart "${interface}" + return 1 +} + +modemmanager_check_state_lock_simpuk() { + local interface="$1" + local unlock_value="$2" + + echo "unlock with PUK required (remaining attempts: ${unlock_value})" + proto_notify_error "${interface}" MM_CHECK_UNLOCK_PIN + proto_block_restart "${interface}" + return 1 +} + +modemmanager_check_state_lock_sim() { + local interface="$1" + local unlock_lock="$2" + local unlock_value="$3" + + case "$unlock_lock" in + "sim-pin") + modemmanager_check_state_lock_simpin \ + "$interface" \ + "$unlock_value" + [ "$?" -ne "0" ] && return 1 + ;; + "sim-puk") + modemmanager_check_state_lock_simpuk \ + "$interface" \ + "$unlock_value" + [ "$?" -ne "0" ] && return 1 + ;; + *) + echo "PIN/PUK check '$unlock_lock' not implemented" + ;; + esac + + return 0 +} + +modemmanager_check_state_locked() { + local device="$1" + local interface="$2" + local modemstatus="$3" + local pincode="$4" + + local unlock_required unlock_retries unlock_retry unlock_lock + local unlock_value unlock_match + + if [ -z "$pincode" ]; then + echo "PIN required" + proto_notify_error "${interface}" MM_PINCODE_REQUIRED + proto_block_restart "${interface}" + return 1 + fi + + unlock_required="$(modemmanager_get_field "${modemstatus}" "modem.generic.unlock-required")" + unlock_retries="$(modemmanager_get_multivalue_field "${modemstatus}" "modem.generic.unlock-retries")" + + # Output of unlock-retries: + # 'sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)' + # Replace alle '' of unlock-retures with '', so we could + # iterate in the for loop. Replace result is: + # 'sim-pin(3),sim-puk(10),sim-pin2(3),sim-puk2(10)' + unlock_match=0 + for unlock_retry in $(echo "${unlock_retries// /}" | tr "," "\n"); do + unlock_lock="${unlock_retry%%(*}" + + # extract x value from 'sim-puk(x)' || 'sim-pin(x)' + unlock_value="${unlock_retry##*(}" + unlock_value="${unlock_value:0:-1}" + + [ "$unlock_lock" = "$unlock_required" ] && { + unlock_match=1 + modemmanager_check_state_lock_sim \ + "$interface" \ + "$unlock_lock" \ + "$unlock_value" + [ "$?" -ne "0" ] && return 1 + } + done + + if [ "$unlock_match" = "0" ]; then + echo "unable to check PIN/PUK attempts" + proto_notify_error "${interface}" MM_CHECK_UNLOCK_UNKNOWN + proto_block_restart "${interface}" + return 1 + fi + + mmcli --modem="${device}" -i any --pin=${pincode} || { + proto_notify_error "${interface}" MM_PINCODE_WRONG + proto_block_restart "${interface}" + return 1 + } + + return 0 +} + modemmanager_check_state() { local device="$1" - local modemstatus="$2" - local pincode="$3" + local interface="$2" + local modemstatus="$3" + local pincode="$4" - local state reason + local state - state="$(modemmanager_get_field "${modemstatus}" "state")" - state="${state%% *}" - reason="$(modemmanager_get_field "${modemstatus}" "state-failed-reason")" + state="$(modemmanager_get_field "${modemstatus}" "modem.generic.state")" case "$state" in "failed") - case "$reason" in - "sim-missing") - echo "SIM missing" - proto_notify_error "${interface}" MM_FAILED_REASON_SIM_MISSING - proto_block_restart "${interface}" - return 1 - ;; - *) - proto_notify_error "${interface}" MM_FAILED_REASON_UNKNOWN - proto_block_restart "${interface}" - return 1 - ;; - esac + modemmanager_check_state_failed "$device" \ + "$interface" \ + "$modemstatus" + [ "$?" -ne "0" ] && return 1 ;; "locked") - if [ -n "$pincode" ]; then - mmcli --modem="${device}" -i any --pin=${pincode} || { - proto_notify_error "${interface}" MM_PINCODE_WRONG - proto_block_restart "${interface}" - return 1 - } - else - echo "PIN required" - proto_notify_error "${interface}" MM_PINCODE_REQUIRED - proto_block_restart "${interface}" - return 1 - fi + modemmanager_check_state_locked "$device" \ + "$interface" \ + "$modemstatus" \ + "$pincode" + [ "$?" -ne "0" ] && return 1 ;; esac } @@ -459,7 +572,7 @@ proto_modemmanager_setup() { } echo "modem available at ${modempath}" - modemmanager_check_state "$device" "${modemstatus}" "$pincode" + modemmanager_check_state "$device" "$interface" "${modemstatus}" "$pincode" [ "$?" -ne "0" ] && return 1 # always cleanup before attempting a new connection, just in case diff --git a/net/modemmanager/files/usr/sbin/ModemManager-monitor b/net/modemmanager/files/usr/sbin/ModemManager-monitor index 8a88ab514b54c..44fdab5949bc7 100644 --- a/net/modemmanager/files/usr/sbin/ModemManager-monitor +++ b/net/modemmanager/files/usr/sbin/ModemManager-monitor @@ -127,7 +127,7 @@ main() { mm_log "info" "Checking if ModemManager is available..." if ! /usr/bin/mmcli -L >/dev/null 2>&1; then - mm_log "info" "ModemManager not yet available" + mm_log "info" "ModemManager not yet available (count=${n})" else mmrunning=1 break diff --git a/net/mwan3/Makefile b/net/mwan3/Makefile index 0108d178fe24b..5657e497c270a 100644 --- a/net/mwan3/Makefile +++ b/net/mwan3/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mwan3 -PKG_VERSION:=2.11.15 -PKG_RELEASE:=3 +PKG_VERSION:=2.11.16 +PKG_RELEASE:=4 PKG_MAINTAINER:=Florian Eckert , \ Aaron Goodman PKG_LICENSE:=GPL-2.0 diff --git a/net/mwan3/files/lib/mwan3/common.sh b/net/mwan3/files/lib/mwan3/common.sh index 3778cc46cd361..ecd45026e8db6 100644 --- a/net/mwan3/files/lib/mwan3/common.sh +++ b/net/mwan3/files/lib/mwan3/common.sh @@ -61,20 +61,18 @@ mwan3_get_src_ip() unset "$1" config_get family "$interface" family ipv4 if [ "$family" = "ipv4" ]; then - addr_cmd_1='network_get_ipaddr' - addr_cmd_2='false' + addr_cmd='network_get_ipaddr' default_ip="0.0.0.0" sed_str='s/ *inet \([^ \/]*\).*/\1/;T; pq' IP="$IP4" elif [ "$family" = "ipv6" ]; then - addr_cmd_1='network_get_preferred_ipaddr6' - addr_cmd_2='network_get_ipaddr6' + addr_cmd='network_get_ipaddr6' default_ip="::" sed_str='s/ *inet6 \([^ \/]*\).* scope.*/\1/;T; pq' IP="$IP6" fi - $addr_cmd_1 _src_ip "$true_iface" 2>&1 || $addr_cmd_2 _src_ip "$true_iface" + $addr_cmd _src_ip "$true_iface" if [ -z "$_src_ip" ]; then network_get_device device $true_iface _src_ip=$($IP address ls dev $device 2>/dev/null | sed -ne "$sed_str") diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index c3c06717b09f4..478f4f0e35f9b 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -294,14 +294,32 @@ main() { result=$? ;; httping) - if [ "$httping_ssl" -eq 1 ]; then - WRAP httping -c $count -t $timeout -q "https://$track_ip" &> /dev/null & + if [ $check_quality -eq 0 ]; then + if [ "$httping_ssl" -eq 1 ]; then + WRAP httping -c $count -t $timeout -q "https://$track_ip" &> /dev/null & + else + WRAP httping -c $count -t $timeout -q "http://$track_ip" &> /dev/null & + fi + TRACK_PID=$! + wait $TRACK_PID + result=$? else - WRAP httping -c $count -t $timeout -q "http://$track_ip" &> /dev/null & + if [ "$httping_ssl" -eq 1 ]; then + WRAP httping -c $count -t $timeout "https://$track_ip" 2> /dev/null > $TRACK_OUTPUT & + else + WRAP httping -c $count -t $timeout "http://$track_ip" 2> /dev/null > $TRACK_OUTPUT & + fi + TRACK_PID=$! + wait $TRACK_PID + ping_status=$? + loss="$(sed $TRACK_OUTPUT -ne 's/.* \([0-9]\+\).*% failed.*/\1/p')" + if [ "$ping_status" -ne 0 ] || [ "$loss" -eq 100 ]; then + latency=999999 + loss=100 + else + latency="$(sed $TRACK_OUTPUT -ne 's%\(rtt\|round-trip\).* = [^/]*/\([0-9]\+\).*%\2%p')" + fi fi - TRACK_PID=$! - wait $TRACK_PID - result=$? ;; nping-*) WRAP nping -c $count $track_ip --${FAMILY#nping-} > $TRACK_OUTPUT & diff --git a/net/netbird/Makefile b/net/netbird/Makefile index 102e8c241a665..fa4105a001c84 100644 --- a/net/netbird/Makefile +++ b/net/netbird/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netbird -PKG_VERSION:=0.29.1 +PKG_VERSION:=0.30.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/netbirdio/netbird/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9072d16845de49ce395b150564b82f97a33defe007276b6b46d733306b6760ee +PKG_HASH:=46014fb96e5320715efef5d1e767278e4f13dbe11eb18df7cdfb2bd06b12eabf PKG_MAINTAINER:=Oskari Rauta PKG_LICENSE:=BSD-3-Clause diff --git a/net/nut/Makefile b/net/nut/Makefile index a1834cc9286be..7181832b2da5b 100644 --- a/net/nut/Makefile +++ b/net/nut/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nut PKG_VERSION:=2.8.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.8/ @@ -546,6 +546,7 @@ CONFIGURE_ARGS += \ --without-libltdl \ --without-macosx_ups \ --with-statepath=/var/run/nut \ + --with-pidpath=/var/run \ --with-drvpath=/lib/nut \ --with-user=root \ --with-group=root \ diff --git a/net/openssh/Makefile b/net/openssh/Makefile index 399dabfc47578..b49f85ae3fbb6 100644 --- a/net/openssh/Makefile +++ b/net/openssh/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssh -PKG_REALVERSION:=9.8p1 -PKG_VERSION:=9.8_p1 -PKG_RELEASE:=2 +PKG_REALVERSION:=9.9p1 +PKG_VERSION:=9.9_p1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_REALVERSION).tar.gz PKG_SOURCE_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \ https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ -PKG_HASH:=dd8bd002a379b5d499dfb050dd1fa9af8029e80461f4bb6c523c49973f5a39f3 +PKG_HASH:=b343fbcdbff87f15b1986e6e15d6d4fc9a7d36066be6b7fb507087ba8f966c02 PKG_BUILD_DIR:=$(BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)$(PKG_NAME)-$(PKG_REALVERSION) PKG_LICENSE:=BSD ISC diff --git a/net/openssh/patches/001-build-construct_utmp-when-USE_BTMP-is-set.patch b/net/openssh/patches/001-build-construct_utmp-when-USE_BTMP-is-set.patch new file mode 100644 index 0000000000000..67a7062a462d0 --- /dev/null +++ b/net/openssh/patches/001-build-construct_utmp-when-USE_BTMP-is-set.patch @@ -0,0 +1,30 @@ +From 76a618d2842c34c16cd21a4efc7230e2f459008d Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Wed, 25 Sep 2024 11:13:05 +1000 +Subject: [PATCH] build construct_utmp() when USE_BTMP is set + +Fixes compile error on Void Linux/Musl +--- + loginrec.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/loginrec.c ++++ b/loginrec.c +@@ -614,7 +614,7 @@ line_abbrevname(char *dst, const char *s + ** into account. + **/ + +-#if defined(USE_UTMP) || defined (USE_WTMP) || defined (USE_LOGIN) ++#if defined(USE_BTMP) || defined(USE_UTMP) || defined (USE_WTMP) || defined (USE_LOGIN) + + /* build the utmp structure */ + void +@@ -698,7 +698,7 @@ construct_utmp(struct logininfo *li, + } + # endif + } +-#endif /* USE_UTMP || USE_WTMP || USE_LOGIN */ ++#endif /* USE_BTMP || USE_UTMP || USE_WTMP || USE_LOGIN */ + + /** + ** utmpx utility functions diff --git a/net/openssh/patches/100-fix-incompatible-ptr-GCC-14.1.patch b/net/openssh/patches/100-fix-incompatible-ptr-GCC-14.1.patch deleted file mode 100644 index df0a6afa1f6a0..0000000000000 --- a/net/openssh/patches/100-fix-incompatible-ptr-GCC-14.1.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/openbsd-compat/port-linux.c -+++ b/openbsd-compat/port-linux.c -@@ -366,7 +366,7 @@ ssh_systemd_notify(const char *fmt, ...) - error_f("socket \"%s\": %s", path, strerror(errno)); - goto out; - } -- if (connect(fd, &addr, sizeof(addr)) != 0) { -+ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - error_f("socket \"%s\" connect: %s", path, strerror(errno)); - goto out; - } diff --git a/net/pbr/Makefile b/net/pbr/Makefile index b83631118bb63..4bccd55a63d5a 100644 --- a/net/pbr/Makefile +++ b/net/pbr/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pbr PKG_VERSION:=1.1.7 -PKG_RELEASE:=10 +PKG_RELEASE:=21 PKG_LICENSE:=AGPL-3.0-or-later PKG_MAINTAINER:=Stan Grishin diff --git a/net/pbr/files/etc/init.d/pbr b/net/pbr/files/etc/init.d/pbr index 3a7441e297d3a..053e6b3544a68 100755 --- a/net/pbr/files/etc/init.d/pbr +++ b/net/pbr/files/etc/init.d/pbr @@ -14,7 +14,7 @@ USE_PROCD=1 readonly packageName='pbr' readonly PKG_VERSION='dev-test' -readonly packageCompat='7' +readonly packageCompat='8' readonly serviceName="$packageName $PKG_VERSION" readonly packageConfigFile="/etc/config/${packageName}" readonly packageLockFile="/var/run/${packageName}.lock" @@ -57,6 +57,7 @@ nft_user_set_policy= nft_user_set_counter= procd_boot_delay= procd_reload_delay= +procd_lan_interface= procd_wan_ignore_status= procd_wan_interface= procd_wan6_interface= @@ -305,7 +306,7 @@ uci_get_device() { uci_get 'network' "$1" 'device' || uci_get 'network' "$1" 'de uci_get_protocol() { uci_get 'network' "$1" 'proto'; } is_default_dev() { [ "$1" = "$(ip -4 r | grep -m1 'dev' | grep -Eso 'dev [^ ]*' | awk '{print $2}')" ]; } is_disabled_interface() { [ "$(uci_get 'network' "$1" 'disabled')" = '1' ]; } -is_domain() { ! is_ipv6 "$1" && str_contains "$1" '[a-zA-Z]'; } +is_domain() { ! is_ipv6 "$1" && ! is_mac_address "$1" && ! is_phys_dev "$1" && str_contains "$1" '[a-zA-Z]'; } is_dslite() { local p; network_get_protocol p "$1"; [ "${p:0:6}" = "dslite" ]; } is_family_mismatch() { ( is_ipv4_netmask "${1//!}" && is_ipv6 "${2//!}" ) || ( is_ipv6 "${1//!}" && is_ipv4_netmask "${2//!}" ); } is_greater() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; } @@ -326,7 +327,7 @@ is_ipv6_link_local() { [ "${1:0:4}" = 'fe80' ]; } is_ipv6_unique_local() { [ "${1:0:2}" = 'fc' ] || [ "${1:0:2}" = 'fd' ]; } is_list() { str_contains "$1" ',' || str_contains "$1" ' '; } is_ipv4_netmask() { local ip="${1%/*}"; [ "$ip" != "$1" ] && is_ipv4 "$ip"; } -is_lan() { local d; network_get_device d "$1"; str_contains "$d" 'br-lan'; } +is_lan() { local d; network_get_device d "$1"; str_contains "$procd_lan_interface" "$d"; } is_l2tp() { local p; network_get_protocol p "$1"; [ "${p:0:4}" = "l2tp" ]; } is_mac_address() { expr "$1" : '[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]$' >/dev/null; } is_negation() { [ "${1:0:1}" = '!' ]; } @@ -460,7 +461,6 @@ get_text() { local r case "$1" in errorConfigValidation) r="Config ($packageConfigFile) validation failure!";; - errorNoIpFull) r="ip-full binary cannot be found!";; errorNoNft) r="Resolver set support (${resolver_set}) requires nftables, but nft binary cannot be found!";; errorResolverNotSupported) r="Resolver set (${resolver_set}) is not supported on this system!";; errorServiceDisabled) r="The ${packageName} service is currently disabled!";; @@ -498,6 +498,9 @@ get_text() { errorNoDownloadWithSecureReload) r="Policy '%s' refers to URL which can't be downloaded in 'secure_reload' mode!";; errorFileSchemaRequiresCurl) r="The file:// schema requires curl, but it's not detected on this system!";; errorIncompatibleUserFile) r="Incompatible custom user file detected '%s'!";; + errorDefaultFw4TableMissing) r="Default fw4 table '%s' is missing!";; + errorDefaultFw4ChainMissing) r="Default fw4 chain '%s' is missing!";; + errorRequiredBinaryMissing) r="Required binary '%s' is missing!";; warningInvalidOVPNConfig) r="Invalid OpenVPN config for '%s' interface.";; warningResolverNotSupported) r="Resolver set (${resolver_set}) is not supported on this system.";; warningPolicyProcessCMD) r="'%s'";; @@ -573,6 +576,7 @@ load_package_config() { config_get verbosity 'config' 'verbosity' '2' config_get procd_boot_delay 'config' 'procd_boot_delay' '0' config_get procd_boot_timeout 'config' 'procd_boot_timeout' '30' + config_get procd_lan_interface 'config' 'procd_lan_interface' 'br-lan' config_get procd_wan_ignore_status 'config' 'procd_wan_ignore_status' '0' config_get procd_wan_interface 'config' 'procd_wan_interface' 'wan' config_get procd_wan6_interface 'config' 'procd_wan6_interface' 'wan6' @@ -617,10 +621,31 @@ load_package_config() { ${nft_set_timeout:+ timeout "$nft_set_timeout";} \ " - resolver 'check_support' && resolver 'configure_instances' } load_environment() { + _system_health_check() { + local i + # TODO: implement ip-full check + # state add 'errorSummary' 'errorRequiredBinaryMissing' 'ip-full' + if ! nft_call list table inet fw4; then + state add 'errorSummary' 'errorDefaultFw4TableMissing' 'fw4' + return 1 + fi + if is_config_enabled 'dns_policy' || is_tor_running; then + if ! nft_call list chain inet fw4 dstnat; then + state add 'errorSummary' 'errorDefaultFw4ChainMissing' 'dstnat' + return 1 + fi + fi + for i in $chainsList; do + if ! nft_call list chain inet fw4 "mangle_${i}"; then + state add 'errorSummary' 'errorDefaultFw4ChainMissing' "mangle_${i}" + return 1 + fi + done + return 0 + } local param="$1" validation_result="$2" load_package_config "$param" case "$param" in @@ -635,11 +660,7 @@ load_environment() { state add 'errorSummary' 'errorConfigValidation' return 1 fi - # TODO: implement ip-full check -# if [ ! -x ip ]; then -# state add 'errorSummary' 'errorNoIpFull' -# return 1 -# fi + _system_health_check || return 1 if [ "$(uci_get 'firewall' 'defaults' 'auto_includes')" = '0' ]; then uci_remove 'firewall' 'defaults' 'auto_includes' uci_commit firewall @@ -649,6 +670,7 @@ load_environment() { : ;; esac + resolver 'check_support' && resolver 'configure_instances' load_network "$param" } @@ -692,7 +714,6 @@ load_network() { is_wan_up() { local sleepCount='1' param="$1" - load_network "$param" [ "$procd_wan_ignore_status" -eq '0' ] || return 0 [ "$param" = 'on_boot' ] || procd_boot_timeout='1' if [ -z "$(uci_get network "$procd_wan_interface")" ]; then @@ -891,7 +912,7 @@ cleanup_rt_tables() { cleanup_main_chains() { local i j - for i in $chainsList dstnat_lan; do + for i in $chainsList dstnat; do i="$(str_to_lower "$i")" nft_call flush chain inet "$nftTable" "${nftPrefix}_${i}" done @@ -1153,7 +1174,7 @@ dns_policy_routing() { local negation value dest4 dest6 first_value local inline_set_ipv4_empty_flag inline_set_ipv6_empty_flag local name="$1" src_addr="$2" dest_dns="$3" uid="$4" - local chain='dstnat_lan' iface='dns' + local chain='dstnat' iface='dns' if [ -z "${dest_dns_ipv4}${dest_dns_ipv6}" ]; then processPolicyError='true' @@ -1178,8 +1199,8 @@ dns_policy_routing() { unset param4 unset param6 - dest4="dport 53 counter dnat ip to ${dest_dns_ipv4}:53" - dest6="dport 53 counter dnat ip6 to ${dest_dns_ipv6}:53" + dest4="dport 53 dnat ip to ${dest_dns_ipv4}:53" + dest6="dport 53 dnat ip6 to ${dest_dns_ipv6}:53" if [ -n "$src_addr" ]; then if [ "${src_addr:0:1}" = "!" ]; then @@ -1218,8 +1239,8 @@ dns_policy_routing() { fi fi - param4="$nftInsertOption rule inet ${nftTable} ${nftPrefix}_${chain} ${param4} ${proto_i} ${nft_rule_params} ${dest4} comment \"$name\"" - param6="$nftInsertOption rule inet ${nftTable} ${nftPrefix}_${chain} ${param6} ${proto_i} ${nft_rule_params} ${dest6} comment \"$name\"" + param4="$nftInsertOption rule inet ${nftTable} ${nftPrefix}_${chain} ${param4} ${nft_rule_params} meta nfproto ipv4 ${proto_i} ${dest4} comment \"$name\"" + param6="$nftInsertOption rule inet ${nftTable} ${nftPrefix}_${chain} ${param6} ${nft_rule_params} meta nfproto ipv6 ${proto_i} ${dest6} comment \"$name\"" local ipv4_error='0' ipv6_error='0' if [ "$policy_routing_nft_prev_param4" != "$param4" ] && \ @@ -1420,13 +1441,14 @@ policy_routing() { local dest_udp_53 dest_tcp_80 dest_udp_80 dest_tcp_443 dest_udp_443 local ipv4_error='0' ipv6_error='0' local dest_i dest4 dest6 - param4="$nftInsertOption rule inet $nftTable ${nftPrefix}_${chain} dstnat meta nfproto ipv4 $param4" - param6="$nftInsertOption rule inet $nftTable ${nftPrefix}_${chain} dstnat meta nfproto ipv6 $param6" - dest_udp_53="udp dport 53 counter redirect to :${torDnsPort} comment 'Tor-DNS-UDP'" - dest_tcp_80="tcp dport 80 counter redirect to :${torTrafficPort} comment 'Tor-HTTP-TCP'" - dest_udp_80="udp dport 80 counter redirect to :${torTrafficPort} comment 'Tor-HTTP-UDP'" - dest_tcp_443="tcp dport 443 counter redirect to :${torTrafficPort} comment 'Tor-HTTPS-TCP'" - dest_udp_443="udp dport 443 counter redirect to :${torTrafficPort} comment 'Tor-HTTPS-UDP'" + chain='dstnat' + param4="$nftInsertOption rule inet $nftTable ${nftPrefix}_${chain} ${nft_rule_params} meta nfproto ipv4 $param4" + param6="$nftInsertOption rule inet $nftTable ${nftPrefix}_${chain} ${nft_rule_params} meta nfproto ipv6 $param6" + dest_udp_53="udp dport 53 redirect to :${torDnsPort} comment 'Tor-DNS-UDP'" + dest_tcp_80="tcp dport 80 redirect to :${torTrafficPort} comment 'Tor-HTTP-TCP'" + dest_udp_80="udp dport 80 redirect to :${torTrafficPort} comment 'Tor-HTTP-UDP'" + dest_tcp_443="tcp dport 443 redirect to :${torTrafficPort} comment 'Tor-HTTPS-TCP'" + dest_udp_443="udp dport 443 redirect to :${torTrafficPort} comment 'Tor-HTTPS-UDP'" for dest_i in dest_udp_53 dest_tcp_80 dest_udp_80 dest_tcp_443 dest_udp_443; do eval "dest4=\$$dest_i" eval "dest6=\$$dest_i" @@ -1464,7 +1486,6 @@ policy_routing() { nft6 "$param6" || ipv6_error='1' policy_routing_nft_prev_param6="$param6" fi - if [ -n "$ipv6_enabled" ] && [ "$ipv4_error" -eq '1' ] && [ "$ipv6_error" -eq '1' ]; then processPolicyError='true' state add 'errorSummary' 'errorPolicyProcessInsertionFailed' "$name" @@ -1666,6 +1687,7 @@ interface_routing() { done << EOF $(ip -4 route list table main) EOF +# $(ip -4 route list table main proto static) try ip -4 rule add fwmark "${mark}/${fw_mask}" table "$tid" priority "$priority" || ipv4_error=1 try nft add chain inet "$nftTable" "${nftPrefix}_mark_${mark}" || ipv4_error=1 try nft add rule inet "$nftTable" "${nftPrefix}_mark_${mark} ${nft_rule_params} mark set mark and ${fw_maskXor} xor ${mark}" || ipv4_error=1 @@ -1796,7 +1818,7 @@ json_add_gateway() { json_close_object } -interface_process() { +process_interface() { local gw4 gw6 dev dev6 s=0 dscp iface="$1" action="$2" reloadedIface="$3" local displayText dispDev dispGw4 dispGw6 dispStatus @@ -2060,8 +2082,8 @@ start_service() { load_environment "${param:-on_start}" "$(load_validate_config)" || return 1 is_wan_up "$param" || return 1 - interface_process 'all' 'prepare' - config_foreach interface_process 'interface' 'pre_init' + process_interface 'all' 'prepare' + config_foreach process_interface 'interface' 'pre_init' case "$param" in on_boot) @@ -2117,8 +2139,8 @@ start_service() { on_interface_reload) output 1 "Reloading Interface: $reloadedIface " json_add_array 'gateways' - interface_process 'all' 'prepare' - config_foreach interface_process 'interface' 'reload_interface' "$reloadedIface" + process_interface 'all' 'prepare' + config_foreach process_interface 'interface' 'reload_interface' "$reloadedIface" json_close_array output 1 '\n' ;; @@ -2134,10 +2156,10 @@ start_service() { nft_file 'create' output 1 'Processing interfaces ' json_add_array 'gateways' - interface_process 'all' 'prepare' - config_foreach interface_process 'interface' 'create' - interface_process 'tor' 'destroy' - is_tor_running && interface_process 'tor' 'create' + process_interface 'all' 'prepare' + config_foreach process_interface 'interface' 'create' + process_interface 'tor' 'destroy' + is_tor_running && process_interface 'tor' 'create' json_close_array ip route flush cache output 1 '\n' @@ -2154,8 +2176,8 @@ start_service() { output 1 '\n' fi if is_config_enabled 'include' || [ -d "/etc/${packageName}.d/" ]; then - interface_process 'all' 'prepare' - config_foreach interface_process 'interface' 'create_user_set' + process_interface 'all' 'prepare' + config_foreach process_interface 'interface' 'create_user_set' output 1 'Processing user file(s) ' config_load "$packageName" config_foreach load_validate_include 'include' user_file_process @@ -2250,8 +2272,8 @@ stop_service() { cleanup_marking_chains output 1 'Resetting interfaces ' config_load 'network' - config_foreach interface_process 'interface' 'destroy' - interface_process 'tor' 'destroy' + config_foreach process_interface 'interface' 'destroy' + process_interface 'tor' 'destroy' cleanup_rt_tables output 1 "\\n" ip route flush cache @@ -2304,7 +2326,7 @@ status_service() { fi echo "$_SEPARATOR_" echo "$packageName chains - policies" - for i in $chainsList dstnat_lan; do + for i in $chainsList dstnat; do "$nft" -a list table inet "$nftTable" | sed -n "/chain ${nftPrefix}_${i} {/,/\t}/p" done echo "$_SEPARATOR_" @@ -2357,6 +2379,7 @@ load_validate_config() { 'procd_boot_delay:integer:0' \ 'procd_boot_timeout:integer:30' \ 'procd_reload_delay:integer:0' \ + 'procd_lan_interface:list(or(network)):br-lan' \ 'procd_wan_ignore_status:bool:0' \ 'procd_wan_interface:network:wan' \ 'procd_wan6_interface:network:wan6' \ diff --git a/net/pbr/files/usr/share/nftables.d/chain-post/dstnat/30-pbr.nft b/net/pbr/files/usr/share/nftables.d/chain-post/dstnat/30-pbr.nft new file mode 100644 index 0000000000000..987eece3cab98 --- /dev/null +++ b/net/pbr/files/usr/share/nftables.d/chain-post/dstnat/30-pbr.nft @@ -0,0 +1 @@ +jump pbr_dstnat comment "Jump into pbr dstnat chain"; diff --git a/net/pbr/files/usr/share/nftables.d/chain-post/dstnat_lan/30-pbr.nft b/net/pbr/files/usr/share/nftables.d/chain-post/dstnat_lan/30-pbr.nft deleted file mode 100644 index 2434649f3f853..0000000000000 --- a/net/pbr/files/usr/share/nftables.d/chain-post/dstnat_lan/30-pbr.nft +++ /dev/null @@ -1 +0,0 @@ -jump pbr_dstnat_lan comment "Jump into pbr dstnat_lan chain"; diff --git a/net/pbr/files/usr/share/nftables.d/table-post/30-pbr.nft b/net/pbr/files/usr/share/nftables.d/table-post/30-pbr.nft index 0a9118d834d84..637ed9270f802 100644 --- a/net/pbr/files/usr/share/nftables.d/table-post/30-pbr.nft +++ b/net/pbr/files/usr/share/nftables.d/table-post/30-pbr.nft @@ -1,4 +1,4 @@ -chain pbr_dstnat_lan {} +chain pbr_dstnat {} chain pbr_forward {} chain pbr_input {} chain pbr_output {} diff --git a/net/pbr/files/usr/share/pbr/pbr.user.aws b/net/pbr/files/usr/share/pbr/pbr.user.aws index 46cd4b3f1a1e6..8efcc0dea1d23 100644 --- a/net/pbr/files/usr/share/pbr/pbr.user.aws +++ b/net/pbr/files/usr/share/pbr/pbr.user.aws @@ -1,34 +1,29 @@ #!/bin/sh -# This file is heavily based on code from https://github.com/Xentrk/netflix-vpn-bypass/blob/master/IPSET_Netflix.sh - -TARGET_INTERFACE='wan' -TARGET_NFTSET_4="pbr_${TARGET_INTERFACE}_4_dst_ip_user" -TARGET_NFTSET_6="pbr_${TARGET_INTERFACE}_6_dst_ip_user" +# shellcheck disable=SC2015,SC3003,SC3060 +TARGET_URL='https://ip-ranges.amazonaws.com/ip-ranges.json' +TARGET_DL_FILE='/var/pbr_tmp_aws_ip_ranges.gz' TARGET_TABLE='inet fw4' -TARGET_URL="https://ip-ranges.amazonaws.com/ip-ranges.json" -TARGET_DL_FILE_4="/var/pbr_tmp_aws_ip_ranges.ipv4" -# Uncomment the following line if you enabled ipv6 for pbr and want IPv6 entries added to the IPv6 set -# TARGET_DL_FILE_6="/var/pbr_tmp_aws_ip_ranges.ipv6" -_ret=0 +TARGET_INTERFACE='wan' + +_ret=1 -if [ ! -s "$TARGET_DL_FILE_4" ]; then - uclient-fetch --no-check-certificate -qO- "$TARGET_URL" 2>/dev/null | grep "ip_prefix" | sed 's/^.*\"ip_prefix\": \"//; s/\",//' > "$TARGET_DL_FILE_4" -fi +mkdir -p "${TARGET_DL_FILE%/*}" -if [ -s "$TARGET_DL_FILE_4" ]; then - params= - while read -r p; do params="${params:+$params, }${p}"; done < "$TARGET_DL_FILE_4" - [ -n "$params" ] && nft "add element $TARGET_TABLE $TARGET_NFTSET_4 { $params }" || _ret=1 -fi +[ -s "$TARGET_DL_FILE" ] || \ + uclient-fetch --no-check-certificate -qO- "$TARGET_URL" | \ + gzip > "$TARGET_DL_FILE" -if [ -n "$TARGET_DL_FILE_6" ] && [ ! -s "$TARGET_DL_FILE_6" ]; then - uclient-fetch --no-check-certificate -qO- "$TARGET_URL" 2>/dev/null | grep "ipv6_prefix" | sed 's/^.*\"ipv6_prefix\": \"//; s/\",//' > "$TARGET_DL_FILE_6" -fi +[ "$(uci get pbr.config.ipv6_enabled)" = "1" ] && vers="4 6" || vers="4" -if [ -s "$TARGET_DL_FILE_6" ]; then - params= - while read -r p; do params="${params:+$params, }${p}"; done < "$TARGET_DL_FILE_6" - [ -n "$params" ] && nft "add element $TARGET_TABLE $TARGET_NFTSET_6 { $params }" || _ret=1 -fi +for ver in $vers;do + case "$ver" in + 4) search='@.prefixes[*].ip_prefix';; + 6) search='@.ipv6_prefixes[*].ipv6_prefix';; + esac + params="$(zcat "$TARGET_DL_FILE" | jsonfilter -e "$search")" + [ -n "$params" ] && _ret=0 || continue + nftset="pbr_${TARGET_INTERFACE}_${ver}_dst_ip_user" + nft "add element $TARGET_TABLE $nftset { ${params//$'\n'/, } }" || _ret=1 +done return $_ret diff --git a/net/pdns-recursor/Makefile b/net/pdns-recursor/Makefile index 094d4073d158d..e1a274e5fc00a 100644 --- a/net/pdns-recursor/Makefile +++ b/net/pdns-recursor/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pdns-recursor -PKG_VERSION:=5.1.1 +PKG_VERSION:=5.1.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/ -PKG_HASH:=5b7ab793ace822294a3f38092fe72ee64748ff0cbb8a5283dc77f40780605ae9 +PKG_HASH:=b3a37ebb20285ab9acbbb0e1370e623bb398ed3087f0e678f23ffa3b0063983d PKG_MAINTAINER:=Peter van Dijk , Remi Gacogne PKG_LICENSE:=GPL-2.0-only diff --git a/net/pdns/Makefile b/net/pdns/Makefile index 7c3846dfaad9f..4fcebf2448172 100644 --- a/net/pdns/Makefile +++ b/net/pdns/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pdns -PKG_VERSION:=4.9.1 +PKG_VERSION:=4.9.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/ -PKG_HASH:=30d9671b8f084774dbcba20f5a53a3134d0822ab2edc3ef968da030e630dd09a +PKG_HASH:=f570640427041f4c5c5470d16eff951a7038c353ddc461b2750290ce99b2e3c2 PKG_MAINTAINER:=Peter van Dijk , Remi Gacogne PKG_LICENSE:=GPL-2.0-only diff --git a/net/pdns/patches/100-pdns-disable-pdns.conf-dist.patch b/net/pdns/patches/100-pdns-disable-pdns.conf-dist.patch index a8d966a9cc8d4..d5d77325b6609 100644 --- a/net/pdns/patches/100-pdns-disable-pdns.conf-dist.patch +++ b/net/pdns/patches/100-pdns-disable-pdns.conf-dist.patch @@ -26,7 +26,7 @@ ixfrdist.example.yml endif -@@ -1341,9 +1338,6 @@ dnspcap2protobuf_LDADD = \ +@@ -1342,9 +1339,6 @@ dnspcap2protobuf_LDADD = \ $(BOOST_PROGRAM_OPTIONS_LIBS) \ $(RT_LIBS) diff --git a/net/pptpd/Makefile b/net/pptpd/Makefile index 4892a3e9b0694..ad58b45321517 100644 --- a/net/pptpd/Makefile +++ b/net/pptpd/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pptpd -PKG_VERSION:=1.4.0 -PKG_RELEASE:=6 +PKG_VERSION:=1.5.0 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/poptop -PKG_HASH:=8fcd8b8a42de2af59e9fe8cbaa9f894045c977f4d038bbd6346a8522bb7f06c0 +PKG_HASH:=6a724284b1ce00ea23f7d7608d081843a10c8a8d87d951cb2ea86e70aa1b4e77 PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 diff --git a/net/pptpd/patches/003-opt_flags.patch b/net/pptpd/patches/003-opt_flags.patch index cc136c51676ff..f67213cacdc0e 100644 --- a/net/pptpd/patches/003-opt_flags.patch +++ b/net/pptpd/patches/003-opt_flags.patch @@ -1,6 +1,6 @@ --- a/Makefile.in +++ b/Makefile.in -@@ -153,7 +153,7 @@ AUTOMAKE = @AUTOMAKE@ +@@ -233,7 +233,7 @@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ @@ -8,4 +8,4 @@ +CFLAGS = $(COPTS) -fno-builtin -Wall -DSBINDIR='"$(sbindir)"' CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ - CYGPATH_W = @CYGPATH_W@ + CSCOPE = @CSCOPE@ diff --git a/net/pptpd/patches/100-musl-compat.patch b/net/pptpd/patches/100-musl-compat.patch index 6ce625a414c10..4a17359df8511 100644 --- a/net/pptpd/patches/100-musl-compat.patch +++ b/net/pptpd/patches/100-musl-compat.patch @@ -1,22 +1,21 @@ --- a/bcrelay.c +++ b/bcrelay.c -@@ -667,7 +667,7 @@ static void mainloop(int argc, char **ar - * there is no need to concern about the physical/link layer header because it is - * filled in automatically (based on the contents of sa). - */ -- if ((nrsent = sendto(cur_ifsnr[j].sock_nr, ipp_p, rlen, MSG_DONTWAIT|MSG_TRYHARD, (struct sockaddr *)&sa, salen)) < 0) -+ if ((nrsent = sendto(cur_ifsnr[j].sock_nr, ipp_p, rlen, MSG_DONTWAIT|MSG_DONTROUTE, (struct sockaddr *)&sa, salen)) < 0) - { - if (errno == ENETDOWN) { - syslog(LOG_NOTICE, "ignored ENETDOWN from sendto(), a network interface was going down?"); +@@ -746,7 +746,7 @@ static void mainloop(int argc, char **ar + * because it is filled in automatically + * (based on the contents of sa). + */ +- if ((nrsent = sendto(cur_ifsnr[j].sock_nr, ipp_p, rlen, MSG_DONTWAIT|MSG_TRYHARD, (struct sockaddr *)&sa, salen)) < 0) ++ if ((nrsent = sendto(cur_ifsnr[j].sock_nr, ipp_p, rlen, MSG_DONTWAIT|MSG_DONTROUTE, (struct sockaddr *)&sa, salen)) < 0) + { + if (errno == ENETDOWN) { + syslog(LOG_NOTICE, "ignored ENETDOWN from sendto(), a network interface was going down?"); --- a/compat.c +++ b/compat.c -@@ -11,10 +11,10 @@ - #include "compat.h" - #include "our_syslog.h" +@@ -13,9 +13,9 @@ --#ifndef HAVE_STRLCPY #include + +-#ifndef HAVE_STRLCPY #include +#ifndef HAVE_STRLCPY diff --git a/net/rclone/Makefile b/net/rclone/Makefile index 96af98b44750c..378061ac1e207 100644 --- a/net/rclone/Makefile +++ b/net/rclone/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rclone -PKG_VERSION:=1.68.0 +PKG_VERSION:=1.68.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/rclone/rclone/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6e0acbef1c9d21d7a4d53d876c374466de0966f2a1994a8ae448ea0c179ccc6a +PKG_HASH:=26259526855a12499d00e3a3135ee95e7aeb3ecf2f85886d8c837a2e7b236226 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/net/sing-box/Makefile b/net/sing-box/Makefile index a1e65453476f7..98ef41a6f622f 100644 --- a/net/sing-box/Makefile +++ b/net/sing-box/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sing-box -PKG_VERSION:=1.9.4 +PKG_VERSION:=1.9.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/SagerNet/sing-box/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=30652ce0151ef46f314b25df74b402278dd7c540ba0b7f1c2c66209314afad09 +PKG_HASH:=5b015352f3434bb780af01a6b1f6c0fe706166d6c44a69547e29892f0920b944 PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE diff --git a/net/squid/Makefile b/net/squid/Makefile index 6b5f5ca5e1573..4bcce476d5177 100644 --- a/net/squid/Makefile +++ b/net/squid/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=squid -PKG_VERSION:=6.10 +PKG_VERSION:=6.11 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://www2.pl.squid-cache.org/Versions/v6/ \ http://www.squid-cache.org/Versions/v6/ -PKG_HASH:=0b07b187e723f04770dd25beb89aec12030a158696aa8892d87c8b26853408a7 +PKG_HASH:=b6e60c08429314287925331b3da6c03b7d3c35b7e03319f78edb8bad6fc68899 PKG_MAINTAINER:=Marko Ratkaj PKG_LICENSE:=GPL-2.0-or-later diff --git a/net/tailscale/Makefile b/net/tailscale/Makefile index 8e1c57e51f6f6..ef723c8e83783 100644 --- a/net/tailscale/Makefile +++ b/net/tailscale/Makefile @@ -8,14 +8,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tailscale -PKG_VERSION:=1.72.1 +PKG_VERSION:=1.74.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=21b529e85144f526b61e0998c8b7885d53f17cba21252e5c7252c4014f5f507b +PKG_HASH:=ef7b8a76ce81133dc10f243d733302c070232cdd6594b685c6adbf32769d4f2c -PKG_MAINTAINER:=Jan Pavlinec +PKG_MAINTAINER:=Zephyr Lykos , \ + Sandro Jäckel PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE @@ -28,7 +29,7 @@ GO_PKG:=\ tailscale.com/cmd/tailscaled GO_PKG_LDFLAGS:=-X 'tailscale.com/version.longStamp=$(PKG_VERSION)-$(PKG_RELEASE) (OpenWrt)' GO_PKG_LDFLAGS_X:=tailscale.com/version.shortStamp=$(PKG_VERSION) -GO_PKG_TAGS:=ts_include_cli +GO_PKG_TAGS:=ts_include_cli,ts_omit_aws,ts_omit_bird,ts_omit_tap,ts_omit_kube,ts_omit_completion include $(INCLUDE_DIR)/package.mk include ../../lang/golang/golang-package.mk diff --git a/net/v2ray-core/Makefile b/net/v2ray-core/Makefile index 2bb7aaaa3dcaf..2b5824d76c4c8 100644 --- a/net/v2ray-core/Makefile +++ b/net/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.18.0 +PKG_VERSION:=5.19.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=15acf65228867d47dcab27f87af048a2f0e6ed5d347a2e68730d30ae2a3871eb +PKG_HASH:=3c1fec2c5fb787d2929ecb68a6d4d3f0afa2d820a2b825d66a1632105864c8f4 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/net/v2ray-geodata/Makefile b/net/v2ray-geodata/Makefile index 19e63b2f496a8..5bc382d129c1b 100644 --- a/net/v2ray-geodata/Makefile +++ b/net/v2ray-geodata/Makefile @@ -12,31 +12,31 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202409120050 +GEOIP_VER:=202410030052 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=4ec83c46f84b3efb9856903e7c10d6c21f6515b9e656575c483dcf2a3d80f916 + HASH:=061c2116e650932c8058b663c14cd03be2241c6048bba6a2765ee1ea38481bff endef -GEOSITE_VER:=20240914091803 +GEOSITE_VER:=20240920063125 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=c171f61d3ba8e0dcf31a9548e9fd928a9416e064ad9417664eadda8d25eb6ad9 + HASH:=aeefcd8b3e5b27c22e2e7dfb6ff5e8d0741fd540d96ab355fd00a0472f5884a7 endef -GEOSITE_IRAN_VER:=202409160034 +GEOSITE_IRAN_VER:=202409300035 GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER) define Download/geosite-ir URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/ URL_FILE:=iran.dat FILE:=$(GEOSITE_IRAN_FILE) - HASH:=d4f7a05bb3c81a52a511a7ea5d2d865adadcb2d0ccdf4dd3a7bca5851d1e9d27 + HASH:=b10725db0a82d919cc72cd161dec4b14b6870c760322f6e503c55de3c1828f3d endef define Package/v2ray-geodata/template diff --git a/net/v2raya/Makefile b/net/v2raya/Makefile index 664c31d4384b1..ea2e2d26e9681 100644 --- a/net/v2raya/Makefile +++ b/net/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=2.2.5.7 +PKG_VERSION:=2.2.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=fae10dafa54508bf19961b111d608dda9bb7a79e724c88e60a464c58369f4826 +PKG_HASH:=2d52b8cc6fbd7264e53704684dd8ee56955852dbff324a45360d6ed1c923d8ba PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -59,7 +59,7 @@ define Download/v2raya-web URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/ URL_FILE:=web.tar.gz FILE:=$(WEB_FILE) - HASH:=a5b6151549a318b1bd5a4cc01482ad0abc1a7bd99fa01037a2a6b84501a77c3e + HASH:=123123d3d6d393c065348355b47db45aa6c6af10c60d6320f564883cd93c556a endef define Build/Prepare diff --git a/net/wifischedule/net/etc/init.d/wifi_schedule b/net/wifischedule/net/etc/init.d/wifi_schedule index 9156fdc12e9e8..f2b967446a91f 100644 --- a/net/wifischedule/net/etc/init.d/wifi_schedule +++ b/net/wifischedule/net/etc/init.d/wifi_schedule @@ -1,7 +1,7 @@ #!/bin/sh /etc/rc.common # Startup Script for wifi_schedule -START=100 +START=99 start() { /usr/bin/wifi_schedule.sh startup diff --git a/net/xray-core/Makefile b/net/xray-core/Makefile index 5c48adc2e1239..01ee70be2c6c8 100644 --- a/net/xray-core/Makefile +++ b/net/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.24 +PKG_VERSION:=24.9.30 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=86e3e388c77cda4d8457a607356416c201c1f18bbed53f0a9e76a228508ff298 +PKG_HASH:=0771120ddbf866fba44f2e8978bcc20f3843663f5726bd8db9e03e1a27e1212a PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/utils/containerd/Makefile b/utils/containerd/Makefile index dcb35ccdcb01d..4e3dd6af546e4 100644 --- a/utils/containerd/Makefile +++ b/utils/containerd/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=containerd -PKG_VERSION:=1.7.20 +PKG_VERSION:=1.7.22 PKG_RELEASE:=1 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE @@ -9,7 +9,7 @@ PKG_CPE_ID:=cpe:/a:linuxfoundation:containerd PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/containerd/containerd/tar.gz/v${PKG_VERSION}? -PKG_HASH:=c4268561e514a2e8322bc8cdd39113d5e164fb31c2cef76f479d683395ea9bd6 +PKG_HASH:=8c5edde741b7596af63c021429a1212bd616350ed65a7b741eeffc47e27ee9a9 PKG_MAINTAINER:=Gerard Ryan diff --git a/utils/ctop/Makefile b/utils/ctop/Makefile index 09b8722b0b1ee..e6122f0d86b45 100644 --- a/utils/ctop/Makefile +++ b/utils/ctop/Makefile @@ -37,7 +37,6 @@ MAKE_PATH:=$(GO_PKG_WORK_DIR_NAME)/build/src/$(GO_PKG) MAKE_VARS += \ GOPATH=$(GO_PKG_BUILD_DIR) \ GOCACHE=$(GO_BUILD_CACHE_DIR) \ - GOROOT_FINAL=$(GO_TARGET_ROOT) \ CC="$(TARGET_CC)" \ CXX="$(TARGET_CXX)" \ $(GO_PKG_VARS) diff --git a/utils/docker/Makefile b/utils/docker/Makefile index da8f2877dd080..fca979b4cfaab 100644 --- a/utils/docker/Makefile +++ b/utils/docker/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=docker -PKG_VERSION:=27.1.2 +PKG_VERSION:=27.3.1 PKG_RELEASE:=1 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE @@ -10,8 +10,8 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_GIT_URL:=github.com/docker/cli PKG_GIT_REF:=v$(PKG_VERSION) PKG_SOURCE_URL:=https://codeload.$(PKG_GIT_URL)/tar.gz/$(PKG_GIT_REF)? -PKG_HASH:=e60fddb2bd2b4e19790d26b786c930e70fa935168373ef08055f74bbc450bce8 -PKG_GIT_SHORT_COMMIT:=d01f264 # SHA1 used within the docker executables +PKG_HASH:=df7d44387166d90954e290dfbe0a278649bf71d0e89933615bdc0757580b68e4 +PKG_GIT_SHORT_COMMIT:=ce12230 # SHA1 used within the docker executables PKG_MAINTAINER:=Gerard Ryan diff --git a/utils/dockerd/Makefile b/utils/dockerd/Makefile index 8d1daf292d8f2..8ad6e2f9e3601 100644 --- a/utils/dockerd/Makefile +++ b/utils/dockerd/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dockerd -PKG_VERSION:=27.1.2 -PKG_RELEASE:=3 +PKG_VERSION:=27.3.1 +PKG_RELEASE:=1 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE @@ -10,8 +10,8 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_GIT_URL:=github.com/moby/moby PKG_GIT_REF:=v$(PKG_VERSION) PKG_SOURCE_URL:=https://codeload.$(PKG_GIT_URL)/tar.gz/$(PKG_GIT_REF)? -PKG_HASH:=8c9b5fa44f0272726484c925d4d05f0aa189053ed8be9b27447bc116df1e99c9 -PKG_GIT_SHORT_COMMIT:=f9522e5 # SHA1 used within the docker executables +PKG_HASH:=d18208d9e0b6421307342cdef266193984c97c87177b9262b1113e6e9e7e020e +PKG_GIT_SHORT_COMMIT:=41ca978 # SHA1 used within the docker executables PKG_MAINTAINER:=Gerard Ryan diff --git a/utils/ecdsautils/Makefile b/utils/ecdsautils/Makefile index 05b090a11c0c8..331fa3f300d50 100644 --- a/utils/ecdsautils/Makefile +++ b/utils/ecdsautils/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ecdsautils -PKG_VERSION:=0.4.1 +PKG_VERSION:=0.4.2 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/freifunk-gluon/ecdsautils -PKG_SOURCE_VERSION:=39b6d0a77414fd41614953a0e185c4eefa2f88ad -PKG_MIRROR_HASH:=ea2aa57316e3700a22770a1f4908ed234db2d3a57ebdbd5cf11bd1c3b3643087 +PKG_SOURCE_VERSION:=1b53b726f3dcc01e386060b7aba06bf69e1e0c41 +PKG_MIRROR_HASH:=c62c20215a3d4352ee75bb8b6ae0d661534c4c4e6a5f9622d8d2306a9c15be35 PKG_MAINTAINER:=Matthias Schiffer PKG_LICENSE_FILES:=COPYRIGHT diff --git a/utils/eza/Makefile b/utils/eza/Makefile index de70606407791..7fcc5be413d64 100644 --- a/utils/eza/Makefile +++ b/utils/eza/Makefile @@ -1,16 +1,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=eza -PKG_VERSION:=0.19.2 +PKG_VERSION:=0.20.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/eza-community/eza/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=db4897ef7f58d0802620180e0b13bb35563e03c9de66624206b35dcad21007f8 +PKG_HASH:=e6c058b13aecbed9f037c0607f0df19bc0a3532fea14dacd0090878ed4bbfadc PKG_MAINTAINER:=Jonas Jelonek -PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=LICENSE +PKG_LICENSE:=EUPL-1.2 +PKG_LICENSE_FILES:=LICENSE.txt PKG_BUILD_DEPENDS:=rust/host PKG_BUILD_PARALLEL:=1 diff --git a/utils/fwupd/Config.in b/utils/fwupd/Config.in index b26e681ad6a8c..f975b962f1e19 100644 --- a/utils/fwupd/Config.in +++ b/utils/fwupd/Config.in @@ -37,29 +37,22 @@ config FWUPD_CURL help Compile fwupd with curl support -config FWUPD_SQLITE - bool "sqlite" - default n - help - Compile fwupd with sqlite support - config FWUPD_LIBARCHIVE bool "libarchive" default y help Compile fwupd with libarchive support -config FWUPD_GUDEV - bool "GUdev" - default n - help - Compile fwupd with GUdev support - config FWUPD_PLUGIN_MODEMMANAGER bool "ModemManager plugin" default y - select FWUPD_GUDEV help Compile fwupd with ModemManager plugin +config FWUPD_PLUGIN_FASTBOOT + bool "fastboot plugin" + default y + help + Compile fwupd with fastboot plugin + endmenu diff --git a/utils/fwupd/Makefile b/utils/fwupd/Makefile index c6d28fab6f84b..0fad4de01e1b1 100644 --- a/utils/fwupd/Makefile +++ b/utils/fwupd/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fwupd -PKG_VERSION:=1.9.24 +PKG_VERSION:=2.0.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://github.com/fwupd/fwupd/releases/download/$(PKG_VERSION) -PKG_HASH:=12f560b35dbed981fde8cf774c6d1f2e658a157d3a63d6c439bf418dbcc44b4c +PKG_HASH:=60a62b850e2c3a818f3178cb1de0f632b1e04c6ab07c02483af398940713548a PKG_MAINTAINER:=Lukas Voegl PKG_LICENSE:=LGPL-2.1-or-later @@ -42,12 +42,11 @@ define Package/fwupd/Default +libxmlb \ +libjcat \ +libprotobuf-c \ + +libusb-1.0 \ +FWUPD_LIBARCHIVE:libarchive \ +FWUPD_CBOR:libcbor \ +FWUPD_LZMA:liblzma \ +FWUPD_CURL:libcurl \ - +FWUPD_SQLITE:libsqlite3 \ - +FWUPD_GUDEV:libgudev \ +FWUPD_PLUGIN_MODEMMANAGER:modemmanager \ +FWUPD_PLUGIN_MODEMMANAGER:libqmi \ +FWUPD_PLUGIN_MODEMMANAGER:libmbim @@ -98,7 +97,6 @@ MESON_ARGS += \ -Db_lto=true \ -Dbuild=all \ -Dpython=$(HOST_PYTHON3_BIN) \ - -Dudevdir=/lib/udev \ -Dsupported_build=enabled \ -Dstatic_analysis=false \ -Dtests=false \ @@ -106,14 +104,16 @@ MESON_ARGS += \ -Dbash_completion=false \ -Dfish_completion=false \ -Dman=false \ - -Dthinklmi_compat=false \ -Dconsolekit=disabled \ -Ddocs=disabled \ -Dintrospection=disabled \ -Dbluez=disabled \ + -Dvendor_ids_dir=/usr/share/hwdata \ -Dpolkit=disabled \ -Dgnutls=disabled \ -Dpassim=disabled \ + -Dsqlite=disabled \ + -Dudev=enabled \ -Dplugin_acpi_phat=disabled \ -Dplugin_amdgpu=disabled \ -Dplugin_android_boot=disabled \ @@ -148,8 +148,6 @@ MESON_ARGS += \ -Dplugin_uf2=disabled \ -Dplugin_upower=disabled \ -Dplugin_powerd=disabled \ - -Dplugin_fastboot=disabled \ - -Dgusb=disabled \ -Dsystemd=disabled \ -Dlaunchd=disabled \ -Delogind=disabled \ @@ -159,17 +157,16 @@ MESON_ARGS += \ -Dcbor=$(if $(CONFIG_FWUPD_CBOR),enabled,disabled) \ -Dlzma=$(if $(CONFIG_FWUPD_LZMA),enabled,disabled) \ -Dcurl=$(if $(CONFIG_FWUPD_CURL),enabled,disabled) \ - -Dsqlite=$(if $(CONFIG_FWUPD_SQLITE),enabled,disabled) \ -Dlibarchive=$(if $(CONFIG_FWUPD_LIBARCHIVE),enabled,disabled) \ - -Dgudev=$(if $(CONFIG_FWUPD_GUDEV),enabled,disabled) \ - -Dplugin_modem_manager=$(if $(CONFIG_FWUPD_PLUGIN_MODEMMANAGER),enabled,disabled) + -Dplugin_modem_manager=$(if $(CONFIG_FWUPD_PLUGIN_MODEMMANAGER),enabled,disabled) \ + -Dplugin_fastboot=$(if $(CONFIG_FWUPD_PLUGIN_FASTBOOT),enabled,disabled) define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/fwupd-1 - $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-1/fwupd.h $(1)/usr/include/fwupd-1 + $(INSTALL_DIR) $(1)/usr/include/fwupd-3 + $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-3/fwupd.h $(1)/usr/include/fwupd-3 - $(INSTALL_DIR) $(1)/usr/include/fwupd-1/libfwupd - $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-1/libfwupd/*.h $(1)/usr/include/fwupd-1/libfwupd + $(INSTALL_DIR) $(1)/usr/include/fwupd-3/libfwupd + $(CP) $(PKG_INSTALL_DIR)/usr/include/fwupd-3/libfwupd/*.h $(1)/usr/include/fwupd-3/libfwupd $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfwupd.so* $(1)/usr/lib @@ -195,10 +192,6 @@ define Package/fwupd-libs/install $(CP) $(PKG_INSTALL_DIR)/etc/pki/fwupd $(1)/etc/pki $(CP) $(PKG_INSTALL_DIR)/etc/pki/fwupd-metadata $(1)/etc/pki - $(if $(CONFIG_FWUPD_GUDEV), \ - $(INSTALL_DIR) $(1)/lib/udev/rules.d; \ - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/udev/rules.d/*.rules $(1)/lib/udev/rules.d) - $(INSTALL_DIR) $(1)/usr/share/dbus-1/system.d $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/dbus-1/system.d/org.freedesktop.fwupd.conf $(1)/usr/share/dbus-1/system.d diff --git a/utils/haveged/Makefile b/utils/haveged/Makefile index b83d7105fac12..f2d3b26b78c4f 100644 --- a/utils/haveged/Makefile +++ b/utils/haveged/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=haveged -PKG_VERSION:=1.9.18 -PKG_RELEASE:=2 +PKG_VERSION:=1.9.19 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/jirka-h/haveged/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b835fa02b52ee7d06276e028571cadcb14d08f5e5a4b5767adf81451f70561c7 +PKG_HASH:=acbb05776668657012273be9bb3310e3140b79959aa4538e4cca8d30d40c0b8f PKG_BUILD_DIR:=$(BUILD_DIR)/haveged-$(PKG_VERSION) PKG_LICENSE:=GPLv3 diff --git a/utils/lsof/Makefile b/utils/lsof/Makefile index 939fd71be4364..fc2deeff20575 100644 --- a/utils/lsof/Makefile +++ b/utils/lsof/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=lsof -PKG_VERSION:=4.99.0 +PKG_VERSION:=4.99.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/lsof-org/lsof/releases/download/$(PKG_VERSION) -PKG_HASH:=180e6284aff184d94d273e34f7264edc2af849c07b1c5d6a4183d4d402734245 +PKG_HASH:=86428a8881b0d1147a52058e853c775b83d794f0da685d549b2bfd07063ed1cd PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_MAINTAINER:=Maxim Storchak diff --git a/utils/lsof/patches/000-disable-man.patch b/utils/lsof/patches/000-disable-man.patch index cf9a391f0220f..0c4e06a1f8f97 100644 --- a/utils/lsof/patches/000-disable-man.patch +++ b/utils/lsof/patches/000-disable-man.patch @@ -1,6 +1,6 @@ --- a/Makefile.am +++ b/Makefile.am -@@ -208,13 +208,8 @@ EXTRA_DIST += 00.README.FIRST 00CREDITS +@@ -212,11 +212,6 @@ EXTRA_DIST += 00.README.FIRST 00CREDITS # Testing EXTRA_DIST += tests/00README tests/TestDB tests/CkTestDB tests/Makefile tests/LsofTest.h check.bash @@ -12,7 +12,3 @@ # Fix distcheck error clean-local: rm -rf lsof.man - distclean-local: -- rm -rf lockf_owner.h lockf.h -\ No newline at end of file -+ rm -rf lockf_owner.h lockf.h diff --git a/utils/mtools/Makefile b/utils/mtools/Makefile index 6e528cb33e507..bcbb9d24babc1 100644 --- a/utils/mtools/Makefile +++ b/utils/mtools/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mtools -PKG_VERSION:=4.0.43 +PKG_VERSION:=4.0.45 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@GNU/mtools -PKG_HASH:=541e179665dc4e272b9602f2074243591a157da89cc47064da8c5829dbd2b339 +PKG_HASH:=0b008a96bd0efe0e542fa4383d469af66bc4a93394990b103730a8160a67d618 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 diff --git a/utils/owut/Makefile b/utils/owut/Makefile index 6ddb54ba9db7e..c5dddd2c5c56a 100644 --- a/utils/owut/Makefile +++ b/utils/owut/Makefile @@ -6,13 +6,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=owut -PKG_SOURCE_DATE:=2024-09-21 +PKG_SOURCE_DATE:=2024-10-11 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=e791bd2f24aadf95a8789c1bf075ad0b37c57a7b +PKG_SOURCE_VERSION:=e17c906dc5f00cc0173cdeb8a25313a17e453866 PKG_SOURCE_URL:=https://github.com/efahl/owut.git -PKG_MIRROR_HASH:=76f39bfb88a0b639ce854f76fbc57184b7bd2d5bfe172c5365c363efccd19761 +PKG_MIRROR_HASH:=56b4dc31c08020abd54abd739c00375f84e9b7cf8ab2531bbaa1597e02e6128f PKG_MAINTAINER:=Eric Fahlgren PKG_LICENSE:=GPL-2.0-only diff --git a/utils/qemu/Makefile b/utils/qemu/Makefile index 7f74bdc3c59df..5592f79e3b9ef 100644 --- a/utils/qemu/Makefile +++ b/utils/qemu/Makefile @@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=qemu -PKG_VERSION:=9.0.2 -PKG_RELEASE:=1 +PKG_VERSION:=9.1.0 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=a8c3f596aece96da3b00cafb74baafa0d14515eafb8ed1ee3f7f5c2d0ebf02b6 +PKG_HASH:=816b7022a8ba7c2ac30e2e0cf973e826f6bcc8505339603212c5ede8e94d7834 PKG_SOURCE_URL:=https://download.qemu.org/ PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=LICENSE tcg/LICENSE @@ -361,7 +361,6 @@ CONFIGURE_ARGS += \ CONFIGURE_ARGS += \ --enable-coroutine-pool \ --enable-crypto-afalg \ - --enable-live-block-migration \ --enable-membarrier \ --enable-replication \ --enable-lto \ @@ -414,7 +413,6 @@ CONFIGURE_ARGS += \ --disable-numa \ --disable-opengl \ --disable-plugins \ - --disable-pvrdma \ --disable-qom-cast-debug \ --disable-rbd \ --disable-rdma \ diff --git a/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch b/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch index 45badf97b7f79..1843df22a2161 100644 --- a/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch +++ b/utils/qemu/patches/0001-configure-allow-disable-fortify_source.patch @@ -11,7 +11,7 @@ OpenWrt base build system decide flavor of fortify_source to use --- a/configure +++ b/configure -@@ -760,6 +760,8 @@ for opt do +@@ -757,6 +757,8 @@ for opt do ;; --gdb=*) gdb_bin="$optarg" ;; diff --git a/utils/qemu/patches/0007-qga-invoke-separate-applets-for-guest-shutdown-modes.patch b/utils/qemu/patches/0007-qga-invoke-separate-applets-for-guest-shutdown-modes.patch index 94061b8bf281d..4cb98ff51a9e6 100644 --- a/utils/qemu/patches/0007-qga-invoke-separate-applets-for-guest-shutdown-modes.patch +++ b/utils/qemu/patches/0007-qga-invoke-separate-applets-for-guest-shutdown-modes.patch @@ -13,15 +13,15 @@ https://gitlab.alpinelinux.org/alpine/aports/commit/76b81b486480fd9c3294cd420bcf --- a/qga/commands-posix.c +++ b/qga/commands-posix.c -@@ -79,6 +79,7 @@ static void ga_wait_child(pid_t pid, int +@@ -217,6 +217,7 @@ out: void qmp_guest_shutdown(const char *mode, Error **errp) { const char *shutdown_flag; + const char *fallback_cmd = NULL; Error *local_err = NULL; - pid_t pid; - int status; -@@ -100,10 +101,13 @@ void qmp_guest_shutdown(const char *mode + + #ifdef CONFIG_SOLARIS +@@ -236,10 +237,13 @@ void qmp_guest_shutdown(const char *mode slog("guest-shutdown called, mode: %s", mode); if (!mode || strcmp(mode, "powerdown") == 0) { shutdown_flag = powerdown_flag; @@ -35,11 +35,18 @@ https://gitlab.alpinelinux.org/alpine/aports/commit/76b81b486480fd9c3294cd420bcf } else { error_setg(errp, "mode is invalid (valid values are: halt|powerdown|reboot"); -@@ -128,6 +132,7 @@ void qmp_guest_shutdown(const char *mode - execl("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0", - "hypervisor initiated shutdown", (char *)NULL); - #endif -+ execl(fallback_cmd, fallback_cmd, (char*)NULL); - _exit(EXIT_FAILURE); - } else if (pid < 0) { - error_setg_errno(errp, errno, "failed to create child process"); +@@ -258,8 +262,12 @@ void qmp_guest_shutdown(const char *mode + + ga_run_command(argv, NULL, "shutdown", &local_err); + if (local_err) { +- error_propagate(errp, local_err); +- return; ++ const char *fallback_argv[] = {fallback_cmd, (char *) NULL}; ++ ga_run_command(fallback_argv, NULL, fallback_cmd, &local_err); ++ if (local_err) { ++ error_propagate(errp, local_err); ++ return; ++ } + } + + /* succeeded */ diff --git a/utils/qemu/patches/0010-no-tests.patch b/utils/qemu/patches/0010-no-tests.patch index 92f8c5ac8b815..4841b52ffe2f6 100644 --- a/utils/qemu/patches/0010-no-tests.patch +++ b/utils/qemu/patches/0010-no-tests.patch @@ -1,6 +1,6 @@ --- a/meson.build +++ b/meson.build -@@ -3576,10 +3576,6 @@ subdir('common-user') +@@ -3630,10 +3630,6 @@ subdir('common-user') subdir('bsd-user') subdir('linux-user') @@ -11,7 +11,7 @@ # accel modules tcg_real_module_ss = ss.source_set() tcg_real_module_ss.add_all(when: 'CONFIG_TCG_MODULAR', if_true: tcg_module_ss) -@@ -4094,10 +4090,6 @@ subdir('scripts') +@@ -4161,10 +4157,6 @@ subdir('scripts') subdir('tools') subdir('pc-bios') subdir('docs') diff --git a/utils/runc/Makefile b/utils/runc/Makefile index 1b1abbc7d096a..13dd5bec0560a 100644 --- a/utils/runc/Makefile +++ b/utils/runc/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=runc -PKG_VERSION:=1.1.13 +PKG_VERSION:=1.1.14 PKG_RELEASE:=1 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE @@ -9,7 +9,7 @@ PKG_CPE_ID:=cpe:/a:linuxfoundation:runc PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/opencontainers/runc/tar.gz/v${PKG_VERSION}? -PKG_HASH:=789d5749a08ef1fbe5d1999b67883206a68a4e58e6ca0151c411d678f3480b25 +PKG_HASH:=563cf57c38d2e7149234dbe6f63ca0751eb55ef8f586ed12a543dedc1aceba68 PKG_MAINTAINER:=Gerard Ryan diff --git a/utils/stress-ng/Makefile b/utils/stress-ng/Makefile index b149519f9236d..a41265ad0386d 100644 --- a/utils/stress-ng/Makefile +++ b/utils/stress-ng/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=stress-ng -PKG_VERSION:=0.18.04 +PKG_VERSION:=0.18.05 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/ColinIanKing/stress-ng/tar.gz/refs/tags/V$(PKG_VERSION)? -PKG_HASH:=c76cf067e582fb8a066d47207bbccc6d0d4175ba700b5d122909132d79e7f6ea +PKG_HASH:=b0ac75b68bb804fd3276fcb235f1b0a9567090ebd887b2ed0f8a3203f9545e11 PKG_MAINTAINER:=Alexandru Ardelean PKG_LICENSE:=GPL-2.0-only diff --git a/utils/tmux/Makefile b/utils/tmux/Makefile index 3dbb47b866f63..5d64ac1614180 100644 --- a/utils/tmux/Makefile +++ b/utils/tmux/Makefile @@ -2,12 +2,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tmux -PKG_VERSION:=3.4 +PKG_VERSION:=3.5a PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/tmux/tmux/tar.gz/$(PKG_VERSION)? -PKG_HASH:=ec7ddf021a0a1d3778862feb845fd0c02759dcdb37ba5380ba4e0038164f7187 +PKG_HASH:=49e68b41dec0bf408990160ee12fa29b06dee8f74c1f0b4b71c9d2a1477dd910 PKG_MAINTAINER:=Maxim Storchak PKG_LICENSE:=ISC diff --git a/utils/xz/Makefile b/utils/xz/Makefile index b2eae548eda51..c1ff4fa24a01a 100644 --- a/utils/xz/Makefile +++ b/utils/xz/Makefile @@ -17,7 +17,7 @@ PKG_SOURCE_URL:=@SF/lzmautils PKG_HASH:=e12aa03cbd200597bd4ce11d97be2d09a6e6d39a9311ce72c91ac7deacde3171 PKG_MAINTAINER:= -PKG_LICENSE:=Public-Domain LGPL-2.1-or-later GPL-2.0-or-later GPL-3.0-or-later +PKG_LICENSE:=Public-Domain LGPL-2.1-or-later 0BSD PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:tukaani:xz