From 7f3b8207f52de5b7af5d86b4aaffb05e7c4fca69 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 27 Nov 2017 13:45:19 +0100 Subject: Move back to manual fetching Repo's submodule support is broken. Android bitrot is a thing. --- .gitignore | 2 ++ .gitmodules | 8 -------- Android.mk | 14 ++++++++------ fetch.sh | 22 ++++++++++++++++++++++ generate-tools-filelist.sh | 5 +++++ libmnl | 1 - wireguard | 1 - 7 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 .gitignore delete mode 100644 .gitmodules create mode 100755 fetch.sh create mode 100755 generate-tools-filelist.sh delete mode 160000 libmnl delete mode 160000 wireguard diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ecea3bb --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +libmnl/ +wireguard/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index a73c28e..0000000 --- a/.gitmodules +++ /dev/null @@ -1,8 +0,0 @@ -[submodule "wireguard"] - path = wireguard - url = https://git.zx2c4.com/WireGuard - branch = master -[submodule "libmnl"] - path = libmnl - url = git://git.netfilter.org/libmnl - branch = master diff --git a/Android.mk b/Android.mk index c6d8dfb..0ac774e 100644 --- a/Android.mk +++ b/Android.mk @@ -1,19 +1,21 @@ WIREGUARD_PATH := $(call my-dir) +fetch: + cd $(WIREGUARD_PATH) && ./fetch.sh + TARGET_KERNEL_BINARIES: patch-wireguard -patch-wireguard: +patch-wireguard: fetch ln -vsfT "$$(realpath --relative-to="$(TARGET_KERNEL_SOURCE)/net)" "$(WIREGUARD_PATH)/wireguard/src")" "$(TARGET_KERNEL_SOURCE)/net/wireguard" grep -q wireguard "$(TARGET_KERNEL_SOURCE)/net/Makefile" || sed -i "/^obj-\\\$$(CONFIG_NETFILTER).*+=/a obj-\$$(CONFIG_WIREGUARD) += wireguard/" "$(TARGET_KERNEL_SOURCE)/net/Makefile" grep -q wireguard "$(TARGET_KERNEL_SOURCE)/net/Kconfig" || sed -i "/^if INET\$$/a source \"net/wireguard/Kconfig\"" "$(TARGET_KERNEL_SOURCE)/net/Kconfig" -.PHONY: patch-wireguard +.PHONY: patch-wireguard fetch LOCAL_PATH := $(WIREGUARD_PATH) include $(CLEAR_VARS) -MNL := $(WIREGUARD_PATH)/libmnl/src -WG := $(WIREGUARD_PATH)/wireguard/src/tools -LOCAL_SRC_FILES := $(subst $(WIREGUARD_PATH)/,,$(wildcard $(WG)/*.c $(MNL)/*.c)) -LOCAL_C_INCLUDES := $(MNL)/ $(WG)/ $(MNL)/../include/ +LOCAL_SRC_FILES := $(shell cd $(WIREGUARD_PATH) && ./generate-tools-filelist.sh) +$(foreach F,$(LOCAL_SRC_FILES),$(WIREGUARD_PATH)/$(F)): fetch +LOCAL_C_INCLUDES := $(WIREGUARD_PATH)/libmnl/src/ $(WIREGUARD_PATH)/libmnl/include/ $(WIREGUARD_PATH)/wireguard/src/tools/ LOCAL_CFLAGS := -O3 -std=gnu11 -D_GNU_SOURCE -DHAVE_VISIBILITY_HIDDEN -DRUNSTATEDIR="\"/data/local/run\"" -Wno-pointer-arith -Wno-unused-parameter LOCAL_MODULE := wg LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) diff --git a/fetch.sh b/fetch.sh new file mode 100755 index 0000000..0556dfb --- /dev/null +++ b/fetch.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -e +WIREGUARD_VERSION=0.0.20171127 +LIBMNL_VERSION=1.0.4 +USER_AGENT="WireGuard-AndroidROMBuild/0.1 ($(uname -a))" + +fetch_wireguard() { + [[ -d wireguard && -f wireguard/src/version.h && $(< wireguard/src/version.h) == *"\"$WIREGUARD_VERSION\""* ]] && return 0 + rm -rf wireguard + mkdir wireguard + curl -A "$USER_AGENT" -L "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-$WIREGUARD_VERSION.tar.xz" | tar -C "wireguard" --strip-components=1 -xJf - +} + +fetch_libmnl() { + [[ -d libmnl && -f libmnl/configure.ac && $(< libmnl/configure.ac) == *"[$LIBMNL_VERSION]"* ]] && return 0 + rm -rf libmnl + mkdir libmnl + curl -A "$USER_AGENT" -L "https://www.netfilter.org/projects/libmnl/files/libmnl-$LIBMNL_VERSION.tar.bz2" | tar -C libmnl --strip-components=1 -xjf - +} + +fetch_wireguard +fetch_libmnl diff --git a/generate-tools-filelist.sh b/generate-tools-filelist.sh new file mode 100755 index 0000000..34d8843 --- /dev/null +++ b/generate-tools-filelist.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -e + +. ./fetch.sh +echo wireguard/src/tools/*.c libmnl/src/*.c diff --git a/libmnl b/libmnl deleted file mode 160000 index 0930a63..0000000 --- a/libmnl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0930a63252958f40bb0f9d09de86985c25cea039 diff --git a/wireguard b/wireguard deleted file mode 160000 index e4b7fec..0000000 --- a/wireguard +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e4b7fec69135ecc50b3a105fbf09efc9e037e113 -- cgit v1.2.3-59-g8ed1b