packages/net/fastd/Makefile
Matthias Schiffer 03ff71d5ba
fastd: make L2TP support a config option instead of a variant
We enable the option by default, but do not depend on the kernel modules
required for L2TP offloading to avoid wasting space when the feature is
not needed. To use offloading, kmod-l2tp-eth must be installed.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2021-06-27 17:24:14 +02:00

117 lines
4 KiB
Makefile

#
# 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:=fastd
PKG_VERSION:=22
PKG_RELEASE=3
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:=19750b88705d66811b7c21b672537909c19ae6b21350688cbd1a3a54d08a8951
PKG_LICENSE:=BSD-2-Clause LGPL-2.1-or-later
PKG_LICENSE_FILES:=COPYRIGHT src/dep/libmnl/COPYING
PKG_CONFIG_DEPENDS:=\
CONFIG_FASTD_ENABLE_METHOD_CIPHER_TEST \
CONFIG_FASTD_ENABLE_METHOD_COMPOSED_GMAC \
CONFIG_FASTD_ENABLE_METHOD_COMPOSED_UMAC \
CONFIG_FASTD_ENABLE_METHOD_GENERIC_GMAC \
CONFIG_FASTD_ENABLE_METHOD_GENERIC_POLY1305 \
CONFIG_FASTD_ENABLE_METHOD_GENERIC_UMAC \
CONFIG_FASTD_ENABLE_METHOD_NULL \
CONFIG_FASTD_ENABLE_METHOD_NULL_L2TP \
CONFIG_FASTD_ENABLE_CIPHER_NULL \
CONFIG_FASTD_ENABLE_CIPHER_SALSA20 \
CONFIG_FASTD_ENABLE_CIPHER_SALSA2012 \
CONFIG_FASTD_ENABLE_MAC_GHASH \
CONFIG_FASTD_ENABLE_MAC_UHASH \
CONFIG_FASTD_WITH_CAPABILITIES \
CONFIG_FASTD_WITH_CMDLINE_USER \
CONFIG_FASTD_WITH_CMDLINE_LOGGING \
CONFIG_FASTD_WITH_CMDLINE_OPERATION \
CONFIG_FASTD_WITH_CMDLINE_COMMANDS \
CONFIG_FASTD_WITH_DYNAMIC_PEERS \
CONFIG_FASTD_WITH_STATUS_SOCKET \
CONFIG_FASTD_WITH_OFFLOAD_L2TP
PKG_BUILD_DEPENDS:=meson/host nacl
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
include ../../devel/meson/meson.mk
define Package/fastd
SECTION:=net
CATEGORY:=Network
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
endef
define Package/fastd/config
source "$(SOURCE)/Config.in"
endef
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) \
-Dmethod_null_l2tp=$(call feature,ENABLE_METHOD_NULL_L2TP) \
-Dstatus_socket=$(call feature,WITH_STATUS_SOCKET) \
-Doffload_l2tp=$(call feature,WITH_OFFLOAD_L2TP) \
-Dlibmnl_builtin=true \
-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
endef
define Package/fastd/conffiles
/etc/config/fastd
endef
define Package/fastd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/fastd $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.init $(1)/etc/init.d/fastd
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/examples/openwrt/fastd.config $(1)/etc/config/fastd
$(INSTALL_DIR) $(1)/etc/fastd
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
$(INSTALL_DATA) files/fastd.upgrade $(1)/lib/upgrade/keep.d/fastd
endef
$(eval $(call BuildPackage,fastd))