From b8cd9a8cc6e50f6b5ec8d697bc58823ef14053de Mon Sep 17 00:00:00 2001 From: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Date: Tue, 7 Jul 2020 11:40:17 +0800 Subject: [PATCH] AdGuardHome: call native compiler to pack binary --- package/ntlf9t/AdGuardHome/Makefile | 93 ++++++++++++++--------------- 1 file changed, 44 insertions(+), 49 deletions(-) diff --git a/package/ntlf9t/AdGuardHome/Makefile b/package/ntlf9t/AdGuardHome/Makefile index 3a8bb5a96b..8846af0b2a 100644 --- a/package/ntlf9t/AdGuardHome/Makefile +++ b/package/ntlf9t/AdGuardHome/Makefile @@ -1,75 +1,70 @@ # # Copyright (C) 2015-2016 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v3. +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE.txt for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=AdGuardHome -PKG_VERSION:=v0.102 -PKG_RELEASE:=0 +PKG_VERSION:=0.102.0 +PKG_RELEASE:=1 -ifeq ($(ARCH),x86_64) - PKG_ARCH_AdGuardHome:=linux_amd64 - ADG_CONF_NAME:=big_space -endif -ifeq ($(ARCH),i386) - PKG_ARCH_AdGuardHome:=linux_386 - ADG_CONF_NAME:=big_space -endif -ifeq ($(ARCH),mipsel) - PKG_ARCH_AdGuardHome:=linux_mipsle +PKG_SOURCE_PROTO:=git +PKG_SOURCE_VERSION:=v$(PKG_VERSION) +PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome +PKG_MIRROR_HASH:=e877e2d911248666862133c05cc007bb04c8a09ca727f6b4f3060bf06af0d562 + +PKG_LICENSE:=GPL-3.0-only +PKG_LICENSE_FILES:=LICENSE.txt +PKG_MAINTAINER:=Dobroslaw Kijowski + +PKG_BUILD_DEPENDS:=golang/host node/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=github.com/AdguardTeam/AdGuardHome +GO_PKG_EXCLUDES:=dhcpd/standalone +GO_PKG_LDFLAGS:=-s -w +GO_PKG_LDFLAGS_X:=main.version=$(PKG_VERSION) main.channel=release + +ifneq ($(findstring $(ARCH),mips mipsel),) ADG_CONF_NAME:=small_flash -endif -ifeq ($(ARCH),mips) - PKG_ARCH_AdGuardHome:=linux_mips - ADG_CONF_NAME:=small_flash -endif -ifeq ($(ARCH),arm) -ifeq ($(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))),) - PKG_ARCH_AdGuardHome:=linux_armv5 else - PKG_ARCH_AdGuardHome:=linux_arm -endif ADG_CONF_NAME:=big_space endif -ifeq ($(ARCH),aarch64) - PKG_ARCH_AdGuardHome:=linux_arm64 - ADG_CONF_NAME:=big_space -endif - -PKG_SOURCE:=AdGuardHome_$(PKG_ARCH_AdGuardHome).tar.gz -PKG_SOURCE_URL:=https://github.com/AdguardTeam/AdGuardHome/releases/download/$(PKG_VERSION).$(PKG_RELEASE)/ -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE) -PKG_HASH:=skip include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - TITLE:=Network-wide ads & trackers blocking DNS server - URL:=https://github.com/AdguardTeam/AdGuardHome - DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) +define Package/AdGuardHome + SECTION:=net + CATEGORY:=Network + TITLE:=Network-wide ads and trackers blocking DNS server + URL:=https://github.com/AdguardTeam/AdGuardHome + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -define Build/Prepare - tar -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) -endef - -define Build/Configure +define Package/AdGuardHome/description +Free and open source, powerful network-wide ads and trackers blocking DNS server. endef define Build/Compile - chmod 0755 $(PKG_BUILD_DIR)/AdGuardHome/AdGuardHome +( \ + cd $(PKG_BUILD_DIR) ; \ + npm --prefix client ci ; \ + npm --prefix client run build-prod ; \ + GOOS=$$$$(go env GOOS) GOARCH=$$$$(go env GOARCH) GO111MODULE=off go get -v github.com/gobuffalo/packr/... ; \ + "$$$$(go env GOPATH)/bin/packr" -v -z -i $(PKG_BUILD_DIR)/home ; \ + $(call GoPackage/Build/Compile) ; \ +) endef -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/AdGuardHome/AdGuardHome $(1)/usr/bin/AdGuardHome +define Package/AdGuardHome/install + $(call GoPackage/Package/Install/Bin,$(1)) $(INSTALL_DIR) $(1)/etc/AdGuardHome $(INSTALL_CONF) ./conf/$(ADG_CONF_NAME).yaml $(1)/etc/AdGuardHome/AdGuardHome.yaml endef -$(eval $(call BuildPackage,$(PKG_NAME))) +$(eval $(call GoBinPackage,AdGuardHome)) +$(eval $(call BuildPackage,AdGuardHome))