123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #
- # Copyright (C) 2016-2017 Jason A. Donenfeld <Jason@zx2c4.com>
- # Copyright (C) 2016 Baptiste Jonglez <openwrt@bitsofnetworks.org>
- # Copyright (C) 2016-2017 Dan Luedtke <mail@danrl.com>
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- include $(TOPDIR)/rules.mk
- include $(INCLUDE_DIR)/kernel.mk
- PKG_NAME:=wireguard
- PKG_VERSION:=0.0.20171221
- PKG_RELEASE:=1
- PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
- PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
- PKG_HASH:=2b97697e9b271ba8836a04120a287b824648124f21d5309170ec51c1f86ac5ed
- PKG_LICENSE:=GPL-2.0 Apache-2.0
- PKG_LICENSE_FILES:=COPYING
- PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/WireGuard-$(PKG_VERSION)
- PKG_BUILD_PARALLEL:=1
- PKG_USE_MIPS16:=0
- # WireGuard's makefile needs this to know where to build the kernel module
- export KERNELDIR:=$(LINUX_DIR)
- include $(INCLUDE_DIR)/package.mk
- define Package/wireguard/Default
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=VPN
- URL:=https://www.wireguard.com
- MAINTAINER:=Baptiste Jonglez <openwrt@bitsofnetworks.org>, \
- Dan Luedtke <mail@danrl.com>, \
- Jason A. Donenfeld <Jason@zx2c4.com>
- endef
- define Package/wireguard/Default/description
- WireGuard is a novel VPN that runs inside the Linux Kernel and 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. It uses UDP.
- endef
- define Package/wireguard
- $(call Package/wireguard/Default)
- TITLE:=WireGuard meta-package
- DEPENDS:=+wireguard-tools +kmod-wireguard
- endef
- include $(INCLUDE_DIR)/kernel-defaults.mk
- include $(INCLUDE_DIR)/package-defaults.mk
- # Used by Build/Compile/Default
- MAKE_PATH:=src/tools
- define Build/Compile
- $(MAKE) $(KERNEL_MAKEOPTS) M="$(PKG_BUILD_DIR)/src" modules
- $(call Build/Compile/Default)
- endef
- define Package/wireguard/install
- true
- endef
- define Package/wireguard/description
- $(call Package/wireguard/Default/description)
- endef
- define Package/wireguard-tools
- $(call Package/wireguard/Default)
- TITLE:=WireGuard userspace control program (wg)
- DEPENDS:=+libmnl +ip
- endef
- define Package/wireguard-tools/description
- $(call Package/wireguard/Default/description)
- This package provides the userspace control program for WireGuard,
- `wg(8)`, and a netifd protocol helper.
- endef
- define Package/wireguard-tools/install
- $(INSTALL_DIR) $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/wg $(1)/usr/bin/
- $(INSTALL_DIR) $(1)/lib/netifd/proto/
- $(INSTALL_BIN) ./files/wireguard.sh $(1)/lib/netifd/proto/
- endef
- define KernelPackage/wireguard
- SECTION:=kernel
- CATEGORY:=Kernel modules
- SUBMENU:=Network Support
- TITLE:=WireGuard kernel module
- DEPENDS:=+IPV6:kmod-udptunnel6 +kmod-udptunnel4
- FILES:= $(PKG_BUILD_DIR)/src/wireguard.$(LINUX_KMOD_SUFFIX)
- AUTOLOAD:=$(call AutoProbe,wireguard)
- endef
- define KernelPackage/wireguard/description
- $(call Package/wireguard/Default/description)
- This package provides the kernel module for WireGuard.
- endef
- $(eval $(call BuildPackage,wireguard))
- $(eval $(call BuildPackage,wireguard-tools))
- $(eval $(call KernelPackage,wireguard))
|