diff --git a/cross/adguardhome/Makefile b/cross/adguardhome/Makefile new file mode 100644 index 00000000000..3aefc6c0c61 --- /dev/null +++ b/cross/adguardhome/Makefile @@ -0,0 +1,28 @@ +PKG_NAME = adguardhome +PKG_VERS = 0.107.48 +PKG_EXT = tar.gz +PKG_DIST_NAME = v$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/AdguardTeam/$(PKG_NAME)/archive/refs/tags +PKG_DIST_FILE = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIR = AdGuardHome-$(PKG_VERS) + +BUILD_DEPENDS = native/go native/nodejs +HOMEPAGE = https://github.com/AdguardTeam/$(PKG_NAME) +COMMENT = Network-wide ads & trackers blocking DNS server +LICENSE = GPL-3.0 + +PATCHES_LEVEL = 1 +GO_SRC_DIR = $(WORK_DIR)/AdGuardHome-$(PKG_VERS) +GO_BIN_DIR = $(GO_SRC_DIR)/$(PKG_NAME) +GO_BUILD_ARGS += -ldflags "-X 'github.com/AdguardTeam/AdGuardHome/internal/version.version=v$(PKG_VERS)' -X 'github.com/AdguardTeam/AdGuardHome/internal/version.channel=release'" +PATH := $(WORK_DIR)/../../../native/nodejs/work-native/node/bin:$(PATH) +PRE_COMPILE_TARGET = adguardhome_pre_compile +# avoid webpack error ERR_OSSL_EVP_UNSUPPORTED with nodejs 18 +ENV += NODE_OPTIONS=--openssl-legacy-provider + +include ../../mk/spksrc.cross-go.mk + +.PHONY: adguardhome_pre_compile +adguardhome_pre_compile: + @$(RUN) $(MAKE) js-deps + @$(RUN) $(MAKE) js-build \ No newline at end of file diff --git a/cross/adguardhome/PLIST b/cross/adguardhome/PLIST new file mode 100644 index 00000000000..a6059ef0576 --- /dev/null +++ b/cross/adguardhome/PLIST @@ -0,0 +1 @@ +bin:bin/adguardhome diff --git a/cross/adguardhome/digests b/cross/adguardhome/digests new file mode 100644 index 00000000000..d34899d110b --- /dev/null +++ b/cross/adguardhome/digests @@ -0,0 +1,3 @@ +adguardhome-0.107.48.tar.gz SHA1 9d3adecba9e799160ed25292d48cf1ef4386e25a +adguardhome-0.107.48.tar.gz SHA256 189afe8ccc4efd229c3554d812f590cc8727e966c05a6129d444c88a905b83a1 +adguardhome-0.107.48.tar.gz MD5 515ff04dd9bb3884605269fd635c9be6 diff --git a/cross/adguardhome/patches/fix-unprivileged-ports-check.patch b/cross/adguardhome/patches/fix-unprivileged-ports-check.patch new file mode 100644 index 00000000000..0498acce26d --- /dev/null +++ b/cross/adguardhome/patches/fix-unprivileged-ports-check.patch @@ -0,0 +1,11 @@ +--- a/internal/aghnet/net_linux.go ++++ b/internal/aghnet/net_linux.go +@@ -22,6 +22,7 @@ + const dhcpcdConf = "etc/dhcpcd.conf" + + func canBindPrivilegedPorts() (can bool, err error) { ++ return true, nil + res, err := unix.PrctlRetInt( + unix.PR_CAP_AMBIENT, + unix.PR_CAP_AMBIENT_IS_SET, + diff --git a/spk/adguardhome/Makefile b/spk/adguardhome/Makefile new file mode 100644 index 00000000000..1d08790a15d --- /dev/null +++ b/spk/adguardhome/Makefile @@ -0,0 +1,29 @@ +SPK_NAME = adguardhome +SPK_VERS = 0.107.48 +SPK_REV = 0 +SPK_ICON = src/adguardhome.png + +DEPENDS = cross/adguardhome +UNSUPPORTED_ARCHS = $(PPC_ARCHS) +SPK_CONFLICT = DNSServer DhcpServer + +MAINTAINER = publicarray +DISPLAY_NAME = AdGuardHome +DESCRIPTION = "Network-wide ads & trackers blocking DNS server" +HOMEPAGE = https://adguard.com/en/adguard-home/overview.html +LICENSE = GPL-3.0 +CHANGELOG = "Initial release" + +STARTABLE = yes +SERVICE_USER = auto +SERVICE_SETUP = src/service-setup.sh + +SERVICE_PORT = 6053 +SERVICE_PORT_TITLE = $(DISPLAY_NAME) + +# Admin link for in DSM UI +ADMIN_PORT = $(SERVICE_PORT) + +WIZARDS_DIR = src/wizard + +include ../../mk/spksrc.spk.mk \ No newline at end of file diff --git a/spk/adguardhome/src/adguardhome.png b/spk/adguardhome/src/adguardhome.png new file mode 100644 index 00000000000..f6eeeb7a373 Binary files /dev/null and b/spk/adguardhome/src/adguardhome.png differ diff --git a/spk/adguardhome/src/service-setup.sh b/spk/adguardhome/src/service-setup.sh new file mode 100644 index 00000000000..daa95e147f4 --- /dev/null +++ b/spk/adguardhome/src/service-setup.sh @@ -0,0 +1,10 @@ +ADGUARDHOME="${SYNOPKG_PKGDEST}/bin/adguardhome" +CFG_FILE="${SYNOPKG_PKGVAR}/AdGuardHome.yml" +PID_FILE="${SYNOPKG_PKGVAR}/adguardhome.pid" +WEB_UI="0.0.0.0:${SYNOPKG_PKGPORT}" +SERVICE_COMMAND="${ADGUARDHOME} --web-addr ${WEB_UI} --config ${CFG_FILE} --pidfile ${PID_FILE} --logfile ${LOG_FILE} --work-dir ${SYNOPKG_PKGVAR}" +SVC_BACKGROUND=y + +service_postinst () { + mkdir -p "${SYNOPKG_PKGVAR}/data/" +} \ No newline at end of file diff --git a/spk/adguardhome/src/wizard/install_uifile b/spk/adguardhome/src/wizard/install_uifile new file mode 100644 index 00000000000..22652d60c0e --- /dev/null +++ b/spk/adguardhome/src/wizard/install_uifile @@ -0,0 +1,8 @@ +[{ + "step_title": "Install Instructions", + "items": [{ + "desc": "Please unselect 'Run after installation', To run adguard you need to first run the following command via SSH and everytime there is an update" + }, { + "desc": "setcap 'CAP_NET_BIND_SERVICE=+eip CAP_NET_RAW=+eip' /var/packages/adguardhome/target/bin/adguardhome" + }] +}]