Skip to content

Instantly share code, notes, and snippets.

@nabeken
Created July 14, 2011 14:24
Show Gist options
  • Save nabeken/1082550 to your computer and use it in GitHub Desktop.
Save nabeken/1082550 to your computer and use it in GitHub Desktop.
unbound.ebuild
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
PYTHON_DEPEND="python? 2:2.5"
inherit autotools eutils python
DESCRIPTION="ldns is a library with the aim to simplify DNS programing in C"
HOMEPAGE="http://www.nlnetlabs.nl/projects/ldns/"
SRC_URI="http://www.nlnetlabs.nl/downloads/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc gost ecdsa python ssl static-libs vim-syntax"
RESTRICT="test" # 1.6.9 has no test directory
RDEPEND="ssl? ( >=dev-libs/openssl-0.9.7 )
ecdsa? ( >=dev-libs/openssl-0.9.8 )
gost? ( >=dev-libs/openssl-1 )"
DEPEND="${RDEPEND}
python? ( dev-lang/swig )
doc? ( app-doc/doxygen )"
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
epatch "${FILESDIR}/1.6.12-cflags.patch"
eautoreconf
}
src_configure() {
econf \
$(use_enable gost) \
$(use_enable ecdsa) \
$(use_enable ssl sha2) \
$(use_enable static-libs static) \
$(use_with ssl) \
$(use_with python pyldns) \
--disable-rpath || die "econf failed"
}
src_compile() {
emake || die "emake failed"
if use doc ; then
emake doxygen || die "emake doxygen failed"
fi
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
dodoc Changelog README* || die "dodoc failed"
if use python ; then
find "${ED}$(python_get_sitedir)" "(" -name "*.a" -o -name "*.la" ")" -type f -delete || die
fi
if ! use static-libs ; then
find "${ED}" -name "*.la" -type f -delete || die
fi
if use doc ; then
dohtml doc/html/* || die "dohtml failed"
fi
if use vim-syntax ; then
insinto /usr/share/vim/vimfiles/ftdetect
doins libdns.vim || die "doins libdns.vim failed"
fi
}
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
PYTHON_DEPEND="python? 2"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.* 2.7-pypy-* *-jython"
inherit eutils flag-o-matic python
DESCRIPTION="A validating, recursive and caching DNS resolver"
HOMEPAGE="http://unbound.net/"
SRC_URI="http://unbound.net/downloads/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug gost ecdsa python selinux static-libs test threads"
RDEPEND="dev-libs/expat
dev-libs/libevent
gost? ( >=dev-libs/openssl-0.9.8 >=net-libs/ldns-1.6.5[ssl,gost?] )
ecdsa? ( >=dev-libs/openssl-0.9.8 >=net-libs/ldns-1.6.13[ssl,ecdsa?] )
selinux? ( sec-policy/selinux-bind )"
DEPEND="${RDEPEND}
python? ( dev-lang/swig )
test? (
net-dns/ldns-utils[examples]
dev-util/splint
app-text/wdiff
)"
# bug #347415
RDEPEND="${RDEPEND}
net-dns/dnssec-root"
pkg_setup() {
enewgroup unbound
enewuser unbound -1 -1 /etc/unbound unbound
use python && python_pkg_setup
}
src_prepare() {
# To avoid below error messages, set 'trust-anchor-file' to same value in
# 'auto-trust-anchor-file'.
# [23109:0] error: Could not open autotrust file for writing,
# /etc/dnssec/root-anchors.txt: Permission denied
epatch "${FILESDIR}/${PN}-1.4.12-gentoo.patch"
}
src_configure() {
append-ldflags -Wl,-z,noexecstack || die
econf \
--with-pidfile="${EPREFIX}"/var/run/unbound.pid \
--with-ldns="${EPREFIX}"/usr \
--with-libevent="${EPREFIX}"/usr \
--with-rootkey-file="${EPREFIX}"/etc/dnssec/root-anchors.txt \
$(use_enable debug) \
$(use_enable gost) \
$(use_enable ecdsa) \
$(use_enable static-libs static) \
$(use_with threads pthreads) \
$(use_with python pyunbound) \
$(use_with python pythonmodule) \
--disable-rpath || die
# http://unbound.nlnetlabs.nl/pipermail/unbound-users/2011-April/001801.html
# $(use_enable debug lock-checks) \
# $(use_enable debug alloc-checks) \
# $(use_enable debug alloc-lite) \
# $(use_enable debug alloc-nonregional) \
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
# bug #299016
if use python ; then
find "${ED}" -name '_unbound.{la,a}' -delete || die
fi
if ! use static-libs ; then
find "${ED}" -name "*.la" -type f -delete || die
fi
newinitd "${FILESDIR}/unbound.initd" unbound || die "newinitd failed"
newconfd "${FILESDIR}/unbound.confd" unbound || die "newconfd failed"
dodoc doc/{README,CREDITS,TODO,Changelog,FEATURES} || die "dodoc failed"
# bug #315519
#exeinto /usr/libexec/munin/plugins
#doexe contrib/unbound_munin_ || die "doexe failed"
dodoc contrib/unbound_munin_ || die "dodoc failed"
docinto selinux
dodoc contrib/selinux/* || die "dodoc failed"
exeinto /usr/share/${PN}
doexe contrib/update-anchor.sh || die "doexe failed"
}
pkg_postinst() {
use python && python_mod_optimize unbound.py unboundmodule.py
elog
elog "unbound is now chrooted to /etc/unbound by default."
elog "To disable chroot, you can set chroot: \"\" in unbound.conf."
elog
elog "If you'd like to run unbound with 'trust-anchor-file' enabled "
elog "in chroot environment, copy /etc/dnssec/root-anchors.txt "
elog "to /etc/unbound and set trust-anchor-file to /root-anchors.txt."
elog
}
pkg_postrm() {
use python && python_mod_cleanup unbound.py unboundmodule.py
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment