Skip to content

Commit

Permalink
WireGuard: adapt to the new project structure, which has been split i…
Browse files Browse the repository at this point in the history
…nto 2 parts (Freetz#272)

* added wireguard-tools (userspace) v. 1.0.20200206
* added wireguard-linux-compat (kernel module) v. 0.0.20200215

wireguard-tools supersedes the previous wireguard package; internal name still wireguard
  • Loading branch information
er13 committed Mar 5, 2020
1 parent 0bad64e commit 91eff84
Show file tree
Hide file tree
Showing 9 changed files with 91 additions and 83 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ Latest changes:
* spandsp 0.0.6pre21
* squashfs-tools 3.4
* squashfs-tools 4.3 (modified to support AVM-BE format)
* WireGuard 0.0.20191127
* wireguard-tools 1.0.20200206
* wireguard-linux-compat 0.0.20200215
* xz 5.2.4

- Updated tools and hooks:
Expand Down
11 changes: 11 additions & 0 deletions make/wireguard-linux-compat/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
comment "WireGuard module (not available, needs replace kernel)"
depends on FREETZ_KERNEL_VERSION_3_10_MIN && !FREETZ_REPLACE_KERNEL && !FREETZ_AVM_HAS_CRYPTO_BLKCIPHER_BUILTIN

config FREETZ_PACKAGE_WIREGUARD_LINUX_COMPAT
bool "wireguard-linux-compat 0.0.20200215"
depends on FREETZ_KERNEL_VERSION_3_10_MIN && (FREETZ_AVM_HAS_CRYPTO_BLKCIPHER_BUILTIN || FREETZ_REPLACE_KERNEL) && FREETZ_REPLACE_MODULE_AVAILABLE
default n
select FREETZ_BUSYBOX_IP
select FREETZ_MODULE_wireguard
help
This package provides the kernel module required for Wireguard
18 changes: 18 additions & 0 deletions make/wireguard-linux-compat/patches/010-kernel_cross_compile.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--- src/Makefile
+++ src/Makefile
@@ -22,13 +22,13 @@
WIREGUARD_VERSION = $(patsubst v%,%,$(shell GIT_CEILING_DIRECTORIES="$(PWD)/../.." git describe --dirty 2>/dev/null))

module:
- @$(MAKE) -C $(KERNELDIR) M=$(PWD) WIREGUARD_VERSION="$(WIREGUARD_VERSION)" modules
+ @$(MAKE) -C "$(KERNELDIR)" SUBDIRS="$(SUBDIRS)" ARCH="$(ARCH)" CROSS_COMPILE="$(CROSS_COMPILE)" modules

module-debug:
@$(MAKE) -C $(KERNELDIR) M=$(PWD) V=1 CONFIG_WIREGUARD_DEBUG=y WIREGUARD_VERSION="$(WIREGUARD_VERSION)" modules

clean:
- @$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
+ @$(MAKE) -C "$(KERNELDIR)" SUBDIRS="$(SUBDIRS)" ARCH="$(ARCH)" CROSS_COMPILE="$(CROSS_COMPILE)" clean

module-install:
@$(MAKE) -C $(KERNELDIR) M=$(PWD) WIREGUARD_VERSION="$(WIREGUARD_VERSION)" modules_install
38 changes: 38 additions & 0 deletions make/wireguard-linux-compat/wireguard-linux-compat.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
$(call PKG_INIT_BIN, 0.0.20200215)
$(PKG)_SOURCE:=wireguard-linux-compat-$($(PKG)_VERSION).tar.xz
$(PKG)_SOURCE_SHA256:=0def6f3608ec06f6dfc454aa5281a7c38b06ff27096cb341448d20602da4e923
$(PKG)_SITE:=https://git.zx2c4.com/wireguard-linux-compat/snapshot

$(PKG)_MODULE:=$($(PKG)_DIR)/src/wireguard.ko
$(PKG)_TARGET_MODULE:=$(KERNEL_MODULES_DIR)/drivers/net/wireguard/wireguard.ko

$(PKG)_DEPENDS_ON += kernel

$(PKG)_REBUILD_SUBOPTS += FREETZ_KERNEL_VERSION

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_NOP)

