From 463c1f49c865cf9065d7a000e7999b107354ba5c Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sat, 10 Oct 2020 19:14:12 +0200
Subject: [PATCH] fastd: update to v20

---
 .../packages/0001-fastd-update-to-v19.patch   |   1 +
 .../packages/0002-fastd-update-to-v20.patch   | 218 ++++++++++++++++++
 2 files changed, 219 insertions(+)
 create mode 100644 patches/packages/packages/0002-fastd-update-to-v20.patch

diff --git a/patches/packages/packages/0001-fastd-update-to-v19.patch b/patches/packages/packages/0001-fastd-update-to-v19.patch
index b96ef7e63..b478e8e18 100644
--- a/patches/packages/packages/0001-fastd-update-to-v19.patch
+++ b/patches/packages/packages/0001-fastd-update-to-v19.patch
@@ -3,6 +3,7 @@ Date: Fri, 22 May 2020 21:09:21 +0200
 Subject: fastd: update to v19
 
 Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
+(cherry picked from commit 598d4baa02d312d2bc68739a1f2f1f2cb3c91051)
 
 diff --git a/net/fastd/Config.in b/net/fastd/Config.in
 index 3350eb3099a26c870d70373c0712a8b59881ee5c..e6440075e561093c86543943cb982d010a4ef0e0 100644
