wireguard: add new package

[Peter: Fix help text, drop suboptions, drop patches, fix dependencies,
 handle optional bash dependency, use kernel-module infrastructure,
 enable needed kernel options]
Signed-off-by: Aurélien Chabot <aurelien@chabot.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Aurélien Chabot 2017-09-06 21:30:06 +01:00 committed by Peter Korsgaard
parent 404a4f08e1
commit 5a47141ebb
5 changed files with 68 additions and 0 deletions

View File

@ -300,6 +300,12 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(call KCONFIG_ENABLE_OPT,CONFIG_NETFILTER_ADVANCED,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_NF_CONNTRACK_MARK,$(@D)/.config))
$(if $(BR2_PACKAGE_WIREGUARD),
$(call KCONFIG_ENABLE_OPT,CONFIG_INET,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_NET_FOU,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO,$(@D)/.config)
$(call KCONFIG_ENABLE_OPT,CONFIG_CRYPTO_MANAGER,$(@D)/.config))
$(if $(BR2_LINUX_KERNEL_APPENDED_DTB),
$(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
$(if $(BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV),

View File

@ -1794,6 +1794,7 @@ endif
source "package/wavemon/Config.in"
source "package/wget/Config.in"
source "package/whois/Config.in"
source "package/wireguard/Config.in"
source "package/wireless-regdb/Config.in"
source "package/wireless_tools/Config.in"
source "package/wireshark/Config.in"

View File

@ -0,0 +1,18 @@
config BR2_PACKAGE_WIREGUARD
bool "wireguard"
select BR2_PACKAGE_LIBMNL
help
WireGuard is an extremely simple yet fast and modern VPN
that utilizes state-of-the-art cryptography. It aims to be
faster, simpler, leaner, and more useful than IPSec, while
avoiding the massive headache. It intends to be considerably
more performant than OpenVPN. WireGuard is designed as a
general purpose VPN for running on embedded interfaces and
super computers alike, fit for many different
circumstances. Initially released for the Linux kernel, it
plans to be cross-platform and widely deployable. It is
currently under heavy development, but already it might be
regarded as the most secure, easiest to use, and simplest
VPN solution in the industry.
https://www.wireguard.com

View File

@ -0,0 +1,2 @@
# Locally calculated
sha256 ab96230390625aad6f4816fa23aef6e9f7fee130f083d838919129ff12089bf7 WireGuard-0.0.20170810.tar.xz

View File

@ -0,0 +1,41 @@
################################################################################
#
# wireguard
#
################################################################################
WIREGUARD_VERSION = 0.0.20170810
WIREGUARD_SITE = https://git.zx2c4.com/WireGuard/snapshot
WIREGUARD_SOURCE = WireGuard-$(WIREGUARD_VERSION).tar.xz
WIREGUARD_LICENSE = GPL-2.0
WIREGUARD_LICENSE_FILES = COPYING
WIREGUARD_DEPENDENCIES = host-pkgconf libmnl
ifeq ($(BR2_INIT_SYSTEMD),y)
WIREGUARD_MAKE_OPTS += WITH_SYSTEMDUNITS=yes
else
WIREGUARD_MAKE_OPTS += WITH_SYSTEMDUNITS=no
endif
ifeq ($(BR2_PACKAGE_BASH),y)
WIREGUARD_MAKE_OPTS += WITH_BASHCOMPLETION=yes WITH_WGQUICK=yes
else
WIREGUARD_MAKE_OPTS += WITH_BASHCOMPLETION=no WITH_WGQUICK=no
endif
define WIREGUARD_BUILD_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(WIREGUARD_MAKE_OPTS) \
-C $(@D)/src/tools
endef
define WIREGUARD_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) $(WIREGUARD_MAKE_OPTS) \
-C $(@D)/src/tools install DESTDIR=$(TARGET_DIR)
endef
ifeq ($(BR2_LINUX_KERNEL),y)
WIREGUARD_MODULE_SUBDIRS = src
$(eval $(kernel-module))
endif
$(eval $(generic-package))