$($(PKG)_MODULE): $($(PKG)_DIR)/.configured
$(SUBMAKE) -C $(WIREGUARD_LINUX_COMPAT_DIR)/src \
SUBDIRS="$(FREETZ_BASE_DIR)/$(WIREGUARD_LINUX_COMPAT_DIR)/src" \
KERNELDIR="$(FREETZ_BASE_DIR)/$(KERNEL_SOURCE_DIR)" \
ARCH="$(KERNEL_ARCH)" \
CROSS_COMPILE="$(KERNEL_CROSS)"

$($(PKG)_TARGET_MODULE): $($(PKG)_MODULE)
$(INSTALL_FILE)


$(pkg):

$(pkg)-precompiled: $($(PKG)_TARGET_MODULE)

$(pkg)-clean:
-$(SUBMAKE) -C $(WIREGUARD_LINUX_COMPAT_DIR)/src clean

$(pkg)-uninstall:
$(RM) $(WIREGUARD_TARGET_MODULE)

$(PKG_FINISH)
7 changes: 3 additions & 4 deletions make/wireguard/Config.in
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
comment "WireGuard (not available, needs replace kernel)"
comment "wireguard-tools (not available, needs replace kernel)"
depends on FREETZ_KERNEL_VERSION_3_10_MIN && !FREETZ_REPLACE_KERNEL && !FREETZ_AVM_HAS_CRYPTO_BLKCIPHER_BUILTIN

config FREETZ_PACKAGE_WIREGUARD
bool "WireGuard 0.0.20191127"
bool "wireguard-tools 1.0.20200206"
depends on FREETZ_KERNEL_VERSION_3_10_MIN && (FREETZ_AVM_HAS_CRYPTO_BLKCIPHER_BUILTIN || FREETZ_REPLACE_KERNEL) && FREETZ_REPLACE_MODULE_AVAILABLE
default n
select FREETZ_BUSYBOX_IP
select FREETZ_LIB_libmnl
select FREETZ_MODULE_wireguard
select FREETZ_PACKAGE_WIREGUARD_LINUX_COMPAT
help
WireGuard is an extremely simple yet fast and modern VPN
that utilizes state-of-the-art cryptography. It aims to be
Expand Down
2 changes: 1 addition & 1 deletion make/wireguard/external.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
config EXTERNAL_FREETZ_PACKAGE_WIREGUARD
depends on EXTERNAL_ENABLED && FREETZ_PACKAGE_WIREGUARD
bool "wireguard"
bool "wireguard-tools"
default n
help
externals the following file(s):
Expand Down
18 changes: 0 additions & 18 deletions make/wireguard/patches/010-kernel_cross_compile.patch

This file was deleted.

27 changes: 0 additions & 27 deletions make/wireguard/patches/100-portability.lede.patch

This file was deleted.

50 changes: 18 additions & 32 deletions make/wireguard/wireguard.mk
Original file line number Diff line number Diff line change
@@ -1,55 +1,41 @@
$(call PKG_INIT_BIN, 0.0.20191127)
$(PKG)_SOURCE:=WireGuard-$($(PKG)_VERSION).tar.xz
$(PKG)_SOURCE_SHA256:=7d4e80a6f84564d4826dd05da2b59e8d17645072c0345d0fc0d197be176c3d06
$(PKG)_SITE:=https://git.zx2c4.com/WireGuard/snapshot
$(call PKG_INIT_BIN, 1.0.20200206)
$(PKG)_SOURCE:=wireguard-tools-$($(PKG)_VERSION).tar.xz
$(PKG)_SOURCE_SHA256:=f5207248c6a3c3e3bfc9ab30b91c1897b00802ed861e1f9faaed873366078c64
$(PKG)_SITE:=https://git.zx2c4.com/wireguard-tools/snapshot