diff --git a/patches/packages/packages/0002-fastd-update-to-v20.patch b/patches/packages/packages/0002-fastd-update-to-v20.patch
new file mode 100644
index 000000000..d50808a54
--- /dev/null
+++ b/patches/packages/packages/0002-fastd-update-to-v20.patch
@@ -0,0 +1,218 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Sat, 10 Oct 2020 19:02:24 +0200
+Subject: fastd: update to v20
+
+Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
+(cherry picked from commit a916211b670f1fa4aefc65f1d27f9afbf22e93a8)
+
+diff --git a/net/fastd/Config.in b/net/fastd/Config.in
+index e6440075e561093c86543943cb982d010a4ef0e0..8302f7ee4dac874b1303ebeeb836551ef202c261 100644
+--- a/net/fastd/Config.in
++++ b/net/fastd/Config.in
+@@ -69,7 +69,6 @@ config FASTD_WITH_CAPABILITIES
+ 	depends on PACKAGE_fastd
+ 	default n
+ 
+-
+ config FASTD_WITH_CMDLINE_USER
+ 	bool "Include support for setting user/group related options on the command line"
+ 	depends on PACKAGE_fastd
+@@ -91,7 +90,7 @@ config FASTD_WITH_CMDLINE_COMMANDS
+ 	default n
+ 
+ config FASTD_WITH_DYNAMIC_PEERS
+-	bool "Include support for on-verify handlers"
++	bool "Include support for dynamic peers (using on-verify handlers)"
+ 	depends on PACKAGE_fastd
+ 	default n
+ 
+@@ -100,5 +99,4 @@ config FASTD_WITH_STATUS_SOCKET
+ 	depends on PACKAGE_fastd
+ 	default y
+ 
+-
+ endmenu
+diff --git a/net/fastd/Makefile b/net/fastd/Makefile
+index 8eabc34db6f3b906ddb1b5df5c232309e85d2ffb..4645b290d1e49330f79b035d2b66d2b6d1c17604 100644
+--- a/net/fastd/Makefile
++++ b/net/fastd/Makefile
+@@ -8,13 +8,12 @@
+ include $(TOPDIR)/rules.mk
+ 
+ PKG_NAME:=fastd
+-PKG_VERSION:=19
+-PKG_RELEASE:=1
++PKG_VERSION:=20
+ 
+ PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
+ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+ PKG_SOURCE_URL:=https://github.com/NeoRaider/fastd/releases/download/v$(PKG_VERSION)
+-PKG_HASH:=6054608e2103b634c9d19ecd1ae058d4ec694747047130719db180578729783a
++PKG_HASH:=56cab8639218d63237d9a5508fb2bf6fa637374d53fb7fa55b7e92e4d4dfeb00
+ 
+ PKG_LICENSE:=BSD-2-Clause
+ PKG_LICENSE_FILES:=COPYRIGHT
+@@ -41,16 +40,16 @@ PKG_CONFIG_DEPENDS:=\
+ 	CONFIG_FASTD_WITH_STATUS_SOCKET
+ 
+ 
+-PKG_BUILD_DEPENDS:=nacl
++PKG_BUILD_DEPENDS:=meson/host nacl
+ PKG_BUILD_PARALLEL:=1
+ 
+ include $(INCLUDE_DIR)/package.mk
+-include $(INCLUDE_DIR)/cmake.mk
++include ../../devel/meson/meson.mk
+ 
+ define Package/fastd
+   SECTION:=net
+   CATEGORY:=Network
+-  DEPENDS:=+kmod-tun +librt +libpthread +libuecc +FASTD_WITH_STATUS_SOCKET:libjson-c +FASTD_WITH_CAPABILITIES:libcap
++  DEPENDS:=+kmod-tun +libpthread +libuecc +FASTD_WITH_STATUS_SOCKET:libjson-c +FASTD_WITH_CAPABILITIES:libcap
+   TITLE:=Fast and Secure Tunneling Daemon
+   URL:=https://github.com/NeoRaider/fastd/
+   SUBMENU:=VPN
+@@ -60,116 +59,33 @@ define Package/fastd/config
+   source "$(SOURCE)/Config.in"
+ endef
+ 
+-TARGET_CFLAGS += -ffunction-sections -fdata-sections
+-TARGET_LDFLAGS += -Wl,--gc-sections
+-
+-CMAKE_OPTIONS += \
+-	-DCMAKE_BUILD_TYPE:STRING=MINSIZEREL \
+-	-DWITH_METHOD_CIPHER_TEST:BOOL=FALSE \
+-	-DWITH_METHOD_COMPOSED_GMAC:BOOL=FALSE \
+-	-DWITH_METHOD_COMPOSED_UMAC:BOOL=FALSE \
+-	-DWITH_METHOD_GENERIC_GMAC:BOOL=FALSE \
+-	-DWITH_METHOD_GENERIC_POLY1305:BOOL=FALSE \
+-	-DWITH_METHOD_GENERIC_UMAC:BOOL=FALSE \
+-	-DWITH_METHOD_NULL:BOOL=FALSE \
+-	-DWITH_CIPHER_AES128_CTR:BOOL=FALSE \
+-	-DWITH_CIPHER_NULL:BOOL=FALSE \
+-	-DWITH_CIPHER_SALSA20:BOOL=FALSE \
+-	-DWITH_CIPHER_SALSA2012:BOOL=FALSE \
+-	-DWITH_MAC_GHASH:BOOL=FALSE \
+-	-DWITH_MAC_UHASH:BOOL=FALSE \
+-	-DWITH_CAPABILITIES:BOOL=FALSE \
+-	-DWITH_CMDLINE_USER:BOOL=FALSE \
+-	-DWITH_CMDLINE_LOGGING:BOOL=FALSE \
+-	-DWITH_CMDLINE_OPERATION:BOOL=FALSE \
+-	-DWITH_CMDLINE_COMMANDS:BOOL=FALSE \
+-	-DWITH_DYNAMIC_PEERS:BOOL=FALSE \
+-	-DWITH_STATUS_SOCKET:BOOL=FALSE \
+-	-DENABLE_SYSTEMD:BOOL=FALSE \
+-	-DENABLE_LIBSODIUM:BOOL=FALSE \
+-	-DENABLE_LTO:BOOL=TRUE
+-
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_CIPHER_TEST:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_GMAC:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_COMPOSED_UMAC:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_GMAC:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_POLY1305:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_GENERIC_UMAC:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_METHOD_NULL),y)
+-CMAKE_OPTIONS += -DWITH_METHOD_NULL:BOOL=TRUE
+-endif
+-
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_NULL),y)
+-CMAKE_OPTIONS += -DWITH_CIPHER_NULL:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA20),y)
+-CMAKE_OPTIONS += -DWITH_CIPHER_SALSA20:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_CIPHER_SALSA2012),y)
+-CMAKE_OPTIONS += -DWITH_CIPHER_SALSA2012:BOOL=TRUE
+-endif
+-
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_MAC_GHASH),y)
+-CMAKE_OPTIONS += -DWITH_MAC_GHASH:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_ENABLE_MAC_UHASH),y)
+-CMAKE_OPTIONS += -DWITH_MAC_UHASH:BOOL=TRUE
+-endif
+-
+-
+-ifeq ($(CONFIG_FASTD_WITH_CAPABILITIES),y)
+-CMAKE_OPTIONS += -DWITH_CAPABILITIES:BOOL=TRUE
+-endif
+-
+-
+-ifeq ($(CONFIG_FASTD_WITH_CMDLINE_USER),y)
+-CMAKE_OPTIONS += -DWITH_CMDLINE_USER:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_WITH_CMDLINE_LOGGING),y)
+-CMAKE_OPTIONS += -DWITH_CMDLINE_LOGGING:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_WITH_CMDLINE_OPERATION),y)
+-CMAKE_OPTIONS += -DWITH_CMDLINE_OPERATION:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_WITH_CMDLINE_COMMANDS),y)
+-CMAKE_OPTIONS += -DWITH_CMDLINE_COMMANDS:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_WITH_DYNAMIC_PEERS),y)
+-CMAKE_OPTIONS += -DWITH_DYNAMIC_PEERS:BOOL=TRUE
+-endif
+-
+-ifeq ($(CONFIG_FASTD_WITH_STATUS_SOCKET),y)
+-CMAKE_OPTIONS += -DWITH_STATUS_SOCKET:BOOL=TRUE
+-endif
+-
++feature = $(if $(CONFIG_FASTD_$(1)),enabled,disabled)
++
++MESON_ARGS += \
++	-Dcapabilities=$(call feature,WITH_CAPABILITIES) \
++	-Dcipher_aes128-ctr=disabled \
++	-Dcipher_null=$(call feature,ENABLE_CIPHER_NULL) \
++	-Dcipher_salsa20=$(call feature,ENABLE_CIPHER_SALSA20) \
++	-Dcipher_salsa2012=$(call feature,ENABLE_CIPHER_SALSA2012) \
++	-Dcmdline_commands=$(call feature,WITH_CMDLINE_COMMANDS) \
++	-Dcmdline_logging=$(call feature,WITH_CMDLINE_LOGGING) \
++	-Dcmdline_operation=$(call feature,WITH_CMDLINE_OPERATION) \
++	-Dcmdline_user=$(call feature,WITH_CMDLINE_USER) \
++	-Ddynamic_peers=$(call feature,WITH_DYNAMIC_PEERS) \
++	-Dmac_ghash=$(call feature,ENABLE_MAC_GHASH) \
++	-Dmac_uhash=$(call feature,ENABLE_MAC_UHASH) \
++	-Dmethod_cipher-test=$(call feature,ENABLE_METHOD_CIPHER_TEST) \
++	-Dmethod_composed-gmac=$(call feature,ENABLE_METHOD_COMPOSED_GMAC) \
++	-Dmethod_composed-umac=$(call feature,ENABLE_METHOD_COMPOSED_UMAC) \
++	-Dmethod_generic-gmac=$(call feature,ENABLE_METHOD_GENERIC_GMAC) \
++	-Dmethod_generic-poly1305=$(call feature,ENABLE_METHOD_GENERIC_POLY1305) \
++	-Dmethod_generic-umac=$(call feature,ENABLE_METHOD_GENERIC_UMAC) \
++	-Dmethod_null=$(call feature,ENABLE_METHOD_NULL) \
++	-Dstatus_socket=$(call feature,WITH_STATUS_SOCKET) \
++	-Dsystemd=disabled \
++	-Duse_nacl=true \
++	-Db_lto=true \
++	-Dprefix=/usr
+ 
+ define Package/fastd/description
+  Fast and secure tunneling daemon, which is optimized on small code size and few dependencies
-- 
GitLab