diff options
Diffstat (limited to 'net-dns/coredns/coredns-1.11.3.ebuild')
-rw-r--r-- | net-dns/coredns/coredns-1.11.3.ebuild | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/net-dns/coredns/coredns-1.11.3.ebuild b/net-dns/coredns/coredns-1.11.3.ebuild new file mode 100644 index 000000000000..7f69279c8135 --- /dev/null +++ b/net-dns/coredns/coredns-1.11.3.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit fcaps go-module multiprocessing systemd tmpfiles toolchain-funcs + +DESCRIPTION="CoreDNS is a DNS server that chains plugins" +HOMEPAGE="https://github.com/coredns/coredns" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/coredns/coredns.git" +else + SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz" + KEYWORDS="~amd64" +fi + +# main +LICENSE="Apache-2.0" +# deps +LICENSE+=" MIT BSD ISC MPL-2.0 BSD-2" + +SLOT="0" +# TODO: debug test failure with deps tarball +RESTRICT="test" + +RDEPEND="acct-user/coredns + acct-group/coredns" + +FILECAPS=( + -m 755 'cap_net_bind_service=+ep' usr/bin/${PN} +) + +src_unpack() { + if [[ ${PV} == 9999* ]]; then + git-r3_src_unpack + go-module_live_vendor + else + default + fi +} + +src_prepare() { + [[ ${PV} != 9999* ]] && { ln -sv ../vendor ./ || die ; } + default +} + +src_compile() { + [[ ${PV} == 9999* ]] && local GIT_COMMIT="$(git describe --dirty --always)" + ego build -ldflags="-s -w -X github.com/coredns/coredns/coremain.GitCommit=${GIT_COMMIT}" +} + +src_install() { + dobin "${PN}" + einstalldocs + doman man/* + + newinitd "${FILESDIR}"/coredns.initd coredns + newconfd "${FILESDIR}"/coredns.confd coredns + + insinto /etc/coredns/ + newins "${FILESDIR}"/Corefile.example Corefile + + insinto /etc/logrotate.d + newins "${FILESDIR}"/coredns.logrotated coredns + + systemd_dounit "${FILESDIR}"/coredns.service + newtmpfiles "${FILESDIR}"/coredns.tmpfiles "${PN}.conf" +} + +src_test() { + # eclass default '-x' makes tests output unreadable + export GOFLAGS="-v -mod=readonly" + + local known_fail=( + "TestZoneExternalCNAMELookupWithProxy" + "TestMetricsSeveralBlocs" + "TestMetricsAvailable" + "TestMetricsAvailableAfterReload" + "TestMetricsAvailableAfterReloadAndFailedReload" + ) + # concat as '|^Test1$|^Test2$|^Test3...$': + local known_fail_re="$(printf '|^%s$' "${known_fail[@]}")" + # drop '|' in the begining: + known_fail_re="${known_fail_re:1}" + + local working_tests_re="$( + # get list of all test: + { GOFLAGS="-mod=readonly" go test -list . ./... || + die "Can't get list of tests"; } | + # skip "no tests" messages as well as know failures: + grep -v -E " |${known_fail_re}" | + # format a regexp: + sed -z 's/\n/$|^/g' + )" + # drop '|^' in the end: + working_tests_re="^${working_tests_re::-2}" + + go test -race -run "${working_tests_re}" ./... || die "Tests failed" + go test -race -run "${known_fail_re}" ./... || ewarn "Known test failure" +} + +pkg_postinst() { + fcaps_pkg_postinst + tmpfiles_process ${PN}.conf +} |