$(PKG)_BINARIES := wg
$(PKG)_BINARIES_BUILD_DIR := $($(PKG)_BINARIES:%=$($(PKG)_DIR)/src/tools/%)
$(PKG)_BINARIES_TARGET_DIR := $($(PKG)_BINARIES:%=$($(PKG)_DEST_DIR)/usr/bin/%)
$(PKG)_BINARY:=$($(PKG)_DIR)/src/wg
$(PKG)_TARGET_BINARY:=$($(PKG)_DEST_DIR)/usr/bin/wg

$(PKG)_MODULES := wireguard.ko
$(PKG)_MODULES_BUILD_DIR := $($(PKG)_MODULES:%=$($(PKG)_DIR)/src/%)
$(PKG)_MODULES_TARGET_DIR := $($(PKG)_MODULES:%=$(KERNEL_MODULES_DIR)/drivers/net/wireguard/%)
$(PKG)_EXTRA_CFLAGS += --function-section -fdata-sections -fstack-protector-strong
$(PKG)_EXTRA_LDFLAGS += -Wl,--gc-sections

$(PKG)_DEPENDS_ON += kernel libmnl
$(PKG)_DEPENDS_ON += kernel

$(PKG)_REBUILD_SUBOPTS += FREETZ_KERNEL_VERSION

$(PKG_SOURCE_DOWNLOAD)
$(PKG_UNPACKED)
$(PKG_CONFIGURED_NOP)

$($(PKG)_BINARIES_BUILD_DIR): $($(PKG)_DIR)/.configured
$(SUBMAKE) -C $(WIREGUARD_DIR)/src tools \
CC="$(TARGET_CC)"
$($(PKG)_BINARY): $($(PKG)_DIR)/.configured
$(SUBMAKE) -C $(WIREGUARD_DIR)/src \
CC="$(TARGET_CC)" \
EXTRA_CFLAGS="$(WIREGUARD_EXTRA_CFLAGS)" \
EXTRA_LDFLAGS="$(WIREGUARD_EXTRA_LDFLAGS)"

$($(PKG)_MODULES_BUILD_DIR): $($(PKG)_DIR)/.configured
$(SUBMAKE) -C $(WIREGUARD_DIR)/src module \
SUBDIRS="$(FREETZ_BASE_DIR)/$(WIREGUARD_DIR)/src" \
KERNELDIR="$(FREETZ_BASE_DIR)/$(KERNEL_SOURCE_DIR)" \
ARCH="$(KERNEL_ARCH)" \
CROSS_COMPILE="$(KERNEL_CROSS)"

$($(PKG)_BINARIES_TARGET_DIR): $($(PKG)_DEST_DIR)/usr/bin/%: $($(PKG)_DIR)/src/tools/%
$($(PKG)_TARGET_BINARY): $($(PKG)_BINARY)
$(INSTALL_BINARY_STRIP)

$($(PKG)_MODULES_TARGET_DIR): $(KERNEL_MODULES_DIR)/drivers/net/wireguard/%: $($(PKG)_DIR)/src/%
$(INSTALL_FILE)

$(pkg):

$(pkg)-precompiled: $($(PKG)_BINARIES_TARGET_DIR) $($(PKG)_MODULES_TARGET_DIR)
$(pkg)-precompiled: $($(PKG)_TARGET_BINARY)

$(pkg)-clean:
-$(SUBMAKE) -C $(WIREGUARD_DIR)/src clean \
SUBDIRS="$(FREETZ_BASE_DIR)/$(WIREGUARD_DIR)/src" \
KERNELDIR="$(FREETZ_BASE_DIR)/$(KERNEL_SOURCE_DIR)" \
ARCH="$(KERNEL_ARCH)" \
CROSS_COMPILE="$(KERNEL_CROSS)"
-$(SUBMAKE) -C $(WIREGUARD_DIR)/src clean

$(pkg)-uninstall:
$(RM) \
$(WIREGUARD_BINARIES_TARGET_DIR) \
$(WIREGUARD_MODULES_TARGET_DIR)
$(RM) $(WIREGUARD_TARGET_BINARY)

$(PKG_FINISH)

0 comments on commit 91eff84

Please sign in to comment.