# Contributor: Fabricio Silva <hi@fabricio.dev>
# Maintainer: Fabricio Silva <hi@fabricio.dev>
pkgname=adguardhome
pkgver=0.107.54
pkgrel=0
pkgdesc="Network-wide ads & trackers blocking DNS server"
url="https://adguard.com/adguard-home.html"
arch="all"
license="GPL-3.0-only"
options="net setcap" # net for go
depends="ca-certificates"
makedepends="go libcap-utils"
checkdepends="tzdata"
subpackages="$pkgname-openrc"
install="$pkgname.pre-install"
source="
	$pkgname-$pkgver.tar.gz::https://github.com/AdguardTeam/AdGuardHome/archive/v$pkgver.tar.gz
	$pkgname-frontend-$pkgver.tar.gz::https://github.com/AdguardTeam/AdGuardHome/releases/download/v$pkgver/AdGuardHome_frontend.tar.gz
	adguardhome.initd
	adguardhome.confd
	cap_check.patch
	go_version.patch
	"
builddir="$srcdir/AdGuardHome-$pkgver"
pkgusers="adguardhome"
pkggroups="adguardhome"

export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

prepare() {
	default_prepare

	# frontend pre-built files (symlink dont work)
	rm -rf build/static
	cp -al "$srcdir"/build/static build/static

	go mod download
}

build() {
	go build -o bin/adguardhome -trimpath -ldflags "-s -w
		-X github.com/AdguardTeam/AdGuardHome/internal/version.version=v$pkgver
		-X github.com/AdguardTeam/AdGuardHome/internal/version.channel=release
		-X github.com/AdguardTeam/AdGuardHome/internal/version.committime=${SOURCE_DATE_EPOCH:-$(date +%s)}
		"
}

check() {
	go test ./...
}

package() {
	install -Dm754 -o $pkgusers -g $pkggroups bin/adguardhome -t "$pkgdir"/usr/bin/
	# https://adguard-dns.io/kb/adguard-home/getting-started/#running-without-superuser
	# bind_service for ports lower than 1024 / raw for dhcp/sockets
	setcap "cap_net_bind_service+eip cap_net_raw+eip" "$pkgdir"/usr/bin/adguardhome

	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}

sha512sums="
3600bc43de3c5ee88b9f1888ce895ef255278ef7160c7d7fed39c34068cb8e785574dcdfc9f4df8c3ca8b87614ad4d335a37c2362672f493550ab8daa68b5080  adguardhome-0.107.54.tar.gz
b9385f0425f3c53edb30bb4f40debe82cf9aa73df598695a1b06f6afec8e2630761edda4847a8c0ee5d740325ea9f0d065a7691fd765589ff2646f3e79953918  adguardhome-frontend-0.107.54.tar.gz
566ef136e5c8ab0a7bc067e393b1cb50068140c205f4d7392cc8a5be399b505b3d71ff60708302264b63a11a08d9f85fdf9bf1cf570c664910d149353116313c  adguardhome.initd
f7b7365079b901cbc08c4d0553160a7e5f15205b509e8dc867351338153820acb705807763c12cd66f5120dfa1c008c04a2f01c60331951146f4938791dfea32  adguardhome.confd
b0dde70e9fc1ee40916233d884de2d8fae1a29b6036160334497b02ba7061e009b53b98cc49aae5dfde93d6226657a73ef833e2452e91a41f54bf74fdb8dbcb3  cap_check.patch
612abe5deffc010d8c093a1fe6fcbceea7dc117ae23a83c17ca7b44ff7817e33d546ea6e35e7045d2ca87e6ef4d0772c80797b1c39497b26e2321b38a885008c  go_version.patch
"
