diff options
Diffstat (limited to 'net-dns/AdGuardHome/AdGuardHome-0.107.48.ebuild')
-rw-r--r-- | net-dns/AdGuardHome/AdGuardHome-0.107.48.ebuild | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/net-dns/AdGuardHome/AdGuardHome-0.107.48.ebuild b/net-dns/AdGuardHome/AdGuardHome-0.107.48.ebuild new file mode 100644 index 000000000..65f97c53f --- /dev/null +++ b/net-dns/AdGuardHome/AdGuardHome-0.107.48.ebuild @@ -0,0 +1,153 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit fcaps go-module readme.gentoo-r1 systemd unpacker + +DESCRIPTION="Network-wide ads & trackers blocking DNS server like Pi-Hole with web ui" +HOMEPAGE="https://github.com/AdguardTeam/AdGuardHome/" + +WIKI_COMMIT="7964837" +SRC_URI=" + https://github.com/AdguardTeam/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/deps.tar.zst -> ${P}-deps.tar.zst + https://github.com/rahilarious/gentoo-distfiles/releases/download/${PN}-0.107.46/wiki.tar.xz -> ${PN}-wiki-${WIKI_COMMIT}.tar.xz + web? ( https://github.com/rahilarious/gentoo-distfiles/releases/download/${P}/npm-deps.tar.zst -> ${P}-npm-deps.tar.zst ) +" + +# main +LICENSE="GPL-3" +# deps +LICENSE+=" Apache-2.0 BSD BSD-2 MIT ZLIB" + +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +IUSE="+web" +# RESTRICT="test" + +BDEPEND=" + $(unpacker_src_uri_depends) + >=dev-lang/go-1.22.2 + web? ( net-libs/nodejs[npm] ) +" + +FILECAPS=( + -m 755 'cap_net_bind_service=+eip cap_net_raw=+eip' usr/bin/${PN} +) + +PATCHES=( + "${FILESDIR}"/disable-update-cmd-opt.patch +) + +DOCS=" + ../${PN,,}.wiki/* +" + +DOC_CONTENTS="\n +User is advised to not run binary directly instead use systemd service\n\n +Defaults for systemd service:\n +Web UI: 0.0.0.0:3000\n +Data directory: /var/lib/${PN}\n +Default config: /var/lib/${PN}/${PN}.yaml +" +src_unpack() { + # because we're using vendor/ so we don't need go-module_src_unpack + unpacker_src_unpack +} + +src_prepare() { + ln -sv ../vendor ./ || die + + default + + if use web; then + # mimicking `make js-deps` + export npm_config_cache="${WORKDIR}/npm-cache" NODE_OPTIONS=--openssl-legacy-provider || die + npm --verbose --offline --prefix client/ --no-progress --ignore-engines --ignore-optional --ignore-platform --ignore-scripts ci || die + fi +} + +src_compile() { + # mimicking `make js-build` + use web && npm --verbose --offline --prefix client run build-prod || die + + # mimicking https://github.com/AdguardTeam/AdGuardHome/blob/master/scripts/make/go-build.sh + + local MY_LDFLAGS="-s -w" + MY_LDFLAGS+=" -X github.com/AdguardTeam/AdGuardHome/internal/version.version=${PV}" + MY_LDFLAGS+=" -X github.com/AdguardTeam/AdGuardHome/internal/version.channel=release" + MY_LDFLAGS+=" -X github.com/AdguardTeam/AdGuardHome/internal/version.committime=$(date +%s)" + if [ "$(go env GOARM)" != '' ] + then + MY_LDFLAGS+=" -X github.com/AdguardTeam/AdGuardHome/internal/version.goarm=$(go env GOARM)" + elif [ "$(go env GOMIPS)" != '' ] + then + MY_LDFLAGS+=" -X github.com/AdguardTeam/AdGuardHome/internal/version.gomips=$(go env GOMIPS)" + fi + + ego build -ldflags "${MY_LDFLAGS}" -trimpath -v=1 -x=1 +} + +src_test() { + + # mimicking https://github.com/AdguardTeam/AdGuardHome/blob/master/scripts/make/go-test.sh + count_flags='--count=1' + cover_flags='--coverprofile=./coverage.txt' + shuffle_flags='--shuffle=on' + timeout_flags="--timeout=30s" + fuzztime_flags="--fuzztime=20s" + readonly count_flags cover_flags shuffle_flags timeout_flags fuzztime_flags + + # race only works when pie is disabled + export GOFLAGS="${GOFLAGS/-buildmode=pie/}" + + # following test is failing without giving any reason. Tried disabling internal/updater internal/whois tests toggling race, but still failing. + # ego test\ + # "$count_flags"\ + # "$cover_flags"\ + # "$shuffle_flags"\ + # --race=1\ + # "$timeout_flags"\ + # ./... + + # mimicking https://github.com/AdguardTeam/AdGuardHome/blob/master/scripts/make/go-bench.sh + ego test\ + "$count_flags"\ + "$shuffle_flags"\ + --race=0\ + "$timeout_flags"\ + --bench='.'\ + --benchmem\ + --benchtime=1s\ + --run='^$'\ + ./... + + # mimicking https://github.com/AdguardTeam/AdGuardHome/blob/master/scripts/make/go-fuzz.sh + ego test\ + "$count_flags"\ + "$shuffle_flags"\ + --race=0\ + "$timeout_flags"\ + "$fuzztime_flags"\ + --fuzz='.'\ + --run='^$'\ + ./internal/filtering/rulelist/\ + ; + +} + +src_install() { + dobin "${PN}" + dosym -r /usr/bin/"${PN}" /usr/bin/adguardhome + + einstalldocs + readme.gentoo_create_doc + + systemd_newunit "${FILESDIR}"/AdGuardHome-0.107.43.service "${PN}".service +} + +pkg_postinst() { + readme.gentoo_print_elog +} |