From db48e7940666916b2ff515999d97ab2057c2bc97 Mon Sep 17 00:00:00 2001 From: Jakub Raczynski Date: Thu, 26 Oct 2023 21:01:10 +0000 Subject: [PATCH 001/126] atftpd: Refactor init script - Add local variables for read configuration - Convert uppercase to lowercase for local variables Signed-off-by: Jakub Raczynski --- net/atftp/files/atftpd.init | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/net/atftp/files/atftpd.init b/net/atftp/files/atftpd.init index 83573f998..d39c24e64 100755 --- a/net/atftp/files/atftpd.init +++ b/net/atftp/files/atftpd.init @@ -5,11 +5,15 @@ START=95 PIDFILE=/tmp/run/atftpd.pid start() { - config_load atftpd - config_get SRV service path "/srv/tftp" - config_get PORT service port 69 + local srv + local port - atftpd --pidfile $PIDFILE --user root.root --port $PORT --daemon $SRV + config_load atftpd + + config_get srv service path "/srv/tftp" + config_get port service port 69 + + atftpd --pidfile $PIDFILE --user root.root --port $port --daemon $srv } stop() { From 240ea8803f7e6f5aa040db8c4d56c19d57a19364 Mon Sep 17 00:00:00 2001 From: Jakub Raczynski Date: Thu, 26 Oct 2023 21:02:10 +0000 Subject: [PATCH 002/126] atftpd: Add missing field to default configuration Although init script did consist of default value for missing 'port' field, add it to configuration file for consistency. Signed-off-by: Jakub Raczynski --- net/atftp/files/atftpd.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/net/atftp/files/atftpd.conf b/net/atftp/files/atftpd.conf index 6bd66e94c..2160763bb 100644 --- a/net/atftp/files/atftpd.conf +++ b/net/atftp/files/atftpd.conf @@ -1,3 +1,4 @@ config service 'service' option path '/srv/tftp' + option port '69' From eeea8f4c6f10d0f7cd3e8fea20a4d1c0a36ad902 Mon Sep 17 00:00:00 2001 From: Jakub Raczynski Date: Thu, 26 Oct 2023 21:06:21 +0000 Subject: [PATCH 003/126] atftpd: Add 'enable' config option Current version of atftpd daemon does automatically start when installed. This commit adds 'enable' option to config file to have control over atftpd daemon. Signed-off-by: Jakub Raczynski --- net/atftp/Makefile | 2 +- net/atftp/files/atftpd.conf | 1 + net/atftp/files/atftpd.init | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/net/atftp/Makefile b/net/atftp/Makefile index cabdd3efd..0d281502e 100644 --- a/net/atftp/Makefile +++ b/net/atftp/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=atftp PKG_VERSION:=0.8.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/$(PKG_NAME) diff --git a/net/atftp/files/atftpd.conf b/net/atftp/files/atftpd.conf index 2160763bb..cea135d2e 100644 --- a/net/atftp/files/atftpd.conf +++ b/net/atftp/files/atftpd.conf @@ -1,4 +1,5 @@ config service 'service' + option enable '0' option path '/srv/tftp' option port '69' diff --git a/net/atftp/files/atftpd.init b/net/atftp/files/atftpd.init index d39c24e64..03627eeb3 100755 --- a/net/atftp/files/atftpd.init +++ b/net/atftp/files/atftpd.init @@ -5,11 +5,15 @@ START=95 PIDFILE=/tmp/run/atftpd.pid start() { + local enable local srv local port config_load atftpd + config_get enable service enable 0 + [ "$enable" -eq "0" ] && return 0 + config_get srv service path "/srv/tftp" config_get port service port 69 From 0e0363fc785f5fa3bb61b17be50e9d49d0f53580 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:44:03 -0600 Subject: [PATCH 004/126] php8-pecl-mcrypt: update to 1.0.7 Signed-off-by: W. Michael Petullo --- lang/php8-pecl-mcrypt/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/php8-pecl-mcrypt/Makefile b/lang/php8-pecl-mcrypt/Makefile index 3b5d500a9..dbd92c7a4 100644 --- a/lang/php8-pecl-mcrypt/Makefile +++ b/lang/php8-pecl-mcrypt/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PECL_NAME:=mcrypt PECL_LONGNAME:=Bindings for the libmcrypt library -PKG_VERSION:=1.0.6 +PKG_VERSION:=1.0.7 PKG_RELEASE:=1 -PKG_HASH:=be6efd52a76ed01aabdda0ce426aed0a93db4ec06908c16a5460175c35b0d08a +PKG_HASH:=12ea2fbbf2e2efbe790a12121f77bf096c8b84cef81d0216bec00d56e5badef4 PKG_NAME:=php8-pecl-mcrypt PKG_SOURCE:=$(PECL_NAME)-$(PKG_VERSION).tgz From 4173327904acc61a0c2597dd881bc1fa51ad8894 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Tue, 2 Jan 2024 18:37:43 +0100 Subject: [PATCH 005/126] snowflake: update to 2.8.1 Changelog: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/v2.8.1/ChangeLog Signed-off-by: Nick Hainke --- net/snowflake/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/snowflake/Makefile b/net/snowflake/Makefile index 56019d076..97535516f 100644 --- a/net/snowflake/Makefile +++ b/net/snowflake/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=snowflake -PKG_VERSION:=2.8.0 +PKG_VERSION:=2.8.1 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git PKG_SOURCE_VERSION:=v$(PKG_VERSION) -PKG_MIRROR_HASH:=20ff3c292be6d91f535b009b95578d708daeb8b88cc2290e69feade7b844bf60 +PKG_MIRROR_HASH:=27561a12117762cce618890202a906c582b7858356b315c93b316e8acb289b57 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE From 4381c53de1c12f29d34848d64ecffd20b4d9df17 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 16:06:27 -0600 Subject: [PATCH 006/126] gst1-plugins-good: use libsoup3 instead of libsoup Signed-off-by: W. Michael Petullo --- multimedia/gst1-plugins-good/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/multimedia/gst1-plugins-good/Makefile b/multimedia/gst1-plugins-good/Makefile index ef1623f11..09a8b46d0 100644 --- a/multimedia/gst1-plugins-good/Makefile +++ b/multimedia/gst1-plugins-good/Makefile @@ -278,7 +278,7 @@ $(eval $(call GstBuildPlugin,ossaudio,OSS audio support,audio,,)) $(eval $(call GstBuildPlugin,png,png support,video,,+libpng)) #$(eval $(call GstBuildPlugin,pulse,pulse support,audio pbutils tag video,,+pulseaudio)) $(eval $(call GstBuildPlugin,shout2,shout2 support,audio,,+libshout)) -$(eval $(call GstBuildPlugin,soup,soup input,audio tag,,+libsoup)) +$(eval $(call GstBuildPlugin,soup,soup input,audio tag,,+libsoup3)) $(eval $(call GstBuildPlugin,speex,speex support,audio tag,,+libspeex)) $(eval $(call GstBuildPlugin,taglib,taglib support,tag,,+taglib)) $(eval $(call GstBuildPlugin,video4linux2,video4linux2 support,video allocators,,+libv4l)) From 88edd34b45b2bc71805ee60edded4a2f70a25d90 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 18:57:12 -0600 Subject: [PATCH 007/126] libsoup: remove package Remove libsoup package, as all of the packages that have depended on it moved to libsoup3. Signed-off-by: W. Michael Petullo --- libs/libsoup/Makefile | 75 ---------------------- libs/libsoup/patches/010-libxml-1.12.patch | 22 ------- 2 files changed, 97 deletions(-) delete mode 100644 libs/libsoup/Makefile delete mode 100644 libs/libsoup/patches/010-libxml-1.12.patch diff --git a/libs/libsoup/Makefile b/libs/libsoup/Makefile deleted file mode 100644 index 3bca1bd0a..000000000 --- a/libs/libsoup/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libsoup -PKG_VERSION:=2.74.3 -PKG_RELEASE:=2 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_SOURCE_URL:=@GNOME/libsoup/$(basename $(PKG_VERSION)) -PKG_HASH:=e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13 - -PKG_MAINTAINER:=W. Michael Petullo -PKG_LICENSE:=LGPL-2.1-or-later -PKG_LICENSE_FILES:=COPYING -PKG_CPE_ID:=cpe:/a:gnome:libsoup - -PKG_BUILD_DEPENDS:=glib2/host - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/nls.mk -include $(INCLUDE_DIR)/meson.mk - -define Package/libsoup - SECTION:=libs - CATEGORY:=Libraries - TITLE:=libsoup - URL:=https://wiki.gnome.org/Projects/libsoup - DEPENDS:=+glib2 +libxml2 +libgnutls +libsqlite3 +libpsl $(ICONV_DEPENDS) $(INTL_DEPENDS) -endef - -MESON_ARGS += \ - -Dgssapi=disabled \ - -Dntlm=disabled \ - -Dbrotli=disabled \ - -Dtls_check=false \ - -Dgnome=false \ - -Dintrospection=disabled \ - -Dvapi=disabled \ - -Dgtk_doc=false \ - -Dtests=false \ - -Dinstalled_tests=false \ - -Dsysprof=disabled - -define package/libsoup/decription -Libsoup is an HTTP library implementation in C -endef - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/{lib/pkgconfig,include/libsoup-2.4/libsoup} - - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/libsoup-2.4.so* \ - $(1)/usr/lib/ - - $(INSTALL_DATA) \ - $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \ - $(1)/usr/lib/pkgconfig/ - - $(INSTALL_DATA) \ - $(PKG_INSTALL_DIR)/usr/include/libsoup-2.4/libsoup/*.h \ - $(1)/usr/include/libsoup-2.4/libsoup/ -endef - -define Package/libsoup/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/libsoup-2.4.so* \ - $(1)/usr/lib/ -endef - -$(eval $(call BuildPackage,libsoup)) diff --git a/libs/libsoup/patches/010-libxml-1.12.patch b/libs/libsoup/patches/010-libxml-1.12.patch deleted file mode 100644 index e3147e81a..000000000 --- a/libs/libsoup/patches/010-libxml-1.12.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/libsoup/soup-xmlrpc-old.c -+++ b/libsoup/soup-xmlrpc-old.c -@@ -11,7 +11,7 @@ - - #include - --#include -+#include - - #include "soup-xmlrpc-old.h" - #include "soup.h" ---- a/libsoup/soup-xmlrpc.c -+++ b/libsoup/soup-xmlrpc.c -@@ -17,7 +17,7 @@ - - #include - #include --#include -+#include - #include "soup-xmlrpc.h" - #include "soup.h" - From c5360d47512d35cce38e0c9ec1928eac05038938 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:33:47 -0600 Subject: [PATCH 008/126] libsoup3: update to 3.4.4 Signed-off-by: W. Michael Petullo --- libs/libsoup3/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/libsoup3/Makefile b/libs/libsoup3/Makefile index fb864644e..067903cc6 100644 --- a/libs/libsoup3/Makefile +++ b/libs/libsoup3/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libsoup3 -PKG_VERSION:=3.4.2 +PKG_VERSION:=3.4.4 PKG_RELEASE:=1 PKG_SOURCE:=libsoup-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNOME/libsoup/$(basename $(PKG_VERSION)) -PKG_HASH:=78c8fa37cb152d40ec8c4a148d6155e2f6947f3f1602a7cda3a31ad40f5ee2f3 +PKG_HASH:=291c67725f36ed90ea43efff25064b69c5a2d1981488477c05c481a3b4b0c5aa PKG_BUILD_DIR:=$(BUILD_DIR)/libsoup-$(PKG_VERSION) PKG_MAINTAINER:=W. Michael Petullo From b69ffb47d0dbdc7fb3c2a86ee62c634eea5afc53 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:48:42 -0600 Subject: [PATCH 009/126] vala: update to 0.56.14 Signed-off-by: W. Michael Petullo --- lang/vala/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/vala/Makefile b/lang/vala/Makefile index 577bc588e..24ccef4c5 100644 --- a/lang/vala/Makefile +++ b/lang/vala/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=vala -PKG_VERSION:=0.56.3 +PKG_VERSION:=0.56.14 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNOME/vala/$(basename $(PKG_VERSION)) -PKG_HASH:=e1066221bf7b89cb1fa7327a3888645cb33b604de3bf45aa81132fd040b699bf +PKG_HASH:=9382c268ca9bdc02aaedc8152a9818bf3935273041f629c56de410e360a3f557 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=LGPL-2.1-or-later From 949b94bddabb9b7ca2cc5a05d135fcc98b764cef Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:29:37 -0600 Subject: [PATCH 010/126] krb5: update to 1.21.2 Signed-off-by: W. Michael Petullo --- net/krb5/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/krb5/Makefile b/net/krb5/Makefile index c3d0e5fd6..c3dd64119 100644 --- a/net/krb5/Makefile +++ b/net/krb5/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=krb5 -PKG_VERSION:=1.21 +PKG_VERSION:=1.21.2 PKG_RELEASE:=1 PKG_MAINTAINER:=W. Michael Petullo @@ -19,7 +19,7 @@ PKG_CPE_ID:=cpe:/a:mit:kerberos PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://web.mit.edu/kerberos/dist/krb5/1.21 -PKG_HASH:=69f8aaff85484832df67a4bbacd99b9259bd95aab8c651fbbe65cdc9620ea93b +PKG_HASH:=9560941a9d843c0243a71b17a7ac6fe31c7cebb5bce3983db79e52ae7e850491 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 From a3176fc61f4c1c07303f008113192e027bbbce0b Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:31:18 -0600 Subject: [PATCH 011/126] libgcrypt: update to 1.10.3 Signed-off-by: W. Michael Petullo --- libs/libgcrypt/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/libgcrypt/Makefile b/libs/libgcrypt/Makefile index 2dea9f4ca..bde888032 100644 --- a/libs/libgcrypt/Makefile +++ b/libs/libgcrypt/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libgcrypt -PKG_VERSION:=1.10.2 +PKG_VERSION:=1.10.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/libgcrypt/ -PKG_HASH:=3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03 +PKG_HASH:=8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa PKG_MAINTAINER:=W. Michael Petullo PKG_CPE_ID:=cpe:/a:gnupg:libgcrypt From b77534b44915201a96569f21099ec41371f91063 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:49:19 -0600 Subject: [PATCH 012/126] vips: update to 8.15.1 Signed-off-by: W. Michael Petullo --- libs/vips/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/vips/Makefile b/libs/vips/Makefile index f95c2ea8b..6cc8b2c24 100644 --- a/libs/vips/Makefile +++ b/libs/vips/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=vips -PKG_VERSION:=8.14.2 +PKG_VERSION:=8.15.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://github.com/libvips/libvips/releases/download/v$(PKG_VERSION) -PKG_HASH:=27dad021f0835a5ab14e541d02abd41e4c3bd012d2196438df5a9e754984f7ce +PKG_HASH:=06811f5aed3e7bc03e63d05537ff4b501de5283108c8ee79396c60601a00830c PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=LGPL-2.1-or-later @@ -35,11 +35,11 @@ endef MESON_ARGS += \ -Dgtk_doc=false \ - -Dintrospection=false \ + -Dintrospection=disabled \ -Danalyze=false \ -Dcfitsio=disabled \ -Dfftw=disabled \ - -Dgsf=disabled \ + -Darchive=disabled \ -Dimagequant=disabled \ -Dlcms=disabled \ -Dwebp=disabled \ From 09bfc9483dfb437904b2a9e77670e2addbe83738 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:47:35 -0600 Subject: [PATCH 013/126] shared-mime-info: update to 2.4 Signed-off-by: W. Michael Petullo --- utils/shared-mime-info/Makefile | 6 +++--- utils/shared-mime-info/patches/001-no-xmllint.patch | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/utils/shared-mime-info/Makefile b/utils/shared-mime-info/Makefile index b1b7a8a91..5e25608de 100644 --- a/utils/shared-mime-info/Makefile +++ b/utils/shared-mime-info/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shared-mime-info -PKG_VERSION:=2.2 +PKG_VERSION:=2.4 PKG_RELEASE:=2 PKG_MAINTAINER:=W. Michael Petullo @@ -16,7 +16,7 @@ PKG_LICENSE_FILES:=COPYING PKG_SOURCE:=shared-mime-info-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://gitlab.freedesktop.org/xdg/$(PKG_NAME)/-/archive/$(PKG_VERSION) -PKG_HASH:=418c480019d9865f67f922dfb88de00e9f38bf971205d55cdffab50432919e61 +PKG_HASH:=32dc32ae39ff1c1bf8434dd3b36770b48538a1772bc0298509d034f057005992 PKG_BUILD_DEPENDS:=gettext-full/host @@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/meson.mk define Package/shared-mime-info SECTION:=utils CATEGORY:=Utilities - DEPENDS:=+glib2 +libxml2 + DEPENDS:=+glib2 +libxml2 +libstdcpp TITLE:=MIME-type information URL:=https://freedesktop.org/wiki/Software/shared-mime-info/ endef diff --git a/utils/shared-mime-info/patches/001-no-xmllint.patch b/utils/shared-mime-info/patches/001-no-xmllint.patch index f5200bab8..92588bca9 100644 --- a/utils/shared-mime-info/patches/001-no-xmllint.patch +++ b/utils/shared-mime-info/patches/001-no-xmllint.patch @@ -1,6 +1,6 @@ --- a/meson.build +++ b/meson.build -@@ -20,7 +20,7 @@ config.set_quoted('VERSION', meson.proje +@@ -21,7 +21,7 @@ config.set_quoted('VERSION', meson.proje ############################################################################### # Find tools From ab262a75dad66f2a490c09879bced9660b37bf18 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:34:25 -0600 Subject: [PATCH 014/126] luasec: update to 1.3.2 Signed-off-by: W. Michael Petullo --- lang/luasec/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/luasec/Makefile b/lang/luasec/Makefile index d79975813..9d60604c6 100644 --- a/lang/luasec/Makefile +++ b/lang/luasec/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luasec -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/brunoos/luasec/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6fb919633a3304a262189f62a369adc4b36bc7113da37af093b069cf1c8d785e +PKG_HASH:=97293092ba385ab390decb6678bc8cbeffd5899bfbc49eb7ef4aa00f5e31c3d4 MAINTAINER:=W. Michael Petullo PKG_LICENSE:=MIT From 7f40cbb71bc3d4398b23429fb50fee0d6d5b9632 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 15:25:36 -0600 Subject: [PATCH 015/126] fuse-overlayfs: update to 1.13 Signed-off-by: W. Michael Petullo --- utils/fuse-overlayfs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/fuse-overlayfs/Makefile b/utils/fuse-overlayfs/Makefile index 5d5526153..3d52aa3cf 100644 --- a/utils/fuse-overlayfs/Makefile +++ b/utils/fuse-overlayfs/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fuse-overlayfs -PKG_VERSION:=1.7.1 +PKG_VERSION:=1.13 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/containers/fuse-overlayfs/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=fe2c076aed7b8669e7970301a99c0b197759b611035d8199de4c0add7d2fb2b4 +PKG_HASH:=96d10344921d5796bcba7a38580ae14a53c4e60399bb90b238ac5a10b3bb65b2 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=GPL-3.0-or-later From 32b503a98e7895f4ee04c7163eb07eb03cd7cf94 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:28:47 -0600 Subject: [PATCH 016/126] hwloc: update to 2.10.0 Signed-off-by: W. Michael Petullo --- libs/hwloc/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/hwloc/Makefile b/libs/hwloc/Makefile index cc3dc9f20..570f5fb14 100644 --- a/libs/hwloc/Makefile +++ b/libs/hwloc/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hwloc -PKG_VERSION:=2.8.0 +PKG_VERSION:=2.10.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:=https://download.open-mpi.org/release/$(PKG_NAME)/v2.8 -PKG_HASH:=348a72fcd48c32a823ee1da149ae992203e7ad033549e64aed6ea6eeb01f42c1 +PKG_SOURCE_URL:=https://download.open-mpi.org/release/$(PKG_NAME)/v2.10 +PKG_HASH:=0305dd60c9de2fbe6519fe2a4e8fdc6d3db8de574a0ca7812b92e80c05ae1392 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=BSD-3-Clause From 3a4b9998856da57d745cf08b102a5f6be23be0d2 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:30:37 -0600 Subject: [PATCH 017/126] libdmapsharing: update to 3.9.13 Signed-off-by: W. Michael Petullo --- libs/libdmapsharing/Makefile | 4 ++-- libs/libdmapsharing/patches/001-disable_pixbuf.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/libdmapsharing/Makefile b/libs/libdmapsharing/Makefile index b56515ab4..5d506aaff 100644 --- a/libs/libdmapsharing/Makefile +++ b/libs/libdmapsharing/Makefile @@ -10,12 +10,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libdmapsharing -PKG_VERSION:=3.9.12 +PKG_VERSION:=3.9.13 PKG_RELEASE:=1 PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.flyn.org/projects/libdmapsharing/ -PKG_HASH:=aa47e405c5059ff35ff6fc447e497dc1ff15558859a57710a664350314abf750 +PKG_HASH:=3659f63f29e11d6d6ae78b53d7cc6be3f3adeff9c00c67cc50ad19c6af699f7a PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=LGPL-2.1-or-later diff --git a/libs/libdmapsharing/patches/001-disable_pixbuf.patch b/libs/libdmapsharing/patches/001-disable_pixbuf.patch index 11b2567ff..e0f0fd874 100644 --- a/libs/libdmapsharing/patches/001-disable_pixbuf.patch +++ b/libs/libdmapsharing/patches/001-disable_pixbuf.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -126,15 +126,7 @@ fi +@@ -124,15 +124,7 @@ fi AC_SUBST(GOBJECT_CFLAGS) AC_SUBST(GOBJECT_LIBS) From ff82f8dcc7d38637c81937c5ef09cb13761e5369 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:35:44 -0600 Subject: [PATCH 018/126] nfdump: update to 1.7.3 Signed-off-by: W. Michael Petullo --- net/nfdump/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/nfdump/Makefile b/net/nfdump/Makefile index b26bb6ca5..4b981720d 100644 --- a/net/nfdump/Makefile +++ b/net/nfdump/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nfdump -PKG_VERSION:=1.7.2 +PKG_VERSION:=1.7.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/phaag/nfdump/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0545b792e81f5edd51a2fdfbfcc4eac7ba8087005811ab41c34bfac4d78fe926 +PKG_HASH:=9ea7e1ded34a81839b73e66cb62c9bc11a8070210584f9a508798d7bd6058c89 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=BSD-3-Clause From 2c36e0e2765bf7bf06c1ffba5151664a3e670169 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:43:13 -0600 Subject: [PATCH 019/126] openldap: update to 2.6.6 Signed-off-by: W. Michael Petullo --- libs/openldap/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/openldap/Makefile b/libs/openldap/Makefile index c3239662b..334482e66 100644 --- a/libs/openldap/Makefile +++ b/libs/openldap/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openldap -PKG_VERSION:=2.6.4 +PKG_VERSION:=2.6.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz PKG_SOURCE_URL:=https://gpl.savoirfairelinux.net/pub/mirrors/openldap/openldap-release/ \ https://mirror.eu.oneandone.net/software/openldap/openldap-release/ \ https://www.openldap.org/software/download/OpenLDAP/openldap-release/ -PKG_HASH:=d51704e50178430c06cf3d8aa174da66badf559747a47d920bb54b2d4aa40991 +PKG_HASH:=082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0 PKG_LICENSE:=OLDAP-2.8 PKG_LICENSE_FILES:=LICENSE PKG_CPE_ID:=cpe:/a:openldap:openldap From 06b15e70edd1a033f46937b011117732d279836a Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:44:49 -0600 Subject: [PATCH 020/126] pigeonhole: update to 0.5.21 Signed-off-by: W. Michael Petullo --- mail/pigeonhole/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail/pigeonhole/Makefile b/mail/pigeonhole/Makefile index 667e2c10d..f076d06ca 100644 --- a/mail/pigeonhole/Makefile +++ b/mail/pigeonhole/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dovecot-pigeonhole -PKG_VERSION_PLUGIN:=0.5.20 +PKG_VERSION_PLUGIN:=0.5.21 PKG_VERSION_DOVECOT:=$(shell make --no-print-directory -C ../dovecot/ val.PKG_VERSION V=s) PKG_VERSION:=$(PKG_VERSION_DOVECOT)-$(PKG_VERSION_PLUGIN) PKG_RELEASE:=1 @@ -17,7 +17,7 @@ DOVECOT_VERSION:=2.3 PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-pigeonhole-$(PKG_VERSION_PLUGIN).tar.gz PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION) -PKG_HASH:=ae32bd4870ea2c1328ae09ba206e9ec12128046d6afca52fbbc9ef7f75617c98 +PKG_HASH:=1ca71d2659076712058a72030288f150b2b076b0306453471c5261498d3ded27 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=LGPL-2.1-or-later From 9cc49fe033cb38ac0f47ebb4b8e2544fd27cd2db Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:45:31 -0600 Subject: [PATCH 021/126] python-networkx: update to 3.2.1 Signed-off-by: W. Michael Petullo --- lang/python/python-networkx/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-networkx/Makefile b/lang/python/python-networkx/Makefile index d0ea86c3d..17805b1bc 100644 --- a/lang/python/python-networkx/Makefile +++ b/lang/python/python-networkx/Makefile @@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-networkx -PKG_VERSION:=3.1 +PKG_VERSION:=3.2.1 PKG_RELEASE:=1 PYPI_NAME:=networkx -PKG_HASH:=de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61 +PKG_HASH:=9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6 PKG_LICENSE:=BSD-3-clause PKG_LICENSE_FILES:=LICENSE.txt From 2931aa1a079fc72e7618a57d4e1c421fbc8dfd2b Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:46:18 -0600 Subject: [PATCH 022/126] semodule-utils: update to 3.6 Signed-off-by: W. Michael Petullo --- utils/semodule-utils/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/semodule-utils/Makefile b/utils/semodule-utils/Makefile index bfd94baac..fe2d723bb 100644 --- a/utils/semodule-utils/Makefile +++ b/utils/semodule-utils/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=semodule-utils -PKG_VERSION:=3.5 +PKG_VERSION:=3.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION) -PKG_HASH:=c9a550a737051ebaf2c102f665c7ec2f85e7232870980aa0067998459b414283 +PKG_HASH:=eedb88f2b2124e538f2d614be063c0d9ac3eacc0c51a4da44500ca1ed1ba16f4 PKG_MAINTAINER:=W. Michael Petullo PKG_LICENSE:=GPL-2.0-only From 0b95fe757fa23a5cbf092bcdbfa4f1b54e200550 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Mon, 1 Jan 2024 17:46:49 -0600 Subject: [PATCH 023/126] setools: update to 4.4.4 Signed-off-by: W. Michael Petullo --- utils/setools/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/setools/Makefile b/utils/setools/Makefile index 39eef7cd7..e4cf10e68 100644 --- a/utils/setools/Makefile +++ b/utils/setools/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=setools -PKG_VERSION:=4.4.3 +PKG_VERSION:=4.4.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://github.com/SELinuxProject/setools/releases/download/$(PKG_VERSION) -PKG_HASH:=2f751599dbed0d628fb268a3302dd8c578829f302bd28e8c08e182aef7fd5cb8 +PKG_HASH:=3c5fa76a674fe3f6890d900df59b9d142e4b63c9ffbde653904f90ed6e666ef9 PKG_BUILD_DEPENDS:=python-cython/host # Cython>=0.27 From d8dbf368103a3c73d8b7b5100a56b4d822980e09 Mon Sep 17 00:00:00 2001 From: Ben Klang Date: Thu, 28 Dec 2023 14:40:49 -0500 Subject: [PATCH 024/126] nqptp: Add new port nqptp for use with shairport-sync Signed-off-by: Ben Klang --- net/nqptp/Makefile | 48 ++++++++++++++++++++++++++++++++++++++ net/nqptp/files/nqptp.init | 15 ++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 net/nqptp/Makefile create mode 100644 net/nqptp/files/nqptp.init diff --git a/net/nqptp/Makefile b/net/nqptp/Makefile new file mode 100644 index 000000000..b16efecd3 --- /dev/null +++ b/net/nqptp/Makefile @@ -0,0 +1,48 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# updated to work with latest source from abrasive +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=nqptp +PKG_VERSION:=1.2.4 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/mikebrady/nqptp/tar.gz/$(PKG_VERSION)? +PKG_HASH:=1df1d5edd5b713010d6495b3abca4c1cf4ad8fa6029df0abeb9e4de8e0eb707a + +PKG_MAINTAINER:=Ben Klang +PKG_LICENSE:=GPL-2.0-only +PKG_LICENSE_FILES:=COPYING LICENSES nqptp.c + +PKG_FIXUP:=autoreconf +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/nqptp + SECTION:=net + CATEGORY:=Network + TITLE:=Not Quite Peer-to-Peer + URL:=https://github.com/mikebrady/nqptp +endef + +define Package/nqptp/description + nqptp is a daemon that monitors timing data from PTP clocks it sees on ports + 319 and 320. It maintains records for one clock, identified by its Clock ID. + + It is a companion application to Shairport Sync and provides timing + information for AirPlay 2 operation. +endef + +define Package/nqptp/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/nqptp $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/nqptp.init $(1)/etc/init.d/nqptp +endef + +$(eval $(call BuildPackage,nqptp)) diff --git a/net/nqptp/files/nqptp.init b/net/nqptp/files/nqptp.init new file mode 100644 index 000000000..d40ef87dd --- /dev/null +++ b/net/nqptp/files/nqptp.init @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2023 Ben Klang + +START=99 +USE_PROCD=1 + +service_triggers() { + procd_add_reload_trigger "nqptp" +} + +start_service() { + procd_open_instance + procd_set_param command /usr/bin/nqptp + procd_close_instance +} From 7391ca3d49ef92ca6510152bae0260fd4b0a738f Mon Sep 17 00:00:00 2001 From: Ben Klang Date: Thu, 28 Dec 2023 14:41:26 -0500 Subject: [PATCH 025/126] shairport-sync: Upgrade to v4.3.2 and add AirPlay2 support Signed-off-by: Ben Klang --- sound/shairport-sync/Makefile | 9 ++--- sound/shairport-sync/patches/010-no-cxx.patch | 35 ------------------- 2 files changed, 5 insertions(+), 39 deletions(-) diff --git a/sound/shairport-sync/Makefile b/sound/shairport-sync/Makefile index 26310d50d..3d8786ab6 100644 --- a/sound/shairport-sync/Makefile +++ b/sound/shairport-sync/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shairport-sync -PKG_VERSION:=3.3.9 -PKG_RELEASE:=2 +PKG_VERSION:=4.3.2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/mikebrady/shairport-sync/tar.gz/$(PKG_VERSION)? -PKG_HASH:=17990cb2620551caa07a1c3b371889e55803071eaada04e958c356547a7e1795 +PKG_HASH:=dfb485c0603398032a00e51f84b874749bbf155b257adda3d270d5989de08bfd PKG_MAINTAINER:=Ted Hess , \ Mike Brady @@ -29,7 +29,7 @@ define Package/shairport-sync/default SECTION:=sound CATEGORY:=Sound TITLE:=AirPlay compatible audio player - DEPENDS:=@AUDIO_SUPPORT +libpthread +alsa-lib +libconfig +libdaemon +libpopt + DEPENDS:=@AUDIO_SUPPORT +libpthread +alsa-lib +libconfig +libdaemon +libpopt +libstdcpp +libplist +libsodium +libgcrypt +libffmpeg-full +libuuid +nqptp PROVIDES:=shairport-sync URL:=https://github.com/mikebrady/shairport-sync endef @@ -78,6 +78,7 @@ endef CONFIGURE_ARGS += \ --with-alsa \ --with-libdaemon \ + --with-airplay-2 \ --with-metadata ifeq ($(BUILD_VARIANT),openssl) diff --git a/sound/shairport-sync/patches/010-no-cxx.patch b/sound/shairport-sync/patches/010-no-cxx.patch index ac44eb616..e69de29bb 100644 --- a/sound/shairport-sync/patches/010-no-cxx.patch +++ b/sound/shairport-sync/patches/010-no-cxx.patch @@ -1,35 +0,0 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -23,10 +23,6 @@ else - endif - endif - --if USE_APPLE_ALAC -- shairport_sync_SOURCES += apple_alac.cpp --endif -- - if USE_CUSTOMPIDDIR - AM_CFLAGS+= \ - -DPIDDIR=\"$(CUSTOM_PID_DIR)\" -@@ -80,11 +76,6 @@ if USE_PA - shairport_sync_SOURCES += audio_pa.c - endif - --if USE_CONVOLUTION --shairport_sync_SOURCES += FFTConvolver/AudioFFT.cpp FFTConvolver/FFTConvolver.cpp FFTConvolver/Utilities.cpp FFTConvolver/convolver.cpp --AM_CXXFLAGS += -std=c++11 --endif -- - if USE_DNS_SD - shairport_sync_SOURCES += mdns_dns_sd.c - endif ---- a/configure.ac -+++ b/configure.ac -@@ -23,7 +23,6 @@ fi - - # Checks for programs. - AC_PROG_CC --AC_PROG_CXX - AC_PROG_INSTALL - - PKG_PROG_PKG_CONFIG([0.9.0]) From 84658c5ea823f3f85793420d3ee08f1f1a504fb3 Mon Sep 17 00:00:00 2001 From: Javier Marcet Date: Mon, 1 Jan 2024 11:39:54 +0100 Subject: [PATCH 026/126] python-websocket-client: update to 1.7.0 - Renamed `mask` variable in ABNF to prevent name collision with `mask()` function (9b51f73) - Fixed old http import of HTTPStatus in _handshake.py (9b51f73) - Add `send_text()` and `send_bytes()` to _app.py - Improved typehint support (9b51f73, 8b73d00) - General readability improvements, made all string concatenations use f-strings (780584f, 3eabc6e) - Applied black formatting style to code (da7f286) Signed-off-by: Javier Marcet --- lang/python/python-websocket-client/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-websocket-client/Makefile b/lang/python/python-websocket-client/Makefile index c3173ce1e..d77fabd0b 100644 --- a/lang/python/python-websocket-client/Makefile +++ b/lang/python/python-websocket-client/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-websocket-client -PKG_VERSION:=1.6.4 +PKG_VERSION:=1.7.0 PKG_RELEASE:=1 PYPI_NAME:=websocket-client -PKG_HASH:=b3324019b3c28572086c4a319f91d1dcd44e6e11cd340232978c684a7650d0df +PKG_HASH:=10e511ea3a8c744631d3bd77e61eb17ed09304c413ad42cf6ddfa4c7787e8fe6 PKG_MAINTAINER:=Javier Marcet PKG_LICENSE:=Apache-2.0 From c2fa0d19f5088d093cb3be3be64e3704e01dc1c2 Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Thu, 21 Dec 2023 13:42:36 +0800 Subject: [PATCH 027/126] python-greenlet: update version 3.0.2 Signed-off-by: Andy Syam --- lang/python/python-greenlet/Makefile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lang/python/python-greenlet/Makefile b/lang/python/python-greenlet/Makefile index 420030781..dced8ade5 100644 --- a/lang/python/python-greenlet/Makefile +++ b/lang/python/python-greenlet/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-greenlet -PKG_VERSION:=2.0.2 +PKG_VERSION:=3.0.2 PKG_RELEASE:=1 PYPI_NAME:=greenlet -PKG_HASH:=e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0 +PKG_HASH:=1c1129bc47266d83444c85a8e990ae22688cf05fb20d7951fd2866007c2ba9bc PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT @@ -20,9 +20,13 @@ PKG_LICENSE_FILES:=LICENSE # FIXME: remove when GCC10 is the oldest supported compiler, or the issue goes away PKG_BUILD_FLAGS:=no-mips16 +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + include ../pypi.mk include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk include ../python3-package.mk +include ../python3-host-build.mk define Package/python3-greenlet SUBMENU:=Python @@ -51,3 +55,4 @@ endif $(eval $(call Py3Package,python3-greenlet)) $(eval $(call BuildPackage,python3-greenlet)) $(eval $(call BuildPackage,python3-greenlet-src)) +$(eval $(call HostBuild)) From 8fe6a950a05da1b99dc250ff3898a86cb97adf9c Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Thu, 21 Dec 2023 17:40:21 +0800 Subject: [PATCH 028/126] python-sqlalchemy: update version 2.0.23 Signed-off-by: Andy Syam --- lang/python/python-sqlalchemy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-sqlalchemy/Makefile b/lang/python/python-sqlalchemy/Makefile index 39279f258..c69c37f24 100644 --- a/lang/python/python-sqlalchemy/Makefile +++ b/lang/python/python-sqlalchemy/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-sqlalchemy -PKG_VERSION:=2.0.20 +PKG_VERSION:=2.0.23 PKG_RELEASE:=1 PYPI_NAME:=SQLAlchemy -PKG_HASH:=ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6 +PKG_HASH:=c1bda93cbbe4aa2aa0aa8655c5aeda505cd219ff3e8da91d1d329e143e4aff69 PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=MIT From 81a5b89c96bab4e312c5e54debede14aaee22ba1 Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Thu, 21 Dec 2023 17:14:06 +0800 Subject: [PATCH 029/126] python-dbus-fast: update version 2.21.0 Signed-off-by: Andy Syam --- lang/python/python-dbus-fast/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-dbus-fast/Makefile b/lang/python/python-dbus-fast/Makefile index 3cf3e23d6..89a352b15 100644 --- a/lang/python/python-dbus-fast/Makefile +++ b/lang/python/python-dbus-fast/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-dbus-fast -PKG_VERSION:=2.20.0 +PKG_VERSION:=2.21.0 PKG_RELEASE:=1 PYPI_NAME:=dbus-fast PYPI_SOURCE_NAME:=dbus_fast -PKG_HASH:=a38e837c5a8d0a1745ec8390f68ff57986ed2167b0aa2e4a79738a51dd6dfcc3 +PKG_HASH:=f582f6f16791ced6067dab325fae444edf7ce0704315b90c2a473090636a6fe0 PKG_MAINTAINER:=Quintin Hill PKG_LICENSE:=MIT From 8b457dfc170ada25a1b1bf67913d7aacc738660c Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Sat, 23 Dec 2023 12:16:41 +0800 Subject: [PATCH 030/126] python-zope-event: add python-zope-event https://pypi.org/project/zope.event/ source code https://github.com/zopefoundation/zope.event Signed-off-by: Andy Syam --- lang/python/python-zope-event/Makefile | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lang/python/python-zope-event/Makefile diff --git a/lang/python/python-zope-event/Makefile b/lang/python/python-zope-event/Makefile new file mode 100644 index 000000000..4b4c0fdef --- /dev/null +++ b/lang/python/python-zope-event/Makefile @@ -0,0 +1,35 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-zope-event +PKG_VERSION:=5.0 +PKG_RELEASE:=1 + +PYPI_NAME:=zope.event +PKG_HASH:=bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd + +PKG_LICENSE:=ZPL-2.1 +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Andy Syam + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include ../python3-package.mk + +define Package/python3-zope-event + SECTION:=lang + CATEGORY:=Languages + SUBMENU:=Python + TITLE:=Very basic event publishing system + URL:=https://github.com/zopefoundation/zope.event + DEPENDS:=+python3-light +python3-logging +endef + +define Package/python3-zope-event/description +The zope.event package provides a simple event system, including: +An event publishing API, intended for use by applications which are unaware of any subscribers to their events. +A very simple synchronous event-dispatching system, on which more sophisticated event dispatching systems can be built. For example, a type-based event dispatching system that builds on zope.event can be found in zope.component. +endef + +$(eval $(call Py3Package,python3-zope-event)) +$(eval $(call BuildPackage,python3-zope-event)) +$(eval $(call BuildPackage,python3-zope-event-src)) From 2cf42672386adfb7cbf7f07128cade6eb4ff4cee Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Fri, 22 Dec 2023 22:08:30 +0800 Subject: [PATCH 031/126] python-cython: update to version 3.0.7 Signed-off-by: Andy Syam --- lang/python/python-cython/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-cython/Makefile b/lang/python/python-cython/Makefile index efaaa2d38..6a17e6dbe 100644 --- a/lang/python/python-cython/Makefile +++ b/lang/python/python-cython/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cython -PKG_VERSION:=0.29.36 +PKG_VERSION:=3.0.7 PKG_RELEASE:=1 PYPI_NAME:=Cython -PKG_HASH:=41c0cfd2d754e383c9eeb95effc9aa4ab847d0c9747077ddd7c0dcb68c3bc01f +PKG_HASH:=fb299acf3a578573c190c858d49e0cf9d75f4bc49c3f24c5a63804997ef09213 PKG_LICENSE:=Apache-2.0 PKG_LICENSE_FILES:=LICENSE.txt From 4dbcaae41dbaee7e949a776729c378d23bc27105 Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Fri, 22 Dec 2023 21:24:17 +0800 Subject: [PATCH 032/126] pyproject-metadata: add pyproject-metadata https://pypi.org/project/pyproject-metadata/ source code https://github.com/FFY00/python-pyproject-metadata add the pyproject-metadata package that numpy requires Signed-off-by: Andy Syam --- lang/python/pyproject-metadata/Makefile | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 lang/python/pyproject-metadata/Makefile diff --git a/lang/python/pyproject-metadata/Makefile b/lang/python/pyproject-metadata/Makefile new file mode 100644 index 000000000..2e53f36e1 --- /dev/null +++ b/lang/python/pyproject-metadata/Makefile @@ -0,0 +1,39 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=pyproject-metadata +PKG_VERSION:=0.7.1 +PKG_RELEASE:=1 + +PYPI_NAME:=pyproject-metadata +PKG_HASH:=0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67 + +PKG_MAINTAINER:=Andy Syam +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +HOST_BUILD_DEPENDS:=python3/host python-build/host python-installer/host python-wheel/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/host-build.mk +include ../python3-package.mk +include ../python3-host-build.mk + +define Package/python3-pyproject-metadata + SUBMENU:=Python + SECTION:=lang + CATEGORY:=Languages + TITLE:=PEP 621 metadata parsing + URL:=https://github.com/FFY00/python-pyproject-metadata + DEPENDS:=+python3 +endef + +define Package/python3-pyproject-metadata/description +This project does not implement the parsing of pyproject.toml containing PEP 621 metadata. +Instead, given a Python data structure representing PEP 621 metadata (already parsed), it will validate this input and generate a PEP 643-compliant metadata file (e.g. PKG-INFO). +endef + +$(eval $(call Py3Package,python3-pyproject-metadata)) +$(eval $(call BuildPackage,python3-pyproject-metadata)) +$(eval $(call BuildPackage,python3-pyproject-metadata-src)) +$(eval $(call HostBuild)) From 99520f91149a02131c966b1fbafbe6a6a1a8d5b3 Mon Sep 17 00:00:00 2001 From: Javier Marcet Date: Mon, 1 Jan 2024 11:44:14 +0100 Subject: [PATCH 033/126] python-docker: Update to 7.0.0 Upgrade Notes: - Removed SSL version (ssl_version) and explicit hostname check (assert_hostname) options - assert_hostname has not been used since Python 3.6 and was removed in 3.12 - Python 3.7+ supports TLSv1.3 by default - Websocket support is no longer included by default - By default, docker-py hijacks the TCP connection and does not use Websockets - Websocket client is only required to use attach_socket(container, ws=True) - Python 3.7 no longer officially supported (reached end-of-life June 2023) Features: - Python 3.12 support - Full networking_config support for containers.create() - Replaces network_driver_opt (added in 6.1.0) - Add health() property to container that returns status (e.g. unhealthy) - Add pause option to container.commit() - Add support for bind mount propagation (e.g. rshared, private) - Add filters, keep_storage, and all parameters to prune_builds() (requires API v1.39+) Bugfixes: - Consistently return docker.errors.NotFound on 404 responses - Validate tag format before image push Miscellaneous: - Upgraded urllib3 version in requirements.txt (used for development/tests) - Documentation typo fixes & formatting improvements - Fixed integration test compatibility for newer Moby engine versions - Switch to ruff for linting Signed-off-by: Javier Marcet --- lang/python/python-docker/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-docker/Makefile b/lang/python/python-docker/Makefile index 1ce4defb1..6eb8516c9 100644 --- a/lang/python/python-docker/Makefile +++ b/lang/python/python-docker/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-docker -PKG_VERSION:=6.1.3 +PKG_VERSION:=7.0.0 PKG_RELEASE:=1 PYPI_NAME:=docker -PKG_HASH:=aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20 +PKG_HASH:=323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 PKG_MAINTAINER:=Javier Marcet PKG_LICENSE:=Apache-2.0 From f74b43709a26c44f99529352ee3b1d9631945489 Mon Sep 17 00:00:00 2001 From: Javier Marcet Date: Mon, 1 Jan 2024 12:07:28 +0100 Subject: [PATCH 034/126] python3-distro: update to version 1.9.0 - ENHANCEMENTS: - Refactor distro.info() method to return an InfoDict - Ignore the file '/etc/board-release' - Ignore the file '/etc/ec2_version' - RELEASE: - Run Python 3.6 on Ubuntu 20.04 for CI and bump isort - TESTS: - Test on modern versions of CPython and PyPy and macOS - Add support for ALT Linux Server 10.1 distribution - Add Debian Testing to the tests - Update archlinux resource for tests Signed-off-by: Javier Marcet --- lang/python/python-distro/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-distro/Makefile b/lang/python/python-distro/Makefile index b41ed2283..9312ba7d5 100644 --- a/lang/python/python-distro/Makefile +++ b/lang/python/python-distro/Makefile @@ -1,11 +1,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-distro -PKG_VERSION:=1.8.0 +PKG_VERSION:=1.9.0 PKG_RELEASE:=1 PYPI_NAME:=distro -PKG_HASH:=02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8 +PKG_HASH:=2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed PKG_MAINTAINER:=Javier Marcet PKG_LICENSE:=Apache-2.0 From ed41a9d8508639c25cbceb9639ee6a08ee467b93 Mon Sep 17 00:00:00 2001 From: Xiang W Date: Tue, 19 Dec 2023 13:20:13 +0000 Subject: [PATCH 035/126] syncthing: fix wrong group name in syncthing.init The group does not always have the same name as user, and when I try to run syncthing with nobody I get an error. Since nobody belongs to the group nogroup, I added some code to find out which group user belongs to. Signed-off-by: Xiang W --- utils/syncthing/Makefile | 2 +- utils/syncthing/files/syncthing.init | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/utils/syncthing/Makefile b/utils/syncthing/Makefile index 80e6cfb20..149c3b63c 100644 --- a/utils/syncthing/Makefile +++ b/utils/syncthing/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=syncthing PKG_VERSION:=1.27.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=syncthing-source-v$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/syncthing/syncthing/releases/download/v$(PKG_VERSION) diff --git a/utils/syncthing/files/syncthing.init b/utils/syncthing/files/syncthing.init index 7bcb90dae..9fa1ddf40 100644 --- a/utils/syncthing/files/syncthing.init +++ b/utils/syncthing/files/syncthing.init @@ -55,6 +55,8 @@ start_service() { config_load "syncthing" + local group=$(id -gn $user) + # Some of the default values below might not match the defaults # in /etc/config/syncthing: the reason is to remain backwards # compatible with the older versions of this service as it @@ -67,12 +69,12 @@ start_service() { [ -d "$IDX_DB" ] || mkdir -p "$IDX_DB" # A separate step to handle an upgrade use case - [ -d "$IDX_DB" ] && chown -R $user:$user "$IDX_DB" + [ -d "$IDX_DB" ] && chown -R $user:$group "$IDX_DB" fi [ -d "$home" ] || mkdir -p "$home" # A separate step to handle an upgrade use case - [ -d "$home" ] && chown -R $user:$user "$home" + [ -d "$home" ] && chown -R $user:$group "$home" # Changes to "niceness"/macprocs are not picked up by "reload_config" # nor by "restart": the service has to be stopped/started From fcb02c264b935cfb620d37c2f7eb98a042dd2e6a Mon Sep 17 00:00:00 2001 From: Quintin Hill Date: Mon, 18 Dec 2023 21:12:30 +0000 Subject: [PATCH 036/126] python3-bleak: add missing python3-typing-extensions dependency Dependency introduced by https://github.com/hbldh/bleak/commit/21094e67cf5d238b911352ba8c45a33d72f47d80 and https://github.com/hbldh/bleak/commit/3c1fac9773e13acf52cebfe4e9df5c60bffaf76b (And only for python versions below 3.12.) Fixes: 64fa106 (python3-bleak: bump version to 0.21.1) Signed-off-by: Quintin Hill --- lang/python/python-bleak/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-bleak/Makefile b/lang/python/python-bleak/Makefile index 44657daf4..32550e284 100644 --- a/lang/python/python-bleak/Makefile +++ b/lang/python/python-bleak/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-bleak PKG_VERSION:=0.21.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=bleak PKG_HASH:=ec4a1a2772fb315b992cbaa1153070c7e26968a52b0e2727035f443a1af5c18f @@ -30,7 +30,7 @@ define Package/python3-bleak TITLE:=Bluetooth Low Energy platform Agnostic Klient URL:=https://github.com/hbldh/bleak DEPENDS:=+python3-light +python3-async-timeout +python3-asyncio \ - +python3-dbus-fast +python3-ctypes +python3-logging + +python3-dbus-fast +python3-ctypes +python3-typing-extensions +python3-logging endef define Package/python3-bleak/description From 7735cdfe6046a4f8690c8cf7e4a05a8cff5622dd Mon Sep 17 00:00:00 2001 From: Erik Conijn Date: Sun, 24 Dec 2023 11:26:26 +0100 Subject: [PATCH 037/126] Openvpn: add missing script event options Maintainer: @mkrkn @neheb Compile tested: aarch64, cortex-a53, OpenWRT Master Run tested: Dynalink DL-WRX36 Description: [A previous commit](https://github.com/openwrt/packages/commit/f8a8b71e26b9bdbf86fbb7d4d1482637af7f3ba4) has added more script event options. However it looked like that commit was not complete as it stops the use of the script events route-up, route-pre-down, and ipchange when those are placed in the openvpn config file. This PR fixes a regression that makes it problematic to specify certain event options in the OpenVPN configuration file. Discussion in [this thread](https://forum.openwrt.org/t/openvpn-custom-route-up-script-in-23-05-rc2/167105/13) and [here](https://forum.openwrt.org/t/openvpn-route-up-and-route-pre-down-broken-in-23-05/176568) Please have a look and consider implementing or make it possible to use all script event options in the openvpn config file in another way. Pull request has been discussed and improved with the help of @AuthorReflex, see: https://github.com/openwrt/packages/pull/21732 Signed-off-by: Erik Conijn --- net/openvpn/Makefile | 2 +- .../files/etc/hotplug.d/openvpn/01-user | 7 ++++- net/openvpn/files/openvpn.init | 26 +++++++++++++++---- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/net/openvpn/Makefile b/net/openvpn/Makefile index 111ec97b2..077a52d98 100644 --- a/net/openvpn/Makefile +++ b/net/openvpn/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openvpn PKG_VERSION:=2.6.8 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_URL:=\ https://build.openvpn.net/downloads/releases/ \ diff --git a/net/openvpn/files/etc/hotplug.d/openvpn/01-user b/net/openvpn/files/etc/hotplug.d/openvpn/01-user index 4c72f1c4b..f6ad8935e 100644 --- a/net/openvpn/files/etc/hotplug.d/openvpn/01-user +++ b/net/openvpn/files/etc/hotplug.d/openvpn/01-user @@ -7,10 +7,14 @@ $* } -# Wrap user defined scripts on up/down events +# Wrap user defined scripts on up/down/route-up/route-pre-down/ipchange events +# Scriptp set with up/down/route-up/route-pre-down/ipchange in the openvpn config are also executed with the command=user_xxxx case "$ACTION" in up) command=$user_up ;; down) command=$user_down ;; + route-up) command=$user_route_up ;; + route-pre-down) command=$user_route_pre_down ;; + ipchange) command=$user_ipchange ;; *) command= ;; esac @@ -20,3 +24,4 @@ if [ -n "$command" ]; then fi exit 0 + diff --git a/net/openvpn/files/openvpn.init b/net/openvpn/files/openvpn.init index 6f4dc4206..0aee6d418 100644 --- a/net/openvpn/files/openvpn.init +++ b/net/openvpn/files/openvpn.init @@ -145,6 +145,9 @@ openvpn_add_instance() { local security="$4" local up="$5" local down="$6" + local route_up="$7" + local route_pre_down="$8" + local ipchange="$9" local client=$(grep -qEx "client|tls-client" "$dir/$conf" && echo 1) procd_open_instance "$name" @@ -160,6 +163,9 @@ openvpn_add_instance() { ${client:+--ipchange "/usr/libexec/openvpn-hotplug ipchange $name"} \ ${up:+--setenv user_up "$up"} \ ${down:+--setenv user_down "$down"} \ + ${route_up:+--setenv user_route_up "$route_up"} \ + ${route_pre_down:+--setenv user_route_pre_down "$route_pre_down"} \ + ${client:+${ipchange:+--setenv user_ipchange "$ipchange"}} \ --script-security "${security:-2}" \ $(openvpn_get_dev "$name" "$conf") \ $(openvpn_get_credentials "$name" "$conf") @@ -183,9 +189,12 @@ start_uci_instance() { return 1 } - local up down script_security + local up down route_up route_pre_down ipchange script_security config_get up "$s" up config_get down "$s" down + config_get route_up "$s" route_up + config_get route_pre_down "$s" route_pre_down + config_get ipchange "$s" ipchange config_get script_security "$s" script_security [ ! -d "/var/run" ] && mkdir -p "/var/run" @@ -194,7 +203,10 @@ start_uci_instance() { append UCI_STARTED "$config" "$LIST_SEP" [ -n "$up" ] || get_openvpn_option "$config" up up [ -n "$down" ] || get_openvpn_option "$config" down down - openvpn_add_instance "$s" "${config%/*}" "$config" "$script_security" "$up" "$down" + [ -n "$route_up" ] || get_openvpn_option "$config" route_up route-up + [ -n "$route_pre_down" ] || get_openvpn_option "$config" route_pre_down route-pre-down + [ -n "$ipchange" ] || get_openvpn_option "$config" ipchange ipchange + openvpn_add_instance "$s" "${config%/*}" "$config" "$script_security" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange" return fi @@ -204,7 +216,7 @@ start_uci_instance() { append_params "$s" $OPENVPN_PARAMS append_list "$s" $OPENVPN_LIST - openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" "$script_security" "$up" "$down" + openvpn_add_instance "$s" "/var/etc" "openvpn-$s.conf" "$script_security" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange" } start_path_instances() { @@ -222,7 +234,7 @@ start_path_instances() { start_path_instance() { local name="$1" - local path up down + local path name up down route_up route_pre_down ipchange path="${PATH_INSTANCE_DIR}/${name}.conf" @@ -240,8 +252,11 @@ start_path_instance() { get_openvpn_option "$path" up up || up="" get_openvpn_option "$path" down down || down="" + get_openvpn_option "$path" route_up route-up || route_up="" + get_openvpn_option "$path" route_pre_down route-pre-down || route_pre_down="" + get_openvpn_option "$path" ipchange ipchange || ipchange="" - openvpn_add_instance "$name" "${path%/*}" "$path" "" "$up" "$down" + openvpn_add_instance "$name" "${path%/*}" "$path" "" "$up" "$down" "$route_up" "$route_pre_down" "$ipchange" } start_service() { @@ -283,3 +298,4 @@ start_service() { service_triggers() { procd_add_reload_trigger openvpn } + From 224a3816d876a302cf299cc369e847ff4a32f458 Mon Sep 17 00:00:00 2001 From: John Audia Date: Sun, 17 Dec 2023 05:36:47 -0500 Subject: [PATCH 038/126] snort3: compile with lzma support This PR adds the ability of snort to process rules that target swf and pdf files requiring lzma decompression to look for malicious payloads therein. This change only increases the size of the snort3 executable by a fraction of a KB and the added dependency of liblzma (based on currently offered 5.4.4-1) is only a 169 KB shared object. Based on CPU requirements of snort, x86 users likely represent the majority user-base and space their rootfs is not an issue as it may be for lower-powered SoCs. Size of snort3-3.1.76.0-2: 7354403 bytes Size of snort3-3.1.76.0-3: 7354435 bytes Build system: x86/64 Build-tested: x86/64/AMD Cezanne Run-tested: x86/64/AMD Cezanne Signed-off-by: John Audia --- net/snort3/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/snort3/Makefile b/net/snort3/Makefile index b1a2da382..06f543e8b 100644 --- a/net/snort3/Makefile +++ b/net/snort3/Makefile @@ -25,7 +25,7 @@ define Package/snort3 SUBMENU:=Firewall SECTION:=net CATEGORY:=Network - DEPENDS:=+libstdcpp +libdaq3 +libdnet +libopenssl +libpcap +libpcre +libpthread +libuuid +zlib +libhwloc +libtirpc @HAS_LUAJIT_ARCH +luajit +libatomic +kmod-nft-queue + DEPENDS:=+libstdcpp +libdaq3 +libdnet +libopenssl +libpcap +libpcre +libpthread +libuuid +zlib +libhwloc +libtirpc @HAS_LUAJIT_ARCH +luajit +libatomic +kmod-nft-queue +liblzma TITLE:=Lightweight Network Intrusion Detection System URL:=http://www.snort.org/ MENU:=1 @@ -52,7 +52,7 @@ CMAKE_OPTIONS += \ -DMAKE_PDF_DOC:BOOL=NO \ -DMAKE_TEXT_DOC:BOOL=NO \ -DHAVE_LIBUNWIND=OFF \ - -DHAVE_LZMA=OFF + -DHAVE_LZMA=ON TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/daq3 -I$(STAGING_DIR)/usr/include/tirpc TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib/daq3 -ltirpc From e05835deac35ec3f3294ed19cdc23e3ac3fae4e0 Mon Sep 17 00:00:00 2001 From: Eric Fahlgren Date: Sun, 17 Dec 2023 08:33:36 -0800 Subject: [PATCH 039/126] snort3: add missing action-override option Allow use of rules as-defined, and don't override their actions. This is generally the best way to use the ruleset, and overriding their actions should only be undertaken when you fully understand how it affects their use. Signed-off-by: Eric Fahlgren --- net/snort3/Makefile | 2 +- net/snort3/files/main.uc | 6 ++++-- net/snort3/files/snort.config | 6 ++++-- net/snort3/files/snort.uc | 2 ++ 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/net/snort3/Makefile b/net/snort3/Makefile index 06f543e8b..d8fd43972 100644 --- a/net/snort3/Makefile +++ b/net/snort3/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=snort3 PKG_VERSION:=3.1.77.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/snort3/snort3/archive/refs/tags/ diff --git a/net/snort3/files/main.uc b/net/snort3/files/main.uc index c8e039417..3a15f73c6 100644 --- a/net/snort3/files/main.uc +++ b/net/snort3/files/main.uc @@ -90,7 +90,7 @@ const snort_config = { mode: config_item("enum", [ "ids", "ips" ]), method: config_item("enum", [ "pcap", "afpacket", "nfq" ]), - action: config_item("enum", [ "alert", "block", "drop", "reject" ]), + action: config_item("enum", [ "default", "alert", "block", "drop", "reject" ]), interface: config_item("str", [ uci.get("network", "wan", "device") ]), snaplen: config_item("range", [ 1518, 65535 ]), // int daq.snaplen = 1518: set snap length (same as -s) { 0:65535 } @@ -137,7 +137,9 @@ snort PID file (why?). Default /var/log openappid - Enabled inspection using the 'openappid' package See 'opkg info openappid' - action - 'alert', 'block', 'reject' or 'drop' + action - Override the specified action of your rules. One of 'default', + 'alert', 'block', 'reject' or 'drop', where 'default' means use + the rule as defined and don't override. method - 'pcap', 'afpacket' or 'nfq' snaplen - int daq.snaplen = 1518: set snap length (same as -s) { 0:65535 } include - User-defined snort configuration, applied at end of generated snort.lua diff --git a/net/snort3/files/snort.config b/net/snort3/files/snort.config index b7d379010..e6b516451 100644 --- a/net/snort3/files/snort.config +++ b/net/snort3/files/snort.config @@ -25,7 +25,9 @@ # PID file (why?). Default /var/log # openappid - Enabled inspection using the 'openappid' package # See 'opkg info openappid' -# action - 'alert', 'block', 'reject' or 'drop' +# action - Override the specified action of your rules. One of 'default', +# 'alert', 'block', 'reject' or 'drop', where 'default' means use +# the rule as defined and don't override. # method - 'pcap', 'afpacket' or 'nfq' # snaplen - int daq.snaplen = 1518: set snap length (same as -s) { 0:65535 } # include - User-defined snort configuration, applied at end of generated snort.lua @@ -59,7 +61,7 @@ config snort 'snort' option openappid '0' # one of [0, 1] option mode 'ids' # one of [ids, ips] option method 'pcap' # one of [pcap, afpacket, nfq] - option action 'alert' # one of [alert, block, drop, reject] + option action 'default' # one of [default, alert, block, drop, reject] option interface 'eth0' # a string option snaplen '1518' # 1518 <= x <= 65535 option include '' # a path string diff --git a/net/snort3/files/snort.uc b/net/snort3/files/snort.uc index dc36e898d..62dae71ca 100644 --- a/net/snort3/files/snort.uc +++ b/net/snort3/files/snort.uc @@ -52,7 +52,9 @@ snort = { ips = { mode = '{{ line_mode }}', variables = default_variables, +{% if (snort.action != 'default'): %} action_override = '{{ snort.action }}', +{% endif %} {% if (getenv("_SNORT_WITHOUT_RULES") == "1"): %} -- WARNING: THIS IS A TEST-ONLY CONFIGURATION WITHOUT ANY RULES. {% else %} From 86bdfc7fb6aa1b442a1ec8ebea4f687f202025ab Mon Sep 17 00:00:00 2001 From: Misha Bragin Date: Mon, 1 Jan 2024 18:00:30 +0100 Subject: [PATCH 040/126] netbird: update to version 0.25.2 Signed-off-by: Misha Bragin --- net/netbird/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/netbird/Makefile b/net/netbird/Makefile index d6ee0ce30..3c7a9650b 100644 --- a/net/netbird/Makefile +++ b/net/netbird/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netbird -PKG_VERSION:=0.24.3 +PKG_VERSION:=0.25.2 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:=6590034fe8a8dc215242bbd7706197beef67a63a099a45a30c436373c892aab0 +PKG_HASH:=8a2f509a9f945168fc7b40a23f970de3623356e01fa91dc780dd4a26521944b7 PKG_MAINTAINER:=Oskari Rauta PKG_LICENSE:=BSD-3-Clause From f8bfe730dfaba6521014eee0eec23e3a36a824cf Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Thu, 21 Dec 2023 17:29:49 +0800 Subject: [PATCH 041/126] python-msgpack: update version 1.0.7 Signed-off-by: Andy Syam --- lang/python/python-msgpack/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-msgpack/Makefile b/lang/python/python-msgpack/Makefile index 052289b92..6e4e63169 100644 --- a/lang/python/python-msgpack/Makefile +++ b/lang/python/python-msgpack/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-msgpack -PKG_VERSION:=1.0.5 +PKG_VERSION:=1.0.7 PKG_RELEASE:=1 PYPI_NAME:=msgpack -PKG_HASH:=c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c +PKG_HASH:=572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87 PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=Apache-2.0 From 02a5264214b2447217a6ca956345166084e0b300 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 24 Dec 2023 22:01:33 -0800 Subject: [PATCH 042/126] openconnect: update to 9.12 Remove upstream backport and fix libxml 1.12 compilation. Signed-off-by: Rosen Penev --- net/openconnect/Makefile | 8 ++--- ...ersion-not-deprecated-SSLeay_version.patch | 34 ------------------- net/openconnect/patches/010-libxml212.patch | 11 ++++++ 3 files changed, 15 insertions(+), 38 deletions(-) delete mode 100644 net/openconnect/patches/001-Use-OpenSSL_version-not-deprecated-SSLeay_version.patch create mode 100644 net/openconnect/patches/010-libxml212.patch diff --git a/net/openconnect/Makefile b/net/openconnect/Makefile index 1ec7d70d2..f3bb6b673 100644 --- a/net/openconnect/Makefile +++ b/net/openconnect/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openconnect -PKG_VERSION:=9.01 -PKG_RELEASE:=2 +PKG_VERSION:=9.12 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/ -PKG_HASH:=b3d7faf830e9793299d6a41e81d84cd4a3e2789c148c9e598e4585010090e4c7 +PKG_SOURCE_URL:=https://www.infradead.org/openconnect/download +PKG_HASH:=a2bedce3aa4dfe75e36e407e48e8e8bc91d46def5335ac9564fbf91bd4b2413e PKG_LICENSE:=LGPL-2.1-or-later PKG_LICENSE_FILES:=COPYING.LGPL diff --git a/net/openconnect/patches/001-Use-OpenSSL_version-not-deprecated-SSLeay_version.patch b/net/openconnect/patches/001-Use-OpenSSL_version-not-deprecated-SSLeay_version.patch deleted file mode 100644 index 9f635a766..000000000 --- a/net/openconnect/patches/001-Use-OpenSSL_version-not-deprecated-SSLeay_version.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 01b7e75034e6d838d7750a828eccaa8dd534f152 Mon Sep 17 00:00:00 2001 -From: David Woodhouse -Date: Thu, 12 May 2022 15:55:59 +0100 -Subject: [PATCH] Use OpenSSL_version() not deprecated SSLeay_version() - -Fixes: #428 - -Signed-off-by: David Woodhouse ---- - openssl.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/openssl.c -+++ b/openssl.c -@@ -49,6 +49,8 @@ - typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); - #define X509_STORE_CTX_get_get_issuer(ctx) ((ctx)->get_issuer) -+#define OpenSSL_version SSLeay_version -+#define OPENSSL_VERSION SSLEAY_VERSION - #endif - - static char tls_library_version[32] = ""; -@@ -56,7 +58,9 @@ static char tls_library_version[32] = "" - const char *openconnect_get_tls_library_version(void) - { - if (!*tls_library_version) { -- strncpy(tls_library_version, SSLeay_version(SSLEAY_VERSION), sizeof(tls_library_version)); -+ strncpy(tls_library_version, -+ OpenSSL_version(OPENSSL_VERSION), -+ sizeof(tls_library_version)); - tls_library_version[sizeof(tls_library_version)-1]='\0'; - } - return tls_library_version; diff --git a/net/openconnect/patches/010-libxml212.patch b/net/openconnect/patches/010-libxml212.patch new file mode 100644 index 000000000..b8c821f21 --- /dev/null +++ b/net/openconnect/patches/010-libxml212.patch @@ -0,0 +1,11 @@ +--- a/openconnect-internal.h ++++ b/openconnect-internal.h +@@ -84,7 +84,7 @@ + #endif + #define N_(s) s + +-#include ++#include + #include + + #ifdef _WIN32 From b685807ee9b0948dd64149362aba81babaf2f401 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Mon, 25 Dec 2023 16:23:36 -0800 Subject: [PATCH 043/126] libmad: update to 0.16.4 Signed-off-by: Rosen Penev --- libs/libmad/Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libs/libmad/Makefile b/libs/libmad/Makefile index 569f402b7..a6d7c8e90 100644 --- a/libs/libmad/Makefile +++ b/libs/libmad/Makefile @@ -8,13 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libmad -PKG_VERSION:=0.16.3 -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=0.16.3 +PKG_SOURCE_VERSION:=0.16.4 PKG_SOURCE_URL:=https://codeberg.org/tenacityteam/libmad -PKG_MIRROR_HASH:=f2fa2a3c75ad1c58f0b6150482a3036408c8da79f0fcbf23bcf9e105f29079ee +PKG_MIRROR_HASH:=729c78430c2fa4bf5bb25aa3f25b6a6cd5367e5255057e6211a48f6cde6a953a PKG_MAINTAINER:=Ted Hess PKG_LICENSE:=GPL-2.0-or-later From f9c642c8c865d0a9f037cd5645494819613b7de0 Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Thu, 21 Dec 2023 17:51:02 +0800 Subject: [PATCH 044/126] python-zeroconf: update version 0.131.0 Signed-off-by: Andy Syam --- lang/python/python-zeroconf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/python/python-zeroconf/Makefile b/lang/python/python-zeroconf/Makefile index eaa7334c4..1950b579c 100644 --- a/lang/python/python-zeroconf/Makefile +++ b/lang/python/python-zeroconf/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-zeroconf -PKG_VERSION:=0.97.0 +PKG_VERSION:=0.131.0 PKG_RELEASE:=1 PYPI_NAME:=zeroconf -PKG_HASH:=9a06cd21182250100df6c4f4e9de2a47a0ea927c7d5a0446035bb3dfcc17a647 +PKG_HASH:=90c431e99192a044a5e0217afd7ca0ca9824af93190332e6f7baf4da5375f331 PKG_MAINTAINER:=Josef Schlehofer PKG_LICENSE:=LGPL-2.1-or-later From d7d7c5bbb34c709ada745a49239831f9c7a15463 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 24 Dec 2023 22:09:08 -0800 Subject: [PATCH 045/126] hs20: fix compilation with libxml 2.12 Signed-off-by: Rosen Penev --- net/hs20/Makefile | 2 +- net/hs20/patches/010-libxml-212.patch | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 net/hs20/patches/010-libxml-212.patch diff --git a/net/hs20/Makefile b/net/hs20/Makefile index 894179a6c..ffa4a4765 100644 --- a/net/hs20/Makefile +++ b/net/hs20/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hs20 -PKG_RELEASE:=8 +PKG_RELEASE:=9 PKG_SOURCE_URL:=http://w1.fi/hostap.git PKG_SOURCE_PROTO:=git diff --git a/net/hs20/patches/010-libxml-212.patch b/net/hs20/patches/010-libxml-212.patch new file mode 100644 index 000000000..b9a385444 --- /dev/null +++ b/net/hs20/patches/010-libxml-212.patch @@ -0,0 +1,11 @@ +--- a/src/utils/xml_libxml2.c ++++ b/src/utils/xml_libxml2.c +@@ -8,7 +8,7 @@ + + #include "includes.h" + #define LIBXML_VALID_ENABLED +-#include ++#include + #include + + #include "common.h" From fb2bf1c737acab6e674303cd6445be1b2095cb2d Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Fri, 22 Dec 2023 21:52:35 +0800 Subject: [PATCH 046/126] numpy: update to version 1.26.2 https://github.com/numpy/numpy/releases NumPy 1.26.2 Release Notes NumPy 1.26.2 is a maintenance release that fixes bugs and regressions discovered after the 1.26.1 release. The 1.26.release series is the last planned minor release series before NumPy 2.0. The Python versions supported by this release are 3.9-3.12. Signed-off-by: Andy Syam --- lang/python/numpy/Makefile | 6 ++--- .../001-unpin-build-dependencies.patch | 16 -------------- .../002-avoid-build-user-config-files.patch | 2 +- .../patches/003-without-vendored-meson.patch | 22 +++++++++++++++++++ 4 files changed, 26 insertions(+), 20 deletions(-) delete mode 100644 lang/python/numpy/patches/001-unpin-build-dependencies.patch create mode 100644 lang/python/numpy/patches/003-without-vendored-meson.patch diff --git a/lang/python/numpy/Makefile b/lang/python/numpy/Makefile index 4b319b59a..1e0291a8d 100644 --- a/lang/python/numpy/Makefile +++ b/lang/python/numpy/Makefile @@ -6,11 +6,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=numpy -PKG_VERSION:=1.25.2 +PKG_VERSION:=1.26.2 PKG_RELEASE:=1 PYPI_NAME:=$(PKG_NAME) -PKG_HASH:=fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760 +PKG_HASH:=f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea PKG_MAINTAINER:=Alexandru Ardelean @@ -21,7 +21,7 @@ PKG_CPE_ID:=cpe:/a:numpy:numpy PKG_CONFIG_DEPENDS:= \ CONFIG_NUMPY_OPENBLAS_SUPPORT -PKG_BUILD_DEPENDS:=python-cython/host +PKG_BUILD_DEPENDS:=python-cython/host pyproject-metadata/host # Ensure numpy does not find openblas if openblas support is not enabled PYTHON3_PKG_BUILD_VARS:= \ diff --git a/lang/python/numpy/patches/001-unpin-build-dependencies.patch b/lang/python/numpy/patches/001-unpin-build-dependencies.patch deleted file mode 100644 index dbfaea505..000000000 --- a/lang/python/numpy/patches/001-unpin-build-dependencies.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -4,11 +4,11 @@ - #build-backend = "mesonpy" - requires = [ - # setuptools, wheel and Cython are needed for the setup.py based build -- "setuptools==59.2.0", -+ "setuptools>=59.2.0", - # `wheel` is needed for non-isolated builds, given that `meson-python` - # doesn't list it as a runtime requirement (at least in 0.11.0) - it's - # likely to be removed as a dependency in meson-python 0.12.0. -- "wheel==0.38.1", -+ "wheel>=0.38.1", - "Cython>=0.29.34,<3.0", - # "meson-python>=0.10.0", - ] diff --git a/lang/python/numpy/patches/002-avoid-build-user-config-files.patch b/lang/python/numpy/patches/002-avoid-build-user-config-files.patch index cf7faf4ed..c3d70207e 100644 --- a/lang/python/numpy/patches/002-avoid-build-user-config-files.patch +++ b/lang/python/numpy/patches/002-avoid-build-user-config-files.patch @@ -1,6 +1,6 @@ --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py -@@ -403,7 +403,7 @@ def get_standard_file(fname): +@@ -404,7 +404,7 @@ def get_standard_file(fname): pass else: user_file = os.path.join(f, fname) diff --git a/lang/python/numpy/patches/003-without-vendored-meson.patch b/lang/python/numpy/patches/003-without-vendored-meson.patch new file mode 100644 index 000000000..ef6761bfe --- /dev/null +++ b/lang/python/numpy/patches/003-without-vendored-meson.patch @@ -0,0 +1,22 @@ +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,6 +1,6 @@ + [build-system] +-build-backend = "mesonpy" +-backend-path = ['./vendored-meson/meson-python'] ++#build-backend = "mesonpy" ++#backend-path = ['./vendored-meson/meson-python'] + requires = [ + "Cython>=0.29.34,<3.1", + # All dependencies of the vendored meson-python (except for meson, because +@@ -194,8 +194,8 @@ repair-wheel-command = "" + [tool.spin] + package = 'numpy' + +-[tool.spin.meson] +-cli = 'vendored-meson/meson/meson.py' ++#[tool.spin.meson] ++#cli = 'vendored-meson/meson/meson.py' + + [tool.spin.commands] + "Build" = [ From c6c1dfc50b7dbf033f2cd7a90b795120da9bada6 Mon Sep 17 00:00:00 2001 From: Andy Syam Date: Sat, 23 Dec 2023 16:14:41 +0800 Subject: [PATCH 047/126] python-gevent: add python-gevent https://pypi.org/project/gevent/ https://www.gevent.org/development/installing_from_source.html source code https://github.com/gevent/gevent Signed-off-by: Andy Syam --- lang/python/python-gevent/Makefile | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lang/python/python-gevent/Makefile diff --git a/lang/python/python-gevent/Makefile b/lang/python/python-gevent/Makefile new file mode 100644 index 000000000..92e2dbc26 --- /dev/null +++ b/lang/python/python-gevent/Makefile @@ -0,0 +1,49 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=python-gevent +PKG_VERSION:=23.9.1 +PKG_RELEASE:=1 + +PYPI_NAME:=gevent +PKG_HASH:=72c002235390d46f94938a96920d8856d4ffd9ddf62a303a0d7c118894097e34 + +PKG_MAINTAINER:=Andy Syam +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +PKG_BUILD_FLAGS:=no-mips16 +PKG_BUILD_DEPENDS:=python-cffi/host python-greenlet/host python-cython/host + +include ../pypi.mk +include $(INCLUDE_DIR)/package.mk +include ../python3-package.mk + +PYTHON3_PKG_SETUP_VARS:= \ + GEVENTSETUP_EMBED=0 \ + GEVENTSETUP_EMBED_LIBEV=0 \ + GEVENTSETUP_EMBED_CARES=0 + +define Package/python3-gevent + SUBMENU:=Python + SECTION:=lang + CATEGORY:=Languages + TITLE:=Coroutine-based network library + URL:=https://github.com/gevent/gevent + DEPENDS:= \ + +python3-light \ + +python3-cffi \ + +python3-greenlet \ + +python3-zope-interface \ + +libcares \ + +libev \ + +libuv +endef + +define Package/python3-gevent/description + gevent is a coroutine -based Python networking library that uses greenlet + to provide a high-level synchronous API on top of the libev or libuv event loop. +endef + +$(eval $(call Py3Package,python3-gevent)) +$(eval $(call BuildPackage,python3-gevent)) +$(eval $(call BuildPackage,python3-gevent-src)) From 839f1313e7bc80cfa4e68b0003d417a29a87ce6c Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Tue, 2 Jan 2024 17:10:46 -0600 Subject: [PATCH 048/126] snort: remove package Replaced with snort3. Signed-off-by: W. Michael Petullo --- net/snort/Config.in | 11 - net/snort/Makefile | 160 -- net/snort/files/snort.config | 3 - net/snort/files/snort.init | 43 - net/snort/patches/001-compile.patch | 243 -- net/snort/patches/002-fix_include.patch | 14 - net/snort/patches/003-include-tirpc.patch | 10 - .../900-Convert-project-to-PCRE2.patch | 2114 ----------------- 8 files changed, 2598 deletions(-) delete mode 100644 net/snort/Config.in delete mode 100644 net/snort/Makefile delete mode 100644 net/snort/files/snort.config delete mode 100644 net/snort/files/snort.init delete mode 100644 net/snort/patches/001-compile.patch delete mode 100644 net/snort/patches/002-fix_include.patch delete mode 100644 net/snort/patches/003-include-tirpc.patch delete mode 100644 net/snort/patches/900-Convert-project-to-PCRE2.patch diff --git a/net/snort/Config.in b/net/snort/Config.in deleted file mode 100644 index a79e51db0..000000000 --- a/net/snort/Config.in +++ /dev/null @@ -1,11 +0,0 @@ -menu "Configuration" - depends on PACKAGE_snort - -config SNORT_LZMA - bool "Enable LZMA support" - default n - help - This option enables LZMA decompression. - Disabled by default. - -endmenu diff --git a/net/snort/Makefile b/net/snort/Makefile deleted file mode 100644 index 66a8806cf..000000000 --- a/net/snort/Makefile +++ /dev/null @@ -1,160 +0,0 @@ -# -# Copyright (C) 2006-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=snort -PKG_VERSION:=2.9.20 -PKG_RELEASE:=1 - -PKG_LICENSE:=GPL-2.0 -PKG_MAINTAINER:=W. Michael Petullo -PKG_CPE_ID:=cpe:/a:snort:snort - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://www.snort.org/downloads/archive/snort/ \ - @SF/$(PKG_NAME) -PKG_HASH:=29400e13f53b1831e0b8b10ec1224a1cbaa6dc1533a5322a20dd80bb84b4981c - -PKG_BUILD_DEPENDS:=libtirpc -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_VERSION) -PKG_FIXUP:=autoreconf -PKG_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/snort - SUBMENU:=Firewall - SECTION:=net - CATEGORY:=Network - DEPENDS:=+libdaq +libdnet +libnghttp2 +libopenssl +libpcap +libpcre2 +libpthread +libtirpc +libuuid +zlib @HAS_LUAJIT_ARCH +luajit +SNORT_LZMA:liblzma - TITLE:=Lightweight Network Intrusion Detection System - URL:=http://www.snort.org/ - CONFLICTS:=snort3 - MENU:=1 -endef - -define Package/snort/description - Snort is an open source network intrusion detection and prevention system. - It is capable of performing real-time traffic analysis, alerting, blocking - and packet logging on IP networks. It utilizes a combination of protocol - analysis and pattern matching in order to detect anomalies, misuse and - attacks. -endef - -define Package/snort/config - source "$(SOURCE)/Config.in" -endef - -CONFIGURE_ARGS += \ - --prefix="/usr" \ - --enable-flexresp \ - --with-dnet-includes="$(STAGING_DIR)/usr/include" \ - --with-dnet-libraries="$(STAGING_DIR)/usr/lib" \ - --with-libpcap-includes="$(STAGING_DIR)/usr/include" \ - --with-libpcap-libraries="$(STAGING_DIR)/usr/lib" \ - --with-libpcre2-includes="$(STAGING_DIR)/usr/include" \ - --with-libpcre2-libraries="$(STAGING_DIR)/usr/lib" \ - --with-daq-includes="$(STAGING_DIR)/usr/include/daq2" \ - --with-daq-libraries="$(STAGING_DIR)/usr/lib/daq2" \ - --disable-static-daq - -ifeq ($(CONFIG_SNORT_LZMA),) -CONFIGURE_ARGS += \ - --disable-lzma -endif - -CONFIGURE_VARS += \ - PATH="$(STAGING_DIR)/usr/lib/libnet-1.0.x/bin:$$$$PATH" - -MAKE_FLAGS += \ - extra_incl="" - -TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/tirpc - -define Build/InstallDev - $(INSTALL_DIR) $(STAGING_DIR)/usr/include/snort/dynamic_preproc - $(CP) \ - $(PKG_INSTALL_DIR)/usr/include/snort/dynamic_preproc/* \ - $(STAGING_DIR)/usr/include/snort/dynamic_preproc/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/snort/dynamic_preproc - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/snort/dynamic_preproc/* \ - $(STAGING_DIR)/usr/lib/snort/dynamic_preproc/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/snort_dynamicengine - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/snort_dynamicengine/* \ - $(STAGING_DIR)/usr/lib/snort_dynamicengine/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/snort_dynamicpreprocessor - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/snort_dynamicpreprocessor/* \ - $(STAGING_DIR)/usr/lib/snort_dynamicpreprocessor/ -endef - -define Package/snort/conffiles -/etc/config/snort -/etc/snort/snort.conf -endef - -define Package/snort/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) \ - $(PKG_INSTALL_DIR)/usr/bin/snort \ - $(1)/usr/bin/snort - - $(INSTALL_BIN) \ - $(PKG_INSTALL_DIR)/usr/bin/u2{boat,spewfoo} \ - $(1)/usr/bin - - $(INSTALL_DIR) $(1)/usr/lib/snort_dynamicengine - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/snort_dynamicengine/libsf_engine.so* \ - $(1)/usr/lib/snort_dynamicengine/ - - $(INSTALL_DIR) $(1)/usr/lib/snort_dynamicpreprocessor - $(CP) \ - $(PKG_INSTALL_DIR)/usr/lib/snort_dynamicpreprocessor/libsf*.so* \ - $(1)/usr/lib/snort_dynamicpreprocessor/ - - $(INSTALL_DIR) $(1)/etc/snort - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/snort.conf \ - $(1)/etc/snort/ - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/attribute_table.dtd \ - $(1)/etc/snort/ - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/classification.config \ - $(1)/etc/snort/ - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/gen-msg.map \ - $(1)/etc/snort/ - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/reference.config \ - $(1)/etc/snort/ - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/etc/unicode.map \ - $(1)/etc/snort/ - - $(INSTALL_DIR) $(1)/etc/snort/preproc_rules - $(INSTALL_CONF) \ - $(PKG_BUILD_DIR)/preproc_rules/*.rules \ - $(1)/etc/snort/preproc_rules/ - - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) \ - ./files/snort.init \ - $(1)/etc/init.d/snort - - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_CONF) \ - ./files/snort.config \ - $(1)/etc/config/snort -endef - -$(eval $(call BuildPackage,snort)) - diff --git a/net/snort/files/snort.config b/net/snort/files/snort.config deleted file mode 100644 index cda74418d..000000000 --- a/net/snort/files/snort.config +++ /dev/null @@ -1,3 +0,0 @@ -config snort 'snort' - option config_file '/etc/snort/snort.conf' - option interface 'lo' diff --git a/net/snort/files/snort.init b/net/snort/files/snort.init deleted file mode 100644 index 7905c6ff3..000000000 --- a/net/snort/files/snort.init +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2015 OpenWrt.org - -START=90 -STOP=10 - -USE_PROCD=1 -PROG=/usr/bin/snort - -validate_snort_section() { - uci_load_validate snort snort "$1" "$2" \ - 'config_file:string' \ - 'interface:string' -} - -start_snort_instance() { - [ "$2" = 0 ] || { - echo "validation failed" - return 1 - } - - procd_open_instance - procd_set_param command $PROG "-q" "--daq-dir" "/usr/lib/daq/" "-i" "$interface" "-c" "$config_file" "-s" "-N" - procd_set_param file $config_file - procd_set_param respawn - procd_close_instance -} - -start_service() -{ - validate_snort_section snort start_snort_instance -} - -stop_service() -{ - service_stop ${PROG} -} - -service_triggers() -{ - procd_add_reload_trigger "snort" - procd_add_validation validate_snort_section -} diff --git a/net/snort/patches/001-compile.patch b/net/snort/patches/001-compile.patch deleted file mode 100644 index 1a56e77f2..000000000 --- a/net/snort/patches/001-compile.patch +++ /dev/null @@ -1,243 +0,0 @@ ---- a/configure.in -+++ b/configure.in -@@ -282,21 +282,7 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,i - AC_CHECK_TYPES([boolean]) - - # In case INADDR_NONE is not defined (like on Solaris) --have_inaddr_none="no" --AC_MSG_CHECKING([for INADDR_NONE]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --#include --#include --]], --[[ -- if (inet_addr("10,5,2") == INADDR_NONE); -- return 0; --]])], --[have_inaddr_none="yes"], --[have_inaddr_none="no"]) -+have_inaddr_none="yes" - AC_MSG_RESULT($have_inaddr_none) - if test "x$have_inaddr_none" = "xno"; then - AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition]) -@@ -428,17 +414,7 @@ if test "x$LPCAP" = "xno"; then - fi - fi - --AC_MSG_CHECKING([for pcap_lex_destroy]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- pcap_lex_destroy(); --]])], --[have_pcap_lex_destroy="yes"], --[have_pcap_lex_destroy="no"]) -+have_pcap_lex_destroy="yes" - AC_MSG_RESULT($have_pcap_lex_destroy) - if test "x$have_pcap_lex_destroy" = "xyes"; then - AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter]) -@@ -716,18 +692,7 @@ fi - - AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc]) - --AC_MSG_CHECKING([for daq real addresses]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.n_real_dPort = 0; --]])], --[have_daq_real_addresses="yes"], --[have_daq_real_addresses="no"]) -+have_daq_address_space_id="yes" - AC_MSG_RESULT($have_daq_real_addresses) - if test "x$have_daq_real_addresses" = "xyes"; then - AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1], -@@ -770,56 +735,21 @@ if test "x$ac_cv_func_daq_dp_add_dc" = " - - fi - --AC_MSG_CHECKING([for daq address space ID]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.address_space_id = 0; --]])], --[have_daq_address_space_id="yes"], --[have_daq_address_space_id="no"]) -+have_daq_address_space_id="yes" - AC_MSG_RESULT($have_daq_address_space_id) - if test "x$have_daq_address_space_id" = "xyes"; then - AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1], - [DAQ version supports address space ID in header.]) - fi - --AC_MSG_CHECKING([for daq flow ID]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.flow_id = 0; --]])], --[have_daq_flow_id="yes"], --[have_daq_flow_id="no"]) -+have_daq_flow_id="yes" - AC_MSG_RESULT($have_daq_flow_id) - if test "x$have_daq_flow_id" = "xyes"; then - AC_DEFINE([HAVE_DAQ_FLOW_ID],[1], - [DAQ version supports flow ID in header.]) - fi - --AC_MSG_CHECKING([for daq extended flow modifiers]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_ModFlow_t mod; -- mod.type = 0; -- mod.length = 0; -- mod.value = NULL; --]])], --[have_daq_ext_modflow="yes"], --[have_daq_ext_modflow="no"]) -+have_daq_ext_modflow="yes" - AC_MSG_RESULT($have_daq_ext_modflow) - if test "x$have_daq_ext_modflow" = "xyes"; then - CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW" -@@ -827,20 +757,7 @@ if test "x$have_daq_ext_modflow" = "xyes - [DAQ version supports extended flow modifiers.]) - fi - --AC_MSG_CHECKING([for daq query flow]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_QueryFlow_t mod; -- mod.type = 0; -- mod.length = 0; -- mod.value = NULL; --]])], --[have_daq_queryflow="yes"], --[have_daq_queryflow="no"]) -+have_daq_queryflow="no" - AC_MSG_RESULT($have_daq_queryflow) - if test "x$have_daq_queryflow" = "xyes"; then - CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW" -@@ -848,17 +765,7 @@ if test "x$have_daq_queryflow" = "xyes"; - [DAQ version supports query flow.]) - fi - --AC_MSG_CHECKING([for daq data channel flags]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_Data_Channel_Params_t params; --]])], --[have_daq_data_channel_flags="yes"], --[have_daq_data_channel_flags="no"]) -+have_daq_data_channel_flags="yes" - AC_MSG_RESULT($have_daq_data_channel_flags) - if test "x$have_daq_data_channel_flags" = "xyes"; then - CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS" -@@ -866,18 +773,7 @@ if test "x$have_daq_data_channel_flags" - [DAQ version supports data channel.]) - fi - --AC_MSG_CHECKING([for separate IP versions on pinhole endpoints]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_DP_key_t dpKey; -- dpKey.src_af = 0; --]])], --[have_daq_data_channel_separate_ip_versions="yes"], --[have_daq_data_channel_separate_ip_versions="no"]) -+have_daq_data_channel_separate_ip_versions="yes" - AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions) - if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then - CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS" -@@ -886,35 +782,14 @@ if test "x$have_daq_data_channel_separat - fi - - AC_MSG_CHECKING([for DAQ_VERDICT_RETRY]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_Verdict verdict; -- verdict = DAQ_VERDICT_RETRY; --]])], --[have_daq_verdict_retry="yes"], --[have_daq_verdict_retry="no"]) -+have_daq_verdict_retry="yes" - AC_MSG_RESULT($have_daq_verdict_retry) - if test "x$have_daq_verdict_retry" = "xyes"; then - AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1], - [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.]) - fi - --AC_MSG_CHECKING([for daq packet trace]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_PktHdr_t hdr; -- hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED; --]])], --[have_daq_packet_trace="yes"], --[have_daq_packet_trace="no"]) -+have_daq_packet_trace="no" - AC_MSG_RESULT($have_daq_packet_trace) - if test "x$have_daq_packet_trace" = "xyes"; then - AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1], -@@ -923,18 +798,7 @@ else - echo "DAQ version doesn't support packet trace." - fi - --AC_MSG_CHECKING([for daq verdict reason]) --AC_RUN_IFELSE( --[AC_LANG_PROGRAM( --[[ --#include --]], --[[ -- DAQ_ModFlow_t fl; -- fl.type = DAQ_MODFLOW_TYPE_VER_REASON; --]])], --[have_daq_verdict_reason="yes"], --[have_daq_verdict_reason="no"]) -+have_daq_verdict_reason="no" - AC_MSG_RESULT($have_daq_verdict_reason) - if test "x$have_daq_verdict_reason" = "xyes"; then - AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1], diff --git a/net/snort/patches/002-fix_include.patch b/net/snort/patches/002-fix_include.patch deleted file mode 100644 index c3177c5bb..000000000 --- a/net/snort/patches/002-fix_include.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/configure.in -+++ b/configure.in -@@ -67,6 +67,11 @@ case "$host" in - AC_DEFINE([SUNOS],[1],[Define if SunOS]) - sunos4="yes" - ;; -+ *-openwrt*) -+ linux="yes" -+ AC_DEFINE([LINUX],[1],[Define if Linux]) -+ AC_SUBST(extra_incl) -+ ;; - *-linux*) - linux="yes" - AC_DEFINE([LINUX],[1],[Define if Linux]) diff --git a/net/snort/patches/003-include-tirpc.patch b/net/snort/patches/003-include-tirpc.patch deleted file mode 100644 index 16f0c1d0b..000000000 --- a/net/snort/patches/003-include-tirpc.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c -+++ b/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c -@@ -32,6 +32,7 @@ - #include "flow.h" - #include "service_api.h" - -+#include - #if defined(FREEBSD) || defined(OPENBSD) - #include "rpc/rpc.h" - #endif diff --git a/net/snort/patches/900-Convert-project-to-PCRE2.patch b/net/snort/patches/900-Convert-project-to-PCRE2.patch deleted file mode 100644 index 4e01347af..000000000 --- a/net/snort/patches/900-Convert-project-to-PCRE2.patch +++ /dev/null @@ -1,2114 +0,0 @@ -From 514af7b25f1f49d87963baf4fd057d9c85f518a7 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sat, 4 Nov 2023 01:30:37 +0100 -Subject: [PATCH] Convert project to PCRE2 - -Convert project to PCRE2. Convert every example to PCRE2. - -Due to API changes examples needs to be updated accordingly with the new -struct and API. - -The API name were voluntary changes to make sure the user of plugins is -aware of the change and manually refresh the plugin with new code. - -Most of the time it's just PcreMatch to Pcre2Match and PCREInfo to -PCRE2Info and the relative options (that are 1:1 compared to PCRE -library). - -For complex case where ovector extraction is needed, refer to example -36733 where new way with match data is used. Follow comments there for -additional info. - -Signed-off-by: Christian Marangi ---- - config.h.in | 8 +- - configure.in | 67 ++++---- - src/detection-plugins/sp_pcre.c | 149 +++++++++--------- - src/detection-plugins/sp_pcre.h | 9 +- - src/dynamic-plugins/sf_convert_dynamic.c | 59 ++++--- - src/dynamic-plugins/sf_dynamic_engine.h | 32 ++-- - src/dynamic-plugins/sf_dynamic_plugins.c | 109 +++++++------ - src/dynamic-plugins/sf_engine/examples/3036.c | 8 +- - src/dynamic-plugins/sf_engine/examples/3052.c | 8 +- - src/dynamic-plugins/sf_engine/examples/3099.c | 8 +- - .../sf_engine/examples/36733.c | 40 +++-- - src/dynamic-plugins/sf_engine/examples/3682.c | 11 +- - .../sf_engine/examples/bug31842.c | 9 +- - .../sf_engine/examples/bug35218.c | 15 +- - .../sf_engine/examples/sid1902.c | 9 +- - .../sf_engine/examples/sid2389.c | 9 +- - .../sf_engine/examples/sid9999.c | 2 +- - .../sf_engine/examples/web-client_test.c | 18 +-- - .../sf_engine/sf_snort_detection_engine.c | 20 +-- - .../sf_engine/sf_snort_detection_engine.h | 2 +- - .../sf_engine/sf_snort_plugin_api.c | 10 +- - .../sf_engine/sf_snort_plugin_api.h | 39 +++-- - .../sf_engine/sf_snort_plugin_pcre.c | 132 ++++++++++------ - .../appid/luaDetectorApi.c | 63 +++++--- - src/dynamic-preprocessors/imap/snort_imap.h | 6 +- - src/dynamic-preprocessors/pop/snort_pop.h | 3 +- - src/dynamic-preprocessors/smtp/snort_smtp.h | 3 +- - src/snort.c | 3 - - src/snort.h | 1 - - src/util.c | 9 +- - 30 files changed, 497 insertions(+), 364 deletions(-) - mode change 100755 => 100644 src/dynamic-plugins/sf_engine/sf_snort_plugin_api.h - mode change 100755 => 100644 src/dynamic-plugins/sf_engine/sf_snort_plugin_pcre.c - ---- a/config.h.in -+++ b/config.h.in -@@ -133,8 +133,8 @@ - /* Define to 1 if you have the `pcap' library (-lpcap). */ - #undef HAVE_LIBPCAP - --/* Define to 1 if you have the `pcre' library (-lpcre). */ --#undef HAVE_LIBPCRE -+/* Define to 1 if you have the `pcre2' library (-lpcre2-8). */ -+#undef HAVE_LIBPCRE2 - - /* Define to 1 if you have the `pfring' library (-lpfring). */ - #undef HAVE_LIBPFRING -@@ -190,8 +190,8 @@ - /* Can output the library version. */ - #undef HAVE_PCAP_LIB_VERSION - --/* Define to 1 if you have the header file. */ --#undef HAVE_PCRE_H -+/* Define to 1 if you have the header file. */ -+#undef HAVE_PCRE2_H - - /* Define to 1 if you have the header file. */ - #undef HAVE_PFRING_H ---- a/configure.in -+++ b/configure.in -@@ -455,65 +455,70 @@ AC_DEFUN([FAIL_MESSAGE],[ - exit 1 - ]) - --AC_ARG_WITH(libpcre_includes, -- [ --with-libpcre-includes=DIR libpcre include directory], -- [with_libpcre_includes="$withval"],[with_libpcre_includes="no"]) -- --AC_ARG_WITH(libpcre_libraries, -- [ --with-libpcre-libraries=DIR libpcre library directory], -- [with_libpcre_libraries="$withval"],[with_libpcre_libraries="no"]) -- --if test "x$with_libpcre_includes" != "xno"; then -- CPPFLAGS="${CPPFLAGS} -I${with_libpcre_includes}" -- ICONFIGFLAGS="${ICONFIGFLAGS} -I${with_libpcre_includes}" -+AC_ARG_WITH(libpcre2_includes, -+ [ --with-libpcre2-includes=DIR libpcre2 include directory], -+ [with_libpcre2_includes="$withval"],[with_libpcre2_includes="no"]) -+ -+AC_ARG_WITH(libpcre2_libraries, -+ [ --with-libpcre2-libraries=DIR libpcre2 library directory], -+ [with_libpcre2_libraries="$withval"],[with_libpcre2_libraries="no"]) -+ -+if test "x$with_libpcre2_includes" != "xno"; then -+ CPPFLAGS="${CPPFLAGS} -I${with_libpcre2_includes}" -+ ICONFIGFLAGS="${ICONFIGFLAGS} -I${with_libpcre2_includes}" - else -- CPPFLAGS="${CPPFLAGS} `pcre-config --cflags`" -+ CPPFLAGS="${CPPFLAGS} `pcre2-config --cflags`" - fi - --if test "x$with_libpcre_libraries" != "xno"; then -- LDFLAGS="${LDFLAGS} -L${with_libpcre_libraries}" -+if test "x$with_libpcre2_libraries" != "xno"; then -+ LDFLAGS="${LDFLAGS} -L${with_libpcre2_libraries}" - else -- LDFLAGS="${LDFLAGS} `pcre-config --libs`" -+ LDFLAGS="${LDFLAGS} `pcre2-config --libs8`" - fi - --# PCRE configuration (required) -+# PCRE2 configuration (required) - # Verify that we have the headers --PCRE_H="" --AC_CHECK_HEADERS(pcre.h,, PCRE_H="no") --if test "x$PCRE_H" = "xno"; then -+PCRE2_H="" -+AC_CHECK_HEADERS(pcre2.h,, PCRE2_H="no",[#define PCRE2_CODE_UNIT_WIDTH 8]) -+if test "x$PCRE2_H" = "xno"; then - echo -- echo " ERROR! Libpcre header not found." -+ echo " ERROR! Libpcre2 header not found." - echo " Get it from http://www.pcre.org" - exit 1 - fi - - # Verify that we have the library --PCRE_L="" --pcre_version_six="" --AC_CHECK_LIB(pcre, pcre_compile, ,PCRE_L="no") -+PCRE2_L="" -+pcre2_version_six="" -+AC_CHECK_LIB(pcre2-8, pcre2_compile_8, ,PCRE2_L="no") - if test "x$PCRE_L" = "xno"; then - echo -- echo " ERROR! Libpcre library not found." -+ echo " ERROR! Libpcre2 library not found." - echo " Get it from http://www.pcre.org" - echo - exit 1 - else -- AC_MSG_CHECKING(for libpcre version 6.0 or greater) -- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ -- #if (PCRE_MAJOR < 6) -+ AC_MSG_CHECKING(for libpcre2 version 10.0 or greater) -+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -+ #define PCRE2_CODE_UNIT_WIDTH 8 -+ #include -+ ]], [[ -+ #if (PCRE2_MAJOR < 10) - #error "Version failure" - #else -- int a, b = 0, c = 0, d = 0; -- pcre *tmp = NULL; -- a = pcre_copy_named_substring(tmp, "", &b, c, "", "", d); -+ int a; -+ PCRE2_UCHAR b = { 0 }; -+ PCRE2_SIZE c; -+ pcre2_match_data *match_data = NULL; -+ a = pcre2_substring_copy_byname(match_data, (PCRE2_SPTR )"", &b, &c); - #endif -- ]])],[pcre_version_six="yes"],[pcre_version_six="no"]) -+ ]])],[pcre2_version_ten="yes"],[pcre2_version_ten="no"]) - fi - --if test "x$pcre_version_six" != "xyes"; then -+if test "x$pcre2_version_ten" != "xyes"; then - AC_MSG_RESULT(no) - echo -- echo " ERROR! Libpcre library version >= 6.0 not found." -+ echo " ERROR! Libpcre2 library version >= 10.0 not found." - echo " Get it from http://www.pcre.org" - echo - exit 1 ---- a/src/detection-plugins/sp_pcre.c -+++ b/src/detection-plugins/sp_pcre.c -@@ -46,7 +46,8 @@ - - #include "sp_pcre.h" - --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - - #include "snort.h" - #include "profiler.h" -@@ -60,7 +61,7 @@ extern PreprocStats ruleOTNEvalPerfStats - #include "detection_util.h" - - /* -- * we need to specify the vector length for our pcre_exec call. we only care -+ * we need to specify the vector length for our pcre2_match call. we only care - * about the first vector, which if the match is successful will include the - * offset to the end of the full pattern match. If we decide to store other - * matches, make *SURE* that this is a multiple of 3 as pcre requires it. -@@ -77,8 +78,8 @@ void PcreFree(void *d) - PcreData *data = (PcreData *)d; - - free(data->expression); -- free(data->re); -- free(data->pe); -+ pcre2_match_context_free(data->match_context); -+ pcre2_code_free(data->re); - free(data); - } - -@@ -161,7 +162,6 @@ void PcreDuplicatePcreData(void *src, Pc - pcre_dup->expression = pcre_src->expression; - pcre_dup->options = pcre_src->options; - pcre_dup->search_offset = 0; -- pcre_dup->pe = pcre_src->pe; - pcre_dup->re = pcre_src->re; - } - -@@ -197,7 +197,7 @@ static void Ovector_Init(struct _SnortCo - * configuraton, we won't pcre capture count again, so save the max. */ - static int s_ovector_max = 0; - -- /* The pcre_fullinfo() function can be used to find out how many -+ /* The pcre2_pattern_info() function can be used to find out how many - * capturing subpatterns there are in a compiled pattern. The - * smallest size for ovector that will allow for n captured - * substrings, in addition to the offsets of the substring matched -@@ -207,8 +207,6 @@ static void Ovector_Init(struct _SnortCo - - if (sc->pcre_ovector_size > s_ovector_max) - s_ovector_max = sc->pcre_ovector_size; -- -- sc->pcre_ovector = (int *) SnortAlloc(s_ovector_max*sizeof(int)); - } - - #if SNORT_RELOAD -@@ -218,12 +216,12 @@ static void Ovector_Reload(struct _Snort - } - #endif - --void PcreCapture(struct _SnortConfig *sc, const void *code, const void *extra) -+void Pcre2Capture(struct _SnortConfig *sc, const void *code) - { - int tmp_ovector_size = 0; - -- pcre_fullinfo((const pcre *)code, (const pcre_extra *)extra, -- PCRE_INFO_CAPTURECOUNT, &tmp_ovector_size); -+ pcre2_pattern_info((const pcre2_code *)code, -+ PCRE2_INFO_CAPTURECOUNT, &tmp_ovector_size); - - if (tmp_ovector_size > sc->pcre_ovector_size) - sc->pcre_ovector_size = tmp_ovector_size; -@@ -268,10 +266,10 @@ void SnortPcreInit(struct _SnortConfig * - - if (pcre_data->expression) - free(pcre_data->expression); -- if (pcre_data->pe) -- free(pcre_data->pe); -+ if (pcre_data->match_context) -+ pcre2_match_context_free(pcre_data->match_context); - if (pcre_data->re) -- free(pcre_data->re); -+ pcre2_code_free(pcre_data->re); - - free(pcre_data); - pcre_data = pcre_dup; -@@ -305,11 +303,12 @@ static inline void ValidatePcreHttpConte - - void SnortPcreParse(struct _SnortConfig *sc, char *data, PcreData *pcre_data, OptTreeNode *otn) - { -- const char *error; -+ PCRE2_UCHAR error[128]; - char *re, *free_me; - char *opts; - char delimit = '/'; -- int erroffset; -+ int errorcode; -+ PCRE2_SIZE erroffset; - int compile_flags = 0; - unsigned http = 0; - -@@ -381,17 +380,17 @@ void SnortPcreParse(struct _SnortConfig - /* process any /regex/ismxR options */ - while(*opts != '\0') { - switch(*opts) { -- case 'i': compile_flags |= PCRE_CASELESS; break; -- case 's': compile_flags |= PCRE_DOTALL; break; -- case 'm': compile_flags |= PCRE_MULTILINE; break; -- case 'x': compile_flags |= PCRE_EXTENDED; break; -+ case 'i': compile_flags |= PCRE2_CASELESS; break; -+ case 's': compile_flags |= PCRE2_DOTALL; break; -+ case 'm': compile_flags |= PCRE2_MULTILINE; break; -+ case 'x': compile_flags |= PCRE2_EXTENDED; break; - - /* - * these are pcre specific... don't work with perl - */ -- case 'A': compile_flags |= PCRE_ANCHORED; break; -- case 'E': compile_flags |= PCRE_DOLLAR_ENDONLY; break; -- case 'G': compile_flags |= PCRE_UNGREEDY; break; -+ case 'A': compile_flags |= PCRE2_ANCHORED; break; -+ case 'E': compile_flags |= PCRE2_DOLLAR_ENDONLY; break; -+ case 'G': compile_flags |= PCRE2_UNGREEDY; break; - - /* - * these are snort specific don't work with pcre or perl -@@ -424,45 +423,37 @@ void SnortPcreParse(struct _SnortConfig - - /* now compile the re */ - DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre: compiling %s\n", re);); -- pcre_data->re = pcre_compile(re, compile_flags, &error, &erroffset, NULL); -+ pcre_data->re = pcre2_compile((PCRE2_SPTR)re, PCRE2_ZERO_TERMINATED, compile_flags, &errorcode, &erroffset, NULL); - - if(pcre_data->re == NULL) - { -+ pcre2_get_error_message(errorcode, error, 128); - FatalError("%s(%d) : pcre compile of \"%s\" failed at offset " -- "%d : %s\n", file_name, file_line, re, erroffset, error); -+ "%zu : %s\n", file_name, file_line, re, erroffset, error); - } - -+ /* now create match context */ -+ pcre_data->match_context = pcre2_match_context_create(NULL); -+ if(pcre_data->match_context == NULL) -+ { -+ FatalError("%s(%d) : failed to allocate memory for match context\n", -+ file_name, file_line); -+ } - - /* now study it... */ -- pcre_data->pe = pcre_study(pcre_data->re, 0, &error); -+ errorcode = pcre2_jit_compile(pcre_data->re, PCRE2_JIT_COMPLETE); - -- if (pcre_data->pe) -+ if (!errorcode) - { - if ((ScPcreMatchLimitNewConf(sc) != -1) && !(pcre_data->options & SNORT_OVERRIDE_MATCH_LIMIT)) - { -- if (pcre_data->pe->flags & PCRE_EXTRA_MATCH_LIMIT) -- { -- pcre_data->pe->match_limit = ScPcreMatchLimitNewConf(sc); -- } -- else -- { -- pcre_data->pe->flags |= PCRE_EXTRA_MATCH_LIMIT; -- pcre_data->pe->match_limit = ScPcreMatchLimitNewConf(sc); -- } -+ pcre2_set_match_limit(pcre_data->match_context, ScPcreMatchLimitNewConf(sc)); - } - - #ifdef PCRE_EXTRA_MATCH_LIMIT_RECURSION - if ((ScPcreMatchLimitRecursionNewConf(sc) != -1) && !(pcre_data->options & SNORT_OVERRIDE_MATCH_LIMIT)) - { -- if (pcre_data->pe->flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) -- { -- pcre_data->pe->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -- } -- else -- { -- pcre_data->pe->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; -- pcre_data->pe->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -- } -+ pcre2_set_depth_limit(pcre_data->match_context, ScPcreMatchLimitRecursionNewConf(sc)); - } - #endif - } -@@ -471,30 +462,28 @@ void SnortPcreParse(struct _SnortConfig - if (!(pcre_data->options & SNORT_OVERRIDE_MATCH_LIMIT) && - ((ScPcreMatchLimitNewConf(sc) != -1) || (ScPcreMatchLimitRecursionNewConf(sc) != -1))) - { -- pcre_data->pe = (pcre_extra *)SnortAlloc(sizeof(pcre_extra)); - if (ScPcreMatchLimitNewConf(sc) != -1) - { -- pcre_data->pe->flags |= PCRE_EXTRA_MATCH_LIMIT; -- pcre_data->pe->match_limit = ScPcreMatchLimitNewConf(sc); -+ pcre2_set_match_limit(pcre_data->match_context, ScPcreMatchLimitNewConf(sc)); - } - - #ifdef PCRE_EXTRA_MATCH_LIMIT_RECURSION - if (ScPcreMatchLimitRecursionNewConf(sc) != -1) - { -- pcre_data->pe->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; -- pcre_data->pe->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -+ pcre2_set_depth_limit(pcre_data->match_context, ScPcreMatchLimitRecursionNewConf(sc)); - } - #endif - } - } - -- if(error != NULL) -+ if(errorcode) - { -+ pcre2_get_error_message(errorcode, error, 128); - FatalError("%s(%d) : pcre study failed : %s\n", file_name, - file_line, error); - } - -- PcreCapture(sc, pcre_data->re, pcre_data->pe); -+ Pcre2Capture(sc, pcre_data->re); - - PcreCheckAnchored(pcre_data); - -@@ -515,13 +504,13 @@ void PcreCheckAnchored(PcreData *pcre_da - int rc; - unsigned long int options = 0; - -- if ((pcre_data == NULL) || (pcre_data->re == NULL) || (pcre_data->pe == NULL)) -+ if ((pcre_data == NULL) || (pcre_data->re == NULL) || (pcre_data->match_context == NULL)) - return; - -- rc = pcre_fullinfo(pcre_data->re, pcre_data->pe, PCRE_INFO_OPTIONS, (void *)&options); -+ rc = pcre2_pattern_info(pcre_data->re, PCRE2_INFO_ARGOPTIONS, (void *)&options); - switch (rc) - { -- /* pcre_fullinfo fails for the following: -+ /* pcre2_pattern_info fails for the following: - * PCRE_ERROR_NULL - the argument code was NULL - * the argument where was NULL - * PCRE_ERROR_BADMAGIC - the "magic number" was not found -@@ -533,24 +522,24 @@ void PcreCheckAnchored(PcreData *pcre_da - /* This is the success code */ - break; - -- case PCRE_ERROR_NULL: -- FatalError("%s(%d) pcre_fullinfo: code and/or where were NULL.\n", -+ case PCRE2_ERROR_NULL: -+ FatalError("%s(%d) pcre2_pattern_info: code and/or where were NULL.\n", - __FILE__, __LINE__); - -- case PCRE_ERROR_BADMAGIC: -- FatalError("%s(%d) pcre_fullinfo: compiled code didn't have " -+ case PCRE2_ERROR_BADMAGIC: -+ FatalError("%s(%d) pcre2_pattern_info: compiled code didn't have " - "correct magic.\n", __FILE__, __LINE__); - -- case PCRE_ERROR_BADOPTION: -- FatalError("%s(%d) pcre_fullinfo: option type is invalid.\n", -+ case PCRE2_ERROR_BADOPTION: -+ FatalError("%s(%d) pcre2_pattern_info: option type is invalid.\n", - __FILE__, __LINE__); - - default: -- FatalError("%s(%d) pcre_fullinfo: Unknown error code.\n", -+ FatalError("%s(%d) pcre2_pattern_info: Unknown error code.\n", - __FILE__, __LINE__); - } - -- if ((options & PCRE_ANCHORED) && !(options & PCRE_MULTILINE)) -+ if ((options & PCRE2_ANCHORED) && !(options & PCRE2_MULTILINE)) - { - /* This means that this pcre rule option shouldn't be reevaluted - * even if any of it's relative children should fail to match. -@@ -579,6 +568,8 @@ static int pcre_search(const PcreData *p - int start_offset, - int *found_offset) - { -+ pcre2_match_data *match_data; -+ PCRE2_SIZE *ovector; - int matched; - int result; - -@@ -596,14 +587,19 @@ static int pcre_search(const PcreData *p - - *found_offset = -1; - -- result = pcre_exec(pcre_data->re, /* result of pcre_compile() */ -- pcre_data->pe, /* result of pcre_study() */ -- buf, /* the subject string */ -- len, /* the length of the subject string */ -- start_offset, /* start at offset 0 in the subject */ -- 0, /* options(handled at compile time */ -- snort_conf->pcre_ovector, /* vector for substring information */ -- snort_conf->pcre_ovector_size);/* number of elements in the vector */ -+ match_data = pcre2_match_data_create(snort_conf->pcre_ovector_size, NULL); -+ if (!match_data) { -+ DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre2_match_data_create failed to alloc mem!\n");); -+ return 0; -+ } -+ -+ result = pcre2_match(pcre_data->re, /* result of pcre2_compile() */ -+ (PCRE2_SPTR)buf, /* the subject string */ -+ (PCRE2_SIZE)len, /* the length of the subject string */ -+ (PCRE2_SIZE)start_offset, /* start at offset 0 in the subject */ -+ 0, /* options(handled at compile time */ -+ match_data, /* match data for results */ -+ pcre_data->match_context); /* match context for JIT limits */ - - if(result >= 0) - { -@@ -615,23 +611,25 @@ static int pcre_search(const PcreData *p - * second is set to the offset of the first character after the end of a substring. The first pair, - * ovector[0] and ovector[1], identify the portion of the subject string matched by the entire pattern. - * The next pair is used for the first capturing subpattern, and so on. The value returned by -- * pcre_exec() is the number of pairs that have been set. If there are no capturing subpatterns, the -+ * pcre_match() is the number of pairs that have been set. If there are no capturing subpatterns, the - * return value from a successful match is 1, indicating that just the first pair of offsets has been set. - * - * In Snort's case, the ovector size only allows for the first pair and a single int for scratch space. - */ -- *found_offset = snort_conf->pcre_ovector[1]; -+ ovector = pcre2_get_ovector_pointer(match_data); -+ *found_offset = ovector[1]; - DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, - "Setting Doe_ptr and found_offset: %p %d\n", - doe_ptr, found_offset);); - } -- else if(result == PCRE_ERROR_NOMATCH) -+ else if(result == PCRE2_ERROR_NOMATCH) - { - matched = 0; - } - else - { -- DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre_exec error : %d \n", result);); -+ pcre2_match_data_free(match_data); -+ DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre2_match error : %d \n", result);); - return 0; - } - -@@ -641,6 +639,7 @@ static int pcre_search(const PcreData *p - matched = !matched; - } - -+ pcre2_match_data_free(match_data); - return matched; - } - ---- a/src/detection-plugins/sp_pcre.h -+++ b/src/detection-plugins/sp_pcre.h -@@ -49,17 +49,18 @@ - - void SetupPcre(void); - --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - typedef struct _PcreData - { -- pcre *re; /* compiled regex */ -- pcre_extra *pe; /* studied regex foo */ -+ pcre2_code *re; /* compiled regex */ -+ pcre2_match_context *match_context; /* regex match context */ - int options; /* sp_pcre specfic options (relative & inverse) */ - char *expression; - uint32_t search_offset; - } PcreData; - --void PcreCapture(struct _SnortConfig *sc, const void *code, const void *extra); -+void Pcre2Capture(struct _SnortConfig *sc, const void *code); - void PcreFree(void *d); - uint32_t PcreHash(void *d); - int PcreCompare(void *l, void *r); ---- a/src/dynamic-plugins/sf_convert_dynamic.c -+++ b/src/dynamic-plugins/sf_convert_dynamic.c -@@ -52,9 +52,11 @@ - - extern void ParsePattern(char *, OptTreeNode *, int); - extern void ParseProtectedPattern(char *, OptTreeNode *, int); --extern void *pcreCompile(const char *pattern, int options, const char **errptr, -- int *erroffset, const unsigned char *tableptr); --extern void *pcreStudy(struct _SnortConfig *sc, const void *code, int options, const char **errptr); -+extern void *pcre2MatchContextCreate(const void *gcontext); -+extern void *pcre2Compile(const char *pattern, int options, int *errorcode, size_t *erroffset, void *matchcontext); -+extern int pcre2JITCompile(struct _SnortConfig *sc, const void *code, const void *matchcontext, int options); -+extern void pcre2MatchContextFree(const void *match_context); -+extern void pcre2CodeFree(const void *code); - - extern int SnortPcre(void *option_data, Packet *p); - extern int FlowBitsCheck(void *option_data, Packet *p); -@@ -517,20 +519,20 @@ static int ConvertProtectedContentOption - static int ConvertPcreOption(SnortConfig *sc, Rule *rule, int index, OptTreeNode *otn) - { - PcreData *pcre_data = (PcreData *) SnortAlloc(sizeof(PcreData)); -- PCREInfo *pcre_info = rule->options[index]->option_u.pcre; -+ PCRE2Info *pcre2_info = rule->options[index]->option_u.pcre2; - OptFpList *fpl; - void *pcre_dup; -- const char *error; -- int erroroffset; -+ int errorcode; -+ size_t erroroffset; - - /* Need to recompile the expression so double free doesn't occur - * during reload */ - - /* Compile & Study PCRE */ -- pcre_data->re = pcreCompile( -- pcre_info->expr, -- pcre_info->compile_flags, -- &error, -+ pcre_data->re = pcre2Compile( -+ pcre2_info->expr, -+ pcre2_info->compile_flags, -+ &errorcode, - &erroroffset, - NULL - ); -@@ -541,37 +543,46 @@ static int ConvertPcreOption(SnortConfig - return -1; - } - -- pcre_data->pe = pcreStudy(sc, -+ pcre_data->match_context = pcre2MatchContextCreate(NULL); -+ if (pcre_data->match_context == NULL) { -+ pcre2CodeFree(pcre_data->re); -+ free(pcre_data); -+ return -1; -+ } -+ -+ errorcode = pcre2JITCompile( -+ sc, - pcre_data->re, -- pcre_info->compile_flags, -- &error -+ pcre_data->match_context, -+ pcre2_info->compile_flags - ); - -- if (error) -+ if (errorcode) - { -- free(pcre_data->re); -+ pcre2MatchContextFree(pcre_data->match_context); -+ pcre2CodeFree(pcre_data->re); - free(pcre_data); - return -1; - } - - /* Copy to struct used for normal PCRE rules */ -- pcre_data->expression = SnortStrdup(pcre_info->expr); -+ pcre_data->expression = SnortStrdup(pcre2_info->expr); - - /* Option values differ between PCREInfo and PcreData, - * so a straight copy of the options variable won't work. */ -- if (pcre_info->flags & CONTENT_RELATIVE) -+ if (pcre2_info->flags & CONTENT_RELATIVE) - pcre_data->options |= SNORT_PCRE_RELATIVE; - -- if (pcre_info->flags & NOT_FLAG) -+ if (pcre2_info->flags & NOT_FLAG) - pcre_data->options |= SNORT_PCRE_INVERT; - -- if (pcre_info->flags & CONTENT_BUF_RAW) -+ if (pcre2_info->flags & CONTENT_BUF_RAW) - pcre_data->options |= SNORT_PCRE_RAWBYTES; - -- if (pcre_info->flags & CONTENT_BUF_NORMALIZED) -+ if (pcre2_info->flags & CONTENT_BUF_NORMALIZED) - pcre_data->options &= ~SNORT_PCRE_RAWBYTES; - -- pcre_data->options |= HTTP_CONTENT(pcre_info->flags); -+ pcre_data->options |= HTTP_CONTENT(pcre2_info->flags); - - PcreCheckAnchored(pcre_data); - -@@ -584,10 +595,10 @@ static int ConvertPcreOption(SnortConfig - { - if (pcre_data->expression) - free(pcre_data->expression); -- if (pcre_data->pe) -- free(pcre_data->pe); -+ if (pcre_data->match_context) -+ pcre2MatchContextFree(pcre_data->match_context); - if (pcre_data->re) -- free(pcre_data->re); -+ pcre2CodeFree(pcre_data->re); - - free(pcre_data); - pcre_data = pcre_dup; ---- a/src/dynamic-plugins/sf_dynamic_engine.h -+++ b/src/dynamic-plugins/sf_dynamic_engine.h -@@ -139,11 +139,18 @@ typedef int (*DynamicDecompressFunc)(voi - - #define ENGINE_DATA_VERSION 10 - --typedef void *(*PCRECompileFunc)(const char *, int, const char **, int *, const unsigned char *); --typedef void *(*PCREStudyFunc)(struct _SnortConfig *, const void *, int, const char **); --typedef int (*PCREExecFunc)(const void *, const void *, const char *, int, int, int, int *, int); --typedef void (*PCRECapture)(struct _SnortConfig *, const void *, const void *); --typedef void(*PCREOvectorInfo)(int **, int *); -+typedef void *(*PCRE2CompileFunc)(const char *, int, int *, size_t *, void *); -+typedef void *(*PCRE2MatchContextCreate)(const void *); -+typedef int (*PCRE2JITCompileFunc)(struct _SnortConfig *, const void *, const void *, int); -+typedef int (*PCRE2OvectorSizeFunc)(void); -+typedef void *(*PCRE2MatchDataCreateFunc)(int, const void *); -+typedef unsigned int (*PCRE2GetOvectorCountFunc)(const void *); -+typedef void *(*PCRE2GetOvectorPointerFunc)(const void *); -+typedef int (*PCRE2MatchRealFunc)(const void *, const char *, int, int, int, const void *, const void *); -+typedef void (*PCRE2MatchDataFreeFunc)(const void *); -+typedef void (*PCRE2MatchContextFreeFunc)(const void *); -+typedef void (*PCRE2CodeFreeFunc)(const void *); -+typedef void (*PCRE2Capture)(struct _SnortConfig *, const void *); - - typedef struct _DynamicEngineData - { -@@ -175,9 +182,15 @@ typedef struct _DynamicEngineData - char **debugMsgFile; - int *debugMsgLine; - -- PCRECompileFunc pcreCompile; -- PCREStudyFunc pcreStudy; -- PCREExecFunc pcreExec; -+ PCRE2CompileFunc pcre2Compile; -+ PCRE2MatchContextCreate pcre2MatchContextCreate; -+ PCRE2JITCompileFunc pcre2JITCompile; -+ PCRE2OvectorSizeFunc pcre2OvectorSize; -+ PCRE2MatchDataCreateFunc pcre2MatchDataCreate; -+ PCRE2GetOvectorCountFunc pcre2GetOvectorCount; -+ PCRE2GetOvectorPointerFunc pcre2GetOvectorPointer; -+ PCRE2MatchRealFunc pcre2MatchReal; -+ PCRE2MatchDataFreeFunc pcre2MatchDataFree; - SfUnfold sfUnfold; - SfBase64Decode sfbase64decode; - GetAltDetectFunc GetAltDetect; -@@ -190,8 +203,7 @@ typedef struct _DynamicEngineData - - UnregisterBit flowbitUnregister; - -- PCRECapture pcreCapture; -- PCREOvectorInfo pcreOvectorInfo; -+ PCRE2Capture pcre2Capture; - - GetHttpBufferFunc getHttpBuffer; - DynamicDecompressInitFunc decompressInit; ---- a/src/dynamic-plugins/sf_dynamic_plugins.c -+++ b/src/dynamic-plugins/sf_dynamic_plugins.c -@@ -92,7 +92,8 @@ typedef HANDLE PluginHandle; - #include "sf_iph.h" - #include "fpdetect.h" - #include "sfportobject.h" --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "parser.h" - #include "event_wrapper.h" - #include "util.h" -@@ -1250,46 +1251,35 @@ void DynamicGetRuleData(void *p, const R - } - } - --void *pcreCompile(const char *pattern, int options, const char **errptr, int *erroffset, const unsigned char *tableptr) -+void *pcre2Compile(const char *pattern, int options, int *errorcode, size_t *erroffset, void *compilecontect) - { - options &= ~SNORT_PCRE_OVERRIDE_MATCH_LIMIT; -- return (void *)pcre_compile(pattern, options, errptr, erroffset, tableptr); -+ return (void *)pcre2_compile((PCRE2_SPTR)pattern, PCRE2_ZERO_TERMINATED, options, errorcode, (PCRE2_SIZE *)erroffset, (pcre2_compile_context *)compilecontect); - } - --void *pcreStudy(struct _SnortConfig *sc, const void *code, int options, const char **errptr) -+void *pcre2MatchContextCreate(const void *generalcontext) -+{ -+ return (void *)pcre2_match_context_create((pcre2_general_context *)generalcontext); -+} -+ -+int pcre2JITCompile(struct _SnortConfig *sc, const void *code, const void *matchcontext, int options) - { -- pcre_extra *extra_extra; - int snort_options = options & SNORT_PCRE_OVERRIDE_MATCH_LIMIT; -+ int errorcode; - -- extra_extra = pcre_study((const pcre*)code, 0, errptr); -+ errorcode = pcre2_jit_compile((pcre2_code*)code, PCRE2_JIT_COMPLETE); - -- if (extra_extra) -+ if (errorcode) - { - if ((ScPcreMatchLimitNewConf(sc) != -1) && !(snort_options & SNORT_PCRE_OVERRIDE_MATCH_LIMIT)) - { -- if (extra_extra->flags & PCRE_EXTRA_MATCH_LIMIT) -- { -- extra_extra->match_limit = ScPcreMatchLimitNewConf(sc); -- } -- else -- { -- extra_extra->flags |= PCRE_EXTRA_MATCH_LIMIT; -- extra_extra->match_limit = ScPcreMatchLimitNewConf(sc); -- } -+ pcre2_set_match_limit((pcre2_match_context*)matchcontext, ScPcreMatchLimitNewConf(sc)); - } - - #ifdef PCRE_EXTRA_MATCH_LIMIT_RECURSION - if ((ScPcreMatchLimitRecursionNewConf(sc) != -1) && !(snort_options & SNORT_PCRE_OVERRIDE_MATCH_LIMIT)) - { -- if (extra_extra->flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) -- { -- extra_extra->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -- } -- else -- { -- extra_extra->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; -- extra_extra->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -- } -+ pcre2_set_depth_limit((pcre2_match_context*)matchcontext, ScPcreMatchLimitRecursionNewConf(sc)); - } - #endif - } -@@ -1298,40 +1288,62 @@ void *pcreStudy(struct _SnortConfig *sc, - if (!(snort_options & SNORT_PCRE_OVERRIDE_MATCH_LIMIT) && - ((ScPcreMatchLimitNewConf(sc) != -1) || (ScPcreMatchLimitRecursionNewConf(sc) != -1))) - { -- extra_extra = (pcre_extra *)SnortAlloc(sizeof(pcre_extra)); - if (ScPcreMatchLimitNewConf(sc) != -1) - { -- extra_extra->flags |= PCRE_EXTRA_MATCH_LIMIT; -- extra_extra->match_limit = ScPcreMatchLimitNewConf(sc); -+ pcre2_set_match_limit((pcre2_match_context*)matchcontext, ScPcreMatchLimitNewConf(sc)); - } - - #ifdef PCRE_EXTRA_MATCH_LIMIT_RECURSION - if (ScPcreMatchLimitRecursionNewConf(sc) != -1) - { -- extra_extra->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; -- extra_extra->match_limit_recursion = ScPcreMatchLimitRecursionNewConf(sc); -+ pcre2_set_depth_limit((pcre2_match_context*)matchcontext, ScPcreMatchLimitRecursionNewConf(sc)); - } - #endif - } - } - -- return extra_extra; -+ return errorcode; -+} -+ -+int pcre2OvectorSize(void) -+{ -+ return snort_conf->pcre_ovector_size; -+} -+ -+void *pcre2MatchDataCreate(int size, const void *generalcontext) -+{ -+ return pcre2_match_data_create(size, (pcre2_general_context *)generalcontext); -+} -+ -+unsigned int pcre2GetOvectorCount(const void *match_data) -+{ -+ return pcre2_get_ovector_count((pcre2_match_data *)match_data); -+} -+ -+void *pcre2GetOvectorPointer(const void *match_data) -+{ -+ return pcre2_get_ovector_pointer((pcre2_match_data *)match_data); -+} -+ -+int pcre2MatchReal(const void *code, const char *subj, -+ int len, int start, int options, const void *matchdata, const void *matchcontext) -+{ -+ return pcre2_match((const pcre2_code *)code, (PCRE2_SPTR)subj, len, start, options, (pcre2_match_data *)matchdata, (pcre2_match_context *)matchcontext); -+} -+ -+void pcre2MatchDataFree(const void *match_data) -+{ -+ pcre2_match_data_free((pcre2_match_data *)match_data); - } - --/* pcreOvectorInfo -- * -- * Get the Ovector configuration for PCRE from the snort.conf -- */ --void pcreOvectorInfo(int **ovector, int *ovector_size) -+void pcre2MatchContextFree(const void *code) - { -- *ovector = snort_conf->pcre_ovector; -- *ovector_size = snort_conf->pcre_ovector_size; -+ pcre2_match_context_free((pcre2_match_context *)code); - } - --int pcreExec(const void *code, const void *extra, const char *subj, -- int len, int start, int options, int *ovec, int ovecsize) -+void pcre2CodeFree(const void *code) - { -- return pcre_exec((const pcre *)code, (const pcre_extra *)extra, subj, len, start, options, ovec, ovecsize); -+ pcre2_code_free((pcre2_code *)code); - } - - static int setFlowId(const void* p, uint32_t id) -@@ -1415,17 +1427,22 @@ int InitDynamicEngines(char *dynamic_rul - engineData.debugMsgLine = &no_line; - #endif - -- engineData.pcreStudy = &pcreStudy; -- engineData.pcreCompile = &pcreCompile; -- engineData.pcreExec = &pcreExec; -+ engineData.pcre2JITCompile = &pcre2JITCompile; -+ engineData.pcre2MatchContextCreate = &pcre2MatchContextCreate; -+ engineData.pcre2Compile = &pcre2Compile; -+ engineData.pcre2OvectorSize = &pcre2OvectorSize; -+ engineData.pcre2MatchDataCreate = &pcre2MatchDataCreate; -+ engineData.pcre2GetOvectorCount = &pcre2GetOvectorCount; -+ engineData.pcre2GetOvectorPointer = &pcre2GetOvectorPointer; -+ engineData.pcre2MatchReal = &pcre2MatchReal; -+ engineData.pcre2MatchDataFree = &pcre2MatchDataFree; - - engineData.allocRuleData = &DynamicRuleDataAlloc; - engineData.freeRuleData = &DynamicRuleDataFree; - - engineData.flowbitUnregister = &DynamicFlowbitUnregister; - -- engineData.pcreCapture = &PcreCapture; -- engineData.pcreOvectorInfo = &pcreOvectorInfo; -+ engineData.pcre2Capture = &Pcre2Capture; - engineData.getHttpBuffer = getHttpBuffer; - - engineData.decompressInit = &DynamicDecompressInit; ---- a/src/dynamic-plugins/sf_engine/examples/3036.c -+++ b/src/dynamic-plugins/sf_engine/examples/3036.c -@@ -104,7 +104,7 @@ static RuleOption rule3036option3 = - { &rule3036byte_test3 } - }; - // pcre:"^.{27}", relative; --static PCREInfo rule3036pcre4 = -+static PCRE2Info rule3036pcre4 = - { - "^.{27}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -166,7 +166,7 @@ static RuleOption rule3036option6 = - { &rule3036byte_jump6 } - }; - // pcre:"^.{4}", relative; --static PCREInfo rule3036pcre7 = -+static PCRE2Info rule3036pcre7 = - { - "^.{4}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -325,13 +325,13 @@ int rule3036eval(void *p) { - // byte_test:size 1, value 128, operator &, offset 6, relative; - if (byteTest(p, rule3036options[3]->option_u.byte, cursor_normal) > 0) { - // pcre:"^.{27}", relative; -- if (pcreMatch(p, rule3036options[4]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3036options[4]->option_u.pcre2, &cursor_normal)) { - // content:"|01 00|", offset 37, depth 2, relative; - if (contentMatch(p, rule3036options[5]->option_u.content, &cursor_normal) > 0) { - // byte_jump:size 4, offset -7, relative, endian little; - if (byteJump(p, rule3036options[6]->option_u.byte, &cursor_normal) > 0) { - // pcre:"^.{4}", relative; -- if (pcreMatch(p, rule3036options[7]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3036options[7]->option_u.pcre2, &cursor_normal)) { - // content:"|00 00 00 00|", offset 16, depth 4, relative; - if (!(contentMatch(p, rule3036options[8]->option_u.content, &cursor_normal) > 0)) { - // byte_jump:size 4, offset 16, relative, endian little; ---- a/src/dynamic-plugins/sf_engine/examples/3052.c -+++ b/src/dynamic-plugins/sf_engine/examples/3052.c -@@ -93,7 +93,7 @@ static RuleOption rule3052option2 = - { &rule3052byte_test2 } - }; - // pcre:"^.{27}", relative; --static PCREInfo rule3052pcre3 = -+static PCRE2Info rule3052pcre3 = - { - "^.{27}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -155,7 +155,7 @@ static RuleOption rule3052option5 = - { &rule3052byte_jump5 } - }; - // pcre:"^.{4}", relative; --static PCREInfo rule3052pcre6 = -+static PCRE2Info rule3052pcre6 = - { - "^.{4}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -307,13 +307,13 @@ int rule3052eval(void *p) { - // byte_test:size 1, value 128, operator &, offset 6, relative; - if (byteTest(p, rule3052options[2]->option_u.byte, cursor_normal) > 0) { - // pcre:"^.{27}", relative; -- if (pcreMatch(p, rule3052options[3]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3052options[3]->option_u.pcre2, &cursor_normal)) { - // content:"|01 00|", offset 37, depth 2, relative; - if (contentMatch(p, rule3052options[4]->option_u.content, &cursor_normal) > 0) { - // byte_jump:size 4, offset -7, relative, endian little; - if (byteJump(p, rule3052options[5]->option_u.byte, &cursor_normal) > 0) { - // pcre:"^.{4}", relative; -- if (pcreMatch(p, rule3052options[6]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3052options[6]->option_u.pcre2, &cursor_normal)) { - // content:"|00 00 00 00|", offset 16, depth 4, relative; - if (!(contentMatch(p, rule3052options[7]->option_u.content, &cursor_normal) > 0)) { - // byte_jump:size 4, offset 16, relative, endian little; ---- a/src/dynamic-plugins/sf_engine/examples/3099.c -+++ b/src/dynamic-plugins/sf_engine/examples/3099.c -@@ -104,7 +104,7 @@ static RuleOption rule3099option3 = - { &rule3099byte_test3 } - }; - // pcre:"^.{27}", relative; --static PCREInfo rule3099pcre4 = -+static PCRE2Info rule3099pcre4 = - { - "^.{27}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -191,7 +191,7 @@ static RuleOption rule3099option7 = - { &rule3099byte_jump7 } - }; - // pcre:"^.{4}", relative; --static PCREInfo rule3099pcre8 = -+static PCRE2Info rule3099pcre8 = - { - "^.{4}", /* pattern */ - NULL, /* holder for compiled pattern */ -@@ -392,7 +392,7 @@ int rule3099eval(void *p) { - // byte_test:size 1, value 128, operator &, offset 6, relative; - if (!(byteTest(p, rule3099options[3]->option_u.byte, cursor_normal) > 0)) { - // pcre:"^.{27}", relative; -- if (pcreMatch(p, rule3099options[4]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3099options[4]->option_u.pcre2, &cursor_normal)) { - // content:"&|00|", offset 29, depth 2, relative; - if (contentMatch(p, rule3099options[5]->option_u.content, &cursor_normal) > 0) { - // content:"|5C|PIPE|5C 00|", offset 4, nocase, relative; -@@ -400,7 +400,7 @@ int rule3099eval(void *p) { - // byte_jump:size 2, offset -17, relative, endian little; - if (byteJump(p, rule3099options[7]->option_u.byte, &cursor_normal) > 0) { - // pcre:"^.{4}", relative; -- if (pcreMatch(p, rule3099options[8]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule3099options[8]->option_u.pcre2, &cursor_normal)) { - // content:"|05|", depth 1, relative; - if (contentMatch(p, rule3099options[9]->option_u.content, &cursor_normal) > 0) { - // byte_test:size 1, value 16, operator &, offset 3, relative; ---- a/src/dynamic-plugins/sf_engine/examples/36733.c -+++ b/src/dynamic-plugins/sf_engine/examples/36733.c -@@ -25,7 +25,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "sf_snort_packet.h" - #include "web-misc_base64_decode.h" -@@ -80,12 +81,12 @@ static RuleOption ruleAPACHEAUTHLDAPopti - }; - - // pcre:"/^Authorization:\s*Basic/mi"; --static PCREInfo ruleAPACHEAUTHLDAPpcre0 = -+static PCRE2Info ruleAPACHEAUTHLDAPpcre0 = - { - "^Authorization:\\s*Basic\\s+", /* pattern (now in snort content format) */ - 0, /* compiled expression */ - 0, /* compiled extra */ -- PCRE_CASELESS | PCRE_MULTILINE, /* compile flags */ -+ PCRE2_CASELESS | PCRE2_MULTILINE, /* compile flags */ - CONTENT_BUF_NORMALIZED, /* flags */ // XXX - need to add CONTENT_FAST_PATTERN support - 0 /* offset */ - }; -@@ -99,7 +100,7 @@ static RuleOption ruleAPACHEAUTHLDAPopti - }; - - // pcre:"/%[0-9]*\.?[0-9]*[:formatspecifiers:]/"; --static PCREInfo ruleAPACHEAUTHLDAPpcre1 = -+static PCRE2Info ruleAPACHEAUTHLDAPpcre1 = - { - // "%[-# +'I]*[0-9]*\\.?[0-9]*[qjzthdiouxefgcrslnp]", /* pattern (now in snort content format) */ // ZDNOTE - "%.+%.", /* regex. The above is technically more correct, but this is faster and good enough */ -@@ -191,7 +192,7 @@ static int ruleAPACHEAUTHLDAPeval(void * - - // manual pcre stuff - int result; -- int ovector[3]; // Needs to be a multiple of 3 -+ void *match_data; - - if(sp == NULL) - return RULE_NOMATCH; -@@ -221,7 +222,7 @@ static int ruleAPACHEAUTHLDAPeval(void * - //DEBUG_WRAP(printf("found content:\"Authorization:\" %p\n", cursor)); - - // pcre:"/^Authorization:\s*Basic\s+/mi" -- if(pcreMatch(p, ruleAPACHEAUTHLDAPoptions[2]->option_u.pcre, &cursor) <= 0) -+ if(pcre2Match(p, ruleAPACHEAUTHLDAPoptions[2]->option_u.pcre2, &cursor) <= 0) - return RULE_NOMATCH; - - //DEBUG_WRAP(printf("found pcre:\"/^Authorization:\\s*Basic\\s+/mi\" %p\n", cursor)); -@@ -238,14 +239,35 @@ static int ruleAPACHEAUTHLDAPeval(void * - - //DEBUG_WRAP(printf("Successfully base64 decoded (%s)(%d)\n", decodedbuf, decodedbytes)); - -+ match_data = pcre2MatchDataCreateWrapper(); -+ if (!match_data) -+ return RULE_NOMATCH; -+ - // Now run our regex on the base64 decoding to find an attack -- result = pcreExecWrapper(ruleAPACHEAUTHLDAPoptions[3]->option_u.pcre, -+ result = pcre2MatchWrapper(ruleAPACHEAUTHLDAPoptions[3]->option_u.pcre2, - (char *)decodedbuf, // subject string - decodedbytes, // subject length - 0, // start offset - 0, // options (handled at compile time) -- ovector, // ovector for storing result substrings -- sizeof(ovector)/sizeof(int)); // size of ovector -+ match_data); // size of ovector -+ -+ /* If ovector is required: -+ * 1. declare a size_t *ovector -+ * 2. after pcre2ExecWrapper... -+ * 3. ovector = pcre2GetOvectorPointer(match_data); -+ * 4. Use ovector as old implementation -+ * -+ * If required ovector_size: -+ * 1. declare a unsigned int ovector_size -+ * 2. after pcre2ExecWrapper... -+ * 3. ovector_size = pcre2GetOvectorCount(match_data); -+ * 4. User ovector_size as old implementation -+ * -+ * ALWAYS REMEMBER TO USE THE MATCH DATA CREATE AND FREE BEFORE -+ * EXEC WRAPPER -+ */ -+ -+ pcre2MatchDataFreeWrapper(match_data); - - //DEBUG_WRAP(printf("result = %d\n", result)); - ---- a/src/dynamic-plugins/sf_engine/examples/3682.c -+++ b/src/dynamic-plugins/sf_engine/examples/3682.c -@@ -9,7 +9,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "sf_snort_packet.h" - #include "detection_lib_meta.h" -@@ -103,12 +104,12 @@ static RuleOption rule3682option3 = - - /* pcre for sid 3682 */ - //pcre:"/Content-Type\x3A\s+audio\/(x-wav|mpeg|x-midi)/i"; --static PCREInfo rule3682pcre4 = -+static PCRE2Info rule3682pcre4 = - { - "Content-Type\\x3A\\s+audio\\/(x-wav|mpeg|x-midi)", /* expression */ - NULL, /* Holder for compiled expr */ - NULL, /* Holder for compiled expr extra flags */ -- PCRE_CASELESS, /* Compile Flags */ -+ PCRE2_CASELESS, /* Compile Flags */ - CONTENT_BUF_NORMALIZED, /* Flags */ - 0 /* offset */ - }; -@@ -148,12 +149,12 @@ static RuleOption rule3682option5 = - - /* pcre for sid 3682 */ - //pcre:"/filename=[\x22\x27]?.{1,221}\.(vbs|exe|scr|pif|bat)/i"; --static PCREInfo rule3682pcre6 = -+static PCRE2Info rule3682pcre6 = - { - "filename=[\\x22\\x27]?.{1,221}\\.(vbs|exe|scr|pif|bat)", /* expression */ - NULL, /* Holder for compiled expr */ - NULL, /* Holder for compiled expr extra flags */ -- PCRE_CASELESS, /* Compile Flags */ -+ PCRE2_CASELESS, /* Compile Flags */ - CONTENT_BUF_NORMALIZED, /* Flags */ - 0 /* offset */ - }; ---- a/src/dynamic-plugins/sf_engine/examples/bug31842.c -+++ b/src/dynamic-plugins/sf_engine/examples/bug31842.c -@@ -25,7 +25,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "sf_snort_packet.h" - -@@ -89,12 +90,12 @@ static RuleOption ruleSQUID_NTLM_AUTHopt - } - }; - --static PCREInfo ruleSQUID_NTLM_AUTHpcre = -+static PCRE2Info ruleSQUID_NTLM_AUTHpcre = - { - "^Proxy-Authorization:\\s*NTLM\\s+", /* pattern to search for */ - NULL, /* holder for compiled pattern */ - NULL, /* holder for compiled pattern flags */ -- PCRE_CASELESS | PCRE_DOTALL | PCRE_MULTILINE, /* compile flags */ -+ PCRE2_CASELESS | PCRE2_DOTALL | PCRE2_MULTILINE, /* compile flags */ - CONTENT_BUF_NORMALIZED, /* content flags */ - 0 /* offset */ - }; -@@ -336,7 +337,7 @@ int ruleSQUID_NTLM_AUTHeval(void *p) { - } - - /* call pcre match */ -- if (pcreMatch(p, ruleSQUID_NTLM_AUTHoptions[2]->option_u.pcre, &cursor) <= 0) { -+ if (pcre2Match(p, ruleSQUID_NTLM_AUTHoptions[2]->option_u.pcre2, &cursor) <= 0) { - return RULE_NOMATCH; - } - ---- a/src/dynamic-plugins/sf_engine/examples/bug35218.c -+++ b/src/dynamic-plugins/sf_engine/examples/bug35218.c -@@ -26,7 +26,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "sf_snort_packet.h" - -@@ -97,12 +98,12 @@ static RuleOption ruleEXCHANGE_BASE64_DE - } - }; - --static PCREInfo ruleEXCHANGE_BASE64_DECODEpcre0 = -+static PCRE2Info ruleEXCHANGE_BASE64_DECODEpcre0 = - { - "^Content-Transfer-Encoding:\\s*base64\\s*$", /* pattern to search for */ - NULL, /* compiled_expr */ - 0, /* compiled_extra */ -- PCRE_CASELESS | PCRE_MULTILINE, /* compile_flags */ -+ PCRE2_CASELESS | PCRE2_MULTILINE, /* compile_flags */ - CONTENT_BUF_RAW, /* flags: must include a CONTENT_BUF_X */ - 0 /* offset */ - }; -@@ -119,12 +120,12 @@ static RuleOption ruleEXCHANGE_BASE64_DE - /* Second PCRE just like above but with CONTENT_RELATIVE so we can find - additional base64 sections if they exist. - */ --static PCREInfo ruleEXCHANGE_BASE64_DECODEpcre1 = -+static PCRE2Info ruleEXCHANGE_BASE64_DECODEpcre1 = - { - "^Content-Transfer-Encoding:\\s*base64\\s*$", /* pattern to search for */ - NULL, /* compiled_expr */ - 0, /* compiled_extra */ -- PCRE_CASELESS | PCRE_MULTILINE, /* compile_flags */ -+ PCRE2_CASELESS | PCRE2_MULTILINE, /* compile_flags */ - CONTENT_BUF_RAW | CONTENT_RELATIVE, /* flags: must include a CONTENT_BUF_X */ - 0 /* offset */ - }; -@@ -214,7 +215,7 @@ int ruleEXCHANGE_BASE64_DECODEeval(void - } - - /* call pcre match */ -- if (pcreMatch(sp, ruleEXCHANGE_BASE64_DECODEoptions[2]->option_u.pcre, &cursor_normal) <= 0) { -+ if (pcre2Match(sp, ruleEXCHANGE_BASE64_DECODEoptions[2]->option_u.pcre2, &cursor_normal) <= 0) { - return RULE_NOMATCH; - } - -@@ -286,7 +287,7 @@ int ruleEXCHANGE_BASE64_DECODEeval(void - - } else { /* !in_base64_content */ - // Find the next base64 content the easy way -- if(pcreMatch(sp, ruleEXCHANGE_BASE64_DECODEoptions[3]->option_u.pcre, &cursor_normal) <= 0) -+ if(pcre2Match(sp, ruleEXCHANGE_BASE64_DECODEoptions[3]->option_u.pcre2, &cursor_normal) <= 0) - return RULE_NOMATCH; - - // Another base64 section was found, set up for another loop ---- a/src/dynamic-plugins/sf_engine/examples/sid1902.c -+++ b/src/dynamic-plugins/sf_engine/examples/sid1902.c -@@ -12,7 +12,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "sf_snort_packet.h" - -@@ -59,12 +60,12 @@ static RuleOption rule1902option1 = - { &rule1902content1 } - }; - // pcre:"\sLSUB\s[^\n]*?\s\{", dotall, multiline, nocase; --static PCREInfo rule1902pcre2 = -+static PCRE2Info rule1902pcre2 = - { - "\\sLSUB\\s[^\\n]*?\\s\\{", /* pattern */ - NULL, /* holder for compiled pattern */ - NULL, /* holder for compiled pattern flags */ -- PCRE_CASELESS|PCRE_DOTALL|PCRE_MULTILINE, /* compile flags */ -+ PCRE2_CASELESS|PCRE2_DOTALL|PCRE2_MULTILINE, /* compile flags */ - CONTENT_BUF_NORMALIZED, /* content flags */ - 0 /* offset */ - }; -@@ -177,7 +178,7 @@ int rule1902eval(void *p) { - // content:"LSUB", nocase; - if (contentMatch(p, rule1902options[1]->option_u.content, &cursor_normal) > 0) { - // pcre:"\sLSUB\s[^\n]*?\s\{", dotall, multiline, nocase; -- if (pcreMatch(p, rule1902options[2]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule1902options[2]->option_u.pcre2, &cursor_normal)) { - // byte_test:size 5, value 256, operator >, relative, representation dec; - if (byteTest(p, rule1902options[3]->option_u.byte, cursor_normal) > 0) { - return RULE_MATCH; ---- a/src/dynamic-plugins/sf_engine/examples/sid2389.c -+++ b/src/dynamic-plugins/sf_engine/examples/sid2389.c -@@ -6,7 +6,8 @@ - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_snort_plugin_api.h" - #include "detection_lib_meta.h" - -@@ -113,12 +114,12 @@ static RuleOption option2 = - { &content1 } - }; - --static PCREInfo pcre1 = -+static PCRE2Info pcre1 = - { /* PCRE */ - "^RNTO\\s[^\\n]{100}", /* expression */ - NULL, /* Holder for compiled expr */ - NULL, /* Holder for compiled expr extra flags */ -- PCRE_DOTALL | PCRE_MULTILINE | PCRE_CASELESS, /* Compile Flags */ -+ PCRE2_DOTALL | PCRE2_MULTILINE | PCRE2_CASELESS, /* Compile Flags */ - CONTENT_BUF_NORMALIZED, /* Flags */ - 0 /* offset */ - }; -@@ -178,7 +179,7 @@ int sid2389Eval(void *p) - if (contentMatch(p, sid2389.options[1]->option_u.content, &norm_cur)>0) - { - /* Not relative to norm cursor */ -- if (pcreMatch(p, sid2389.options[2]->option_u.pcre, NULL)) -+ if (pcre2Match(p, sid2389.options[2]->option_u.pcre2, NULL)) - { - return RULE_MATCH; - } ---- a/src/dynamic-plugins/sf_engine/examples/sid9999.c -+++ b/src/dynamic-plugins/sf_engine/examples/sid9999.c -@@ -159,7 +159,7 @@ static CursorInfo loopCursor = - /* these don't get structures... lets hope this works :) */ - /* pcre for sid 9999 */ - // pcre:"^[rbg]XYZ", relative; --static PCREInfo rule9999pcre7 = -+static PCRE2Info rule9999pcre7 = - { - "^[rbg]XYZ", /* pattern */ - NULL, /* holder for compiled pattern */ ---- a/src/dynamic-plugins/sf_engine/examples/web-client_test.c -+++ b/src/dynamic-plugins/sf_engine/examples/web-client_test.c -@@ -85,12 +85,12 @@ static RuleOption rule64111option1 = - }; - - // pcre:"IIS 7\x2e5 Detailed Error - 404\x2e0 - Not Found", nocase; --static PCREInfo rule64111pcre2 = -+static PCRE2Info rule64111pcre2 = - { - "IIS 7\\x2e5 Detailed Error - 404\\x2e0 - Not Found", /* pattern */ - NULL, /* holder for compiled pattern */ - NULL, /* holder for compiled pattern flags */ -- PCRE_CASELESS, /* compile flags */ -+ PCRE2_CASELESS, /* compile flags */ - CONTENT_BUF_NORMALIZED, /* content flags */ - 0 /* offset */ - }; -@@ -256,12 +256,12 @@ static RuleOption rule64222option2 = - }; - - // pcre:"SignUrl=[^\x26\s]*[\x22\x27\x28\x29\x3C\x3E]", payload uri, nocase; --static PCREInfo rule64222pcre3 = -+static PCRE2Info rule64222pcre3 = - { - "SignUrl=[^\\x26\\s]*[\\x22\\x27\\x28\\x29\\x3C\\x3E]", /* pattern */ - NULL, /* holder for compiled pattern */ - NULL, /* holder for compiled pattern flags */ -- PCRE_CASELESS, /* compile flags */ -+ PCRE2_CASELESS, /* compile flags */ - CONTENT_BUF_URI, /* content flags */ - 0 /* offset */ - }; -@@ -428,12 +428,12 @@ static RuleOption rule64333option2 = - }; - - // pcre:"SignUrl=[^\\x26\\s]*[\\x22\\x27\\x28\\x29\\x3C\\x3E]", payload uri, nocase; --static PCREInfo rule64333pcre3 = -+static PCRE2Info rule64333pcre3 = - { - "SignUrl=[^\\\\x26\\\\s]*[\\\\x22\\\\x27\\\\x28\\\\x29\\\\x3C\\\\x3E]", /* pattern */ - NULL, /* holder for compiled pattern */ - NULL, /* holder for compiled pattern flags */ -- PCRE_CASELESS, /* compile flags */ -+ PCRE2_CASELESS, /* compile flags */ - CONTENT_BUF_URI, /* content flags */ - 0 /* offset */ - }; -@@ -550,7 +550,7 @@ int rule64111eval(void *p) { - // content:"IIS 7.5 Detailed Error - 404.0 - Not Found", depth 0, nocase, fast_pattern; - if (contentMatch(p, rule64111options[1]->option_u.content, &cursor_normal) > 0) { - // pcre:"IIS 7\x2e5 Detailed Error - 404\x2e0 - Not Found", nocase; -- if (pcreMatch(p, rule64111options[2]->option_u.pcre, &cursor_normal)) { -+ if (pcre2Match(p, rule64111options[2]->option_u.pcre2, &cursor_normal)) { - return RULE_MATCH; - } - } -@@ -576,7 +576,7 @@ int rule64222eval(void *p) { - // content:"SignUrl=", payload http_uri, depth 0, nocase; - if (contentMatch(p, rule64222options[2]->option_u.content, &cursor_http_uri) > 0) { - // pcre:"SignUrl=[^\x26\s]*[\x22\x27\x28\x29\x3C\x3E]", payload uri, nocase; -- if (pcreMatch(p, rule64222options[3]->option_u.pcre, &cursor_uri)) { -+ if (pcre2Match(p, rule64222options[3]->option_u.pcre2, &cursor_uri)) { - return RULE_MATCH; - } - } -@@ -603,7 +603,7 @@ int rule64333eval(void *p) { - // content:"SignUrl=", payload http_uri, depth 0, nocase; - if (contentMatch(p, rule64333options[2]->option_u.content, &cursor_http_uri) > 0) { - // pcre:"SignUrl=[^\\x26\\s]*[\\x22\\x27\\x28\\x29\\x3C\\x3E]", payload uri, nocase; -- if (pcreMatch(p, rule64333options[3]->option_u.pcre, &cursor_uri)) { -+ if (pcre2Match(p, rule64333options[3]->option_u.pcre2, &cursor_uri)) { - return RULE_MATCH; - } - } ---- a/src/dynamic-plugins/sf_engine/sf_snort_detection_engine.c -+++ b/src/dynamic-plugins/sf_engine/sf_snort_detection_engine.c -@@ -899,11 +899,11 @@ int RegisterOneRule(struct _SnortConfig - break; - case OPTION_TYPE_PCRE: - { -- PCREInfo *pcre = option->option_u.pcre; -+ PCRE2Info *pcre2 = option->option_u.pcre2; - -- if (pcre->compiled_expr == NULL) -+ if (pcre2->compiled_expr == NULL) - { -- if (PCRESetup(sc, rule, pcre)) -+ if (PCRE2Setup(sc, rule, pcre2)) - { - rule->initialized = 0; - FreeOneRule(rule); -@@ -1120,18 +1120,18 @@ static void FreeOneRule(void *data) - - case OPTION_TYPE_PCRE: - { -- PCREInfo *pcre = option->option_u.pcre; -+ PCRE2Info *pcre2 = option->option_u.pcre2; - -- if (pcre->compiled_expr != NULL) -+ if (pcre2->match_context != NULL) - { -- free(pcre->compiled_expr); -- pcre->compiled_expr = NULL; -+ pcre2_match_context_free(pcre2->match_context); -+ pcre2->match_context = NULL; - } - -- if (pcre->compiled_extra != NULL) -+ if (pcre2->compiled_expr != NULL) - { -- free(pcre->compiled_extra); -- pcre->compiled_extra = NULL; -+ pcre2_code_free(pcre2->compiled_expr); -+ pcre2->compiled_expr = NULL; - } - } - ---- a/src/dynamic-plugins/sf_engine/sf_snort_detection_engine.h -+++ b/src/dynamic-plugins/sf_engine/sf_snort_detection_engine.h -@@ -30,7 +30,7 @@ - #define SF_SNORT_DETECTION_ENGINE__H - - int BoyerContentSetup(Rule *rule, ContentInfo *content); --int PCRESetup(struct _SnortConfig *sc, Rule *rule, PCREInfo *pcreInfo); -+int PCRE2Setup(struct _SnortConfig *sc, Rule *rule, PCRE2Info *pcre2Info); - int ValidateHeaderCheck(Rule *rule, HdrOptCheck *optData); - void ContentSetup(void); - int ByteExtractInitialize(Rule *rule, ByteExtract *extractData); ---- a/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.c -+++ b/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.c -@@ -640,7 +640,7 @@ int isRelativeOption(RuleOption *option) - relative = option->option_u.content->flags & CONTENT_RELATIVE; - break; - case OPTION_TYPE_PCRE: -- relative = option->option_u.pcre->flags & CONTENT_RELATIVE; -+ relative = option->option_u.pcre2->flags & CONTENT_RELATIVE; - break; - case OPTION_TYPE_FLOWBIT: - /* Never relative */ -@@ -716,7 +716,7 @@ int ruleMatchInternal(SFSnortPacket *p, - int32_t origOffset = 0; - uint32_t origDepth = 0; - int continueLoop = 1; -- PCREInfo *thisPCREInfo = NULL; -+ PCRE2Info *thisPCREInfo = NULL; - - if (cursor) - startCursor = thisCursor = *cursor; -@@ -736,7 +736,7 @@ int ruleMatchInternal(SFSnortPacket *p, - origOffset = thisContentInfo->offset; - break; - case OPTION_TYPE_PCRE: -- thisPCREInfo = rule->options[optIndex]->option_u.pcre; -+ thisPCREInfo = rule->options[optIndex]->option_u.pcre2; - origFlags = thisPCREInfo->flags; - origOffset = thisPCREInfo->offset; - break; -@@ -760,8 +760,8 @@ int ruleMatchInternal(SFSnortPacket *p, - notFlag = rule->options[optIndex]->option_u.protectedContent->flags & NOT_FLAG; - break; - case OPTION_TYPE_PCRE: -- retVal = pcreMatch(p, rule->options[optIndex]->option_u.pcre, &thisCursor); -- notFlag = rule->options[optIndex]->option_u.pcre->flags & NOT_FLAG; -+ retVal = pcre2Match(p, rule->options[optIndex]->option_u.pcre2, &thisCursor); -+ notFlag = rule->options[optIndex]->option_u.pcre2->flags & NOT_FLAG; - break; - case OPTION_TYPE_FLOWBIT: - retVal = processFlowbits(p, rule->options[optIndex]->option_u.flowBit); ---- a/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.h -+++ b/src/dynamic-plugins/sf_engine/sf_snort_plugin_api.h -@@ -30,7 +30,8 @@ - #ifndef SF_SNORT_PLUGIN_API_H_ - #define SF_SNORT_PLUGIN_API_H_ - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "stdio.h" - - #ifndef WIN32 -@@ -211,26 +212,26 @@ typedef struct _CursorInfo - } CursorInfo; - - /* --pcre.h provides flags: -+pcre2.h provides flags: - --PCRE_CASELESS --PCRE_MULTILINE --PCRE_DOTALL --PCRE_EXTENDED --PCRE_ANCHORED --PCRE_DOLLAR_ENDONLY --PCRE_UNGREEDY -+PCRE2_CASELESS -+PCRE2_MULTILINE -+PCRE2_DOTALL -+PCRE2_EXTENDED -+PCRE2_ANCHORED -+PCRE2_DOLLAR_ENDONLY -+PCRE2_UNGREEDY - */ - --typedef struct _PCREInfo -+typedef struct _PCRE2Info - { - char *expr; - void *compiled_expr; -- void *compiled_extra; -+ void *match_context; - uint32_t compile_flags; - uint32_t flags; /* must include a CONTENT_BUF_X */ - int32_t offset; --} PCREInfo; -+} PCRE2Info; - - #define FLOWBIT_SET 0x01 - #define FLOWBIT_UNSET 0x02 -@@ -393,7 +394,7 @@ typedef struct _RuleOption - ContentInfo *content; - ProtectedContentInfo *protectedContent; - CursorInfo *cursor; -- PCREInfo *pcre; -+ PCRE2Info *pcre2; - FlowBitsInfo *flowBit; - ByteData *byte; - ByteExtract *byteExtract; -@@ -482,7 +483,7 @@ ENGINE_LINKAGE int byteTest(void *p, Byt - ENGINE_LINKAGE int byteMath(void *p, ByteData *byteData, const uint8_t *cursor); - /* Same as extractValue plus setCursor */ - ENGINE_LINKAGE int byteJump(void *p, ByteData *byteData, const uint8_t **cursor); --ENGINE_LINKAGE int pcreMatch(void *p, PCREInfo* pcre, const uint8_t **cursor); -+ENGINE_LINKAGE int pcre2Match(void *p, PCRE2Info* pcre2, const uint8_t **cursor); - ENGINE_LINKAGE int detectAsn1(void *p, Asn1Context* asn1, const uint8_t *cursor); - ENGINE_LINKAGE int checkHdrOpt(void *p, HdrOptCheck *optData); - ENGINE_LINKAGE int loopEval(void *p, LoopInfo *loop, const uint8_t **cursor); -@@ -506,8 +507,12 @@ ENGINE_LINKAGE void detectFlagDisable(SF - ENGINE_LINKAGE int getAltDetect(uint8_t **bufPtr, uint16_t *altLenPtr); - ENGINE_LINKAGE void setAltDetect(uint8_t *buf, uint16_t altLen); - --ENGINE_LINKAGE int pcreExecWrapper(const PCREInfo *pcre_info, const char *buf, int len, int start_offset, -- int options, int *ovector, int ovecsize); -+ENGINE_LINKAGE void *pcre2MatchDataCreateWrapper(void); -+ENGINE_LINKAGE void pcre2MatchDataFreeWrapper(void *match_data); -+ENGINE_LINKAGE int pcre2GetOvectorCountWrapper(void *match_data); -+ENGINE_LINKAGE void *pcre2GetOvectorPointerWrapper(void *match_data); -+ENGINE_LINKAGE int pcre2MatchWrapper(const PCRE2Info *pcre2_info, const char *buf, int len, int start_offset, -+ int options, const void *match_data); - - static inline int invertMatchResult(int retVal) - { ---- a/src/dynamic-plugins/sf_engine/sf_snort_plugin_pcre.c -+++ b/src/dynamic-plugins/sf_engine/sf_snort_plugin_pcre.c -@@ -25,13 +25,14 @@ - * Date: 5/2005 - * - * -- * PCRE operations for dynamic rule engine -+ * PCRE2 operations for dynamic rule engine - */ - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "sf_types.h" - #include "snort_debug.h" - #include "sf_dynamic_define.h" -@@ -43,32 +44,38 @@ - /* Need access to the snort-isms that were passed to the engine */ - extern int checkCursorSimple(const uint8_t *cursor, int flags, const uint8_t *start, const uint8_t *end, int offset); - extern int checkCursorInternal(void *p, int flags, int offset, const uint8_t *cursor); --static int pcreMatchInternal(void *, PCREInfo*, const uint8_t **); -+static int pcreMatchInternal(void *, PCRE2Info*, const uint8_t **); - --int PCRESetup(struct _SnortConfig *sc, Rule *rule, PCREInfo *pcreInfo) -+int PCRE2Setup(struct _SnortConfig *sc, Rule *rule, PCRE2Info *pcre2Info) - { -- const char *error; -- int erroffset; -+ size_t erroffset; -+ int errorcode; - -- pcreInfo->compiled_expr = (void *)_ded.pcreCompile(pcreInfo->expr, -- pcreInfo->compile_flags, -- &error, -+ pcre2Info->compiled_expr = (void *)_ded.pcre2Compile(pcre2Info->expr, -+ pcre2Info->compile_flags, -+ &errorcode, - &erroffset, - NULL); - -- if (!pcreInfo->compiled_expr) -+ if (!pcre2Info->compiled_expr) - { - /* error doing compilation. */ -- _ded.errMsg("Failed to compile PCRE in dynamic rule [%d:%d]\n", -+ _ded.errMsg("Failed to compile PCRE2 in dynamic rule [%d:%d]\n", - rule->info.genID, rule->info.sigID); - return -1; - } -- else -+ -+ pcre2Info->match_context = _ded.pcre2MatchContextCreate(NULL); -+ if (!pcre2Info->match_context) - { -- pcreInfo->compiled_extra = (void *)_ded.pcreStudy(sc, pcreInfo->compiled_expr, pcreInfo->compile_flags, &error); -+ /* error doing match context */ -+ _ded.errMsg("Failed to allocate mem for PCRE2 match context [%d:%d]\n", -+ rule->info.genID, rule->info.sigID); -+ return -1; - } - -- if (error) -+ errorcode = _ded.pcre2JITCompile(sc, pcre2Info->compiled_expr, pcre2Info->match_context, pcre2Info->compile_flags); -+ if (errorcode) - { - /* error doing study. */ - _ded.errMsg("Failed to study PCRE in dynamic rule [%d:%d]\n", -@@ -76,51 +83,82 @@ int PCRESetup(struct _SnortConfig *sc, R - return -1; - } - -- _ded.pcreCapture(sc, pcreInfo->compiled_expr, pcreInfo->compiled_extra); -+ _ded.pcre2Capture(sc, pcre2Info->compiled_expr); - - - return 0; - } - - /** -- * * Wrapper for pcre_exec to expose ovector. -+ * * Wrapper for pcre2_match_data_create to run match_data. -+ * */ -+ENGINE_LINKAGE void *pcre2MatchDataCreateWrapper(void) -+{ -+ return _ded.pcre2MatchDataCreate(_ded.pcre2OvectorSize(), NULL); -+} -+ -+/** -+ * * Wrapper for pcre2_match_data_free to run match_data. -+ * */ -+ENGINE_LINKAGE void pcre2MatchDataFreeWrapper(void *match_data) -+{ -+ _ded.pcre2MatchDataFree(match_data); -+} -+ -+/** -+ * * Wrapper for pcre2_get_ovector_count to run match_data. -+ * */ -+ENGINE_LINKAGE int pcre2GetOvectorCountWrapper(void *match_data) -+{ -+ return _ded.pcre2GetOvectorCount(match_data); -+} -+ -+/** -+ * * Wrapper for pcre2_get_ovector_pointer to run match_data. - * */ --ENGINE_LINKAGE int pcreExecWrapper(const PCREInfo *pcre_info, const char *buf, int len, int start_offset, -- int options, int *ovector, int ovecsize) -+ENGINE_LINKAGE void *pcre2GetOvectorPointerWrapper(void *match_data) -+{ -+ return _ded.pcre2GetOvectorPointer(match_data); -+} -+ -+/** -+ * * Wrapper for pcre2_match to run match_data. -+ * */ -+ENGINE_LINKAGE int pcre2ExecWrapper(const PCRE2Info *pcre2_info, const char *buf, int len, int start_offset, -+ int options, const void *match_data) - { - int result; - int matched; - -- if(pcre_info == NULL -+ if(pcre2_info == NULL - || buf == NULL - || len <= 0 - || start_offset < 0 - || start_offset >= len -- || ovector == NULL) -+ || match_data == NULL) - { - return 0; - } - -- result = _ded.pcreExec(pcre_info->compiled_expr, /* result of pcre_compile() */ -- pcre_info->compiled_extra, /* result of pcre_study() */ -+ result = _ded.pcre2MatchReal(pcre2_info->compiled_expr, /* result of pcre_compile() */ - buf, /* the subject string */ - len, /* the length of the subject string */ - start_offset, /* start at offset 0 in the subject */ - options, /* options(handled at compile time */ -- ovector, /* vector for substring information */ -- ovecsize); /* number of elements in the vector */ -+ match_data, /* match_data for results */ -+ pcre2_info->match_context); /* match_context for JIT limits */ - - if(result >= 0) - { - matched = 1; - } -- else if(result == PCRE_ERROR_NOMATCH) -+ else if(result == PCRE2_ERROR_NOMATCH) - { - matched = 0; - } - else - { -- DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre_exec error : %d \n", result);); -+ DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre_match error : %d \n", result);); - return 0; - } - -@@ -128,7 +166,7 @@ ENGINE_LINKAGE int pcreExecWrapper(const - } - - /* -- * we need to specify the vector length for our pcre_exec call. we only care -+ * we need to specify the vector length for our pcre2_match call. we only care - * about the first vector, which if the match is successful will include the - * offset to the end of the full pattern match. If we decide to store other - * matches, make *SURE* that this is a multiple of 3 as pcre requires it. -@@ -136,7 +174,7 @@ ENGINE_LINKAGE int pcreExecWrapper(const - #define SNORT_PCRE_OVECTOR_SIZE 3 - - /** -- * Perform a search of the PCRE data. -+ * Perform a search of the PCRE2 data. - * - * @param pcre_data structure that options and patterns are passed in - * @param buf buffer to search -@@ -148,21 +186,18 @@ ENGINE_LINKAGE int pcreExecWrapper(const - * - * @return 1 when we find the string, 0 when we don't (unless we've been passed a flag to invert) - */ --static int pcre_test(const PCREInfo *pcre_info, -+static int pcre2_test(const PCRE2Info *pcre2_info, - const char *buf, - int len, - int start_offset, - int *found_offset) - { -+ void *match_data; -+ size_t *ovector; - int matched; - int result; - -- int *ovector; -- int ovector_size; -- -- _ded.pcreOvectorInfo(&ovector, &ovector_size); -- -- if(pcre_info == NULL -+ if(pcre2_info == NULL - || buf == NULL - || len <= 0 - || start_offset < 0 -@@ -174,50 +209,59 @@ static int pcre_test(const PCREInfo *pcr - return 0; - } - -+ match_data = _ded.pcre2MatchDataCreate(_ded.pcre2OvectorSize(), NULL); -+ if (!match_data) { -+ DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, -+ "Returning 0 because match data failed!\n");); -+ return 0; -+ } -+ - *found_offset = -1; - -- result = _ded.pcreExec(pcre_info->compiled_expr,/* result of pcre_compile() */ -- pcre_info->compiled_extra, /* result of pcre_study() */ -+ result = _ded.pcre2MatchReal(pcre2_info->compiled_expr,/* result of pcre_compile() */ - buf, /* the subject string */ - len, /* the length of the subject string */ - start_offset, /* start at offset 0 in the subject */ - 0, /* options(handled at compile time */ -- ovector, /* vector for substring information */ -- ovector_size); /* number of elements in the vector */ -+ match_data, /* match_data vector */ -+ pcre2_info->match_context); /* match context for limits */ - - if(result >= 0) - { - matched = 1; - } -- else if(result == PCRE_ERROR_NOMATCH) -+ else if(result == PCRE2_ERROR_NOMATCH) - { - matched = 0; - } - else - { -- DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre_exec error : %d \n", result);); -+ _ded.pcre2MatchDataFree(match_data); -+ DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, "pcre_match error : %d \n", result);); - return 0; - } - - if (found_offset) - { -+ ovector = _ded.pcre2GetOvectorPointer(match_data); - *found_offset = ovector[1]; - DEBUG_WRAP(DebugMessage(DEBUG_PATTERN_MATCH, - "Setting buffer and found_offset: %p %d\n", - buf, found_offset);); - } - -+ _ded.pcre2MatchDataFree(match_data); - return matched; - } - --ENGINE_LINKAGE int pcreMatch(void *p, PCREInfo* pcre_info, const uint8_t **cursor) -+ENGINE_LINKAGE int pcre2Match(void *p, PCRE2Info* pcre_info, const uint8_t **cursor) - { - if (pcre_info->flags & NOT_FLAG) - return invertMatchResult(pcreMatchInternal(p, pcre_info, cursor)); - return pcreMatchInternal(p, pcre_info, cursor); - } - --static int pcreMatchInternal(void *p, PCREInfo* pcre_info, const uint8_t **cursor) -+static int pcreMatchInternal(void *p, PCRE2Info* pcre_info, const uint8_t **cursor) - { - const uint8_t *buffer_start; - int buffer_len; -@@ -295,7 +339,7 @@ static int pcreMatchInternal(void *p, PC - } - - -- pcre_found = pcre_test(pcre_info, (const char *)buffer_start, buffer_len, pcre_info->offset, &pcre_offset); -+ pcre_found = pcre2_test(pcre_info, (const char *)buffer_start, buffer_len, pcre_info->offset, &pcre_offset); - - if (pcre_found) - { ---- a/src/dynamic-preprocessors/appid/luaDetectorApi.c -+++ b/src/dynamic-preprocessors/appid/luaDetectorApi.c -@@ -38,7 +38,8 @@ - #include "luaDetectorModule.h" - #include "luaDetectorApi.h" - #include "luaDetectorFlowApi.h" --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - #include "httpCommon.h" - #include "sf_multi_mpse.h" - #include "fw_appid.h" -@@ -54,7 +55,6 @@ - #include "detector_cip.h" - - #define DETECTOR "Detector" --#define OVECCOUNT 30 /* should be a multiple of 3 */ - #define URL_LIST_STEP_SIZE 5000 - - typedef enum { -@@ -1355,7 +1355,7 @@ static int Detector_getPacketDir( - return 1; - } - --/**Perform a pcre match with grouping. A simple regular expression match with no grouping -+/**Perform a pcre2 match with grouping. A simple regular expression match with no grouping - * can also be performed. - * - * @param Lua_State* - Lua state variable. -@@ -1371,12 +1371,15 @@ static int Detector_getPcreGroups( - Detector *detector; - char *pattern; - unsigned int offset; -- pcre *re; -- int ovector[OVECCOUNT]; -- const char *error; -- int erroffset; -+ pcre2_code *re; -+ pcre2_match_data *match_data; -+ PCRE2_UCHAR error[128]; -+ int errorcode; -+ PCRE2_SIZE erroffset; - int rc, i; - DetectorUserData *detectorUserData = checkDetectorUserData(L, 1); -+ unsigned int oveccount; -+ size_t *ovector; - - pattern = (char *)lua_tostring(L, 2); - offset = lua_tonumber(L, 3); /*offset can be zero, no check necessary. */ -@@ -1390,49 +1393,56 @@ static int Detector_getPcreGroups( - - { - /*compile the regular expression pattern, and handle errors */ -- re = pcre_compile( -- pattern, /*the pattern */ -- PCRE_DOTALL, /*default options - dot matches everything including newline */ -- &error, /*for error message */ -- &erroffset, /*for error offset */ -- NULL); /*use default character tables */ -+ re = pcre2_compile( -+ (PCRE2_SPTR)pattern, /*the pattern */ -+ PCRE2_ZERO_TERMINATED, /*zero terminated string*/ -+ PCRE2_DOTALL, /*default options - dot matches everything including newline */ -+ &errorcode, /*for error message */ -+ &erroffset, /*for error offset */ -+ NULL); /*use default character tables */ - - if (re == NULL) - { -- _dpd.errMsg("PCRE compilation failed at offset %d: %s\n",erroffset, error); -+ pcre2_get_error_message(errorcode, error, 128); -+ _dpd.errMsg("PCRE2 compilation failed at offset %zu: %s\n",erroffset, error); - return 0; - } - -+ match_data = pcre2_match_data_create_from_pattern(re, NULL); -+ if (!match_data) { -+ _dpd.errMsg("PCRE2 failed to alloc data for match data\n"); -+ return 0; -+ } - - /*pattern match against the subject string. */ -- rc = pcre_exec( -+ rc = pcre2_match( - re, /*compiled pattern */ -- NULL, /*no extra data */ -- (char *)detector->validateParams.data, /*subject string */ -- detector->validateParams.size, /*length of the subject */ -- offset, /*offset 0 */ -+ (PCRE2_SPTR)detector->validateParams.data, /*subject string */ -+ (PCRE2_SIZE)detector->validateParams.size, /*length of the subject */ -+ (PCRE2_SIZE)offset, /*offset 0 */ - 0, /*default options */ -- ovector, /*output vector for substring information */ -- OVECCOUNT); /*number of elements in the output vector */ -- -+ match_data, /*output vector for substring information */ -+ NULL); /*number of elements in the output vector */ - - if (rc < 0) - { - /*Matching failed: clubbing PCRE_ERROR_NOMATCH with other errors. */ -- pcre_free(re); -+ pcre2_match_data_free(match_data); -+ pcre2_code_free(re); - return 0; - } - - /*Match succeded */ - - /*printf("\nMatch succeeded at offset %d", ovector[0]); */ -- pcre_free(re); - -+ oveccount = pcre2_get_ovector_count(match_data); -+ ovector = pcre2_get_ovector_pointer(match_data); - - if (rc == 0) - { - /*overflow of matches */ -- rc = OVECCOUNT/3; -+ rc = oveccount/3; - /*printf("ovector only has room for %d captured substrings", rc - 1); */ - _dpd.errMsg("ovector only has room for %d captured substrings\n",rc - 1); - } -@@ -1447,6 +1457,9 @@ static int Detector_getPcreGroups( - lua_pushlstring(L, (char *)detector->validateParams.data + ovector[2*i], ovector[2*i+1] - ovector[2*i]); - } - -+ pcre2_match_data_free(match_data); -+ pcre2_code_free(re); -+ - return rc; - } - ---- a/src/dynamic-preprocessors/imap/snort_imap.h -+++ b/src/dynamic-preprocessors/imap/snort_imap.h -@@ -38,7 +38,8 @@ - - /* Includes ***************************************************************/ - --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - - #include "sf_snort_packet.h" - #include "imap_config.h" -@@ -216,8 +217,7 @@ typedef struct _IMAPMimeBoundary - - typedef struct _IMAPPcre - { -- pcre *re; -- pcre_extra *pe; -+ pcre2_code *re; - - } IMAPPcre; - ---- a/src/dynamic-preprocessors/pop/snort_pop.h -+++ b/src/dynamic-preprocessors/pop/snort_pop.h -@@ -38,7 +38,8 @@ - - /* Includes ***************************************************************/ - --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - - #include "sf_snort_packet.h" - #include "pop_config.h" ---- a/src/dynamic-preprocessors/smtp/snort_smtp.h -+++ b/src/dynamic-preprocessors/smtp/snort_smtp.h -@@ -39,7 +39,8 @@ - - /* Includes ***************************************************************/ - --#include -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include - - #include "sf_snort_packet.h" - #include "ssl.h" ---- a/src/snort.c -+++ b/src/snort.c -@@ -4449,9 +4449,6 @@ void SnortConfFree(SnortConfig *sc) - - OtnxMatchDataFree(sc->omd); - -- if (sc->pcre_ovector != NULL) -- free(sc->pcre_ovector); -- - if ( sc->event_queue_config ) - EventQueueConfigFree(sc->event_queue_config); - ---- a/src/snort.h -+++ b/src/snort.h -@@ -826,7 +826,6 @@ typedef struct _SnortConfig - long int tagged_packet_limit; /* config tagged_packet_limit */ - long int pcre_match_limit; /* config pcre_match_limit */ - long int pcre_match_limit_recursion; /* config pcre_match_limit_recursion */ -- int *pcre_ovector; - int pcre_ovector_size; - - #ifdef PERF_PROFILING ---- a/src/util.c -+++ b/src/util.c -@@ -78,7 +78,8 @@ static struct mallinfo mi; - #include "plugbase.h" - #include "sf_types.h" - #include "sflsq.h" --#include "pcre.h" -+#define PCRE2_CODE_UNIT_WIDTH 8 -+#include "pcre2.h" - #include "mpse.h" - #include "ppm.h" - #include "active.h" -@@ -175,7 +176,7 @@ double CalcPct(uint64_t cnt, uint64_t to - int DisplayBanner(void) - { - const char * info; -- const char * pcre_ver; -+ PCRE2_UCHAR buffer[32]; - const char * zlib_ver; - - info = getenv("HOSTTYPE"); -@@ -184,7 +185,7 @@ int DisplayBanner(void) - info=""; - } - -- pcre_ver = pcre_version(); -+ pcre2_config(PCRE2_CONFIG_VERSION, buffer); - zlib_ver = zlib_version; - - LogMessage("\n"); -@@ -204,7 +205,7 @@ int DisplayBanner(void) - #ifdef HAVE_PCAP_LIB_VERSION - LogMessage(" Using %s\n", pcap_lib_version()); - #endif -- LogMessage(" Using PCRE version: %s\n", pcre_ver); -+ LogMessage(" Using PCRE2 version: %s\n", buffer); - LogMessage(" Using ZLIB version: %s\n", zlib_ver); - LogMessage("\n"); - From 60d784c6353a48c6723731d6b5eb2920f8f4d2d6 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Tue, 2 Jan 2024 17:12:02 -0600 Subject: [PATCH 049/126] libdaq: remove package Replaced with libdaq3. Signed-off-by: W. Michael Petullo --- libs/libdaq/Makefile | 68 ----------------------- libs/libdaq/patches/001-compile.patch | 18 ------ libs/libdaq/patches/100-musl-compat.patch | 42 -------------- 3 files changed, 128 deletions(-) delete mode 100644 libs/libdaq/Makefile delete mode 100644 libs/libdaq/patches/001-compile.patch delete mode 100644 libs/libdaq/patches/100-musl-compat.patch diff --git a/libs/libdaq/Makefile b/libs/libdaq/Makefile deleted file mode 100644 index b4bd7d8e2..000000000 --- a/libs/libdaq/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# -# Copyright (C) 2012-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libdaq -PKG_VERSION:=2.2.2 -PKG_RELEASE:=3 - -PKG_SOURCE_URL:=https://www.snort.org/downloads/snortplus/ -PKG_SOURCE:=daq-$(PKG_VERSION).tar.gz -PKG_HASH:=7cd818cabb1ad35360e83076e54775f07165ee71407dc672d147e27d3cd37f7b -PKG_BUILD_DIR:=$(BUILD_DIR)/daq-$(PKG_VERSION) - -PKG_LICENSE:=GPL-2.0 -PKG_MAINTAINER:=W. Michael Petullo - -PKG_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/nls.mk - -define Package/libdaq - SECTION:=libs - CATEGORY:=Libraries - TITLE:=DAQ library - URL:=$(PKG_SOURCE_URL) - DEPENDS:=+libdnet +libpcap -endef - -define Package/libdaq/description - Data Acquisition library for packet I/O. -endef - -CONFIGURE_ARGS+= \ - --disable-static \ - --disable-nfq-module \ - --with-dnet-includes="$(STAGING_DIR)/usr/include" \ - --with-dnet-libraries="$(STAGING_DIR)/usr/lib" \ - --with-libpcap-includes="$(STAGING_DIR)/usr/include" \ - --with-libpcap-libraries="$(STAGING_DIR)/usr/lib" \ - -define Build/InstallDev - $(INSTALL_DIR) $(STAGING_DIR)/usr/include/daq2 - $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(STAGING_DIR)/usr/include/daq2/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/daq2 - $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib* $(STAGING_DIR)/usr/lib/daq2/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/lib/daq2/daq - $(CP) $(PKG_INSTALL_DIR)/usr/lib/daq/* $(STAGING_DIR)/usr/lib/daq2/daq/ - $(INSTALL_DIR) $(STAGING_DIR)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/daq-modules-config $(STAGING_DIR)/usr/bin/ - $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(STAGING_DIR)/usr/bin/daq-modules-config - $(INSTALL_DIR) $(2)/bin - $(LN) ../../usr/bin/daq-modules-config $(2)/bin/daq-modules-config -endef - -define Package/libdaq/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ - $(INSTALL_DIR) $(1)/usr/lib/daq - $(CP) $(PKG_INSTALL_DIR)/usr/lib/daq/*.so* $(1)/usr/lib/daq/ -endef - -$(eval $(call BuildPackage,libdaq)) diff --git a/libs/libdaq/patches/001-compile.patch b/libs/libdaq/patches/001-compile.patch deleted file mode 100644 index fce2b0230..000000000 --- a/libs/libdaq/patches/001-compile.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/configure -+++ b/configure -@@ -13244,10 +13244,11 @@ if ${daq_cv_libpcap_version_1x+:} false; - else - - if test "$cross_compiling" = yes; then : -- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 --$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} --as_fn_error $? "cannot run test program while cross compiling --See \`config.log' for more details" "$LINENO" 5; } -+# { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+#as_fn_error $? "cannot run test program while cross compiling -+#See \`config.log' for more details" "$LINENO" 5; } -+ echo " No cross compiling test." - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ diff --git a/libs/libdaq/patches/100-musl-compat.patch b/libs/libdaq/patches/100-musl-compat.patch deleted file mode 100644 index c510564c4..000000000 --- a/libs/libdaq/patches/100-musl-compat.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/os-daq-modules/daq_ipfw.c -+++ b/os-daq-modules/daq_ipfw.c -@@ -23,10 +23,10 @@ - #include - #include - #include -+#include - - #include - #include --#include - - #include - #include ---- a/os-daq-modules/daq_ipq.c -+++ b/os-daq-modules/daq_ipq.c -@@ -24,10 +24,10 @@ - #include - #include - #include -+#include - - #include - #include --#include - - #include - ---- a/os-daq-modules/daq_nfq.c -+++ b/os-daq-modules/daq_nfq.c -@@ -24,10 +24,10 @@ - #include - #include - #include -+#include - - #include - #include --#include - - #include - From ce684797e67d79fcef93ca0ecec58a757e51e94a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 3 Jan 2024 15:15:11 +0800 Subject: [PATCH 050/126] v2raya: Update to 2.2.4.6 Signed-off-by: Tianling Shen --- net/v2raya/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/v2raya/Makefile b/net/v2raya/Makefile index a47d533a0..5f4f9615b 100644 --- a/net/v2raya/Makefile +++ b/net/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=2.2.4.3 +PKG_VERSION:=2.2.4.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:=8ebb1790ac57b795a03a13f830d316206040627486bd204158b04917a8c817b7 +PKG_HASH:=22285b2fdf321d68993b38ad738f4af210920757d7944691a78e151abd99cb3a 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:=187b498b8b5fdac765309c9ae23efb1ccd74e01d713682c44b4aa7689c99017c + HASH:=09109442abac13801b7b82433fccbb769657b1d292ac4820af179c297e845135 endef define Build/Prepare From 6316772b3d317a3420cfd5fc586da9f2b7e7af80 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 3 Jan 2024 15:15:54 +0800 Subject: [PATCH 051/126] v2ray-geodata: Update to latest versin Signed-off-by: Tianling Shen --- net/v2ray-geodata/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/net/v2ray-geodata/Makefile b/net/v2ray-geodata/Makefile index 144bc218b..53f8ef44b 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:=202312071808 +GEOIP_VER:=202312210040 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:=1c8d8bd5e8966a115d2ba16739660ef8ea1ebbb812fec4f87c699df479721652 + HASH:=cddbc8f41234b0c98019f0781191878c5ad71a27259d5204628e9bde27bdc04c endef -GEOSITE_VER:=20231212122459 +GEOSITE_VER:=20231219144426 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:=954adf9b4e999839073715566ab5df3f2177ad97741ce78dcea9b0795ef30614 + HASH:=6c95f95a40ae33ba49da554c3a9b48a62b8eefe43607b92229ed61f78e48f7c2 endef -GEOSITE_IRAN_VER:=202312110026 +GEOSITE_IRAN_VER:=202312180027 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:=0f5a1c31c0b905d6619d5b917a1031defb17f5a556e604327d9bc49ee3de962f + HASH:=4240f701951777c4799749d3718efd46ddabef83b4b28d5b2bb5cd281f525e10 endef define Package/v2ray-geodata/template From 37a77ffaf5105c31ee35b009691fa0b8a1c6a64a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 3 Jan 2024 15:15:20 +0800 Subject: [PATCH 052/126] dnsproxy: Update to 0.61.1 Signed-off-by: Tianling Shen --- net/dnsproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/dnsproxy/Makefile b/net/dnsproxy/Makefile index 93e7582d4..ee4afc1e6 100644 --- a/net/dnsproxy/Makefile +++ b/net/dnsproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsproxy -PKG_VERSION:=0.61.0 +PKG_VERSION:=0.61.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0b75b8d8139992e77df39492d41ca7060553f80a13d7e0436f3d8e1616146b92 +PKG_HASH:=803af1704f8970e55a76e5af840f1fca0867624af7ef21d15e665a9f292244e8 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=Apache-2.0 From 4f31101fbfbf5efb9774884f386fcfd8669f48c0 Mon Sep 17 00:00:00 2001 From: Carsten Schuette Date: Tue, 7 Nov 2023 08:28:21 +0000 Subject: [PATCH 053/126] libsodium: Update to 1.0.19 and fix patches Also add TAR_OPTIONS and TAR_CMD. Unfortunately, latest version of libsodium extracts to an additional libsodium-latest subfolder, which is unneccessary and removed by these options. Signed-off-by: Carsten Schuette --- libs/libsodium/Makefile | 9 +++++--- .../patches/001-revert-f5076db5f8ef27.patch | 22 +++++++++---------- .../100-minimal-build-with-ed25519-core.patch | 20 ++++++++--------- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/libs/libsodium/Makefile b/libs/libsodium/Makefile index d0589dca4..9c207f89b 100644 --- a/libs/libsodium/Makefile +++ b/libs/libsodium/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libsodium -PKG_VERSION:=1.0.18 -PKG_RELEASE:=4 +PKG_VERSION:=1.0.19 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://download.libsodium.org/libsodium/releases \ https://github.com/jedisct1/libsodium/releases/download/$(PKG_VERSION) -PKG_HASH:=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1 +PKG_HASH:=018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea PKG_MAINTAINER:=Damiano Renfer PKG_LICENSE:=ISC @@ -27,6 +27,9 @@ PKG_BUILD_PARALLEL:=1 include $(INCLUDE_DIR)/package.mk +TAR_OPTIONS+= --strip-components 1 +TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS) + define Package/libsodium SECTION:=libs CATEGORY:=Libraries diff --git a/libs/libsodium/patches/001-revert-f5076db5f8ef27.patch b/libs/libsodium/patches/001-revert-f5076db5f8ef27.patch index 76fd5cfa3..c88ef108b 100644 --- a/libs/libsodium/patches/001-revert-f5076db5f8ef27.patch +++ b/libs/libsodium/patches/001-revert-f5076db5f8ef27.patch @@ -1,6 +1,6 @@ --- a/src/libsodium/Makefile.am +++ b/src/libsodium/Makefile.am -@@ -59,6 +59,7 @@ libsodium_la_SOURCES = \ +@@ -73,6 +73,7 @@ libsodium_la_SOURCES = \ crypto_scalarmult/curve25519/ref10/x25519_ref10.h \ crypto_scalarmult/curve25519/scalarmult_curve25519.c \ crypto_scalarmult/curve25519/scalarmult_curve25519.h \ @@ -8,7 +8,7 @@ crypto_secretbox/crypto_secretbox.c \ crypto_secretbox/crypto_secretbox_easy.c \ crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c \ -@@ -160,7 +161,6 @@ libsodium_la_SOURCES += \ +@@ -173,7 +174,6 @@ libsodium_la_SOURCES += \ crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h \ crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c \ crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c \ @@ -18,7 +18,7 @@ crypto_shorthash/siphash24/shorthash_siphashx24.c \ --- a/src/libsodium/include/sodium.h +++ b/src/libsodium/include/sodium.h -@@ -33,6 +33,7 @@ +@@ -39,6 +39,7 @@ #include "sodium/crypto_pwhash_argon2i.h" #include "sodium/crypto_scalarmult.h" #include "sodium/crypto_scalarmult_curve25519.h" @@ -26,11 +26,11 @@ #include "sodium/crypto_secretbox.h" #include "sodium/crypto_secretbox_xsalsa20poly1305.h" #include "sodium/crypto_secretstream_xchacha20poly1305.h" -@@ -57,7 +58,6 @@ - # include "sodium/crypto_box_curve25519xchacha20poly1305.h" - # include "sodium/crypto_core_ed25519.h" - # include "sodium/crypto_core_ristretto255.h" --# include "sodium/crypto_scalarmult_ed25519.h" - # include "sodium/crypto_scalarmult_ristretto255.h" - # include "sodium/crypto_secretbox_xchacha20poly1305.h" - # include "sodium/crypto_pwhash_scryptsalsa208sha256.h" +@@ -64,7 +65,6 @@ + #include "sodium/crypto_core_ed25519.h" + #include "sodium/crypto_core_ristretto255.h" + #include "sodium/crypto_pwhash_scryptsalsa208sha256.h" +-#include "sodium/crypto_scalarmult_ed25519.h" + #include "sodium/crypto_scalarmult_ristretto255.h" + #include "sodium/crypto_secretbox_xchacha20poly1305.h" + #include "sodium/crypto_stream_salsa2012.h" diff --git a/libs/libsodium/patches/100-minimal-build-with-ed25519-core.patch b/libs/libsodium/patches/100-minimal-build-with-ed25519-core.patch index 99d780958..7e92ffe82 100644 --- a/libs/libsodium/patches/100-minimal-build-with-ed25519-core.patch +++ b/libs/libsodium/patches/100-minimal-build-with-ed25519-core.patch @@ -1,6 +1,6 @@ --- a/src/libsodium/Makefile.am +++ b/src/libsodium/Makefile.am -@@ -12,6 +12,7 @@ libsodium_la_SOURCES = \ +@@ -23,6 +23,7 @@ libsodium_la_SOURCES = \ crypto_box/crypto_box_easy.c \ crypto_box/crypto_box_seal.c \ crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c \ @@ -8,7 +8,7 @@ crypto_core/ed25519/ref10/ed25519_ref10.c \ crypto_core/hchacha20/core_hchacha20.c \ crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c \ -@@ -152,7 +153,6 @@ if !MINIMAL +@@ -165,7 +166,6 @@ if !MINIMAL libsodium_la_SOURCES += \ crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.c \ crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.c \ @@ -18,19 +18,19 @@ crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h \ --- a/src/libsodium/include/sodium.h +++ b/src/libsodium/include/sodium.h -@@ -14,6 +14,7 @@ +@@ -16,6 +16,7 @@ #include "sodium/crypto_auth_hmacsha512256.h" #include "sodium/crypto_box.h" #include "sodium/crypto_box_curve25519xsalsa20poly1305.h" +#include "sodium/crypto_core_ed25519.h" - #include "sodium/crypto_core_hsalsa20.h" #include "sodium/crypto_core_hchacha20.h" + #include "sodium/crypto_core_hsalsa20.h" #include "sodium/crypto_core_salsa20.h" -@@ -56,7 +57,6 @@ +@@ -62,7 +63,6 @@ #ifndef SODIUM_LIBRARY_MINIMAL - # include "sodium/crypto_box_curve25519xchacha20poly1305.h" --# include "sodium/crypto_core_ed25519.h" - # include "sodium/crypto_core_ristretto255.h" - # include "sodium/crypto_scalarmult_ristretto255.h" - # include "sodium/crypto_secretbox_xchacha20poly1305.h" + #include "sodium/crypto_box_curve25519xchacha20poly1305.h" +-#include "sodium/crypto_core_ed25519.h" + #include "sodium/crypto_core_ristretto255.h" + #include "sodium/crypto_pwhash_scryptsalsa208sha256.h" + #include "sodium/crypto_scalarmult_ristretto255.h" From ed5e79644dbf5668558f28c980b2f10c52e8bce4 Mon Sep 17 00:00:00 2001 From: Moritz Warning Date: Mon, 1 Jan 2024 16:37:10 +0100 Subject: [PATCH 054/126] dhtd: update to 1.0.1 Signed-off-by: Moritz Warning --- net/dhtd/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/dhtd/Makefile b/net/dhtd/Makefile index 75609b09d..8f7c8c4d9 100644 --- a/net/dhtd/Makefile +++ b/net/dhtd/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dhtd -PKG_VERSION:=0.2.6 +PKG_VERSION:=1.0.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/mwarning/dhtd/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4d9d88dc9cb035742a86c451c6bd40a7e44161709cd962933516ef6c5170683d +PKG_HASH:=7b1338059dfb9ed2300bb6b005d7cd677d99df8c74846eaed1b0cb97641b7297 PKG_MAINTAINER:=Moritz Warning PKG_LICENSE:=MIT From 1e0d7fd2ef29ce81d30ee61758325dc0a4b1aff8 Mon Sep 17 00:00:00 2001 From: Rani Hod Date: Sat, 23 Dec 2023 13:47:59 +0200 Subject: [PATCH 055/126] wifi_schedule: fix startup problems Fixes: e0d7181a6 Closes: #22973 Closes: #22988 1. Make the new `startup()` function in `/usr/bin/wifi_schedule.sh` respect the global `enabled` config flag; in particular, make no changes to `/etc/config/wireless` when wifi_schedule is disabled. 2. Make the new `/etc/init.d/wifi_schedule` service script executable. Signed-off-by: Rani Hod --- net/wifischedule/Makefile | 4 ++-- net/wifischedule/net/usr/bin/wifi_schedule.sh | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/net/wifischedule/Makefile b/net/wifischedule/Makefile index 98e748c4d..7dc28a9fb 100644 --- a/net/wifischedule/Makefile +++ b/net/wifischedule/Makefile @@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wifischedule PKG_VERSION:=1.0.5 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=PRPL PKG_MAINTAINER:=Nils Koenig @@ -54,7 +54,7 @@ define Package/wifischedule/install $(INSTALL_DIR) $(1)/etc/config $(INSTALL_DATA) ./net/etc/config/wifi_schedule $(1)/etc/config/wifi_schedule $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DATA) ./net/etc/init.d/wifi_schedule $(1)/etc/init.d/wifi_schedule + $(INSTALL_BIN) ./net/etc/init.d/wifi_schedule $(1)/etc/init.d/wifi_schedule endef define Package/wifischedule/postinst diff --git a/net/wifischedule/net/usr/bin/wifi_schedule.sh b/net/wifischedule/net/usr/bin/wifi_schedule.sh index 9787bc37d..9adadd212 100755 --- a/net/wifischedule/net/usr/bin/wifi_schedule.sh +++ b/net/wifischedule/net/usr/bin/wifi_schedule.sh @@ -277,14 +277,16 @@ _should_wifi_enabled() startup() { _log "startup" - local _enable_wifi=$(_should_wifi_enabled) - if [[ ${_enable_wifi} -eq 0 ]] - then - _log "enable wifi" - enable_wifi - else - _log "disable wifi" - disable_wifi + local global_enabled=$(_get_uci_value ${GLOBAL}.enabled) || _exit 1 + if [ ${global_enabled} -eq 1 ]; then + local _enable_wifi=$(_should_wifi_enabled) + if [ ${_enable_wifi} -eq 0 ]; then + _log "enable wifi" + enable_wifi + else + _log "disable wifi" + disable_wifi + fi fi } From cdcc6edc1380bfd9275a2a442fd029ac6b2b97a1 Mon Sep 17 00:00:00 2001 From: Hirokazu MORIKAWA Date: Thu, 4 Jan 2024 09:16:03 +0900 Subject: [PATCH 056/126] swig: bump to 4.2.0 SWIG-4.2.0 summary: Various template wrapping improvements: template template parameters, variadic templates, partially specialized templates, const template parameters and improved error checking instantiating templates. Improved decltype() support for expressions. C++14 auto without trailing return type and C++11 auto variables. Numerous C++ using declarations improvements. Numerous fixes for constructors, destructors and assignment operators: implicit, default and deleted and related non-assignable variable wrappers. STL: std::array and std::map improvements, std::string_view support added. Various C preprocessor improvements. Various issues fixed to do with architecture specific long type. Various Doxygen improvements. D1/Tango support removed. D2/Phobos is now the supported D version and SWIG now generates code which works with recent D2 releases. New Javascript generator targeting Node.js binary stable ABI Node-API. Octave 8.1 support added. PHP7 support removed, PHP8 is now the supported PHP version. Python STL container wrappers now use the Python Iterator Protocol. Python stable ABI support added. Python 3.12 support added. Ruby 3.2 and 3.3 support. Scilab 2023.* support added. Various minor enhancements for C#, Go, Guile, Javascript, Lua, Ocaml, Perl, PHP, R, Racket, Ruby, Scilab and Tcl. A number of deprecated features have been removed. Signed-off-by: Hirokazu MORIKAWA --- utils/swig/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/swig/Makefile b/utils/swig/Makefile index ecd128f52..ea8ac5471 100644 --- a/utils/swig/Makefile +++ b/utils/swig/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=swig -PKG_VERSION:=4.1.1 +PKG_VERSION:=4.2.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/$(PKG_NAME) -PKG_HASH:=2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b +PKG_HASH:=261ca2d7589e260762817b912c075831572b72ff2717942f75b3e51244829c97 PKG_MAINTAINER:=John Crispin , Hirokazu MORIKAWA PKG_LICENSE:=GPL-3.0-or-later From 5f16794b5f3bcce6c9303e490640dda5e6fad1eb Mon Sep 17 00:00:00 2001 From: Tiago Gaspar Date: Fri, 22 Dec 2023 01:43:38 +0000 Subject: [PATCH 057/126] nginx: update to 1.25.3 Update nginx to the latest version. Signed-off-by: Tiago Gaspar --- net/nginx/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/nginx/Makefile b/net/nginx/Makefile index 0accdd099..7509d9575 100644 --- a/net/nginx/Makefile +++ b/net/nginx/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nginx -PKG_VERSION:=1.25.2 -PKG_RELEASE:=2 +PKG_VERSION:=1.25.3 +PKG_RELEASE:=1 PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://nginx.org/download/ -PKG_HASH:=05dd6d9356d66a74e61035f2a42162f8c754c97cf1ba64e7a801ba158d6c0711 +PKG_HASH:=64c5b975ca287939e828303fa857d22f142b251f17808dfe41733512d9cded86 PKG_MAINTAINER:=Thomas Heil \ Christian Marangi From 17a9c3015e0c30a3642adfcdac0716e597f8ec4e Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Fri, 5 Jan 2024 11:10:42 +0200 Subject: [PATCH 058/126] mpfr: remove package, moved into main OpenWrt repo mpfr has been moved to the main OpenWrt source repository, as it is required by gbd 14. Remove it from the feeds repo. Signed-off-by: Hannu Nyman --- libs/mpfr/Makefile | 64 ---------------------------- libs/mpfr/patches/001-only-src.patch | 22 ---------- 2 files changed, 86 deletions(-) delete mode 100644 libs/mpfr/Makefile delete mode 100644 libs/mpfr/patches/001-only-src.patch diff --git a/libs/mpfr/Makefile b/libs/mpfr/Makefile deleted file mode 100644 index 39d6a035a..000000000 --- a/libs/mpfr/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# -# Copyright (C) 2023 Jeffery To -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=mpfr -PKG_VERSION:=4.2.1 -PKG_RELEASE:=1 - -PKG_SOURCE_URL:=@GNU/mpfr http://www.mpfr.org/mpfr-$(PKG_VERSION) -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz -PKG_HASH:=277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2 - -PKG_LICENSE:=LGPL-3.0-or-later -PKG_LICENSE_FILES:=COPYING.LESSER -PKG_MAINTAINER:=Jeffery To -PKG_CPE_ID:=cpe:/a:mpfr:gnu_mpfr - -PKG_BUILD_PARALLEL:=1 -PKG_FIXUP:=autoreconf -PKG_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/libmpfr - SECTION:=libs - CATEGORY:=Libraries - TITLE:=GNU MPFR library - URL:=https://www.mpfr.org/ - DEPENDS:=+libgmp - ABI_VERSION:=6 -endef - -define Package/libmpfr/description -MPFR is a portable library written in C for arbitrary precision -arithmetic on floating-point numbers. It is based on the GNU MP library. -It aims to provide a class of floating-point numbers with precise -semantics. -endef - -CONFIGURE_ARGS += \ - --enable-thread-safe - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/mpf* $(1)/usr/include/ - - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmpfr.{a,so*} $(1)/usr/lib/ - - $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mpfr.pc $(1)/usr/lib/pkgconfig/ -endef - -define Package/libmpfr/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmpfr.so.* $(1)/usr/lib/ -endef - -$(eval $(call BuildPackage,libmpfr)) diff --git a/libs/mpfr/patches/001-only-src.patch b/libs/mpfr/patches/001-only-src.patch deleted file mode 100644 index bd9e38aef..000000000 --- a/libs/mpfr/patches/001-only-src.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -38,7 +38,7 @@ AUTOMAKE_OPTIONS = gnu - # old Automake version. - ACLOCAL_AMFLAGS = -I m4 - --SUBDIRS = doc src tests tune tools/bench -+SUBDIRS = src - - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = mpfr.pc ---- a/Makefile.in -+++ b/Makefile.in -@@ -401,7 +401,7 @@ AUTOMAKE_OPTIONS = gnu - # libtoolize and in case some developer needs to switch back to an - # old Automake version. - ACLOCAL_AMFLAGS = -I m4 --SUBDIRS = doc src tests tune tools/bench -+SUBDIRS = src - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = mpfr.pc - nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LESSER NEWS TODO \ From e30f14d6909ca28148579b3e5df447309abcbce3 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Fri, 5 Jan 2024 13:46:41 -0600 Subject: [PATCH 059/126] nfdump: add dependency on libzstd Signed-off-by: W. Michael Petullo --- net/nfdump/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/nfdump/Makefile b/net/nfdump/Makefile index 4b981720d..7ec8852ce 100644 --- a/net/nfdump/Makefile +++ b/net/nfdump/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nfdump PKG_VERSION:=1.7.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/phaag/nfdump/tar.gz/v$(PKG_VERSION)? @@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk define Package/nfdump SECTION:=net CATEGORY:=Network - DEPENDS:= +flex +libbz2 +USE_MUSL:musl-fts +libatomic + DEPENDS:= +flex +libbz2 +USE_MUSL:musl-fts +libatomic +libzstd TITLE:= nfdump URL:=https://github.com/phaag/nfdump/ endef From 6d47f6635672934d8f1a8643955c332854f15604 Mon Sep 17 00:00:00 2001 From: David Andreoletti Date: Tue, 19 Dec 2023 11:33:05 +0800 Subject: [PATCH 060/126] shairport-sync: Enable pipe audio backend support UCI's shairport-sync's pipe conf block is defined but has no effect without shairport-sync's pipe support Rationale for pipe support: - On SBC with no sound card available (built-in or external) and without ALSA plugins support on OpenwRT (no package) to reroute a stream from shairport-sync's ALSA default output to a PulseAudio controlled Bluetooth sink , then pipe support is required to enable the following flow: - shairport-sync -> fifo pipe -> custom_binary_to_send_stream_to_pulse_audio_BT_sink - small bump in package size: diff: +746 bytes - shairport-sync-openssl_4.3.2-0_aarch64_generic.ipk without --pipe: 110806 bytes - shairport-sync-openssl_4.3.2-0_aarch64_generic.ipk with --pipe: 111552 bytes Signed-off-by: David Andreoletti --- sound/shairport-sync/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/shairport-sync/Makefile b/sound/shairport-sync/Makefile index 3d8786ab6..8a490b983 100644 --- a/sound/shairport-sync/Makefile +++ b/sound/shairport-sync/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shairport-sync PKG_VERSION:=4.3.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/mikebrady/shairport-sync/tar.gz/$(PKG_VERSION)? @@ -79,6 +79,7 @@ CONFIGURE_ARGS += \ --with-alsa \ --with-libdaemon \ --with-airplay-2 \ + --with-pipe \ --with-metadata ifeq ($(BUILD_VARIANT),openssl) From ce20f8d88be4fefaae15b06d18eef1639e992cd8 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Sat, 6 Jan 2024 19:53:30 +0100 Subject: [PATCH 061/126] travelmate: release 2.1.2-1 * fix a station scanning issue on single radio units (mainly a LuCI/JS issue) reported in the forum by multiple users Signed-off-by: Dirk Brenken --- net/travelmate/Makefile | 6 +++--- net/travelmate/files/README.md | 5 ++--- net/travelmate/files/travelmate.init | 22 ++++++++++++---------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile index ef0bf2779..93f405efd 100644 --- a/net/travelmate/Makefile +++ b/net/travelmate/Makefile @@ -1,13 +1,13 @@ # -# Copyright (c) 2016-2023 Dirk Brenken (dev@brenken.org) +# Copyright (c) 2016-2024 Dirk Brenken (dev@brenken.org) # This is free software, licensed under the GNU General Public License v3. # include $(TOPDIR)/rules.mk PKG_NAME:=travelmate -PKG_VERSION:=2.1.1 -PKG_RELEASE:=3 +PKG_VERSION:=2.1.2 +PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/travelmate/files/README.md b/net/travelmate/files/README.md index c089e668e..5b794cd55 100644 --- a/net/travelmate/files/README.md +++ b/net/travelmate/files/README.md @@ -43,9 +43,8 @@ To avoid these kind of deadlocks, travelmate will set all station interfaces to ## Installation & Usage * **Please note:** before you start with travelmate ... - * you should setup at least one Access Point, ideally on a separate radio, - * if you're updating from a former 1.x release, please use the '--force-reinstall --force-maintainer' options in opkg, - * and remove any existing travelmate related uplink stations in your wireless config manually + * setup at least one AP, ideally on a separate radio + * if you're using a single radio unit set the AP channel to 'auto' * download [travelmate](https://downloads.openwrt.org/snapshots/packages/x86_64/packages) * download [luci-app-travelmate](https://downloads.openwrt.org/snapshots/packages/x86_64/luci) * install both packages (_opkg install travelmate_, _opkg install luci-app-travelmate_) diff --git a/net/travelmate/files/travelmate.init b/net/travelmate/files/travelmate.init index be10d77f2..4a7dbf260 100755 --- a/net/travelmate/files/travelmate.init +++ b/net/travelmate/files/travelmate.init @@ -1,5 +1,5 @@ #!/bin/sh /etc/rc.common -# Copyright (c) 2016-2023 Dirk Brenken (dev@brenken.org) +# Copyright (c) 2016-2024 Dirk Brenken (dev@brenken.org) # This is free software, licensed under the GNU General Public License v3. # set (s)hellcheck exceptions @@ -15,6 +15,7 @@ extra_command "setup" "[] [] [] Setup the travelmate uplink trm_init="/etc/init.d/travelmate" trm_script="/usr/bin/travelmate.sh" trm_pidfile="/var/run/travelmate.pid" +trm_scanfile="/var/run/travelmate.scan" boot() { if [ -s "${trm_pidfile}" ]; then @@ -76,19 +77,20 @@ status_service() { } scan() { - local result scan_name radio="${1}" + local result radio="${1}" + : > "${trm_scanfile}" if [ -z "${radio}" ]; then - scan_name="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -q -l1 -e '@[@.up=true].interfaces[0].ifname')" + radio="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -q -l1 -e '@[@.up=true].interfaces[0].ifname')" fi - result="$(iwinfo "${radio:-${scan_name}}" scan 2>/dev/null | + result="$(iwinfo "${radio}" scan 2>/dev/null | awk 'BEGIN{FS="[[:space:]]"}/Address:/{var1=$NF}/ESSID:/{var2=""; for(i=12;i<=NF;i++)if(var2==""){var2=$i}else{var2=var2" "$i}}/Channel:/{var3=$NF}/Quality:/{split($NF,var0,"/")}/Encryption:/{var4=""; for(j=12;j<=NF;j++)if(var4==""){var4=$j}else{var4=var4" "$j};printf " %-11i%-10s%-35s%-20s%s\n",(var0[1]*100/var0[2]),var3,var2,var1,var4}' | sort -rn)" - printf "%s\n" "::: Available nearby uplinks on '${radio:-${scan_name}}'" - printf "%s\n" ":::" + printf "::: %s\n:::\n" "Available nearby uplinks on '${radio}'" if [ -n "${result}" ]; then + printf "%s\n" "${result}" > "${trm_scanfile}" printf "%-15s%-10s%-35s%-20s%s\n" " Strength" "Channel" "ESSID" "BSSID" "Encryption" printf "%s\n" " --------------------------------------------------------------------------------------" printf "%s\n" "${result}" @@ -162,13 +164,13 @@ setup() { } assoc() { - local result assoc_name radio="${1}" + local result radio="${1}" if [ -z "${radio}" ]; then - assoc_name="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -q -l1 -e '@[@.*.*.config.mode="ap"].interfaces[0].ifname')" + radio="$(ubus -S call network.wireless status 2>/dev/null | jsonfilter -q -l1 -e '@[@.*.*.config.mode="ap"].interfaces[0].ifname')" fi - result="$(iwinfo "${radio:-${assoc_name}}" assoc 2>/dev/null | awk '/^[A-Z0-9:]+/{printf " %s\n",$1}')" - printf "%s\n" "::: Associated wlan stations on '${radio:-${assoc_name}}'" + result="$(iwinfo "${radio}" assoc 2>/dev/null | awk '/^[A-Z0-9:]+/{printf " %s\n",$1}')" + printf "%s\n" "::: Associated wlan stations on '${radio}'" printf "%s\n" ":::" if [ -n "${result}" ]; then printf "%s\n" " MAC addresses" From e8dfc6abbee88f35887c66ec785b081252d6d07d Mon Sep 17 00:00:00 2001 From: Rucke Teg Date: Wed, 3 Jan 2024 23:11:05 +0100 Subject: [PATCH 062/126] openssh: bump to 9.6p1 Release notes: https://www.openssh.com/txt/release-9.6 Signed-off-by: Rucke Teg --- net/openssh/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/openssh/Makefile b/net/openssh/Makefile index ca9380f0b..2997ee56f 100644 --- a/net/openssh/Makefile +++ b/net/openssh/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssh -PKG_VERSION:=9.5p1 +PKG_VERSION:=9.6p1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \ https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ -PKG_HASH:=f026e7b79ba7fb540f75182af96dc8a8f1db395f922bbc9f6ca603672686086b +PKG_HASH:=910211c07255a8c5ad654391b40ee59800710dd8119dd5362de09385aa7a777c PKG_LICENSE:=BSD ISC PKG_LICENSE_FILES:=LICENCE From a79c49578ca136556bd10d8990aa52ef4eb0664b Mon Sep 17 00:00:00 2001 From: Sibren Vasse Date: Wed, 20 Dec 2023 17:01:50 +0100 Subject: [PATCH 063/126] openssh: fix build failure on powerpc_8548 https://github.com/openssh/openssh-portable/commit/1036d77b34a5fa15e56f516b81b9928006848cbd Signed-off-by: Sibren Vasse --- net/openssh/Makefile | 2 + .../010-better_fzero-call-detection.patch | 52 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 net/openssh/patches/010-better_fzero-call-detection.patch diff --git a/net/openssh/Makefile b/net/openssh/Makefile index 2997ee56f..4a6326fc9 100644 --- a/net/openssh/Makefile +++ b/net/openssh/Makefile @@ -20,6 +20,8 @@ PKG_LICENSE:=BSD ISC PKG_LICENSE_FILES:=LICENCE PKG_CPE_ID:=cpe:/a:openssh:openssh +#While bumping new version, make sure that it works without it, so it can be removed. +PKG_FIXUP:=autoreconf PKG_REMOVE_FILES:= PKG_CONFIG_DEPENDS := \ CONFIG_OPENSSH_LIBFIDO2 diff --git a/net/openssh/patches/010-better_fzero-call-detection.patch b/net/openssh/patches/010-better_fzero-call-detection.patch new file mode 100644 index 000000000..ab4b2dabd --- /dev/null +++ b/net/openssh/patches/010-better_fzero-call-detection.patch @@ -0,0 +1,52 @@ +From 1036d77b34a5fa15e56f516b81b9928006848cbd Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Fri, 22 Dec 2023 17:56:26 +1100 +Subject: [PATCH] better detection of broken -fzero-call-used-regs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +gcc 13.2.0 on ppc64le refuses to compile some function, including +cipher.c:compression_alg_list() with an error: + +> sorry, unimplemented: argument ‘used’ is not supportedcw +> for ‘-fzero-call-used-regs’ on this target + +This extends the autoconf will-it-work test with a similarly- +structured function that seems to catch this. + +Spotted/tested by Colin Watson; bz3645 +--- + m4/openssh.m4 | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- a/m4/openssh.m4 ++++ b/m4/openssh.m4 +@@ -20,18 +20,24 @@ char *f2(char *s, ...) { + va_end(args); + return strdup(ret); + } ++const char *f3(int s) { ++ return s ? "good" : "gooder"; ++} + int main(int argc, char **argv) { +- (void)argv; + char b[256], *cp; ++ const char *s; + /* Some math to catch -ftrapv problems in the toolchain */ + int i = 123 * argc, j = 456 + argc, k = 789 - argc; + float l = i * 2.1; + double m = l / 0.5; + long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; ++ (void)argv; + f(1); +- snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); ++ s = f3(f(2)); ++ snprintf(b, sizeof b, "%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); + if (write(1, b, 0) == -1) exit(0); +- cp = f2("%d %d %d %f %f %lld %lld\n", i,j,k,l,m,n,o); ++ cp = f2("%d %d %d %f %f %lld %lld %s\n", i,j,k,l,m,n,o,s); ++ if (write(1, cp, 0) == -1) exit(0); + free(cp); + /* + * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does From 7d16bff5a498dc7d65a6cedb9b89466baedff261 Mon Sep 17 00:00:00 2001 From: "W. Michael Petullo" Date: Fri, 5 Jan 2024 13:57:42 -0600 Subject: [PATCH 064/126] dovecot: update to 2.3.21 Signed-off-by: W. Michael Petullo --- mail/dovecot/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail/dovecot/Makefile b/mail/dovecot/Makefile index e23e1578e..23c8650a3 100644 --- a/mail/dovecot/Makefile +++ b/mail/dovecot/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dovecot -PKG_VERSION:=2.3.20 +PKG_VERSION:=2.3.21 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://dovecot.org/releases/2.3 -PKG_HASH:=caa832eb968148abdf35ee9d0f534b779fa732c0ce4a913d9ab8c3469b218552 +PKG_HASH:=05b11093a71c237c2ef309ad587510721cc93bbee6828251549fc1586c36502d PKG_MAINTAINER:=Lucian Cristian PKG_LICENSE:=LGPL-2.1-only MIT BSD-3-Clause From 92042a0826b7c0e9abf1219317e7224b9a64349e Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Tue, 2 Jan 2024 18:17:42 +0100 Subject: [PATCH 065/126] libs/xmlrpc-c: update to 1.59.02 Also remove the already upstreamed patch. Signed-off-by: Yegor Yefremov --- libs/xmlrpc-c/Makefile | 4 ++-- libs/xmlrpc-c/patches/001-fix-format-parameter.patch | 11 ----------- 2 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 libs/xmlrpc-c/patches/001-fix-format-parameter.patch diff --git a/libs/xmlrpc-c/Makefile b/libs/xmlrpc-c/Makefile index 107a1c1ed..758144a7f 100644 --- a/libs/xmlrpc-c/Makefile +++ b/libs/xmlrpc-c/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xmlrpc-c -PKG_VERSION:=1.54.06 +PKG_VERSION:=1.59.02 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION) -PKG_HASH:=ae6d0fb58f38f1536511360dc0081d3876c1f209d9eaa54357e2bacd690a5640 +PKG_HASH:=e25e45be1bae7e90f1de69be3d6838917ba3839b2f1c7d3fc0e6663d8622a5ab PKG_MAINTAINER:=Ted Hess PKG_LICENSE:=VARIOUS diff --git a/libs/xmlrpc-c/patches/001-fix-format-parameter.patch b/libs/xmlrpc-c/patches/001-fix-format-parameter.patch deleted file mode 100644 index 2986a965a..000000000 --- a/libs/xmlrpc-c/patches/001-fix-format-parameter.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/xmlrpc_server_abyss.c -+++ b/src/xmlrpc_server_abyss.c -@@ -780,7 +780,7 @@ createServer(xmlrpc_env * - ServerInit2(abyssServerP, &error); - - if (error) { -- xmlrpc_faultf(envP, error); -+ xmlrpc_faultf(envP, "%s", error); - xmlrpc_strfree(error); - } - } From aed7d9f63e8d72ca134a45f9533fef923c455c7e Mon Sep 17 00:00:00 2001 From: Yegor Yefremov Date: Tue, 2 Jan 2024 18:20:03 +0100 Subject: [PATCH 066/126] libs/xmlrpc-c: fix pkg-config files Add an upstream patch that uses conventional variables in pkg-config files so they can be overridden at pkg-config time. This patch was created using the following upstream revisions: - https://sourceforge.net/p/xmlrpc-c/code/3203/ - https://sourceforge.net/p/xmlrpc-c/code/3205/ Signed-off-by: Yegor Yefremov --- .../patches/001-fix-pkg-config-files.patch | 299 ++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 libs/xmlrpc-c/patches/001-fix-pkg-config-files.patch diff --git a/libs/xmlrpc-c/patches/001-fix-pkg-config-files.patch b/libs/xmlrpc-c/patches/001-fix-pkg-config-files.patch new file mode 100644 index 000000000..e52d11e48 --- /dev/null +++ b/libs/xmlrpc-c/patches/001-fix-pkg-config-files.patch @@ -0,0 +1,299 @@ +--- a/lib/abyss/src/Makefile ++++ b/lib/abyss/src/Makefile +@@ -131,13 +131,15 @@ SOCKLIB=$(SOCKETLIBOPT) + xmlrpc_abyss.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_abyss" >>$@ + @echo "Description: Xmlrpc-c Abyss HTTP C library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_abyss $(SOCKLIB)" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_abyss $(SOCKLIB)' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + # Need this dependency for those who don't use depend.mk. + # Without it, version.h doesn't get created. +--- a/lib/abyss++/Makefile ++++ b/lib/abyss++/Makefile +@@ -120,13 +120,15 @@ $(LIBXMLRPC_ABYSSPP_MODS:%=%.osh): \ + xmlrpc_abyss++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_abyss++" >>$@ + @echo "Description: Xmlrpc-c Abyss HTTP C++ library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc_abyss xmlrpc_util++" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_abyss++" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_abyss++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + #----------------------------------------------------------------------------- + # MISCELLANEOUS RULES +--- a/lib/expat/Makefile ++++ b/lib/expat/Makefile +@@ -34,13 +34,15 @@ xmltok/all: gennmtab/all + xmlrpc_expat.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_expat" >>$@ + @echo "Description: Xmlrpc-c XML parsing library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_xmlparse -lxmlrpc_xmltok" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_xmlparse -lxmlrpc_xmltok' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + .PHONY: clean + clean: $(SUBDIRS:%=%/clean) clean-common +--- a/lib/libutil/Makefile ++++ b/lib/libutil/Makefile +@@ -112,13 +112,15 @@ libxmlrpc_util.a: LIBOBJECTS = $(TARGET_ + xmlrpc_util.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_util" >>$@ + @echo "Description: Xmlrpc-c utility functions library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: " >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_util" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_util' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + .PHONY: install + install: install-common +--- a/lib/libutil++/Makefile ++++ b/lib/libutil++/Makefile +@@ -101,13 +101,15 @@ libxmlrpc_util++.a: LIBOBJECTS = $(LIBXM + xmlrpc_util++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_util++" >>$@ + @echo "Description: Xmlrpc-c C++ utility functions library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_util++" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_util++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + #----------------------------------------------------------------------------- + # MISCELLANEOUS RULES +--- a/lib/openssl/Makefile ++++ b/lib/openssl/Makefile +@@ -81,13 +81,15 @@ INCLUDES = \ + xmlrpc_openssl.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_openssl" >>$@ + @echo "Description: Openssl convenience function from Xmlrpc-c package" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_openssl" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_openssl' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + #----------------------------------------------------------------------------- + # MISCELLANEOUS +--- a/src/Makefile ++++ b/src/Makefile +@@ -333,57 +333,67 @@ libxmlrpc_client.ldflags: + xmlrpc.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." +- @echo "Name: xmlrpc" >>$@ +- @echo "Description: Xmlrpc-c basic XML-RPC library" >>$@ +- @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ ++ @echo 'Name: xmlrpc' >>$@ ++ @echo 'Description: Xmlrpc-c basic XML-RPC library' >>$@ ++ @echo 'Version: $(XMLRPC_VERSION_STRING)' >>$@ + @echo >>$@ +- @echo "Requires: xmlrpc_util $(XML_PKGCONFIG_REQ)" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Requires: xmlrpc_util $(XML_PKGCONFIG_REQ)' >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_client.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_client" >>$@ + @echo "Description: Xmlrpc-c XML-RPC client library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_client" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_client' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server" >>$@ + @echo "Description: Xmlrpc-c XML-RPC server library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server_abyss.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server_abyss" >>$@ + @echo "Description: Xmlrpc-c Abyss XML-RPC server library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc xmlrpc_server xmlrpc_abyss xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_abyss" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server_abyss' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server_cgi.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server_cgi" >>$@ + @echo "Description: Xmlrpc-c CGI XML-RPC server library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc xmlrpc_server xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_cgi" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server_cgi' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + .PHONY: check + check: +--- a/src/cpp/Makefile ++++ b/src/cpp/Makefile +@@ -355,57 +355,67 @@ $(TRANSPORT_CONFIG_USERS:%=%.o) $(TRANSP + xmlrpc++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc++" >>$@ + @echo "Description: Xmlrpc-c basic XML-RPC C++ library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc++" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_client++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_client++" >>$@ + @echo "Description: Xmlrpc-c XML-RPC client C++ library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc++ xmlrpc_client xmlrpc_util++ xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_client++" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_client++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server++" >>$@ + @echo "Description: Xmlrpc-c XML-RPC server C++ library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc++ xmlrpc xmlrpc_server xmlrpc_util++ xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server++" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server_abyss++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server_abyss++" >>$@ + @echo "Description: Xmlrpc-c Abyss XML-RPC server C++ library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ + @echo "Requires: xmlrpc++ xmlrpc xmlrpc_server++ xmlrpc_abyss xmlrpc_util++ xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_abyss" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server_abyss++' >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + xmlrpc_server_pstream++.pc: + rm -f $@ + @echo "Echoes to '$@' suppressed here ..." ++ @echo -e '$(PKGCONFIG_VAR_SET)' >>$@ ++ @echo >>$@ + @echo "Name: xmlrpc_server_pstream" >>$@ + @echo "Description: Xmlrpc-c packet stream XML-RPC server library" >>$@ + @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ + @echo >>$@ +- @echo "Requires: xmlrpc++ xmlrpc xmlrpc_server++ xmlrpc_util++ xmlrpc_util" >>$@ +- @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_server_pstream++ -lxmlrpc_packetsocket" >>$@ +- @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ ++ @echo "Requires: xmlrpc++ xmlrpc xmlrpc_server++ xmlrpc_util++ xmlrpc_util" >>$@ ++ @echo 'Libs: -L$${libdir} -lxmlrpc_server_pstream++' -lxmlrpc_packetsocket >>$@ ++ @echo 'Cflags: -I$${includedir}' >>$@ + + #----------------------------------------------------------------------------- + # MISCELLANEOUS RULES +--- a/common.mk ++++ b/common.mk +@@ -584,6 +584,11 @@ PROGRAMDESTDIR = $(DESTDIR)$(PROGRAMIN + MANDESTDIR = $(DESTDIR)$(MANINST_DIR) + PKGCONFIGDESTDIR = $(DESTDIR)$(PKGCONFIGINST_DIR) + ++# The following value, in a pkg-config file, sets the conventional pkg-config ++# variables that the pkg-config user can override at pkg-config time. ++PKGCONFIG_VAR_SET = \ ++ prefix=$(PREFIX)\nexec_prefix=$${prefix}\nincludedir=$${prefix}/include\nlibdir=$${exec_prefix}/lib ++ + + ############################################################################## + # INSTALL RULES # From 8fe2f6848511c3edd2feb46c04c1f8b6ffd1b99e Mon Sep 17 00:00:00 2001 From: Anya Lin Date: Sat, 6 Jan 2024 16:46:27 +0800 Subject: [PATCH 067/126] sing-box: update to 1.8.0 New features for v1.8.0: 1. Migrate cache file from Clash API to independent options 2. Introducing Rule Set 3. Add `sing-box geoip`, `sing-box geosite` and `sing-box rule-set` commands 4. Allow nested logical rules 5. Independent `source_ip_is_private` and `ip_is_private` rules 6. Add context to JSON decode error message 7. Reject internal fake-ip queries 8. Add GSO support for TUN and WireGuard system interface 9. The legacy LWIP stack has been deprecated and removed 10. Add `idle_timeout` for URLTest outbound 11. Added some new uTLS fingerprints ... Release notes: https://github.com/SagerNet/sing-box/releases/tag/v1.8.0 The new version has some breaking changes and may stop working after upgrading if use the original config. Please see the migration manual to migrate the config: https://sing-box.sagernet.org/migration/ Signed-off-by: Anya Lin --- net/sing-box/Makefile | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/net/sing-box/Makefile b/net/sing-box/Makefile index 32134356f..81c73d36b 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.7.7 +PKG_VERSION:=1.8.0 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:=ce182cb2181e898b56ca9b6ce0d5adeaece8e761ac62ce8cde69b3c7219b8430 +PKG_HASH:=80ae2a860fc77d961c578999e5fcfe964f969c81d9ccac156b2fef1340eca12f PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE_FILES:=LICENSE @@ -66,9 +66,6 @@ define Package/sing-box/config bool "Build with gVisor support" default y - config SINGBOX_WITH_LWIP - bool "Build with LWIP Tun stack support" - config SINGBOX_WITH_QUIC bool "Build with QUIC support" default y @@ -98,7 +95,6 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_SINGBOX_WITH_EMBEDDED_TOR \ CONFIG_SINGBOX_WITH_GRPC \ CONFIG_SINGBOX_WITH_GVISOR \ - CONFIG_SINGBOX_WITH_LWIP \ CONFIG_SINGBOX_WITH_QUIC \ CONFIG_SINGBOX_WITH_REALITY_SERVER \ CONFIG_SINGBOX_WITH_UTLS \ @@ -113,7 +109,6 @@ GO_PKG_TAGS:=$(subst $(space),$(comma),$(strip \ $(if $(CONFIG_SINGBOX_WITH_EMBEDDED_TOR),with_embedded_tor) \ $(if $(CONFIG_SINGBOX_WITH_GRPC),with_grpc) \ $(if $(CONFIG_SINGBOX_WITH_GVISOR),with_gvisor) \ - $(if $(CONFIG_SINGBOX_WITH_LWIP),with_lwip) \ $(if $(CONFIG_SINGBOX_WITH_QUIC),with_quic) \ $(if $(CONFIG_SINGBOX_WITH_REALITY_SERVER),with_reality_server) \ $(if $(CONFIG_SINGBOX_WITH_UTLS),with_utls) \ From 6c9cd775962a3165b70ab7722ba1c6a98b3b5f15 Mon Sep 17 00:00:00 2001 From: Dirk Brenken Date: Sun, 7 Jan 2024 18:10:49 +0100 Subject: [PATCH 068/126] banip: update 0.9.3-4 * made the default mail template "responsive" to get a better view esp. on mobile devices Signed-off-by: Dirk Brenken --- net/banip/Makefile | 4 ++-- net/banip/files/banip.tpl | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/net/banip/Makefile b/net/banip/Makefile index ca01ea048..d9b58c527 100644 --- a/net/banip/Makefile +++ b/net/banip/Makefile @@ -1,12 +1,12 @@ # banIP - ban incoming and outgoing IPs via named nftables Sets -# Copyright (c) 2018-2023 Dirk Brenken (dev@brenken.org) +# Copyright (c) 2018-2024 Dirk Brenken (dev@brenken.org) # This is free software, licensed under the GNU General Public License v3. include $(TOPDIR)/rules.mk PKG_NAME:=banip PKG_VERSION:=0.9.3 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_LICENSE:=GPL-3.0-or-later PKG_MAINTAINER:=Dirk Brenken diff --git a/net/banip/files/banip.tpl b/net/banip/files/banip.tpl index 2b3c20ff2..924ffe0b6 100644 --- a/net/banip/files/banip.tpl +++ b/net/banip/files/banip.tpl @@ -1,5 +1,5 @@ # banIP mail template/include - ban incoming and outgoing IPs via named nftables Sets -# Copyright (c) 2018-2023 Dirk Brenken (dev@brenken.org) +# Copyright (c) 2018-2024 Dirk Brenken (dev@brenken.org) # This is free software, licensed under the GNU General Public License v3. # info preparation @@ -12,9 +12,9 @@ elif printf "%s" "${ban_packages}" | "${ban_grepcmd}" -q '"logd'; then logread_cmd="${ban_logreadcmd} -l ${ban_loglimit} -e "banIP/" 2>/dev/null" fi -banip_info="$(/etc/init.d/banip status 2>/dev/null | "${ban_awkcmd}" '{NR=1;max=160;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}')" +banip_info="$(/etc/init.d/banip status 2>/dev/null)" report_info="$("${ban_catcmd}" "${ban_reportdir}/ban_report.txt" 2>/dev/null)" -log_info="$(${logread_cmd} | "${ban_awkcmd}" '{NR=1;max=160;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}')" +log_info="$(${logread_cmd})" system_info="$( strings /etc/banner 2>/dev/null "${ban_ubuscmd}" call system board | "${ban_awkcmd}" 'BEGIN{FS="[{}\"]"}{if($2=="kernel"||$2=="hostname"||$2=="system"||$2=="model"||$2=="description")printf " + %-12s: %s\n",$2,$4}' @@ -22,7 +22,7 @@ system_info="$( # content header # -mail_text="$(printf "%s\n" "
")"
+mail_text="$(printf "%s\n" "
")"
 
 # content body
 #

From dfeeabbebf7fa337f02fa24d40a488e2acfccbbb Mon Sep 17 00:00:00 2001
From: Stan Grishin 
Date: Sun, 7 Jan 2024 23:07:34 +0000
Subject: [PATCH 069/126] adblock-fast: bugfix: pause command

* the pause command used to incorrectly cause block-lists reload, this
  has been fixed in this version

Signed-off-by: Stan Grishin 
---
 net/adblock-fast/Makefile                      | 2 +-
 net/adblock-fast/files/etc/init.d/adblock-fast | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/adblock-fast/Makefile b/net/adblock-fast/Makefile
index 23f6568a1..50de95d95 100644
--- a/net/adblock-fast/Makefile
+++ b/net/adblock-fast/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock-fast
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MAINTAINER:=Stan Grishin 
 PKG_LICENSE:=GPL-3.0-or-later
 
diff --git a/net/adblock-fast/files/etc/init.d/adblock-fast b/net/adblock-fast/files/etc/init.d/adblock-fast
index 96ec21ddb..2ec53ec28 100755
--- a/net/adblock-fast/files/etc/init.d/adblock-fast
+++ b/net/adblock-fast/files/etc/init.d/adblock-fast
@@ -1728,7 +1728,7 @@ adb_start() {
 	action="$(config_cache get 'trigger_service')"
 	fw4_restart_flag="$(config_cache get 'trigger_fw4')"
 
-	if [ "$action" = 'on_boot' ] || [ "$param" = 'on_boot' ]; then
+	if [ "$action" = 'on_boot' ] || [ "$param" = 'on_boot' ] || [ "$param" = 'on_pause' ]; then
 		if cache 'test_gzip' || cache 'test'; then
 			action='restore'
 		else

From 06b95534eff2e3ec6772028d5e62dfccb01b3e90 Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Mon, 8 Jan 2024 11:49:29 +0800
Subject: [PATCH 070/126] alist: Update to 3.30.0

Signed-off-by: Tianling Shen 
---
 net/alist/Makefile | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/alist/Makefile b/net/alist/Makefile
index b3089d9a6..213e4ec4f 100644
--- a/net/alist/Makefile
+++ b/net/alist/Makefile
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=alist
-PKG_VERSION:=3.29.1
+PKG_VERSION:=3.30.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/alist-org/alist/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=b7d1929d9aef511b263673dba8e5b787f695e1b4fa4555fe562f8060ee0bdea4
+PKG_HASH:=68831d5177cdbae3ab294ce4263b4221c0ff687a72dd48a844d533ccb13c3efb
 
 PKG_LICENSE:=AGPL-3.0-only
 PKG_LICENSE_FILES:=LICENSE
@@ -46,13 +46,13 @@ define Package/alist/conffiles
 /etc/config/alist
 endef
 
-WEB_VERSION:=3.29.0
+WEB_VERSION:=3.30.0
 WEB_FILE:=$(PKG_NAME)-web-$(WEB_VERSION).tar.gz
 define Download/alist-web
 	URL:=https://github.com/alist-org/alist-web/releases/download/$(WEB_VERSION)/
 	URL_FILE:=dist.tar.gz
 	FILE:=$(WEB_FILE)
-	HASH:=ece9d3fd45f18eaa7376e5fc077ebeae8f67b7bcf6004a29ae58392bfc2a3d13
+	HASH:=04e160efc6e7169103cd424a39de0f1720e769aacc49dc0a2fcc3f1fcc6d0fee
 endef
 
 define Build/Prepare

From 37ce0e6803f1d3f116bbd59ff7f14e160c99aa47 Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Mon, 8 Jan 2024 11:49:36 +0800
Subject: [PATCH 071/126] btop: Update to 1.3.0

Signed-off-by: Tianling Shen 
---
 admin/btop/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/admin/btop/Makefile b/admin/btop/Makefile
index 0384f7282..f5efc5ee2 100644
--- a/admin/btop/Makefile
+++ b/admin/btop/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btop
-PKG_VERSION:=1.2.13
-PKG_RELEASE:=3
+PKG_VERSION:=1.3.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:=668dc4782432564c35ad0d32748f972248cc5c5448c9009faeb3445282920e02
+PKG_HASH:=375e078ce2091969f0cd14030620bd1a94987451cf7a73859127a786006a32cf
 
 PKG_MAINTAINER:=Tianling Shen 
 PKG_LICENSE:=Apache-2.0

From 4518ecf60bb271fb510192661df7ea85b67a51d8 Mon Sep 17 00:00:00 2001
From: Dirk Brenken 
Date: Tue, 9 Jan 2024 22:22:57 +0100
Subject: [PATCH 072/126] travelmate: update 2.1.2-2

* fix a possible re-connection issue/cornercase seen on single radio units

Signed-off-by: Dirk Brenken 
---
 net/travelmate/Makefile            |  2 +-
 net/travelmate/files/travelmate.sh | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/net/travelmate/Makefile b/net/travelmate/Makefile
index 93f405efd..7ade58aab 100644
--- a/net/travelmate/Makefile
+++ b/net/travelmate/Makefile
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=travelmate
 PKG_VERSION:=2.1.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken 
 
diff --git a/net/travelmate/files/travelmate.sh b/net/travelmate/files/travelmate.sh
index dca5bc896..0af2e4ac6 100755
--- a/net/travelmate/files/travelmate.sh
+++ b/net/travelmate/files/travelmate.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # travelmate, a wlan connection manager for travel router
-# Copyright (c) 2016-2023 Dirk Brenken (dev@brenken.org)
+# Copyright (c) 2016-2024 Dirk Brenken (dev@brenken.org)
 # This is free software, licensed under the GNU General Public License v3.
 
 # set (s)hellcheck exceptions
@@ -692,6 +692,16 @@ f_check() {
 				if [ -n "${ifname}" ] && [ "${enabled}" = "1" ]; then
 					trm_ifquality="$(${trm_iwinfo} "${ifname}" info 2>/dev/null | awk -F '[ ]' '/Link Quality: [0-9]+\/[0-9]+/{split($NF,var0,"/");printf "%i\n",(var0[1]*100/var0[2])}')"
 					if [ -z "${trm_ifquality}" ]; then
+						trm_ifstatus="$("${trm_ubuscmd}" -S call network.interface dump 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.interface[@.device=\"${ifname}\"].up")"
+						if { [ -n "${trm_connection}" ] && [ "${trm_ifstatus}" = "false" ]; } || [ "${wait_time}" -eq "${trm_maxwait}" ]; then
+							f_log "info" "no signal from uplink"
+							f_vpn "disable"
+							unset trm_connection
+							trm_ifstatus="${status}"
+							f_ctrack "end"
+							f_jsnup
+							break
+						fi
 						continue
 					elif [ "${trm_ifquality}" -ge "${trm_minquality}" ]; then
 						trm_ifstatus="$("${trm_ubuscmd}" -S call network.interface dump 2>/dev/null | "${trm_jsoncmd}" -ql1 -e "@.interface[@.device=\"${ifname}\"].up")"

From ab20c1bd90df66c8351a063a7a3318100f5c22af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= 
Date: Tue, 9 Jan 2024 17:47:28 +0100
Subject: [PATCH 073/126] uspot: update to Git HEAD (2024-01-09)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

0cffba9458d3 treewide: add support for RADIUS Reply-Message
c9fb744fdee8 treewide: add support for 'lang=' & ChilliSpot-Lang
584a162cb19a handler-uam: ensure that 'seconds_remaining' is always set
bd1f7c5de1ae Makefile: align with packages feed one
0ea6ad3c4e54 Makefile: mark uspot-www and uspotfilter "PKGARCH:=all"
e6a286ccfdbf uspot/uspotfilter: use 'logger -t'
427ed16cfde5 uspot: expose ratelimits in client data
4ba1dd9c5135 uspot: don't send NAS-Port-Type
78a37ef49b85 templates: add id="replymsg" to reply msg header
e3f4e179fd17 templates: show remaining time in "connected"
398762dff711 radius-client: correctly use str_to_hex()
730ef800d9da templates: simplify HTML
6bb39282fd8f Documentation update
b6c802adac19 portal: handle_request() logic refactoring
1aa1a5eb28d7 uspotfilter: implement peer_lookup()
ba5547ec61f1 portal: speedup peer lookup by leveraging spotfilter
d551376c29bb templates: added html5 time tag to timeleft output
154c98e0b77b uspotfilter: mark client as active when set()
8dcb03a37a77 uspotfilter: rework neigh management
cfb2ce7909da uspotfilter: use client_remove() where applicable
8411314dbf90 Documentation update
8dacf3df9935 uspot: use a single operation for client removal
297b7857c1e0 uspotfilter: fix DELNEIGH processing
76003917c205 uspotfilter: client_set() only clear idle when allowing
f46a855c5085 uspotfilter: remove botched IPv6 "support"
4ff31cbf0e2b uspot: client_remove(): stay in sync with spotfilter
edc9ad7e60a3 uspot/uspotfilter: use ucode-mod-log for logging
52e24aecf2db uspotfilter: use ucode '??=' syntax
c4b6f2f0bb1e Update README

Update the package Makefile to reflect the changes from the following
above-listed commits:

0ea6ad3c4e54 Makefile: mark uspot-www and uspotfilter "PKGARCH:=all"
edc9ad7e60a3 uspot/uspotfilter: use ucode-mod-log for logging

Signed-off-by: Thibaut VARÈNE 
---
 net/uspot/Makefile | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/uspot/Makefile b/net/uspot/Makefile
index 9d6dd6485..9207c77b9 100644
--- a/net/uspot/Makefile
+++ b/net/uspot/Makefile
@@ -8,9 +8,9 @@ PKG_MAINTAINER:=Thibaut VARÈNE 
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/f00b4r0/uspot.git
-PKG_SOURCE_DATE:=2023-11-30
-PKG_SOURCE_VERSION:=7e1e21b0f8425205d719b99a392fa893b3e512e6
-PKG_MIRROR_HASH:=494c616159b16d978fe00348ebe50c77a48f1db98d624ed613f3cca2d39e3a6e
+PKG_SOURCE_DATE:=2024-01-09
+PKG_SOURCE_VERSION:=c4b6f2f0bb1e9d2da4adc8cb3523cd7e440d7584
+PKG_MIRROR_HASH:=fa6be10e0479a9dc71b8c21e57b07aac09c8938e8e7120045816a5cd4b949343
 
 CMAKE_SOURCE_SUBDIR:=src
 
@@ -25,7 +25,7 @@ define Package/uspot
   DEPENDS:=+conntrack \
 	   +libblobmsg-json +liblucihttp-ucode +libradcli +libubox +libubus +libuci \
 	   +spotfilter \
-	   +ucode +ucode-mod-math +ucode-mod-nl80211 +ucode-mod-rtnl +uhttpd-mod-ucode +ucode-mod-uloop
+	   +ucode +ucode-mod-log +ucode-mod-math +ucode-mod-nl80211 +ucode-mod-rtnl +uhttpd-mod-ucode +ucode-mod-uloop
 
 endef
 
@@ -49,6 +49,7 @@ define Package/uspot-www
   CATEGORY:=Network
   TITLE:=uspot default user interface files
   DEPENDS:=+uspot
+  PKGARCH:=all
 endef
 
 define Package/uspot-www/description
@@ -63,6 +64,7 @@ define Package/uspotfilter
   PROVIDES:=spotfilter
   CONFLICTS:=spotfilter
   DEPENDS:=+conntrack +nftables-json +ucode +ucode-mod-rtnl +ucode-mod-uloop
+  PKGARCH:=all
 endef
 
 define Package/uspotfilter/description

From 20dca3c4df046ff16de2008ce464756a0d9a569d Mon Sep 17 00:00:00 2001
From: Othmar Truniger 
Date: Wed, 10 Jan 2024 16:22:08 +0100
Subject: [PATCH 074/126] knxd: bump to upstream version 0.14.60

Signed-off-by: Othmar Truniger 
---
 net/knxd/Makefile                   | 4 ++--
 net/knxd/patches/0100-version.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/knxd/Makefile b/net/knxd/Makefile
index 7873ac71f..ed49f88e6 100644
--- a/net/knxd/Makefile
+++ b/net/knxd/Makefile
@@ -11,12 +11,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knxd
-PKG_VERSION:=0.14.59
+PKG_VERSION:=0.14.60
 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:=8b8314ad4265cd48e9a257a1bcfd162b1084422f765082b45cceabdd70c0c164
+PKG_HASH:=0d7e7265761e291014f670dce6a24efc4a6e9ef1a88e2f96ffa347c98c91588f
 
 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 f472ff9e9..478aad7d6 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.59"
++echo -n "0.14.60"

From 9e06d10289d14bb2dc0a5bbcb642cfa0e7e5dc77 Mon Sep 17 00:00:00 2001
From: Othmar Truniger 
Date: Wed, 10 Jan 2024 16:40:33 +0100
Subject: [PATCH 075/126] libfmt: bump to upstream version 10.2.1

Signed-off-by: Othmar Truniger 
---
 libs/libfmt/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libs/libfmt/Makefile b/libs/libfmt/Makefile
index 6cfe65d1c..e8709edb2 100644
--- a/libs/libfmt/Makefile
+++ b/libs/libfmt/Makefile
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libfmt
-PKG_VERSION:=9.1.0
+PKG_VERSION:=10.2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE_NAME:=fmt
 PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/fmtlib/$(PKG_SOURCE_NAME)/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2
+PKG_HASH:=1250e4cc58bf06ee631567523f48848dc4596133e163f02615c97f78bab6c811
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
 
 PKG_MAINTAINER:=Othmar Truniger 

From ba4890f359ec798708179cf39c64ef05fcb0b6ad Mon Sep 17 00:00:00 2001
From: David Yang 
Date: Wed, 10 Jan 2024 23:51:33 +0800
Subject: [PATCH 076/126] i2pd: Update to 2.50.2

Signed-off-by: David Yang 
---
 net/i2pd/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/i2pd/Makefile b/net/i2pd/Makefile
index f4c3d5d79..c943537a3 100644
--- a/net/i2pd/Makefile
+++ b/net/i2pd/Makefile
@@ -10,13 +10,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=i2pd
-PKG_VERSION:=2.48.0
+PKG_VERSION:=2.50.2
 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:=ccf417aa66ce37f72ea15b7fbcff4c71e823566ea74bda696b9c1e19aae08739
+PKG_HASH:=ae2ec4732c38fda71b4b48ce83624dd8b2e05083f2c94a03d20cafb616f63ca5
 
 PKG_MAINTAINER:=David Yang 
 PKG_LICENSE:=BSD-3-Clause

From 7e6cd98ad481184b1a620a9862aa3713d1ab85cc Mon Sep 17 00:00:00 2001
From: Paul Spooren 
Date: Wed, 10 Jan 2024 17:22:54 +0100
Subject: [PATCH 077/126] ci: no longer require real name

This goes in accordance with the Linux Kernel:

> using a known identity (sorry, no anonymous contributions.)

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?id=HEAD#n442

Signed-off-by: Paul Spooren 
---
 .github/workflows/formal.yml | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/.github/workflows/formal.yml b/.github/workflows/formal.yml
index 1447a3959..693befa06 100644
--- a/.github/workflows/formal.yml
+++ b/.github/workflows/formal.yml
@@ -34,14 +34,6 @@ jobs:
               RET=1
             fi
 
-            author="$(git show -s --format=%aN $commit)"
-            if echo $author | grep -q '\S\+\s\+\S\+'; then
-              success "Author name ($author) seems ok"
-            else
-              err "Author name ($author) need to be your real name 'firstname lastname'"
-              RET=1
-            fi
-
             subject="$(git show -s --format=%s $commit)"
             if echo "$subject" | grep -q -e '^[0-9A-Za-z,+/_-]\+: ' -e '^Revert ' -e '^CONTRIBUTING.md' -e '^README.md'; then
               success "Commit subject line seems ok ($subject)"

From 190542692d070ddfddbd3e9755da6c0680e32257 Mon Sep 17 00:00:00 2001
From: Hirokazu MORIKAWA 
Date: Fri, 12 Jan 2024 09:10:22 +0900
Subject: [PATCH 078/126] node: bump to v20.11.0

Notable Changes
* crypto: update root certificates to NSS 3.95 (Node.js GitHub Bot)
* doc: add MrJithil to collaborators (Jithil P Ponnan)
* doc: add Ethan-Arrowood as a collaborator (Ethan Arrowood)
* (SEMVER-MINOR) esm: add import.meta.dirname and import.meta.filename (James Sumners)
* fs: add c++ fast path for writeFileSync utf8 (CanadaHonk)
* (SEMVER-MINOR) module: remove useCustomLoadersIfPresent flag (Chengzhong Wu)
* (SEMVER-MINOR) module: bootstrap module loaders in shadow realm (Chengzhong Wu)
* (SEMVER-MINOR) src: add --disable-warning option (Ethan Arrowood)
* [SEMVER-MINOR) src: create per isolate proxy env template (Chengzhong Wu)
* (SEMVER-MINOR) src: make process binding data weak (Chengzhong Wu)
* stream: use Array for Readable buffer (Robert Nagy)
* stream: optimize creation (Robert Nagy)
* (SEMVER-MINOR) test_runner: adds built in lcov reporter (Phil Nash)
* (SEMVER-MINOR) test_runner: add Date to the supported mock APIs (Lucas Santos)
* (SEMVER-MINOR) test_runner, cli: add --test-timeout flag (Shubham Pandey)

Signed-off-by: Hirokazu MORIKAWA 
---
 lang/node/Makefile                            |  4 ++--
 .../patches/007-fix_host_build_on_macos.patch |  2 +-
 lang/node/patches/204-v8_gyp.patch            | 24 +++++++++----------
 ...able_pointer_authentication_on_arm64.patch |  2 +-
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/lang/node/Makefile b/lang/node/Makefile
index b37c433b3..874da8716 100644
--- a/lang/node/Makefile
+++ b/lang/node/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=node
-PKG_VERSION:=v20.10.0
+PKG_VERSION:=v20.11.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://nodejs.org/dist/$(PKG_VERSION)
-PKG_HASH:=32eb256eebd8cacd5574e6631e54b42be7ec8ebe25ad47a8ca685403bad15535
+PKG_HASH:=31807ebeeeb049c53f1765e4a95aed69476a4b696dd100cb539ab668d7950b40
 
 PKG_MAINTAINER:=Hirokazu MORIKAWA , Adrian Panella 
 PKG_LICENSE:=MIT
diff --git a/lang/node/patches/007-fix_host_build_on_macos.patch b/lang/node/patches/007-fix_host_build_on_macos.patch
index eeb5c2d1c..b88c31476 100644
--- a/lang/node/patches/007-fix_host_build_on_macos.patch
+++ b/lang/node/patches/007-fix_host_build_on_macos.patch
@@ -1,6 +1,6 @@
 --- a/tools/gyp/pylib/gyp/generator/make.py
 +++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -206,7 +206,7 @@ cmd_solink_module = $(LINK.$(TOOLSET)) -
+@@ -207,7 +207,7 @@ cmd_solink_module = $(LINK.$(TOOLSET)) -
  
  LINK_COMMANDS_MAC = """\
  quiet_cmd_alink = LIBTOOL-STATIC $@
diff --git a/lang/node/patches/204-v8_gyp.patch b/lang/node/patches/204-v8_gyp.patch
index 48108f3c9..605148cc7 100644
--- a/lang/node/patches/204-v8_gyp.patch
+++ b/lang/node/patches/204-v8_gyp.patch
@@ -44,7 +44,7 @@
        ],
        'sources': [
          '
Date: Sat, 13 Jan 2024 08:46:07 +0100
Subject: [PATCH 079/126] docker-compose: Update to version 2.24.0

Signed-off-by: Javier Marcet 
---
 utils/docker-compose/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/docker-compose/Makefile b/utils/docker-compose/Makefile
index 5a09ef79c..bfafd4b37 100644
--- a/utils/docker-compose/Makefile
+++ b/utils/docker-compose/Makefile
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=compose
-PKG_VERSION:=2.23.3
+PKG_VERSION:=2.24.0
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/compose/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=29ba96c8d398fbc6f7c791c65e70b97e7df116223f2996062441093258d914fe
+PKG_HASH:=4ceafedf732f9203ccc85f6ec5fff68bae992700339905b0c51ede5b73ebbf45
 
 PKG_MAINTAINER:=Javier Marcet 
 

From e9e1ae23862ceeaa95939b2a7cfa9156c5338f89 Mon Sep 17 00:00:00 2001
From: Rosen Penev 
Date: Fri, 12 Jan 2024 19:13:29 -0800
Subject: [PATCH 080/126] ksmbd-tools: update to 3.5.1

Various fixes for ksmbd, most notably a visibility fix for the latest
ksmbd code.

Signed-off-by: Rosen Penev 
---
 net/ksmbd-tools/Makefile               | 4 ++--
 net/ksmbd-tools/patches/030-glib.patch | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ksmbd-tools/Makefile b/net/ksmbd-tools/Makefile
index 84e8f3e57..5c914c24c 100644
--- a/net/ksmbd-tools/Makefile
+++ b/net/ksmbd-tools/Makefile
@@ -5,8 +5,8 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/cifsd-team/ksmbd-tools
-PKG_SOURCE_VERSION:=3.4.8
-PKG_MIRROR_HASH:=e374c6e5053e82bc321e13927dbf3baf0d636205516564324686d002c084c5d6
+PKG_SOURCE_VERSION:=3.5.1
+PKG_MIRROR_HASH:=6e8e56ecdfa0ddfdb3a351b27ae5b9148d4f6695bcee9a7eae39c2a42481ef18
 
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/ksmbd-tools/patches/030-glib.patch b/net/ksmbd-tools/patches/030-glib.patch
index 1fb240a95..49809e9c6 100644
--- a/net/ksmbd-tools/patches/030-glib.patch
+++ b/net/ksmbd-tools/patches/030-glib.patch
@@ -3,7 +3,7 @@
 @@ -21,6 +21,7 @@ include_dirs = include_directories(
  glib_dep = dependency(
    'glib-2.0',
-   version: '>= 2.40',
+   version: '>= 2.44',
 +  static: true,
  )
  libnl_dep = dependency(

From 7bef195bbabcec88a2b9055846880fd93c2a8a7a Mon Sep 17 00:00:00 2001
From: Thomas Kupper 
Date: Sat, 6 Jan 2024 10:49:36 +0000
Subject: [PATCH 081/126] tailscale: create combined tailscale/tailscaled

Modify Makefile to combine tailscale and tailscaled according to
Tailscale documentatio (https://tailscale.com/kb/1207/small-tailscale)

This resulted for x86_64 in an exec of 31MB + the symlink. Before it
was 29MB (tailscaled) and 10MB (tailscale).

Signed-off-by: Thomas Kupper 
---
 net/tailscale/Makefile | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

diff --git a/net/tailscale/Makefile b/net/tailscale/Makefile
index e514fc983..2a0022b90 100644
--- a/net/tailscale/Makefile
+++ b/net/tailscale/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tailscale
 PKG_VERSION:=1.56.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)?
@@ -25,33 +25,22 @@ PKG_BUILD_PARALLEL:=1
 PKG_BUILD_FLAGS:=no-mips16
 
 GO_PKG:=\
-	tailscale.com/cmd/tailscale \
 	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
 
 include $(INCLUDE_DIR)/package.mk
 include ../../lang/golang/golang-package.mk
 
-define Package/tailscale/Default
+define Package/tailscale
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=VPN
   TITLE:=Zero config VPN
   URL:=https://tailscale.com
-  DEPENDS:=$(GO_ARCH_DEPENDS)
-endef
-
-define Package/tailscaled
-  $(call Package/tailscale/Default)
-  TITLE+= (daemon)
-  DEPENDS+= +ca-bundle +kmod-tun
-endef
-
-define Package/tailscale
-  $(call Package/tailscale/Default)
-  TITLE+= (utility)
-  DEPENDS+= +tailscaled
+  DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +kmod-tun
+  PROVIDES:=tailscaled
 endef
 
 define Package/tailscale/description
@@ -59,24 +48,17 @@ define Package/tailscale/description
   and cloud instances. Even when separated by firewalls or subnets.
 endef
 
-Package/tailscaled/description:=$(Package/tailscale/description)
-
-define Package/tailscaled/conffiles
+define Package/tailscale/conffiles
 /etc/config/tailscale
 /etc/tailscale/
 endef
 
 define Package/tailscale/install
-	$(INSTALL_DIR) $(1)/usr/sbin
-	$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/tailscale $(1)/usr/sbin
-endef
-
-define Package/tailscaled/install
 	$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
 	$(INSTALL_BIN) $(GO_PKG_BUILD_BIN_DIR)/tailscaled $(1)/usr/sbin
+	$(LN) tailscaled $(1)/usr/sbin/tailscale
 	$(INSTALL_BIN) ./files//tailscale.init $(1)/etc/init.d/tailscale
 	$(INSTALL_DATA) ./files//tailscale.conf $(1)/etc/config/tailscale
 endef
 
 $(eval $(call BuildPackage,tailscale))
-$(eval $(call BuildPackage,tailscaled))

From ea4bbc46e19de971e72b44126bb429ecf158c2de Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Sun, 14 Jan 2024 14:07:39 +0800
Subject: [PATCH 082/126] xray-core: Update to 1.8.7

Signed-off-by: Tianling Shen 
---
 net/xray-core/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/xray-core/Makefile b/net/xray-core/Makefile
index fb0f89a23..ed1f7e97a 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.6
+PKG_VERSION:=1.8.7
 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:=d828296c9f29f9e59a61ab73d44f072ab2a30fe979679e39aea43b33ddb7d6bf
+PKG_HASH:=e8f46177d792b89700f164ca28fbf1a3c7d95a3ecf98871cb0dd5e474b46a859
 
 PKG_MAINTAINER:=Tianling Shen 
 PKG_LICENSE:=MPL-2.0

From 05b61b3b6d8c3e2ab8f20e8b08932adfd25fbc3a Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Sun, 14 Jan 2024 14:07:45 +0800
Subject: [PATCH 083/126] rclone: Update to 1.65.1

Signed-off-by: Tianling Shen 
---
 net/rclone/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/rclone/Makefile b/net/rclone/Makefile
index dc48c6ad4..a272ab2a9 100644
--- a/net/rclone/Makefile
+++ b/net/rclone/Makefile
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rclone
-PKG_VERSION:=1.65.0
+PKG_VERSION:=1.65.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:=22a15cbc381bab351c0698c83c1666344a07e1bde39ba44f33b95c5fb22cfaf4
+PKG_HASH:=e16f7f6b81865c7f719d4b214ea45a0608ada71d9b9b6f65c6ead21128cbc8fe
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=LICENSE

From d16377d23fd08e8c5583bba6d93afd89ad3144eb Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Sun, 14 Jan 2024 14:08:15 +0800
Subject: [PATCH 084/126] cloudflared: Update to 2024.1.2

Finally fixed build with Go 1.21.

Fixes: #22383
Signed-off-by: Tianling Shen 
---
 net/cloudflared/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/cloudflared/Makefile b/net/cloudflared/Makefile
index 5580eae20..480c54f37 100644
--- a/net/cloudflared/Makefile
+++ b/net/cloudflared/Makefile
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cloudflared
-PKG_VERSION:=2023.7.3
+PKG_VERSION:=2024.1.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/cloudflare/cloudflared/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=772ddcb721f5b479192117d1156b1091505721aa81d6bab3de9577176b930191
+PKG_HASH:=244455f69a9575fbf8f7a818eb71ebcb6a06182b5f3e1a757174418a3e08e1e9
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE

From 3fde8ebbb7c77e5853e6cad98c2e3672e6850fef Mon Sep 17 00:00:00 2001
From: Stan Grishin 
Date: Sun, 14 Jan 2024 19:13:54 +0000
Subject: [PATCH 085/126] nebula: update to 1.8.2

* update to 1.8.2: https://github.com/slackhq/nebula/releases/tag/v1.8.2

Signed-off-by: Stan Grishin 
---
 net/nebula/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/nebula/Makefile b/net/nebula/Makefile
index c22a41294..bb5d61415 100644
--- a/net/nebula/Makefile
+++ b/net/nebula/Makefile
@@ -4,12 +4,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nebula
-PKG_VERSION:=1.8.1
+PKG_VERSION:=1.8.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/slackhq/nebula/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=85c048b6d39296eeb8cf2d3324124d834011121383d0550662018190494d433e
+PKG_HASH:=203713c58d0ec8a10df2f605af791a77a33f825454911ac3a5313ced591547fd
 
 PKG_MAINTAINER:=Stan Grishin 
 PKG_LICENSE:=MIT

From 3ee7b46610e9dbd8fd2bba87bd06024cd0d9c08f Mon Sep 17 00:00:00 2001
From: John Audia 
Date: Thu, 11 Jan 2024 15:28:22 -0500
Subject: [PATCH 086/126] htop: update to 3.3.0

Changelog: https://github.com/htop-dev/htop/compare/3.2.2...3.3.0

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia 
---
 admin/htop/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/admin/htop/Makefile b/admin/htop/Makefile
index 01208ea13..155363106 100644
--- a/admin/htop/Makefile
+++ b/admin/htop/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=htop
-PKG_VERSION:=3.2.2
+PKG_VERSION:=3.3.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/htop-dev/htop/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=3829c742a835a0426db41bb039d1b976420c21ec65e93b35cd9bfd2d57f44ac8
+PKG_HASH:=1e5cc328eee2bd1acff89f860e3179ea24b85df3ac483433f92a29977b14b045
 
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING

From b00e2966841d6ec5103581191ed1862944e73160 Mon Sep 17 00:00:00 2001
From: Andrey Butirsky 
Date: Mon, 25 Sep 2023 02:39:02 +0300
Subject: [PATCH 087/126] sms-tool: version bump to 2023-09-21

Fixes:
"no SMS Messages if some of them contain From: field with special symbols":
https://github.com/4IceG/luci-app-sms-tool-js/issues/9

Signed-off-by: Andrey Butirsky 
---
 utils/sms-tool/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/utils/sms-tool/Makefile b/utils/sms-tool/Makefile
index e206c48e8..696fe08e0 100644
--- a/utils/sms-tool/Makefile
+++ b/utils/sms-tool/Makefile
@@ -10,9 +10,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://github.com/obsy/sms_tool
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2022-03-21
-PKG_SOURCE_VERSION:=f07699ab5189656f595ffa75872c8938bf4b40ac
-PKG_MIRROR_HASH:=0d114a97eb7aeadd95b49281d29371ba0570382125c34f3f8668d34fd0290f46
+PKG_SOURCE_DATE:=2023-09-21
+PKG_SOURCE_VERSION:=1b6ca03284fd65db8799dbf7c6224210093786b0
+PKG_MIRROR_HASH:=6cfb176b475471462709b1e917276b7bade8ec58cff1ee6d5130caac80586b4e
 
 PKG_MAINTAINER:=Andrey Butirsky 
 PKG_LICENSE:=Apache-2.0

From 11fc9f28b124743a61021075b5fa45102eb456a5 Mon Sep 17 00:00:00 2001
From: Fabian Lipken 
Date: Mon, 15 Jan 2024 09:38:42 +0100
Subject: [PATCH 088/126] restic: update to 0.16.3

Signed-off-by: Fabian Lipken 
---
 utils/restic/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/restic/Makefile b/utils/restic/Makefile
index 89963c085..b59a89b4e 100644
--- a/utils/restic/Makefile
+++ b/utils/restic/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=restic
-PKG_VERSION:=0.16.2
+PKG_VERSION:=0.16.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/restic/restic/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=88165b5b89b6064df37a9964d660f40ac62db51d6536e459db9aaea6f2b2fc11
+PKG_HASH:=a94d6c1feb0034fcff3e8b4f2d65c0678f906fc21a1cf2d435341f69e7e7af52
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=LICENSE

From 3100734e902ac174fecccb43c5c46da4593f9244 Mon Sep 17 00:00:00 2001
From: Alexandru Ardelean 
Date: Mon, 15 Jan 2024 10:19:58 +0200
Subject: [PATCH 089/126] stress-ng: bump to version 0.17.04

Signed-off-by: Alexandru Ardelean 
---
 utils/stress-ng/Makefile                               |  4 ++--
 .../patches/001-disable-extra-stressors.patch          | 10 ++++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/utils/stress-ng/Makefile b/utils/stress-ng/Makefile
index ebdaab8fb..72f8932c6 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.17.03
+PKG_VERSION:=0.17.04
 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:=3646118dcd683bf1929357e67d36c75f950e849db48f26d298b11028e78f3e7a
+PKG_HASH:=60c37d8b1effc5772fb30f638e20b1de01e0488e274e283301c3fd6c707d8538
 
 PKG_MAINTAINER:=Alexandru Ardelean 
 PKG_LICENSE:=GPL-2.0-only
diff --git a/utils/stress-ng/patches/001-disable-extra-stressors.patch b/utils/stress-ng/patches/001-disable-extra-stressors.patch
index c9dd59cfe..ddbe3ee14 100644
--- a/utils/stress-ng/patches/001-disable-extra-stressors.patch
+++ b/utils/stress-ng/patches/001-disable-extra-stressors.patch
@@ -1,15 +1,17 @@
 --- a/Makefile.config
 +++ b/Makefile.config
-@@ -326,9 +326,9 @@ clean:
+@@ -326,10 +326,10 @@ clean:
+ .PHONY: libraries
  libraries: \
  	configdir \
- 	LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \
+-	LIB_ACL LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \
 -	LIB_EGL LIB_GBM LIB_GLES2 LIB_IPSEC_MB LIB_JPEG \
 -	LIB_JUDY LIB_KMOD LIB_MD LIB_MPFR LIB_PTHREAD LIB_PTHREAD_SPINLOCK \
 -	LIB_RT LIB_SCTP LIB_XXHASH LIB_Z
++	LIB_AIO LIB_APPARMOR LIB_BSD LIB_CRYPT LIB_DL \
 +	LIB_IPSEC_MB LIB_JPEG \
 +	LIB_JUDY LIB_KMOD LIB_MD LIB_PTHREAD LIB_PTHREAD_SPINLOCK \
 +	LIB_RT LIB_SCTP LIB_Z
  
- LIB_AIO:
- 	$(call check,test-libaio,HAVE_LIB_AIO,$(LIB_AIO),$(LIB_AIO))
+ LIB_ACL:
+ 	$(call check,test-libacl,HAVE_LIB_ACL,$(LIB_ACL),$(LIB_ACL))

From ca6216ef0718856d186efba2a6d7add50750142b Mon Sep 17 00:00:00 2001
From: Alexandru Ardelean 
Date: Mon, 15 Jan 2024 10:17:31 +0200
Subject: [PATCH 090/126] openblas: bump to version 0.3.26

Signed-off-by: Alexandru Ardelean 
---
 libs/openblas/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libs/openblas/Makefile b/libs/openblas/Makefile
index 99369b762..5e498adc6 100644
--- a/libs/openblas/Makefile
+++ b/libs/openblas/Makefile
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=OpenBLAS
-PKG_VERSION:=0.3.25
+PKG_VERSION:=0.3.26
 PKG_RELEASE:=1
 
 PKG_SOURCE:=OpenBLAS-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/xianyi/OpenBLAS/releases/download/v$(PKG_VERSION)/
-PKG_HASH:=4c25cb30c4bb23eddca05d7d0a85997b8db6144f5464ba7f8c09ce91e2f35543
+PKG_HASH:=4e6e4f5cb14c209262e33e6816d70221a2fe49eb69eaf0a06f065598ac602c68
 PKG_LICENSE:=BSD 3-Clause
 PKG_MAINTAINER:=Alexandru Ardelean 
 

From 0f059b6523f3720441cf608cbd9769265d859de6 Mon Sep 17 00:00:00 2001
From: Stan Grishin 
Date: Fri, 19 Jan 2024 00:02:55 +0000
Subject: [PATCH 091/126] adblock-fast: update to 1.1.1-3

* allow top-level domains in the blocked-domains options fixes
  https://github.com/openwrt/packages/issues/23125

Signed-off-by: Stan Grishin 
---
 net/adblock-fast/Makefile                      | 2 +-
 net/adblock-fast/files/etc/init.d/adblock-fast | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/adblock-fast/Makefile b/net/adblock-fast/Makefile
index 50de95d95..c6b574c3a 100644
--- a/net/adblock-fast/Makefile
+++ b/net/adblock-fast/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock-fast
 PKG_VERSION:=1.1.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_MAINTAINER:=Stan Grishin 
 PKG_LICENSE:=GPL-3.0-or-later
 
diff --git a/net/adblock-fast/files/etc/init.d/adblock-fast b/net/adblock-fast/files/etc/init.d/adblock-fast
index 2ec53ec28..a95f49977 100755
--- a/net/adblock-fast/files/etc/init.d/adblock-fast
+++ b/net/adblock-fast/files/etc/init.d/adblock-fast
@@ -60,7 +60,7 @@ readonly runningConfigFile="/dev/shm/${packageName}.config"
 readonly runningErrorFile="/dev/shm/${packageName}.error"
 readonly runningStatusFile="/dev/shm/${packageName}.status"
 readonly hostsFilter='/localhost/d;/^#/d;/^[^0-9]/d;s/^0\.0\.0\.0.//;s/^127\.0\.0\.1.//;s/[[:space:]]*#.*$//;s/[[:cntrl:]]$//;s/[[:space:]]//g;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
-readonly domainsFilter='/^#/d;s/[[:space:]]*#.*$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
+readonly domainsFilter='/^#/d;s/[[:space:]]*#.*$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/^$/d;/[^[:alnum:]_.-]/d;'
 readonly adBlockPlusFilter='/^#/d;/^!/d;s/[[:space:]]*#.*$//;s/^||//;s/\^$//;s/[[:space:]]*$//;s/[[:cntrl:]]$//;/[[:space:]]/d;/[`~!@#\$%\^&\*()=+;:"'\'',<>?/\|[{}]/d;/]/d;/\./!d;/^$/d;/[^[:alnum:]_.-]/d;'
 readonly dnsmasqFileFilter='\|^server=/[[:alnum:]_.-].*/|!d;s|server=/||;s|/.*$||'
 readonly dnsmasq2FileFilter='\|^local=/[[:alnum:]_.-].*/|!d;s|local=/||;s|/.*$||'
@@ -1351,7 +1351,7 @@ $(sed '/^[[:space:]]*$/d' "$A_TMP")"
 		if sed "$outputFilter" "$B_TMP" > "$A_TMP"; then
 			output_ok
 		else
-			output_failn 
+			output_failn
 			json add error 'errorDataFileFormatting'
 		fi
 	else

From 42bd4ef5da8d66d0587bf14a7729210979365fdb Mon Sep 17 00:00:00 2001
From: Javier Marcet 
Date: Thu, 18 Jan 2024 23:33:55 +0100
Subject: [PATCH 092/126] docker-compose: Update to version 2.24.1

Signed-off-by: Javier Marcet 
---
 utils/docker-compose/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/docker-compose/Makefile b/utils/docker-compose/Makefile
index bfafd4b37..5b7ed60a4 100644
--- a/utils/docker-compose/Makefile
+++ b/utils/docker-compose/Makefile
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=compose
-PKG_VERSION:=2.24.0
+PKG_VERSION:=2.24.1
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/compose/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=4ceafedf732f9203ccc85f6ec5fff68bae992700339905b0c51ede5b73ebbf45
+PKG_HASH:=6bc723e36c1bd6c83f83fc1ee65097df29c6780f5e136e61e53ef96316be593f
 
 PKG_MAINTAINER:=Javier Marcet 
 

From 85bdad926939b7bc93aca15254a6d84d9f47a3a7 Mon Sep 17 00:00:00 2001
From: Javier Marcet 
Date: Thu, 18 Jan 2024 00:16:17 +0100
Subject: [PATCH 093/126] python-jsonschema: Update to 4.21.0

 - Fix the behavior of enum in the presence of 0 or 1 to properly
  consider True and False unequal.
 - Special case the error message for {min,max}
 {Items,Length,Properties} when they're checking for emptiness rather
 than true length.

Signed-off-by: Javier Marcet 
---
 lang/python/python-jsonschema/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lang/python/python-jsonschema/Makefile b/lang/python/python-jsonschema/Makefile
index cd87fa1e6..f903fdd02 100644
--- a/lang/python/python-jsonschema/Makefile
+++ b/lang/python/python-jsonschema/Makefile
@@ -1,11 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-jsonschema
-PKG_VERSION:=4.20.0
+PKG_VERSION:=4.21.0
 PKG_RELEASE:=1
 
 PYPI_NAME:=jsonschema
-PKG_HASH:=4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa
+PKG_HASH:=3ba18e27f7491ea4a1b22edce00fb820eec968d397feb3f9cb61d5894bb38167
 
 PKG_MAINTAINER:=Javier Marcet 
 PKG_LICENSE:=MIT

From 620afc1806d0a2196a4280b68f93990443b4f4e5 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Thu, 18 Jan 2024 16:08:59 +0100
Subject: [PATCH 094/126] modemmanager: set allowedmode to 'any' if nothing is
 configured

The modem saves the permitted technology configuration in the modem
itself. If the technology configuration is deleted in the uci, this is
not passed on to the modem. This means that the previously saved
technology configuration is remains in the modem and is therefore still
active. By setting the technology to 'any', if no option is set, all
technologies are allowed again.

Signed-off-by: Florian Eckert 
---
 net/modemmanager/Makefile                 | 2 +-
 net/modemmanager/files/modemmanager.proto | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/net/modemmanager/Makefile b/net/modemmanager/Makefile
index 2b455512f..f327b1486 100644
--- a/net/modemmanager/Makefile
+++ b/net/modemmanager/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=modemmanager
 PKG_SOURCE_VERSION:=1.22.0
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
diff --git a/net/modemmanager/files/modemmanager.proto b/net/modemmanager/files/modemmanager.proto
index afbe2397f..671f0db15 100755
--- a/net/modemmanager/files/modemmanager.proto
+++ b/net/modemmanager/files/modemmanager.proto
@@ -523,7 +523,9 @@ proto_modemmanager_setup() {
 	modemmanager_check_state "$device" "${modemstatus}" "$pincode"
 	[ "$?" -ne "0" ] && return 1
 
-	[ -z "${allowedmode}" ] || {
+	if [ -z "${allowedmode}" ]; then
+		modemmanager_set_allowed_mode "$device" "$interface" "any"
+	else
 		case "$allowedmode" in
 			"2g")
 				modemmanager_set_allowed_mode "$device" \
@@ -548,7 +550,7 @@ proto_modemmanager_setup() {
 		esac
 		# check error for allowed_mode and preferred_mode function call
 		[ "$?" -ne "0" ] && return 1
-	}
+	fi
 
 	# always cleanup before attempting a new connection, just in case
 	modemmanager_cleanup_connection "${modemstatus}"

From 39e084ca6bde950a8cd32bcfc7114675bdf88272 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Wed, 17 Jan 2024 10:58:15 +0100
Subject: [PATCH 095/126] modemmanager: move generally applicable functions to
 modemmanager.common

These moved functions are general functions. This is a preparatory
commit so that these moved functions can also be used in other
ModemManager scripts.

Signed-off-by: Florian Eckert 
---
 net/modemmanager/files/10-report-down      |  3 +-
 net/modemmanager/files/modemmanager.common | 67 +++++++++++++++++++++-
 net/modemmanager/files/modemmanager.proto  | 67 +---------------------
 3 files changed, 68 insertions(+), 69 deletions(-)

diff --git a/net/modemmanager/files/10-report-down b/net/modemmanager/files/10-report-down
index 88b010cf0..0ebe87de5 100755
--- a/net/modemmanager/files/10-report-down
+++ b/net/modemmanager/files/10-report-down
@@ -16,9 +16,8 @@ STATE="$4"
 
 [ "${STATE}" = "disconnected" ] || exit 0
 
-. /usr/share/ModemManager/modemmanager.common
 . /lib/netifd/netifd-proto.sh
-INCLUDE_ONLY=1 . /lib/netifd/proto/modemmanager.sh
+. /usr/share/ModemManager/modemmanager.common
 
 MODEM_STATUS=$(mmcli --modem="${MODEM_PATH}" --output-keyvalue)
 [ -n "${MODEM_STATUS}" ] || exit 1
diff --git a/net/modemmanager/files/modemmanager.common b/net/modemmanager/files/modemmanager.common
index 2ba2036ce..4daffb2c1 100644
--- a/net/modemmanager/files/modemmanager.common
+++ b/net/modemmanager/files/modemmanager.common
@@ -6,7 +6,6 @@
 
 . /lib/functions.sh
 . /lib/netifd/netifd-proto.sh
-INCLUDE_ONLY=1 . /lib/netifd/proto/modemmanager.sh
 
 ################################################################################
 # Runtime state
@@ -351,3 +350,69 @@ mm_report_events_from_cache() {
 		mm_report_event_from_cache_line "${event_line}"
 	done < ${MODEMMANAGER_EVENTS_CACHE}
 }
+
+# This method expects as first argument a list of key-value pairs, as returned by mmcli --output-keyvalue
+# The second argument must be exactly the name of the field to read
+#
+# Sample output:
+#     $ mmcli -m 0 -K
+#     modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/0
+#     modem.generic.device-identifier                 : ed6eff2e3e0f90463da1c2a755b2acacd1335752
+#     modem.generic.manufacturer                      : Dell Inc.
+#     modem.generic.model                             : DW5821e Snapdragon X20 LTE
+#     modem.generic.revision                          : T77W968.F1.0.0.4.0.GC.009\n026
+#     modem.generic.carrier-configuration             : GCF
+#     modem.generic.carrier-configuration-revision    : 08E00009
+#     modem.generic.hardware-revision                 : DW5821e Snapdragon X20 LTE
+#     ....
+modemmanager_get_field() {
+	local list=$1
+	local field=$2
+	local value=""
+
+	[ -z "${list}" ] || [ -z "${field}" ] && return
+
+	# there is always at least a whitespace after each key, and we use that as part of the
+	# key matching we do (e.g. to avoid getting 'modem.generic.state-failed-reason' as a result
+	# when grepping for 'modem.generic.state'.
+	line=$(echo "${list}" | grep "${field} ")
+	value=$(echo ${line#*:})
+
+	# not found?
+	[ -n "${value}" ] || return 2
+
+	# only print value if set
+	[ "${value}" != "--" ] && echo "${value}"
+	return 0
+}
+
+# build a comma-separated list of values from the list
+modemmanager_get_multivalue_field() {
+	local list=$1
+	local field=$2
+	local value=""
+	local length idx item
+
+	[ -z "${list}" ] || [ -z "${field}" ] && return
+
+	length=$(modemmanager_get_field "${list}" "${field}.length")
+	[ -n "${length}" ] || return 0
+	[ "$length" -ge 1 ] || return 0
+
+	idx=1
+	while [ $idx -le "$length" ]; do
+		item=$(modemmanager_get_field "${list}" "${field}.value\[$idx\]")
+		[ -n "${item}" ] && [ "${item}" != "--" ] && {
+			[ -n "${value}" ] && value="${value}, "
+			value="${value}${item}"
+		}
+		idx=$((idx + 1))
+	done
+
+	# nothing built?
+	[ -n "${value}" ] || return 2
+
+	# only print value if set
+	echo "${value}"
+	return 0
+}
diff --git a/net/modemmanager/files/modemmanager.proto b/net/modemmanager/files/modemmanager.proto
index 671f0db15..b059b4c59 100755
--- a/net/modemmanager/files/modemmanager.proto
+++ b/net/modemmanager/files/modemmanager.proto
@@ -8,6 +8,7 @@
 	. /lib/functions.sh
 	. ../netifd-proto.sh
 	. ./ppp.sh
+	. /usr/share/ModemManager/modemmanager.common
 	init_proto "$@"
 }
 
@@ -24,72 +25,6 @@ cdr2mask ()
 	echo "${1-0}"."${2-0}"."${3-0}"."${4-0}"
 }
 
-# This method expects as first argument a list of key-value pairs, as returned by mmcli --output-keyvalue
-# The second argument must be exactly the name of the field to read
-#
-# Sample output:
-#     $ mmcli -m 0 -K
-#     modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/0
-#     modem.generic.device-identifier                 : ed6eff2e3e0f90463da1c2a755b2acacd1335752
-#     modem.generic.manufacturer                      : Dell Inc.
-#     modem.generic.model                             : DW5821e Snapdragon X20 LTE
-#     modem.generic.revision                          : T77W968.F1.0.0.4.0.GC.009\n026
-#     modem.generic.carrier-configuration             : GCF
-#     modem.generic.carrier-configuration-revision    : 08E00009
-#     modem.generic.hardware-revision                 : DW5821e Snapdragon X20 LTE
-#     ....
-modemmanager_get_field() {
-	local list=$1
-	local field=$2
-	local value=""
-
-	[ -z "${list}" ] || [ -z "${field}" ] && return
-
-	# there is always at least a whitespace after each key, and we use that as part of the
-	# key matching we do (e.g. to avoid getting 'modem.generic.state-failed-reason' as a result
-	# when grepping for 'modem.generic.state'.
-	line=$(echo "${list}" | grep "${field} ")
-	value=$(echo ${line#*:})
-
-	# not found?
-	[ -n "${value}" ] || return 2
-
-	# only print value if set
-	[ "${value}" != "--" ] && echo "${value}"
-	return 0
-}
-
-# build a comma-separated list of values from the list
-modemmanager_get_multivalue_field() {
-	local list=$1
-	local field=$2
-	local value=""
-	local length idx item
-
-	[ -z "${list}" ] || [ -z "${field}" ] && return
-
-	length=$(modemmanager_get_field "${list}" "${field}.length")
-	[ -n "${length}" ] || return 0
-	[ "$length" -ge 1 ] || return 0
-
-	idx=1
-	while [ $idx -le "$length" ]; do
-		item=$(modemmanager_get_field "${list}" "${field}.value\[$idx\]")
-		[ -n "${item}" ] && [ "${item}" != "--" ] && {
-			[ -n "${value}" ] && value="${value}, "
-			value="${value}${item}"
-		}
-		idx=$((idx + 1))
-	done
-
-	# nothing built?
-	[ -n "${value}" ] || return 2
-
-	# only print value if set
-	echo "${value}"
-	return 0
-}
-
 modemmanager_cleanup_connection() {
 	local modemstatus="$1"
 

From ebc903872177437e2a0f1d2d70820bbccf7e3b22 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Wed, 17 Jan 2024 11:00:37 +0100
Subject: [PATCH 096/126] modemmanager: move shell include to the beginning of
 the file

It is usual that the includes are listed at the beginning of the script.
So let's do it that way too.

Signed-off-by: Florian Eckert 
---
 net/modemmanager/files/usr/sbin/ModemManager-wrapper | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/modemmanager/files/usr/sbin/ModemManager-wrapper b/net/modemmanager/files/usr/sbin/ModemManager-wrapper
index 97c2a826d..5ca530b16 100644
--- a/net/modemmanager/files/usr/sbin/ModemManager-wrapper
+++ b/net/modemmanager/files/usr/sbin/ModemManager-wrapper
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+. /usr/share/ModemManager/modemmanager.common
+
 trap_with_arg() {
 	func="$1" ; shift
 	for sig ; do
@@ -14,8 +16,6 @@ func_trap() {
 }
 
 main() {
-	. /usr/share/ModemManager/modemmanager.common
-
 	trap_with_arg func_trap INT TERM KILL
 
 	mkdir -p "${MODEMMANAGER_RUNDIR}"

From d9b5e06d19ce4983c39051d2c9009260af34f351 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Wed, 17 Jan 2024 11:07:25 +0100
Subject: [PATCH 097/126] modemmanager: replace modem available check on start
 with the new monitore service

Before this change, the status of the sysfs paths from the kernel events
was cached with a cache file. This is necessary to mark configured modems
as available for the netifd.

Using the new monitor service via the mmcli command 'mmcli -M' simplifies
the whole process. There is no need to start sub shells in the background
anymore that monitors whether the modem has already been added to the
ModemManager.

For this purpose, a new service was added that reacts on add and remove
events for modems in the ModemManager and, if necessary, marks the logical
netifd interface as available.

Signed-off-by: Florian Eckert 
---
 net/modemmanager/Makefile                     |   4 +-
 net/modemmanager/files/25-modemmanager-usb    |  13 --
 net/modemmanager/files/modemmanager.common    | 156 +-----------------
 net/modemmanager/files/modemmanager.init      |   6 +-
 .../files/usr/sbin/ModemManager-monitor       | 155 +++++++++++++++++
 .../files/usr/sbin/ModemManager-wrapper       |   3 -
 6 files changed, 163 insertions(+), 174 deletions(-)
 delete mode 100644 net/modemmanager/files/25-modemmanager-usb
 create mode 100644 net/modemmanager/files/usr/sbin/ModemManager-monitor

diff --git a/net/modemmanager/Makefile b/net/modemmanager/Makefile
index f327b1486..779757817 100644
--- a/net/modemmanager/Makefile
+++ b/net/modemmanager/Makefile
@@ -92,6 +92,7 @@ define Package/modemmanager/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ModemManager $(1)/usr/sbin
 	$(INSTALL_BIN) ./files/usr/sbin/ModemManager-wrapper $(1)/usr/sbin
+	$(INSTALL_BIN) ./files/usr/sbin/ModemManager-monitor $(1)/usr/sbin
 
 	$(INSTALL_DIR) $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin
@@ -118,9 +119,6 @@ define Package/modemmanager/install
 	$(INSTALL_DIR) $(1)/etc/init.d
 	$(INSTALL_BIN) ./files/modemmanager.init $(1)/etc/init.d/modemmanager
 
-	$(INSTALL_DIR) $(1)/etc/hotplug.d/usb
-	$(INSTALL_DATA) ./files/25-modemmanager-usb $(1)/etc/hotplug.d/usb
-
 	$(INSTALL_DIR) $(1)/etc/hotplug.d/net
 	$(INSTALL_DATA) ./files/25-modemmanager-net $(1)/etc/hotplug.d/net
 
diff --git a/net/modemmanager/files/25-modemmanager-usb b/net/modemmanager/files/25-modemmanager-usb
deleted file mode 100644
index 93d0bf70a..000000000
--- a/net/modemmanager/files/25-modemmanager-usb
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2019 Aleksander Morgado 
-
-# We need to process only full USB device removal events, we don't
-# want to process specific interface removal events.
-[ "$ACTION" = remove ] || exit
-[ -z "${INTERFACE}" ] || exit
-
-# Load common utilities
-. /usr/share/ModemManager/modemmanager.common
-
-mm_clear_modem_wait_status "/sys${DEVPATH}"
-mm_cleanup_interface_by_sysfspath "/sys${DEVPATH}"
diff --git a/net/modemmanager/files/modemmanager.common b/net/modemmanager/files/modemmanager.common
index 4daffb2c1..b3f86db9a 100644
--- a/net/modemmanager/files/modemmanager.common
+++ b/net/modemmanager/files/modemmanager.common
@@ -13,7 +13,7 @@
 MODEMMANAGER_RUNDIR="/var/run/modemmanager"
 MODEMMANAGER_PID_FILE="${MODEMMANAGER_RUNDIR}/modemmanager.pid"
 MODEMMANAGER_CDCWDM_CACHE="${MODEMMANAGER_RUNDIR}/cdcwdm.cache"
-MODEMMANAGER_SYSFS_CACHE="${MODEMMANAGER_RUNDIR}/sysfs.cache"
+MODEMMANAGER_MONITOR_CACHE="${MODEMMANAGER_RUNDIR}/monitor.cache"
 MODEMMANAGER_EVENTS_CACHE="${MODEMMANAGER_RUNDIR}/events.cache"
 
 ################################################################################
@@ -92,48 +92,6 @@ mm_untrack_cdcwdm() {
 	echo "${cdcwdm}"
 }
 
-################################################################################
-# ModemManager needs some time from the ports being added until a modem object
-# is exposed in DBus. With the logic here we do an explicit wait of N seconds
-# for ModemManager to expose the new modem object, making sure that the wait is
-# unique per device (i.e. per physical device sysfs path).
-
-# Gets the modem wait status as retrieved from the cache
-mm_get_modem_wait_status() {
-	local sysfspath="$1"
-
-	# If no sysfs cache file, we're done
-	[ -f "${MODEMMANAGER_SYSFS_CACHE}" ] || return
-
-	# Get status of the sysfs path
-	awk -v sysfspath="${sysfspath}" '!/^#/ && $0 ~ sysfspath { print $2 }' "${MODEMMANAGER_SYSFS_CACHE}"
-}
-
-# Clear the modem wait status from the cache, if any
-mm_clear_modem_wait_status() {
-	local sysfspath="$1"
-
-	local escaped_sysfspath
-
-	[ -f "${MODEMMANAGER_SYSFS_CACHE}" ] && {
-		# escape '/', '\' and '&' for sed...
-		escaped_sysfspath=$(echo "$sysfspath" | sed -e 's/[\/&]/\\&/g')
-		sed -i "/${escaped_sysfspath}/d" "${MODEMMANAGER_SYSFS_CACHE}"
-	}
-}
-
-# Sets the modem wait status in the cache
-mm_set_modem_wait_status() {
-	local sysfspath="$1"
-	local status="$2"
-
-	# Remove sysfs line before adding the new one with the new state
-	mm_clear_modem_wait_status "${sysfspath}"
-
-	# Add the new status
-	echo "${sysfspath} ${status}" >> "${MODEMMANAGER_SYSFS_CACHE}"
-}
-
 # Callback for config_foreach()
 mm_get_modem_config_foreach_cb() {
 	local cfg="$1"
@@ -155,112 +113,6 @@ mm_get_modem_config() {
 	config_foreach mm_get_modem_config_foreach_cb interface "${sysfspath}"
 }
 
-# Wait for a modem in the specified sysfspath
-mm_wait_for_modem() {
-	local cfg="$1"
-	local sysfspath="$2"
-
-	# TODO: config max wait
-	local n=45
-	local step=5
-
-	while [ $n -ge 0 ]; do
-		[ -d "${sysfspath}" ] || {
-			mm_log "error" "ignoring modem detection request: no device at ${sysfspath}"
-			proto_set_available "${cfg}" 0
-			return 1
-		}
-
-		# Check if the modem exists at the given sysfs path
-		if ! mmcli -m "${sysfspath}" > /dev/null 2>&1
-		then
-			mm_log "error" "modem not detected at sysfs path"
-		else
-			mm_log "info" "modem exported successfully at ${sysfspath}"
-			mm_log "info" "setting interface '${cfg}' as available"
-			proto_set_available "${cfg}" 1
-			return 0
-		fi
-
-		sleep $step
-		n=$((n-step))
-	done
-
-	mm_log "error" "timed out waiting for the modem to get exported at ${sysfspath}"
-	proto_set_available "${cfg}" 0
-	return 2
-}
-
-mm_report_modem_wait() {
-	local sysfspath=$1
-
-	local parent_sysfspath status
-
-	parent_sysfspath=$(mm_find_physdev_sysfs_path "$sysfspath")
-	[ -n "${parent_sysfspath}" ] || {
-		mm_log "error" "parent device sysfspath not found"
-		return
-	}
-
-	status=$(mm_get_modem_wait_status "${parent_sysfspath}")
-	case "${status}" in
-		"")
-			local cfg
-
-			cfg=$(mm_get_modem_config "${parent_sysfspath}")
-			if [ -n "${cfg}" ]; then
-				mm_log "info" "interface '${cfg}' is set to configure device '${parent_sysfspath}'"
-				mm_log "info" "now waiting for modem at sysfs path ${parent_sysfspath}"
-				mm_set_modem_wait_status "${parent_sysfspath}" "processed"
-				# Launch subshell for the explicit wait
-				( mm_wait_for_modem "${cfg}" "${parent_sysfspath}" ) > /dev/null 2>&1 &
-			else
-				mm_log "info" "no need to wait for modem at sysfs path ${parent_sysfspath}"
-				mm_set_modem_wait_status "${parent_sysfspath}" "ignored"
-			fi
-			;;
-		"processed")
-			mm_log "info" "already waiting for modem at sysfs path ${parent_sysfspath}"
-			;;
-		"ignored")
-			;;
-		*)
-			mm_log "error" "unknown status read for device at sysfs path ${parent_sysfspath}"
-			;;
-	esac
-}
-
-################################################################################
-# Cleanup interfaces
-
-mm_cleanup_interfaces() {
-	local sysfs_path status
-
-	# Do nothing if there is no sysfs cache
-	[ -f "${MODEMMANAGER_SYSFS_CACHE}" ] || return
-
-	while IFS= read -r sysfs_cache_line; do
-		sysfs_path=$(echo "${sysfs_cache_line}" | awk '{print $1}')
-		status=$(echo "${sysfs_cache_line}" | awk '{print $2}')
-
-		if [ "${status}" = "processed" ]; then
-			mm_log "debug" "call cleanup for: ${sysfs_path}"
-			mm_cleanup_interface_by_sysfspath "${sysfs_path}"
-		fi
-	done < ${MODEMMANAGER_SYSFS_CACHE}
-}
-
-mm_cleanup_interface_by_sysfspath() {
-	local dev="$1"
-
-	local cfg
-	cfg=$(mm_get_modem_config "$dev")
-	[ -n "${cfg}" ] || return
-
-	mm_log "info" "setting interface '$cfg' as unavailable"
-	proto_set_available "${cfg}" 0
-}
-
 ################################################################################
 # Event reporting
 
@@ -295,13 +147,9 @@ mm_report_event() {
 	# Report the event
 	mm_log "debug" "Report event: action=${action}, name=${name}, subsystem=${subsystem}"
 	result=$(mmcli --report-kernel-event="action=${action},name=${name},subsystem=${subsystem}" 2>&1)
-	if [ "$?" -eq "0" ]; then
-		# Wait for added modem if a sysfspath is given
-		[ -n "${sysfspath}" ] && [ "$action" = "add" ] && mm_report_modem_wait "${sysfspath}"
-	else
+	if [ "$?" -ne "0" ]; then
 		mm_log "error" "Couldn't report kernel event: ${result}"
 	fi
-
 }
 
 mm_report_event_from_cache_line() {
diff --git a/net/modemmanager/files/modemmanager.init b/net/modemmanager/files/modemmanager.init
index a036d884d..ccc1953ae 100755
--- a/net/modemmanager/files/modemmanager.init
+++ b/net/modemmanager/files/modemmanager.init
@@ -21,11 +21,15 @@ start_service() {
 	# wrapper script called '/usr/sbin/ModemManager-wrapper'.
 	#
 	. /usr/share/ModemManager/modemmanager.common
-	procd_open_instance
+	procd_open_instance "service"
 	procd_set_param command /usr/sbin/ModemManager-wrapper
 	procd_append_param command --log-level="$LOG_LEVEL"
 	[ "$LOG_LEVEL" = "DEBUG" ] && procd_append_param command --debug
 	procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
 	procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
 	procd_close_instance
+	procd_open_instance "monitor"
+	procd_set_param command /usr/sbin/ModemManager-monitor
+	procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
+	procd_close_instance
 }
diff --git a/net/modemmanager/files/usr/sbin/ModemManager-monitor b/net/modemmanager/files/usr/sbin/ModemManager-monitor
new file mode 100644
index 000000000..8a88ab514
--- /dev/null
+++ b/net/modemmanager/files/usr/sbin/ModemManager-monitor
@@ -0,0 +1,155 @@
+#!/bin/sh
+
+. /lib/functions.sh
+. /lib/netifd/netifd-proto.sh
+. /usr/share/ModemManager/modemmanager.common
+
+trap_with_arg() {
+	func="$1" ; shift
+	for sig ; do
+		# shellcheck disable=SC2064
+		trap "$func $sig" "$sig"
+	done
+}
+
+func_trap() {
+	local monitor_cache_line object
+
+	logger "ModemManager-monitor[$$]" "Sending signal ${1} ..."
+
+	# Set all configured logical interfaces to unavailable
+	while IFS= read -r monitor_cache_line; do
+		object=$(echo "${monitor_cache_line}" | awk '{print $1}')
+		mm_monitor_cache_remove "$object"
+	done < ${MODEMMANAGER_MONITOR_CACHE}
+
+	kill "-${1}" "$CHILD" 2>/dev/null
+}
+
+mm_monitor_get_sysfspath() {
+	local object="$1"
+
+	# If no monitor cache file, we're done
+	[ -f "${MODEMMANAGER_MONITOR_CACHE}" ] || return
+
+	awk -v object="${object}" '!/^#/ && $0 ~ object { print $2 }' "${MODEMMANAGER_MONITOR_CACHE}"
+}
+
+mm_monitor_cache_remove() {
+	local object="$1"
+
+	local device cfg
+
+	device=$(mm_monitor_get_sysfspath "${object}")
+
+	cfg=$(mm_get_modem_config "${device}")
+	if [ -n "${cfg}" ]; then
+		mm_log "debug" "interface '${cfg}' set '${device}' state unavailable"
+		proto_set_available "${cfg}" 0
+	fi
+
+	mm_log "debug" "delete object '$object' from monitore cache"
+
+	# On monitor remove event, remove old events from cache
+	# Also substitute object path '/org/freedesktop/ModemManager1/Modem/'
+	# all '/' with '\/' to make sed happy with shell expansion
+	sed -i "/${object//\//\\/}/d" "${MODEMMANAGER_MONITOR_CACHE}"
+}
+
+mm_monitor_cache_add() {
+	local object="$1"
+	local modemstatus device sysfspath cfg
+
+	modemstatus="$(mmcli --modem="${object}" --output-keyvalue)"
+
+	device=$(modemmanager_get_field "${modemstatus}" "modem.generic.device")
+	[ -n "${device}" ] || {
+		mm_log "err" "No 'device' for object '$object' not found..."
+		return 1
+	}
+
+	sysfspath=$(modemmanager_get_field "${modemstatus}" "modem.generic.physdev")
+	[ -n "${sysfspath}" ] || {
+		mm_log "err" "No 'sysfspath' for object '$object' not found..."
+		return 2
+	}
+
+	mm_log "debug" "add object '$object' to monitore cache (device=${device},sysfspath=${sysfspath})"
+
+	# On monitor add event, store event details in cache (if not exists yet)
+	grep -qs "${sysfspath}" "${MODEMMANAGER_MONITOR_CACHE}" || \
+		echo "${object} ${device} ${sysfspath}" >> "${MODEMMANAGER_MONITOR_CACHE}"
+
+	cfg=$(mm_get_modem_config "${device}")
+	if [ -n "${cfg}" ]; then
+		mm_log "info" "interface '${cfg}' set '${device}' state available"
+		proto_set_available "${cfg}" 1
+	fi
+}
+
+mm_monitor_cache_del() {
+	local object="$1"
+
+	mm_monitor_cache_remove "$object"
+}
+
+mm_monitor_cache() {
+	local line="$1"
+	local event object modemstatus device pyhsdev
+
+	event="$(echo "$line" | cut -d " " -f 1)"
+	object="$(echo "$line" | cut -d " " -f 2)"
+
+	case "$event" in
+		"(+)")
+			mm_monitor_cache_add "$object"
+			;;
+		"(-)")
+			mm_monitor_cache_del "$object"
+			;;
+	esac
+}
+
+main() {
+
+	local n=60
+	local step=1
+	local mmrunning=0
+
+	trap_with_arg func_trap INT TERM KILL
+
+	mkdir -p "${MODEMMANAGER_RUNDIR}"
+	chmod 0755 "${MODEMMANAGER_RUNDIR}"
+
+	# Wait for ModemManager to be available in the bus
+	while [ $n -ge 0 ]; do
+		sleep $step
+		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"
+		else
+			mmrunning=1
+			break
+		fi
+		n=$((n-step))
+	done
+
+	[ ${mmrunning} -eq 1 ] || {
+		mm_log "error" "couldn't report initial kernel events: ModemManager not running"
+		return
+	}
+
+	/usr/bin/mmcli -M | {
+		local line
+		while read -r line; do
+			mm_log "debug" "Monitor cache line: ${line}"
+			mm_monitor_cache "$line"
+		done
+	} &
+	CHILD="$!"
+
+	wait $CHILD
+}
+
+main "$@"
diff --git a/net/modemmanager/files/usr/sbin/ModemManager-wrapper b/net/modemmanager/files/usr/sbin/ModemManager-wrapper
index 5ca530b16..b0f36c267 100644
--- a/net/modemmanager/files/usr/sbin/ModemManager-wrapper
+++ b/net/modemmanager/files/usr/sbin/ModemManager-wrapper
@@ -27,9 +27,6 @@ main() {
 	mm_report_events_from_cache
 
 	wait "$CHILD"
-
-	# Set all configured interfaces as unavailable
-	mm_cleanup_interfaces
 }
 
 main "$@"

From b0f726031992dcfcf7f20e0fcd1f15ba2eab6061 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Wed, 17 Jan 2024 11:36:48 +0100
Subject: [PATCH 098/126] modemmanager: suppress mm_log debug messages by
 default

The log is filled with 'debug' messages. This is not necessary and is
only normaly needed during development. To suppress this message, check
whether the level is 'debug' and if so, suppress it. If this message is
required again, the message can be generated by commenting out this line.

Signed-off-by: Florian Eckert 
---
 net/modemmanager/files/modemmanager.common | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/modemmanager/files/modemmanager.common b/net/modemmanager/files/modemmanager.common
index b3f86db9a..ab5f92b98 100644
--- a/net/modemmanager/files/modemmanager.common
+++ b/net/modemmanager/files/modemmanager.common
@@ -21,6 +21,8 @@ MODEMMANAGER_EVENTS_CACHE="${MODEMMANAGER_RUNDIR}/events.cache"
 
 mm_log() {
 	local level="$1"; shift
+
+	[ "${level}" = "debug" ] && return
 	logger -p "daemon.${level}" -t "ModemManager[$$]" "hotplug: $*"
 }
 

From fabb50ae97eaa0755fa53e3a700756435a229c26 Mon Sep 17 00:00:00 2001
From: Florian Eckert 
Date: Fri, 19 Jan 2024 08:35:52 +0100
Subject: [PATCH 099/126] modemmanger: bump PKG_RELEASE

Signed-off-by: Florian Eckert 
---
 net/modemmanager/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/modemmanager/Makefile b/net/modemmanager/Makefile
index 779757817..c4c9e8af4 100644
--- a/net/modemmanager/Makefile
+++ b/net/modemmanager/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=modemmanager
 PKG_SOURCE_VERSION:=1.22.0
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git

From 0b2728b2f2aa3f412469178828613e85c13fe74f Mon Sep 17 00:00:00 2001
From: John Audia 
Date: Thu, 18 Jan 2024 14:16:32 -0500
Subject: [PATCH 100/126] snort3: update to 3.1.78.0

Upstream bump

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.78.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2024 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.14
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2024-01-15
           Using LZMA version 5.4.4

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia 
---
 net/snort3/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/snort3/Makefile b/net/snort3/Makefile
index d8fd43972..b7658c4d0 100644
--- a/net/snort3/Makefile
+++ b/net/snort3/Makefile
@@ -6,12 +6,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=snort3
-PKG_VERSION:=3.1.77.0
-PKG_RELEASE:=2
+PKG_VERSION:=3.1.78.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/snort3/snort3/archive/refs/tags/
-PKG_HASH:=cb98c0d15caa7c84da24995e8521f42f4e86a860b9748418154d8649b6a0db2d
+PKG_HASH:=08a51223c22aa3196e6dc959d3b52df03da9a458877ff7e77fa9c4ee8eb8947c
 
 PKG_MAINTAINER:=W. Michael Petullo , John Audia 
 PKG_LICENSE:=GPL-2.0-only

From f2a6449b6f4be22e7ba0fe1dcae7a76fc969d31d Mon Sep 17 00:00:00 2001
From: Alexandru Ardelean 
Date: Mon, 15 Jan 2024 09:56:03 +0200
Subject: [PATCH 101/126] sudo: bump to verison 1.9.15p5

Signed-off-by: Alexandru Ardelean 
---
 admin/sudo/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/admin/sudo/Makefile b/admin/sudo/Makefile
index cecf9329e..180374352 100644
--- a/admin/sudo/Makefile
+++ b/admin/sudo/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sudo
-PKG_VERSION:=1.9.15p4
+PKG_VERSION:=1.9.15p5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.sudo.ws/dist
-PKG_HASH:=2e20ec9865eeeea1316c6f49ec6ac4678869b689d4d90b44243bf4887d6dd532
+PKG_HASH:=558d10b9a1991fb3b9fa7fa7b07ec4405b7aefb5b3cb0b0871dbc81e3a88e558
 
 PKG_MAINTAINER:=Alexandru Ardelean 
 

From 9272aab4042ccd135bdc83e48d4d31595419b83c Mon Sep 17 00:00:00 2001
From: "W. Michael Petullo" 
Date: Thu, 4 Jan 2024 14:03:17 -0600
Subject: [PATCH 102/126] evilginx2: add new package

Signed-off-by: W. Michael Petullo 
---
 net/evilginx2/Makefile | 53 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 net/evilginx2/Makefile

diff --git a/net/evilginx2/Makefile b/net/evilginx2/Makefile
new file mode 100644
index 000000000..ac1d1421c
--- /dev/null
+++ b/net/evilginx2/Makefile
@@ -0,0 +1,53 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=evilginx2
+PKG_VERSION:=3.2.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/kgretzky/evilginx2/tar.gz/v$(PKG_VERSION)?
+PKG_HASH:=1c9f51c447704d0097280b6e743134cf108e8adc654a0ac4343400b5800e77f0
+
+PKG_MAINTAINER:=W. Michael Petullo 
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_FLAGS:=no-mips16
+
+GO_PKG:=github.com/kgretzky/evilginx2
+GO_PKG_LDFLAGS_X:=$(GO_PKG)/cmd.Version=$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/evilginx2
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Man-in-the-middle reverse-proxy attack framework
+  URL:=https://help.evilginx.com/
+  DEPENDS:=$(GO_ARCH_DEPENDS)
+endef
+
+define Package/evilginx/description
+  Evilginx is a man-in-the-middle reverse-proxy attack framework that
+  is useful for testing your organization's exposure to phishing and
+  other similar attacks.
+endef
+
+define Package/gophish/conffiles
+/etc/evilginx2.json
+endef
+
+define Package/evilginx2/install
+	$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
+	$(INSTALL_DIR) $(1)/usr/sbin
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/evilginx2 $(1)/usr/sbin/
+	$(INSTALL_DIR) $(1)/usr/libexec/evilginx2
+	$(CP) $(PKG_BUILD_DIR)/phishlets $(1)/usr/libexec/evilginx2/
+	$(CP) $(PKG_BUILD_DIR)/redirectors $(1)/usr/libexec/evilginx2/
+endef
+
+$(eval $(call GoBinPackage,evilginx2))
+$(eval $(call BuildPackage,evilginx2))

From 48b55bde67715de3b7f01cb099e552abbf86a12e Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Sat, 20 Jan 2024 12:54:09 +0800
Subject: [PATCH 103/126] cloudflared: Update to 2024.1.4

Signed-off-by: Tianling Shen 
---
 net/cloudflared/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/cloudflared/Makefile b/net/cloudflared/Makefile
index 480c54f37..45e3509d4 100644
--- a/net/cloudflared/Makefile
+++ b/net/cloudflared/Makefile
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cloudflared
-PKG_VERSION:=2024.1.2
+PKG_VERSION:=2024.1.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/cloudflare/cloudflared/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=244455f69a9575fbf8f7a818eb71ebcb6a06182b5f3e1a757174418a3e08e1e9
+PKG_HASH:=a78af7d12b96bba691c420bc0ea42087cda73463868a3ba7c6890a9f962218e9
 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE

From 501ca7c4391913297eea16a07615bc0d8ee709e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
Date: Tue, 16 Jan 2024 16:29:56 +0100
Subject: [PATCH 104/126] bcm27xx-eeprom: update to latest version
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Updates Raspberry Pi 4 (bcm2711) EEPROM files to latest version.
- Refresh patches.
- Add missing patch header.
- Add mount-utils dependency (findmnt is needed by "rpi-eeprom-update -r").
- Switch to default and latest instead of deprecated critical and stable.

Signed-off-by: Álvaro Fernández Rojas 
---
 utils/bcm27xx-eeprom/Makefile                 | 19 ++++++------
 ...1-rpi-eeprom-update-OpenWrt-defaults.patch | 29 ++++++++-----------
 ...-update-change-default-include-path.patch} | 28 ++++++++++++++----
 ...ate-chmod-silent-f-is-not-supported.patch} |  6 ++--
 ...-replace-nano-with-vi-as-default-ed.patch} | 17 +++++++++--
 5 files changed, 62 insertions(+), 37 deletions(-)
 rename utils/bcm27xx-eeprom/patches/{0003-rpi-eeprom-update-change-default-include-path.patch => 0002-rpi-eeprom-update-change-default-include-path.patch} (53%)
 rename utils/bcm27xx-eeprom/patches/{0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch => 0003-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch} (89%)
 rename utils/bcm27xx-eeprom/patches/{0005-rpi-eeprom-config-change-default-text-editor.patch => 0004-rpi-eeprom-config-replace-nano-with-vi-as-default-ed.patch} (54%)

diff --git a/utils/bcm27xx-eeprom/Makefile b/utils/bcm27xx-eeprom/Makefile
index 8b9851e6a..8cb44f718 100644
--- a/utils/bcm27xx-eeprom/Makefile
+++ b/utils/bcm27xx-eeprom/Makefile
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bcm27xx-eeprom
-PKG_VERSION:=v2022.04.26-138a1
+PKG_VERSION:=v.2024.01.05-2712
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/rpi-eeprom/tar.gz/$(PKG_VERSION)?
-PKG_HASH:=7c54839e68f226c5853fb63c8a1539b729d84b2e6bac311a51766c601d10a413
+PKG_HASH:=ae1d9f10e4383ee39b291b4b3be1be583f6f32f806f65a1431da65ca4ccffe39
 
 PKG_LICENSE:=BSD-3-Clause Custom
 PKG_LICENSE_FILES:=LICENSE
@@ -21,7 +21,7 @@ TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
 define Package/bcm27xx-eeprom
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=bcm27xx-userland +blkid +coreutils +coreutils-od +pciutils +python3-light
+  DEPENDS:=bcm27xx-userland +blkid +coreutils +coreutils-od +mount-utils +pciutils +python3-light
   TITLE:=BCM27xx EEPROM tools
 endef
 
@@ -46,14 +46,13 @@ define Package/bcm27xx-eeprom/install
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-digest $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-update $(1)/usr/bin
 
-	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader
-	$(CP) $(PKG_BUILD_DIR)/firmware/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/default
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
 
-	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader/critical
-	$(CP) $(PKG_BUILD_DIR)/firmware/critical/ $(1)/lib/firmware/raspberrypi/bootloader/
-
-	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader/stable
-	$(CP) $(PKG_BUILD_DIR)/firmware/stable/ $(1)/lib/firmware/raspberrypi/bootloader/
+	$(CP) $(PKG_BUILD_DIR)/firmware-2711/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2711
+	$(CP) $(PKG_BUILD_DIR)/firmware-2711/default $(1)/lib/firmware/raspberrypi/bootloader-2711
+	$(CP) $(PKG_BUILD_DIR)/firmware-2711/latest $(1)/lib/firmware/raspberrypi/bootloader-2711
 endef
 
 $(eval $(call BuildPackage,bcm27xx-eeprom))
diff --git a/utils/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch b/utils/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch
index b0b5f2e0f..4404fc3b6 100644
--- a/utils/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch
+++ b/utils/bcm27xx-eeprom/patches/0001-rpi-eeprom-update-OpenWrt-defaults.patch
@@ -1,4 +1,4 @@
-From da37f7b051fe6833e25e78184cc9217dd4379187 Mon Sep 17 00:00:00 2001
+From a7c4e8f246dc58b4c83293b11f6443528065dc70 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
 Date: Mon, 23 Mar 2020 10:10:55 +0100
 Subject: [PATCH] rpi-eeprom-update: OpenWrt defaults
@@ -8,34 +8,29 @@ Content-Transfer-Encoding: 8bit
 
 Signed-off-by: Álvaro Fernández Rojas 
 ---
- rpi-eeprom-update         | 6 +++---
- rpi-eeprom-update-default | 5 +++--
- 2 files changed, 6 insertions(+), 5 deletions(-)
+ rpi-eeprom-update         | 4 ++--
+ rpi-eeprom-update-default | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
 
 --- a/rpi-eeprom-update
 +++ b/rpi-eeprom-update
-@@ -24,9 +24,9 @@ else
- fi
+@@ -25,7 +25,7 @@ fi
  
  # Selects the release sub-directory
--FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-default}
-+FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-stable}
- FIRMWARE_IMAGE_DIR=${FIRMWARE_IMAGE_DIR:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}}
+ FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-default}
 -FIRMWARE_BACKUP_DIR=${FIRMWARE_BACKUP_DIR:-/var/lib/raspberrypi/bootloader/backup}
 +FIRMWARE_BACKUP_DIR=${FIRMWARE_BACKUP_DIR:-${FIRMWARE_ROOT}/backup}
  ENABLE_VL805_UPDATES=${ENABLE_VL805_UPDATES:-1}
- RECOVERY_BIN=${RECOVERY_BIN:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}/recovery.bin}
- BOOTFS=${BOOTFS:-/boot}
+ CM4_ENABLE_RPI_EEPROM_UPDATE=${CM4_ENABLE_RPI_EEPROM_UPDATE:-0}
+ RPI_EEPROM_UPDATE_CONFIG_TOOL="${RPI_EEPROM_UPDATE_CONFIG_TOOL:-raspi-config}"
 --- a/rpi-eeprom-update-default
 +++ b/rpi-eeprom-update-default
-@@ -1,8 +1,8 @@
+@@ -1,7 +1,7 @@
  
  FIRMWARE_ROOT=/lib/firmware/raspberrypi/bootloader
--FIRMWARE_RELEASE_STATUS="critical"
-+FIRMWARE_RELEASE_STATUS="stable"
- FIRMWARE_IMAGE_DIR="${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}"
+ FIRMWARE_RELEASE_STATUS="default"
 -FIRMWARE_BACKUP_DIR="/var/lib/raspberrypi/bootloader/backup"
 +FIRMWARE_BACKUP_DIR="${FIRMWARE_ROOT}/backup"
- BOOTFS=/boot
- USE_FLASHROM=0
  EEPROM_CONFIG_HOOK=
+ 
+ # BOOTFS can be set here to override auto-detection in rpi-eeprom-update
diff --git a/utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch b/utils/bcm27xx-eeprom/patches/0002-rpi-eeprom-update-change-default-include-path.patch
similarity index 53%
rename from utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch
rename to utils/bcm27xx-eeprom/patches/0002-rpi-eeprom-update-change-default-include-path.patch
index 535d07ebe..840cd286f 100644
--- a/utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-change-default-include-path.patch
+++ b/utils/bcm27xx-eeprom/patches/0002-rpi-eeprom-update-change-default-include-path.patch
@@ -1,4 +1,4 @@
-From 6674d49dea0104031b3f54df4c7a356dc4307bb2 Mon Sep 17 00:00:00 2001
+From fc552b1e5c503c530763e40d2b83df55c5c2e9a3 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
 Date: Wed, 25 Mar 2020 20:58:35 +0100
 Subject: [PATCH] rpi-eeprom-update: change default include path
@@ -8,8 +8,8 @@ Content-Transfer-Encoding: 8bit
 
 Signed-off-by: Álvaro Fernández Rojas 
 ---
- rpi-eeprom-update | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+ rpi-eeprom-update | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
 
 --- a/rpi-eeprom-update
 +++ b/rpi-eeprom-update
@@ -24,7 +24,16 @@ Signed-off-by: Álvaro Fernández Rojas 
  fi
  
  LOCAL_MODE=0
-@@ -380,7 +380,7 @@ The system should then boot normally.
+@@ -423,7 +423,7 @@ checkDependencies() {
+       echo "Run with -h for more information."
+       echo
+       echo "To enable flashrom programming of the EEPROM"
+-      echo "Add these the following entries to /etc/default/rpi-eeprom-update"
++      echo "Add these the following entries to /etc/bcm27xx-eeprom.conf"
+       echo "RPI_EEPROM_USE_FLASHROM=1"
+       echo "CM4_ENABLE_RPI_EEPROM_UPDATE=1"
+       echo 
+@@ -514,7 +514,7 @@ The system should then boot normally.
  
  If /boot does not correspond to the boot partition and this
  is not a NOOBS system, then the mount point for BOOTFS should be defined
@@ -33,7 +42,7 @@ Signed-off-by: Álvaro Fernández Rojas 
  
  A backup of the current EEPROM config file is written to ${FIRMWARE_BACKUP_DIR}
  before applying the update.
-@@ -413,7 +413,7 @@ Options:
+@@ -546,7 +546,7 @@ Options:
     -u Install the specified VL805 (USB EEPROM) image file.
  
  Environment:
@@ -42,3 +51,12 @@ Signed-off-by: Álvaro Fernández Rojas 
  
  EEPROM_CONFIG_HOOK
  
+@@ -618,7 +618,7 @@ must first be enabled by removing ENABLE
+ via usbboot.
+ 
+ After enabling self-update set the CM4_ENABLE_RPI_EEPROM_UPDATE=1 environment
+-variable or define it in /etc/default/rpi-eeprom-update.
++variable or define it in /etc/bcm27xx-eeprom.conf.
+ 
+ N.B. If there is a power failure during SELF_UPDATE the EEPROM write may fail and
+ usbboot must be used to flash the bootloader EEPROM. SELF_UPDATE is not recommended
diff --git a/utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch b/utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch
similarity index 89%
rename from utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch
rename to utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch
index 5872f12da..344d001d8 100644
--- a/utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch
+++ b/utils/bcm27xx-eeprom/patches/0003-rpi-eeprom-update-chmod-silent-f-is-not-supported.patch
@@ -1,4 +1,4 @@
-From 8376ac74390af0ad736c88615e128b82a75eebc0 Mon Sep 17 00:00:00 2001
+From 62ec3384358bda60269c131d3880795bc8cdc3ce Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
 Date: Fri, 19 Feb 2021 10:54:23 +0100
 Subject: [PATCH] rpi-eeprom-update: chmod silent (-f) is not supported
@@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas 
 
 --- a/rpi-eeprom-update
 +++ b/rpi-eeprom-update
-@@ -200,7 +200,7 @@ applyRecoveryUpdate()
+@@ -216,7 +216,7 @@ applyRecoveryUpdate()
                  || die "Failed to copy ${TMP_EEPROM_IMAGE} to ${BOOTFS}"
  
          # For NFS mounts ensure that the files are readable to the TFTP user
@@ -22,7 +22,7 @@ Signed-off-by: Álvaro Fernández Rojas 
                  || die "Failed to set permissions on eeprom update files"
     fi
  
-@@ -211,7 +211,7 @@ applyRecoveryUpdate()
+@@ -227,7 +227,7 @@ applyRecoveryUpdate()
                  || die "Failed to copy ${VL805_UPDATE_IMAGE} to ${BOOTFS}/vl805.bin"
  
          # For NFS mounts ensure that the files are readable to the TFTP user
diff --git a/utils/bcm27xx-eeprom/patches/0005-rpi-eeprom-config-change-default-text-editor.patch b/utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-config-replace-nano-with-vi-as-default-ed.patch
similarity index 54%
rename from utils/bcm27xx-eeprom/patches/0005-rpi-eeprom-config-change-default-text-editor.patch
rename to utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-config-replace-nano-with-vi-as-default-ed.patch
index 6feb7602c..3cbdd7162 100644
--- a/utils/bcm27xx-eeprom/patches/0005-rpi-eeprom-config-change-default-text-editor.patch
+++ b/utils/bcm27xx-eeprom/patches/0004-rpi-eeprom-config-replace-nano-with-vi-as-default-ed.patch
@@ -1,6 +1,19 @@
+From 8d1e47c956ae10d1146114f7fcd4eb0d33187d08 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
+Date: Tue, 16 Jan 2024 16:25:40 +0100
+Subject: [PATCH] rpi-eeprom-config: replace nano with vi as default editor
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Álvaro Fernández Rojas 
+---
+ rpi-eeprom-config | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
 --- a/rpi-eeprom-config
 +++ b/rpi-eeprom-config
-@@ -166,8 +166,8 @@ def edit_config(eeprom=None):
+@@ -184,8 +184,8 @@ def edit_config(eeprom=None):
      """
      Implements something like 'git commit' for editing EEPROM configs.
      """
@@ -11,7 +24,7 @@
      if 'EDITOR' in os.environ:
          editor = os.environ['EDITOR']
  
-@@ -428,7 +428,7 @@ Operating modes:
+@@ -484,7 +484,7 @@ Operating modes:
  
     To cancel the pending update run 'sudo rpi-eeprom-update -r'
  

From 36743936b1417bd8d239a20b4b5dea5c9da5b167 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= 
Date: Tue, 16 Jan 2024 17:39:06 +0100
Subject: [PATCH 105/126] bcm27xx-eeprom: split into bcm2711 and bcm2712
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add support for the Raspberry Pi 5 by creating separate packages for bcm2711
(Raspberry Pi 4) and bcm2712.

Signed-off-by: Álvaro Fernández Rojas 
---
 utils/bcm27xx-eeprom/Makefile | 44 ++++++++++++++++++++++++++++++++---
 1 file changed, 41 insertions(+), 3 deletions(-)

diff --git a/utils/bcm27xx-eeprom/Makefile b/utils/bcm27xx-eeprom/Makefile
index 8cb44f718..326ba2c3f 100644
--- a/utils/bcm27xx-eeprom/Makefile
+++ b/utils/bcm27xx-eeprom/Makefile
@@ -18,15 +18,39 @@ include $(INCLUDE_DIR)/package.mk
 TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
 TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
 
-define Package/bcm27xx-eeprom
+define Package/bcm27xx-eeprom/Default
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=bcm27xx-userland +blkid +coreutils +coreutils-od +mount-utils +pciutils +python3-light
+endef
+
+define Package/bcm27xx-eeprom
+$(call Package/bcm27xx-eeprom/Default)
   TITLE:=BCM27xx EEPROM tools
+  DEPENDS:=bcm27xx-userland +blkid +coreutils +coreutils-od +mount-utils +pciutils +python3-light
+endef
+
+define Package/bcm2711-eeprom
+$(call Package/bcm27xx-eeprom/Default)
+  TITLE:=BCM2711 EEPROM tools
+  DEPENDS:=+bcm27xx-eeprom
+endef
+
+define Package/bcm2712-eeprom
+$(call Package/bcm27xx-eeprom/Default)
+  TITLE:=BCM2712 EEPROM tools
+  DEPENDS:=+bcm27xx-eeprom
 endef
 
 define Package/bcm27xx-eeprom/description
-  BCM27xx EEPROM tools.
+  BCM27xx EEPROM config and update tools.
+endef
+
+define Package/bcm2711-eeprom/description
+  BCM2711 EEPROM config and update tools.
+endef
+
+define Package/bcm2712-eeprom/description
+  BCM2712 EEPROM config and update tools.
 endef
 
 define Build/Compile
@@ -45,7 +69,9 @@ define Package/bcm27xx-eeprom/install
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-config $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-digest $(1)/usr/bin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-update $(1)/usr/bin
+endef
 
+define Package/bcm2711-eeprom/install
 	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711
 	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/default
 	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
@@ -55,4 +81,16 @@ define Package/bcm27xx-eeprom/install
 	$(CP) $(PKG_BUILD_DIR)/firmware-2711/latest $(1)/lib/firmware/raspberrypi/bootloader-2711
 endef
 
+define Package/bcm2712-eeprom/install
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712/default
+	$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712/latest
+
+	$(CP) $(PKG_BUILD_DIR)/firmware-2712/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2712
+	$(CP) $(PKG_BUILD_DIR)/firmware-2712/default $(1)/lib/firmware/raspberrypi/bootloader-2712
+	$(CP) $(PKG_BUILD_DIR)/firmware-2712/latest $(1)/lib/firmware/raspberrypi/bootloader-2712
+endef
+
 $(eval $(call BuildPackage,bcm27xx-eeprom))
+$(eval $(call BuildPackage,bcm2711-eeprom))
+$(eval $(call BuildPackage,bcm2712-eeprom))

From 214df76f396d0ae44a7680b596433b4aa834ea0d Mon Sep 17 00:00:00 2001
From: Magnus Kroken 
Date: Sun, 21 Jan 2024 19:01:58 +0100
Subject: [PATCH 106/126] openvpn: remove myself as maintainer

Signed-off-by: Magnus Kroken 
---
 net/openvpn/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/openvpn/Makefile b/net/openvpn/Makefile
index 077a52d98..af3b7a8be 100644
--- a/net/openvpn/Makefile
+++ b/net/openvpn/Makefile
@@ -18,7 +18,7 @@ PKG_SOURCE_URL:=\
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_HASH:=5ede1565c8a6d880100f7f235317a7ee9eea83d5052db5547f13a9e76af7805d
 
-PKG_MAINTAINER:=Magnus Kroken 
+PKG_MAINTAINER:=
 
 PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf

From 0b0a13ed3338e7111f28c14c296a00a4f6b9123c Mon Sep 17 00:00:00 2001
From: Zephyr Lykos 
Date: Fri, 19 Jan 2024 18:13:05 +0800
Subject: [PATCH 107/126] tailscale: Update to 1.58.0

https://github.com/tailscale/tailscale/releases/tag/v1.58.0

Signed-off-by: Zephyr Lykos 
---
 net/tailscale/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/tailscale/Makefile b/net/tailscale/Makefile
index 2a0022b90..9a63ab4e0 100644
--- a/net/tailscale/Makefile
+++ b/net/tailscale/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tailscale
-PKG_VERSION:=1.56.1
-PKG_RELEASE:=2
+PKG_VERSION:=1.58.0
+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:=56b7d25c704e3c22e9e20dcb55695cd9c816878d2c172a73c64aac42e460fd41
+PKG_HASH:=01d801dbb2df03a4e0c1563786300e8b26bb570b3aba15063943f78f2c26c316
 
 PKG_MAINTAINER:=Jan Pavlinec 
 PKG_LICENSE:=BSD-3-Clause

From ab4fc8896a341c7c893baeaa4c1a54b5168be362 Mon Sep 17 00:00:00 2001
From: Javier Marcet 
Date: Mon, 22 Jan 2024 22:08:37 +0100
Subject: [PATCH 108/126] docker-compose: Update to version 2.24.2

Signed-off-by: Javier Marcet 
---
 utils/docker-compose/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/docker-compose/Makefile b/utils/docker-compose/Makefile
index 5b7ed60a4..f13f43c69 100644
--- a/utils/docker-compose/Makefile
+++ b/utils/docker-compose/Makefile
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=compose
-PKG_VERSION:=2.24.1
+PKG_VERSION:=2.24.2
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/compose/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=6bc723e36c1bd6c83f83fc1ee65097df29c6780f5e136e61e53ef96316be593f
+PKG_HASH:=0929b693437da762763d2959cf5050ff00af627e460fcc5bdb990589a0be1933
 
 PKG_MAINTAINER:=Javier Marcet 
 

From 02f428baf1f792a3419a4c689a1a0be0b9bc2062 Mon Sep 17 00:00:00 2001
From: Javier Marcet 
Date: Sat, 20 Jan 2024 10:19:01 +0100
Subject: [PATCH 109/126] python-jsonschema: Update to 4.21.1

 - Slightly speed up the contains keyword by removing some unnecessary
 validator (re-)creation.

Signed-off-by: Javier Marcet 
---
 lang/python/python-jsonschema/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lang/python/python-jsonschema/Makefile b/lang/python/python-jsonschema/Makefile
index f903fdd02..17002cf89 100644
--- a/lang/python/python-jsonschema/Makefile
+++ b/lang/python/python-jsonschema/Makefile
@@ -1,11 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-jsonschema
-PKG_VERSION:=4.21.0
+PKG_VERSION:=4.21.1
 PKG_RELEASE:=1
 
 PYPI_NAME:=jsonschema
-PKG_HASH:=3ba18e27f7491ea4a1b22edce00fb820eec968d397feb3f9cb61d5894bb38167
+PKG_HASH:=85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5
 
 PKG_MAINTAINER:=Javier Marcet 
 PKG_LICENSE:=MIT

From 5587c0e8ecddb299c3db2aef8f23789c5b17cd7b Mon Sep 17 00:00:00 2001
From: Timothy Ace 
Date: Sun, 21 Jan 2024 10:10:07 -0500
Subject: [PATCH 110/126] python-orjson: update to version 3.9.12

Relevant changes since 3.9.10:
- Improve performance of serializing. str is significantly faster. Documents
using dict, list, and tuple are somewhat faster.
- FIXED: Minimal musllinux_1_1 build due to sporadic CI failure.

Signed-off-by: Timothy Ace 
---
 lang/python/python-orjson/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lang/python/python-orjson/Makefile b/lang/python/python-orjson/Makefile
index 39ef2cf52..f60803381 100644
--- a/lang/python/python-orjson/Makefile
+++ b/lang/python/python-orjson/Makefile
@@ -1,11 +1,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-orjson
-PKG_VERSION:=3.9.10
+PKG_VERSION:=3.9.12
 PKG_RELEASE:=1
 
 PYPI_NAME:=orjson
-PKG_HASH:=9ebbdbd6a046c304b1845e96fbcc5559cd296b4dfd3ad2509e33c4d9ce07d6a1
+PKG_HASH:=da908d23a3b3243632b523344403b128722a5f45e278a8343c2bb67538dff0e4
 
 PKG_MAINTAINER:=Timothy Ace 
 PKG_LICENSE:=Apache-2.0 MIT

From 40efc9a4e231826c03fa9744ae7f704c6765c64c Mon Sep 17 00:00:00 2001
From: Otto Moerbeek 
Date: Tue, 6 Jun 2023 14:54:22 +0200
Subject: [PATCH 111/126] pdns-recursor: Build rec-5.0.1, adding Rust
 dependencies

also fix license variable

Co-authored-by: Tianling Shen 
Signed-off-by: Otto Moerbeek 
Signed-off-by: Peter van Dijk 
---
 net/pdns-recursor/Makefile                        | 15 ++++++++++-----
 .../patches/100-disable-recursor.conf-dist.patch  |  7 +++++--
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/net/pdns-recursor/Makefile b/net/pdns-recursor/Makefile
index 0642c3459..36574b5a6 100644
--- a/net/pdns-recursor/Makefile
+++ b/net/pdns-recursor/Makefile
@@ -1,23 +1,25 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pdns-recursor
-PKG_VERSION:=4.9.2
+PKG_VERSION:=5.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
-PKG_HASH:=4cb8180458ecfb528a3d9a34ba2844b6cd2ed69ca1c461dde24a0ebd66829144
+PKG_HASH:=70a3b0bfde350e94cdb0746b06d06e6d2f3dc0e171be3b12caef9f3c38468ca3
 
 PKG_MAINTAINER:=Peter van Dijk 
-PKG_LICENCE:=GPL-2.0-only
-PKG_LICENCE_FILES:=COPYING
+PKG_LICENSE:=GPL-2.0-only
+PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:powerdns:recursor
 
 PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
+PKG_BUILD_DEPENDS:=rust/host
 PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include ../../lang/rust/rust-values.mk
 
 define Package/pdns-recursor
   SECTION:=net
@@ -52,6 +54,9 @@ CONFIGURE_ARGS += \
 	--enable-reproducible \
 	--disable-silent-rules
 
+MAKE_VARS += RUSTC_TARGET_ARCH=$(RUSTC_TARGET_ARCH)
+MAKE_VARS += RUST_TARGET=--target=$(RUSTC_TARGET_ARCH)
+
 define Package/pdns-recursor/install
 	$(INSTALL_DIR) $(1)/etc/powerdns
 	$(INSTALL_CONF) ./files/recursor.conf-dist $(1)/etc/powerdns/
diff --git a/net/pdns-recursor/patches/100-disable-recursor.conf-dist.patch b/net/pdns-recursor/patches/100-disable-recursor.conf-dist.patch
index 4a9e90b0a..d611e71bd 100644
--- a/net/pdns-recursor/patches/100-disable-recursor.conf-dist.patch
+++ b/net/pdns-recursor/patches/100-disable-recursor.conf-dist.patch
@@ -1,14 +1,17 @@
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -507,12 +507,6 @@ $(srcdir)/effective_tld_names.dat:
+@@ -527,15 +527,6 @@ $(srcdir)/effective_tld_names.dat:
  pubsuffix.cc: $(srcdir)/effective_tld_names.dat
  	$(AM_V_GEN)./mkpubsuffixcc
  
 -## Config file
--sysconf_DATA = recursor.conf-dist
+-sysconf_DATA = recursor.conf-dist recursor.yml-dist
 -
 -recursor.conf-dist: pdns_recursor
 -	$(AM_V_GEN)./pdns_recursor --config=default > $@
+-
+-recursor.yml-dist: pdns_recursor
+-	dir=$$(mktemp -d) && touch "$$dir/recursor.yml" && ./pdns_recursor --config-dir="$$dir" --config=default 2> /dev/null > $@ && rm "$$dir/recursor.yml" && rmdir "$$dir"
 -
  ## Manpages
  MANPAGES=pdns_recursor.1 \

From bfc991d329e74c483c8a8d7e1a9f5075635bfe76 Mon Sep 17 00:00:00 2001
From: Nikos Mavrogiannopoulos 
Date: Wed, 24 Jan 2024 09:23:23 +0100
Subject: [PATCH 112/126] ocserv: updated to 1.2.4

Signed-off-by: Nikos Mavrogiannopoulos 
---
 net/ocserv/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/ocserv/Makefile b/net/ocserv/Makefile
index e26990fde..63f5921ac 100644
--- a/net/ocserv/Makefile
+++ b/net/ocserv/Makefile
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ocserv
-PKG_VERSION:=1.2.0
+PKG_VERSION:=1.2.4
 PKG_RELEASE:=1
 PKG_BUILD_FLAGS:=no-mips16
 
 PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/ocserv/
-PKG_HASH:=47a66e504a6b04bb04856176d78ee392ad1385d22d1670d4ed48b7b95e9dffc5
+PKG_HASH:=d30f29c5967715f7b118e89bba496011b2be2af0f49bb9e332f12be7fbf693d7
 
 PKG_LICENSE:=GPL-2.0-or-later
 PKG_LICENSE_FILES:=COPYING

From 48a7b8a57e3793933bd0943863491f88c8e218a9 Mon Sep 17 00:00:00 2001
From: Nikos Mavrogiannopoulos 
Date: Wed, 24 Jan 2024 10:31:21 +0100
Subject: [PATCH 113/126] ocserv: updated source URL to https

Signed-off-by: Nikos Mavrogiannopoulos 
---
 net/ocserv/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ocserv/Makefile b/net/ocserv/Makefile
index 63f5921ac..42dd11542 100644
--- a/net/ocserv/Makefile
+++ b/net/ocserv/Makefile
@@ -14,7 +14,7 @@ PKG_BUILD_FLAGS:=no-mips16
 
 PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/ocserv/
+PKG_SOURCE_URL:=https://www.infradead.org/ocserv/download/
 PKG_HASH:=d30f29c5967715f7b118e89bba496011b2be2af0f49bb9e332f12be7fbf693d7
 
 PKG_LICENSE:=GPL-2.0-or-later

From 995825f417448f6f1e742207f1b0d8b6ba95b734 Mon Sep 17 00:00:00 2001
From: Nikos Mavrogiannopoulos 
Date: Wed, 24 Jan 2024 10:59:45 +0100
Subject: [PATCH 114/126] gnutls: updated to 3.8.3

Signed-off-by: Nikos Mavrogiannopoulos 
---
 libs/gnutls/Makefile                          |   6 +-
 ...d-use-clang-format-on-off-annotation.patch | 490 ------------------
 2 files changed, 3 insertions(+), 493 deletions(-)
 delete mode 100644 libs/gnutls/patches/040-build-use-clang-format-on-off-annotation.patch

diff --git a/libs/gnutls/Makefile b/libs/gnutls/Makefile
index a02d9e08f..ea5e74f31 100644
--- a/libs/gnutls/Makefile
+++ b/libs/gnutls/Makefile
@@ -6,13 +6,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnutls
-PKG_VERSION:=3.8.0
-PKG_RELEASE:=3
+PKG_VERSION:=3.8.3
+PKG_RELEASE:=1
 PKG_BUILD_FLAGS:=no-mips16
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8
-PKG_HASH:=0ea0d11a1660a1e63f960f157b197abe6d0c8cb3255be24e1fb3815930b9bdc5
+PKG_HASH:=f74fc5954b27d4ec6dfbb11dea987888b5b124289a3703afcada0ee520f4173e
 
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos 
 PKG_LICENSE:=LGPL-2.1-or-later
diff --git a/libs/gnutls/patches/040-build-use-clang-format-on-off-annotation.patch b/libs/gnutls/patches/040-build-use-clang-format-on-off-annotation.patch
deleted file mode 100644
index c377da788..000000000
--- a/libs/gnutls/patches/040-build-use-clang-format-on-off-annotation.patch
+++ /dev/null
@@ -1,490 +0,0 @@
-From 18345986e29c820e64daced78232f236fd4a4e6e Mon Sep 17 00:00:00 2001
-From: Daiki Ueno 
-Date: Thu, 16 Mar 2023 16:21:37 +0900
-Subject: [PATCH] build: use /* clang-format {on|off} */ annotation
-
-Signed-off-by: Daiki Ueno 
----
- lib/includes/gnutls/abstract.h    |  4 ----
- lib/includes/gnutls/compat.h      |  4 ----
- lib/includes/gnutls/crypto.h      |  4 ----
- lib/includes/gnutls/dtls.h        |  4 ----
- lib/includes/gnutls/gnutls.h.in   | 18 ++++++++----------
- lib/includes/gnutls/ocsp.h        |  4 ----
- lib/includes/gnutls/openpgp.h     |  4 ----
- lib/includes/gnutls/pkcs11.h      |  4 ----
- lib/includes/gnutls/pkcs12.h      |  4 ----
- lib/includes/gnutls/pkcs7.h       |  4 ----
- lib/includes/gnutls/socket.h      |  4 ----
- lib/includes/gnutls/system-keys.h |  4 ----
- lib/includes/gnutls/tpm.h         |  4 ----
- lib/includes/gnutls/urls.h        |  4 ----
- lib/includes/gnutls/x509-ext.h    |  4 ----
- lib/includes/gnutls/x509.h        |  4 ----
- tests/test-chains-issuer-aia.h    |  4 ----
- tests/test-chains.h               |  4 ----
- 18 files changed, 8 insertions(+), 78 deletions(-)
-
---- a/lib/includes/gnutls/abstract.h
-+++ b/lib/includes/gnutls/abstract.h
-@@ -30,11 +30,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- /* Public key operations */
- 
-@@ -748,10 +746,8 @@ gnutls_pubkey_print(gnutls_pubkey_t pubk
- 		    gnutls_certificate_print_formats_t format,
- 		    gnutls_datum_t * out);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_ABSTRACT_H */
---- a/lib/includes/gnutls/compat.h
-+++ b/lib/includes/gnutls/compat.h
-@@ -25,11 +25,9 @@
- #ifndef GNUTLS_COMPAT_H
- # define GNUTLS_COMPAT_H
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- # ifdef __GNUC__
- 
-@@ -228,10 +226,8 @@ int gnutls_priority_compression_list(gnu
- 				     const unsigned int **list)
-     _GNUTLS_GCC_ATTR_DEPRECATED;
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_COMPAT_H */
---- a/lib/includes/gnutls/crypto.h
-+++ b/lib/includes/gnutls/crypto.h
-@@ -25,11 +25,9 @@
- 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- typedef struct api_cipher_hd_st *gnutls_cipher_hd_t;
- 
-@@ -335,10 +333,8 @@ int gnutls_encode_gost_rs_value(gnutls_d
- int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value,
- 				gnutls_datum_t * r, gnutls_datum_t * s);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_CRYPTO_H */
---- a/lib/includes/gnutls/dtls.h
-+++ b/lib/includes/gnutls/dtls.h
-@@ -29,11 +29,9 @@
- 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- # define GNUTLS_COOKIE_KEY_SIZE 16
- 
-@@ -84,10 +82,8 @@ void gnutls_dtls_prestate_set(gnutls_ses
- 
- unsigned int gnutls_record_get_discarded(gnutls_session_t session);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_DTLS_H */
---- a/lib/includes/gnutls/gnutls.h.in
-+++ b/lib/includes/gnutls/gnutls.h.in
-@@ -45,19 +45,19 @@
- /* Get time_t. */
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- # define GNUTLS_VERSION "@VERSION@"
- 
--# define GNUTLS_VERSION_MAJOR @MAJOR_VERSION@
--# define GNUTLS_VERSION_MINOR @MINOR_VERSION@
--# define GNUTLS_VERSION_PATCH @PATCH_VERSION@
-+/* clang-format off */
-+#define GNUTLS_VERSION_MAJOR @MAJOR_VERSION@
-+#define GNUTLS_VERSION_MINOR @MINOR_VERSION@
-+#define GNUTLS_VERSION_PATCH @PATCH_VERSION@
- 
--# define GNUTLS_VERSION_NUMBER @NUMBER_VERSION@
-+#define GNUTLS_VERSION_NUMBER @NUMBER_VERSION@
-+/* clang-format on */
- 
- # define GNUTLS_CIPHER_RIJNDAEL_128_CBC GNUTLS_CIPHER_AES_128_CBC
- # define GNUTLS_CIPHER_RIJNDAEL_256_CBC GNUTLS_CIPHER_AES_256_CBC
-@@ -2365,9 +2365,9 @@ int gnutls_dh_params_cpy(gnutls_dh_param
- 
- /* Session stuff
-  */
--/* *INDENT-OFF* */
-+/* clang-format off */
- @DEFINE_IOVEC_T@
--/* *INDENT-ON* */
-+/* clang-format on */
- 
- typedef ssize_t(*gnutls_pull_func) (gnutls_transport_ptr_t, void *, size_t);
- typedef ssize_t(*gnutls_push_func) (gnutls_transport_ptr_t, const void *,
-@@ -3634,11 +3634,9 @@ gnutls_transport_is_ktls_enabled(gnutls_
- # define GNUTLS_E_APPLICATION_ERROR_MAX -65000
- # define GNUTLS_E_APPLICATION_ERROR_MIN -65500
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- # include 
- 
---- a/lib/includes/gnutls/ocsp.h
-+++ b/lib/includes/gnutls/ocsp.h
-@@ -29,11 +29,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- # define GNUTLS_OCSP_NONCE "1.3.6.1.5.5.7.48.1.2"
- 
-@@ -269,10 +267,8 @@ gnutls_ocsp_resp_list_import2(gnutls_ocs
- 			      const gnutls_datum_t * resp_data,
- 			      gnutls_x509_crt_fmt_t format, unsigned int flags);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_OCSP_H */
---- a/lib/includes/gnutls/openpgp.h
-+++ b/lib/includes/gnutls/openpgp.h
-@@ -30,11 +30,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- /* Openpgp certificate stuff
-  */
-@@ -424,10 +422,8 @@ int gnutls_certificate_set_openpgp_keyri
-     (gnutls_certificate_credentials_t c, const char *file,
-      gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_OPENPGP_H */
---- a/lib/includes/gnutls/pkcs11.h
-+++ b/lib/includes/gnutls/pkcs11.h
-@@ -28,11 +28,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- # define GNUTLS_PKCS11_MAX_PIN_LEN 256
- 
-@@ -491,10 +489,8 @@ gnutls_pkcs11_copy_attached_extension(co
- 
- # define gnutls_x509_crt_import_pkcs11_url gnutls_x509_crt_import_url
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_PKCS11_H */
---- a/lib/includes/gnutls/pkcs12.h
-+++ b/lib/includes/gnutls/pkcs12.h
-@@ -25,11 +25,9 @@
- 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- 	/* PKCS12 structures handling
- 	 */
-@@ -138,10 +136,8 @@ int gnutls_pkcs12_bag_get_friendly_name(
- int gnutls_pkcs12_bag_set_friendly_name(gnutls_pkcs12_bag_t bag,
- 					unsigned indx, const char *name);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_PKCS12_H */
---- a/lib/includes/gnutls/pkcs7.h
-+++ b/lib/includes/gnutls/pkcs7.h
-@@ -31,11 +31,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- /* PKCS7 structures handling
-  */
-@@ -149,10 +147,8 @@ int gnutls_pkcs7_print_signature_info(gn
- 				      gnutls_certificate_print_formats_t format,
- 				      gnutls_datum_t * out);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_PKCS7_H */
---- a/lib/includes/gnutls/socket.h
-+++ b/lib/includes/gnutls/socket.h
-@@ -31,11 +31,9 @@
- /* Get socklen_t */
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- void gnutls_transport_set_fastopen(gnutls_session_t session,
- 				   int fd,
-@@ -43,10 +41,8 @@ void gnutls_transport_set_fastopen(gnutl
- 				   socklen_t connect_addrlen,
- 				   unsigned int flags);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_SOCKET_H */
---- a/lib/includes/gnutls/system-keys.h
-+++ b/lib/includes/gnutls/system-keys.h
-@@ -31,11 +31,9 @@
-  * they will be requested through the pin callbacks.
-  */
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- struct system_key_iter_st;
- typedef struct system_key_iter_st *gnutls_system_key_iter_t;
-@@ -54,10 +52,8 @@ int gnutls_system_key_add_x509(gnutls_x5
- 			       gnutls_x509_privkey_t privkey, const char *label,
- 			       char **cert_url, char **key_url);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_SYSTEM_KEYS_H */
---- a/lib/includes/gnutls/tpm.h
-+++ b/lib/includes/gnutls/tpm.h
-@@ -26,11 +26,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- struct tpm_key_list_st;
- typedef struct tpm_key_list_st *gnutls_tpm_key_list_t;
-@@ -71,10 +69,8 @@ int gnutls_tpm_get_registered(gnutls_tpm
- int gnutls_tpm_privkey_delete(const char *url, const char *srk_password);
- 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_TPM_H */
---- a/lib/includes/gnutls/urls.h
-+++ b/lib/includes/gnutls/urls.h
-@@ -31,11 +31,9 @@
-  * keys and certificates.
-  */
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- typedef int (*gnutls_privkey_import_url_func)(gnutls_privkey_t pkey,
- 					      const char *url, unsigned flags);
-@@ -71,10 +69,8 @@ typedef struct gnutls_custom_url_st {
- 
- int gnutls_register_custom_url(const gnutls_custom_url_st * st);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_URLS_H */
---- a/lib/includes/gnutls/x509-ext.h
-+++ b/lib/includes/gnutls/x509-ext.h
-@@ -28,11 +28,9 @@
- # include 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- typedef struct gnutls_subject_alt_names_st *gnutls_subject_alt_names_t;
- 
-@@ -215,10 +213,8 @@ int gnutls_x509_ct_sct_get(const gnutls_
- 			   gnutls_sign_algorithm_t * sigalg,
- 			   gnutls_datum_t * signature);
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_X509_EXT_H */
---- a/lib/includes/gnutls/x509.h
-+++ b/lib/includes/gnutls/x509.h
-@@ -30,11 +30,9 @@
- 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
--/* *INDENT-ON* */
- 
- /* Some OIDs usually found in Distinguished names, or
-  * in Subject Directory Attribute extensions.
-@@ -1710,10 +1708,8 @@ gnutls_x509_ext_print(gnutls_x509_ext_st
- 
- # include 
- 
--/* *INDENT-OFF* */
- #ifdef __cplusplus
- }
- #endif
--/* *INDENT-ON* */
- 
- #endif				/* GNUTLS_X509_H */
---- a/tests/test-chains-issuer-aia.h
-+++ b/tests/test-chains-issuer-aia.h
-@@ -23,8 +23,6 @@
- #ifndef GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
- # define GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
- 
--/* *INDENT-OFF* */
--
- #define MAX_CHAIN 1
- 
- static const char *missing_cert_aia[] = {
-@@ -132,6 +130,4 @@ static const char *missing_cert_aia_ca[]
- #  pragma GCC diagnostic pop
- #endif
- 
--/* *INDENT-ON* */
--
- #endif				/* GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H */
---- a/tests/test-chains.h
-+++ b/tests/test-chains.h
-@@ -23,8 +23,6 @@
- #ifndef GNUTLS_TESTS_TEST_CHAINS_H
- # define GNUTLS_TESTS_TEST_CHAINS_H
- 
--/* *INDENT-OFF* */
--
- #define MAX_CHAIN 10
- 
- static const char *chain_with_no_subject_id_in_ca_ok[] = {
-@@ -4449,6 +4447,4 @@ static struct
- #  pragma GCC diagnostic pop
- #endif
- 
--/* *INDENT-ON* */
--
- #endif				/* GNUTLS_TESTS_TEST_CHAINS_H */

From 4ea63a66d0de1b365e85a722450a62a71d8adadc Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Wed, 24 Jan 2024 15:50:10 +0100
Subject: [PATCH 115/126] net/i2pd: assign PKG_CPE_ID

https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Ai2pd%3Ai2pd

Signed-off-by: Fabrice Fontaine 
---
 net/i2pd/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/i2pd/Makefile b/net/i2pd/Makefile
index c943537a3..4d2f0577e 100644
--- a/net/i2pd/Makefile
+++ b/net/i2pd/Makefile
@@ -21,6 +21,7 @@ PKG_HASH:=ae2ec4732c38fda71b4b48ce83624dd8b2e05083f2c94a03d20cafb616f63ca5
 PKG_MAINTAINER:=David Yang 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
+PKG_CPE_ID:=cpe:/a:i2pd:i2pd
 
 include $(INCLUDE_DIR)/package.mk
 

From 3711f7f6d2b44e85bd149f54038a3361726fce72 Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Thu, 25 Jan 2024 00:16:35 +0800
Subject: [PATCH 116/126] dnsproxy: Update to 0.63.1

Signed-off-by: Tianling Shen 
---
 net/dnsproxy/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/dnsproxy/Makefile b/net/dnsproxy/Makefile
index ee4afc1e6..1e12f0c15 100644
--- a/net/dnsproxy/Makefile
+++ b/net/dnsproxy/Makefile
@@ -5,12 +5,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsproxy
-PKG_VERSION:=0.61.1
+PKG_VERSION:=0.63.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=803af1704f8970e55a76e5af840f1fca0867624af7ef21d15e665a9f292244e8
+PKG_HASH:=f92478ffe5a673760780a2a1a01d8421264ae62057879da85b8cbbbb6ef0be09
 
 PKG_MAINTAINER:=Tianling Shen 
 PKG_LICENSE:=Apache-2.0

From 272cff0d1c6265fe374aeed582423858beedf6bc Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Thu, 25 Jan 2024 00:38:09 +0800
Subject: [PATCH 117/126] v2raya: do not allow changing config/log directory

We need stable path to persist configurations and read log from LuCI.

Signed-off-by: Tianling Shen 
---
 net/v2raya/Makefile            | 2 +-
 net/v2raya/files/v2raya.config | 6 ------
 net/v2raya/files/v2raya.init   | 5 +++--
 3 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/net/v2raya/Makefile b/net/v2raya/Makefile
index 5f4f9615b..88d16acc8 100644
--- a/net/v2raya/Makefile
+++ b/net/v2raya/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=v2rayA
 PKG_VERSION:=2.2.4.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)?
diff --git a/net/v2raya/files/v2raya.config b/net/v2raya/files/v2raya.config
index 8ebf318cd..66b66b243 100644
--- a/net/v2raya/files/v2raya.config
+++ b/net/v2raya/files/v2raya.config
@@ -5,9 +5,6 @@ config v2raya 'config'
 	# Listening address
 	option address '0.0.0.0:2017'
 
-	# v2rayA configuration directory
-	option config '/etc/v2raya'
-
 	# Make sure your IPv6 network works fine before you turn it on.
 	# Optional values: auto, on, off.
 	option ipv6_support 'auto'
@@ -19,9 +16,6 @@ config v2raya 'config'
 	# Optional values: trace, debug, info, warn or error
 	option log_level 'info'
 
-	# The path of log file
-	option log_file '/var/log/v2raya/v2raya.log'
-
 	# Maximum number of days to keep log files
 	option log_max_days '3'
 
diff --git a/net/v2raya/files/v2raya.init b/net/v2raya/files/v2raya.init
index b4a719613..1e55a187e 100755
--- a/net/v2raya/files/v2raya.init
+++ b/net/v2raya/files/v2raya.init
@@ -40,12 +40,13 @@ start_service() {
 	procd_set_param command "$PROG"
 	procd_set_param env XDG_DATA_HOME="/usr/share"
 
+	append_env "config" "/etc/v2raya"
+	append_env "log_file" "/var/log/v2raya/v2raya.log"
+
 	append_env_arg "config" "address" "0.0.0.0:2017"
-	append_env_arg "config" "config" "/etc/v2raya"
 	append_env_arg "config" "ipv6_support" "auto"
 	append_env_arg "config" "nftables_support" "auto"
 	append_env_arg "config" "log_level" "info"
-	append_env_arg "config" "log_file" "/var/log/v2raya/v2raya.log"
 	append_env_arg "config" "log_max_days" "3"
 	append_env_arg "config" "v2ray_bin"
 	append_env_arg "config" "v2ray_confdir"

From 37a60ca9349cb3cc638eada1186eb24d9826a442 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Wed, 24 Jan 2024 18:47:43 +0100
Subject: [PATCH 118/126] libs/libvpx: fix PKG_CPE_ID

There is not a single CVEs under cpe:/a:john_koleszar:libvpx
so use cpe:/a:webmproject:libvpx:
https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Awebmproject%3Alibvpx

Signed-off-by: Fabrice Fontaine 
---
 libs/libvpx/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libs/libvpx/Makefile b/libs/libvpx/Makefile
index 5c5073ac6..b5eba52ef 100644
--- a/libs/libvpx/Makefile
+++ b/libs/libvpx/Makefile
@@ -20,7 +20,7 @@ PKG_SOURCE_VERSION:=v$(PKG_VERSION)
 PKG_MAINTAINER:=Luiz Angelo Daros de Luca 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
-PKG_CPE_ID:=cpe:/a:john_koleszar:libvpx
+PKG_CPE_ID:=cpe:/a:webmproject:libvpx
 PKG_BUILD_PARALLEL:=1
 
 PKG_ABI_VERSION:=$(subst $(space),.,$(wordlist 1, 2, $(subst .,$(space),$(PKG_VERSION))))

From a9ddc8e373945437d58e976b6c20bbc44ba31b67 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Wed, 24 Jan 2024 22:48:33 +0100
Subject: [PATCH 119/126] libs/apr: fix PKG_CPE_ID

There is not a single CVE under cpe:/a:apache:apr
so use cpe:/a:apache:portable_runtime:
https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Aapache%3Aportable_runtime

Signed-off-by: Fabrice Fontaine 
---
 libs/apr/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libs/apr/Makefile b/libs/apr/Makefile
index 8138e6325..afd272730 100644
--- a/libs/apr/Makefile
+++ b/libs/apr/Makefile
@@ -20,7 +20,7 @@ PKG_MAINTAINER:=Thomas Heil 
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
-PKG_CPE_ID:=cpe:/a:apache:apr
+PKG_CPE_ID:=cpe:/a:apache:portable_runtime
 
 PKG_BUILD_PARALLEL:=1
 

From 2d0649c1c9737bac40f079c87eebb16f1acda656 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Wed, 24 Jan 2024 22:39:42 +0100
Subject: [PATCH 120/126] libs/libestr: assign PKG_CPE_ID

https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Aadiscon%3Alibestr

Signed-off-by: Fabrice Fontaine 
---
 libs/libestr/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libs/libestr/Makefile b/libs/libestr/Makefile
index 9fc362a2a..dd4f671b1 100644
--- a/libs/libestr/Makefile
+++ b/libs/libestr/Makefile
@@ -18,6 +18,7 @@ PKG_HASH:=46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024
 PKG_MAINTAINER:=
 PKG_LICENSE:=LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING
+PKG_CPE_ID:=cpe:/a:adiscon:libestr
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1

From 9e0854681cb92ff88610b5782f3161eaec94fb64 Mon Sep 17 00:00:00 2001
From: Javier Marcet 
Date: Wed, 24 Jan 2024 19:07:16 +0100
Subject: [PATCH 121/126] docker-compose: Update to version 2.24.3

Signed-off-by: Javier Marcet 
---
 utils/docker-compose/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/utils/docker-compose/Makefile b/utils/docker-compose/Makefile
index f13f43c69..a76433548 100644
--- a/utils/docker-compose/Makefile
+++ b/utils/docker-compose/Makefile
@@ -1,14 +1,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=compose
-PKG_VERSION:=2.24.2
+PKG_VERSION:=2.24.3
 PKG_RELEASE:=1
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=v$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/docker/compose/tar.gz/v${PKG_VERSION}?
-PKG_HASH:=0929b693437da762763d2959cf5050ff00af627e460fcc5bdb990589a0be1933
+PKG_HASH:=255b6e204c87a0d13e9f28cc3e60c39ce81c879a6df5d14d3202fff159f467db
 
 PKG_MAINTAINER:=Javier Marcet 
 

From 52282b2ed949bb8f3ae008592969eb1cf3914e84 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Thu, 25 Jan 2024 18:33:36 +0100
Subject: [PATCH 122/126] net/tcpreplay: fix PKG_CPE_ID

There is not a single CVE under cpe:/a:appneta:tcpreplay
so use cpe:/a:broadcom:tcpreplay:
https://nvd.nist.gov/products/cpe/search/results?keyword=cpe:2.3:a:broadcom:tcpreplay

Signed-off-by: Fabrice Fontaine 
---
 net/tcpreplay/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/tcpreplay/Makefile b/net/tcpreplay/Makefile
index 5e993c256..d4496b7cb 100644
--- a/net/tcpreplay/Makefile
+++ b/net/tcpreplay/Makefile
@@ -17,7 +17,7 @@ PKG_HASH:=3ff9753cc43bb15e77832cee657e3030dbcdd957fa247e6abacc605689e24051
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=docs/LICENSE
-PKG_CPE_ID:=cpe:/a:appneta:tcpreplay
+PKG_CPE_ID:=cpe:/a:broadcom:tcpreplay
 
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1

From cf0d28bf8c1b84a343ac0045564dad1ca9463163 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine 
Date: Thu, 25 Jan 2024 21:27:06 +0100
Subject: [PATCH 123/126] utils/cryptsetup: assign PKG_CPE_ID

https://nvd.nist.gov/products/cpe/search/results?keyword=cpe:2.3:a:cryptsetup_project:cryptsetup

Signed-off-by: Fabrice Fontaine 
---
 utils/cryptsetup/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/utils/cryptsetup/Makefile b/utils/cryptsetup/Makefile
index 70a014222..48acf95bb 100644
--- a/utils/cryptsetup/Makefile
+++ b/utils/cryptsetup/Makefile
@@ -18,6 +18,7 @@ PKG_HASH:=410ded65a1072ab9c8e41added37b9729c087fef4d2db02bb4ef529ad6da4693
 PKG_MAINTAINER:=Daniel Golle 
 PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
+PKG_CPE_ID:=cpe:/a:cryptsetup_project:cryptsetup
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1

From a37a6e17035f67c8f6c3e4325d0bae116e0fcf2a Mon Sep 17 00:00:00 2001
From: Zephyr Lykos 
Date: Fri, 26 Jan 2024 02:21:33 +0800
Subject: [PATCH 124/126] tailscale: Update to 1.58.2

https://github.com/tailscale/tailscale/releases/tag/v1.58.2

Signed-off-by: Zephyr Lykos 
---
 net/tailscale/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/tailscale/Makefile b/net/tailscale/Makefile
index 9a63ab4e0..f9b088e5d 100644
--- a/net/tailscale/Makefile
+++ b/net/tailscale/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tailscale
-PKG_VERSION:=1.58.0
+PKG_VERSION:=1.58.2
 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:=01d801dbb2df03a4e0c1563786300e8b26bb570b3aba15063943f78f2c26c316
+PKG_HASH:=452f355408e4e2179872387a863387e06346fc8a6f9887821f9b8a072c6a5b0a
 
 PKG_MAINTAINER:=Jan Pavlinec 
 PKG_LICENSE:=BSD-3-Clause

From 1aaa5c045dd835331d6c5bb70636e9d34d6bb530 Mon Sep 17 00:00:00 2001
From: Tianling Shen 
Date: Fri, 26 Jan 2024 12:20:05 +0800
Subject: [PATCH 125/126] v2ray-geodata: Update to latest version

Signed-off-by: Tianling Shen 
---
 net/v2ray-geodata/Makefile | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/net/v2ray-geodata/Makefile b/net/v2ray-geodata/Makefile
index 53f8ef44b..18d2cd26f 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:=202312210040
+GEOIP_VER:=202401250041
 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:=cddbc8f41234b0c98019f0781191878c5ad71a27259d5204628e9bde27bdc04c
+  HASH:=cb005854fd16474df068a3a5ce78c845ae6cb53cbce80f6a7ad84b6f52f28a84
 endef
 
-GEOSITE_VER:=20231219144426
+GEOSITE_VER:=20240123112230
 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:=6c95f95a40ae33ba49da554c3a9b48a62b8eefe43607b92229ed61f78e48f7c2
+  HASH:=7c2efd90b7e3137e6bc68a78e641b5d9d5790330aa1de129510eeb432f020ec5
 endef
 
-GEOSITE_IRAN_VER:=202312180027
+GEOSITE_IRAN_VER:=202401220028
 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:=4240f701951777c4799749d3718efd46ddabef83b4b28d5b2bb5cd281f525e10
+  HASH:=c0070879b1e98e748ecefbd63306566d44ec1dad3237176655f5f282ba014da7
 endef
 
 define Package/v2ray-geodata/template

From 79ae76806bbf118612b4036ee984e832aceba5f5 Mon Sep 17 00:00:00 2001
From: Dirk Brenken 
Date: Fri, 26 Jan 2024 19:51:05 +0100
Subject: [PATCH 126/126]  banip: update 0.9.3-5

* fix the nft Set survey function

Signed-off-by: Dirk Brenken 
---
 net/banip/Makefile         | 2 +-
 net/banip/files/banip.init | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/net/banip/Makefile b/net/banip/Makefile
index d9b58c527..aeb57910a 100644
--- a/net/banip/Makefile
+++ b/net/banip/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=banip
 PKG_VERSION:=0.9.3
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_LICENSE:=GPL-3.0-or-later
 PKG_MAINTAINER:=Dirk Brenken 
 
diff --git a/net/banip/files/banip.init b/net/banip/files/banip.init
index b49f933e3..0aae3befa 100755
--- a/net/banip/files/banip.init
+++ b/net/banip/files/banip.init
@@ -1,6 +1,6 @@
 #!/bin/sh /etc/rc.common
 # banIP init script - ban incoming and outgoing IPs via named nftables Sets
-# Copyright (c) 2018-2023 Dirk Brenken (dev@brenken.org)
+# Copyright (c) 2018-2024 Dirk Brenken (dev@brenken.org)
 # This is free software, licensed under the GNU General Public License v3.
 
 # (s)hellcheck exceptions
@@ -22,10 +22,10 @@ ban_lock="/var/run/banip.lock"
 
 [ "${action}" = "boot" ] && "${ban_init}" running && exit 0
 { [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "survey" ] || [ "${action}" = "lookup" ]; } && ! "${ban_init}" running && exit 0
-[ ! -r "${ban_funlib}" ] && { [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "lookup" ] || [ "${action}" = "status" ]; } && exit 1
+[ ! -r "${ban_funlib}" ] && { [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "survey" ] || [ "${action}" = "lookup" ] || [ "${action}" = "status" ]; } && exit 1
 [ -d "${ban_lock}" ] && { [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "lookup" ]; } && exit 1
 [ ! -d "${ban_lock}" ] && { [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "lookup" ]; } && mkdir -p "${ban_lock}"
-{ [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "lookup" ] || [ "${action}" = "status" ]; } && . "${ban_funlib}"
+{ [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "stop" ] || [ "${action}" = "report" ] || [ "${action}" = "search" ] || [ "${action}" = "survey" ] || [ "${action}" = "lookup" ] || [ "${action}" = "status" ]; } && . "${ban_funlib}"
 [ ! -d "${ban_lock}" ] && { [ "${action}" = "boot" ] || [ "${action}" = "start" ] || [ "${action}" = "restart" ] || [ "${action}" = "reload" ] || [ "${action}" = "lookup" ]; } && exit 1
 
 boot() {