1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
6 inherit eutils toolchain-funcs flag-o-matic user systemd
8 DESCRIPTION="Small forwarding DNS server"
9 HOMEPAGE="http://www.thekelleys.org.uk/dnsmasq/doc.html"
10 SRC_URI="http://www.thekelleys.org.uk/dnsmasq/${P}.tar.xz"
12 LICENSE="|| ( GPL-2 GPL-3 )"
14 KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd"
15 IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec idn +inotify ipv6 lua nls script selinux static tftp"
16 DM_LINGUAS="de es fi fr id it no pl pt_BR ro"
17 for dm_lingua in ${DM_LINGUAS}; do
18 IUSE+=" linguas_${dm_lingua}"
21 CDEPEND="dbus? ( sys-apps/dbus )
22 idn? ( net-dns/libidn )
23 lua? ( dev-lang/lua:* )
24 conntrack? ( net-libs/libnetfilter_conntrack )
36 dev-libs/nettle[static-libs(+)]
47 selinux? ( sec-policy/selinux-dnsmasq )
50 REQUIRED_USE="dhcp-tools? ( dhcp )
54 local useflag no_only uword
55 if [[ $1 == '-n' ]]; then
62 uword="${1:-${useflag}}"
65 while [[ ${uword} ]]; do
68 if ! use "${useflag}"; then
69 echo -n " -DNO_${uword}"
70 elif [[ -z "${no_only}" ]]; then
71 echo -n " -DHAVE_${uword}"
80 einfo "Only sys-libs/gmp and dev-libs/nettle are statically linked."
81 use dnssec || einfo "Thus, ${P}[!dnssec,static] makes no sense; the static USE flag is ignored."
87 enewuser dnsmasq -1 -1 /dev/null dnsmasq
93 sed -i -r 's:lua5.[0-9]+:lua:' Makefile
94 sed -i "s:%%PREFIX%%:${EPREFIX}/usr:" dnsmasq.conf.example
98 COPTS="$(use_have -n auth-dns auth)"
99 COPTS+="$(use_have conntrack)"
100 COPTS+="$(use_have dbus)"
101 COPTS+="$(use_have idn)"
102 COPTS+="$(use_have -n inotify)"
103 COPTS+="$(use_have -n dhcp dhcp dhcp6)"
104 COPTS+="$(use_have -n ipv6 ipv6 dhcp6)"
105 COPTS+="$(use_have lua luascript)"
106 COPTS+="$(use_have -n script)"
107 COPTS+="$(use_have -n tftp)"
108 COPTS+="$(use_have dnssec)"
109 COPTS+="$(use_have static dnssec_static)"
115 MANDIR=/usr/share/man \
117 PKG_CONFIG="$(tc-getPKG_CONFIG)" \
119 LDFLAGS="${LDFLAGS}" \
121 CONFFILE="/etc/${PN}.conf" \
122 all$(use nls && echo "-i18n")
124 use dhcp-tools && emake -C contrib/lease-tools \
126 MANDIR=/usr/share/man \
128 PKG_CONFIG="$(tc-getPKG_CONFIG)" \
130 LDFLAGS="${LDFLAGS}" \
138 MANDIR=/usr/share/man \
141 install$(use nls && echo "-i18n")
143 for lingua in ${DM_LINGUAS}; do
144 use linguas_${lingua} || rm -rf "${D}"/usr/share/locale/${lingua}
146 [[ -d "${D}"/usr/share/locale/ ]] && rmdir --ignore-fail-on-non-empty "${D}"/usr/share/locale/
148 dodoc CHANGELOG CHANGELOG.archive FAQ dnsmasq.conf.example
154 newinitd "${FILESDIR}"/dnsmasq-init-r2 ${PN}
155 newconfd "${FILESDIR}"/dnsmasq.confd-r1 ${PN}
158 newins dnsmasq.conf.example dnsmasq.conf
160 insinto /usr/share/dnsmasq
161 doins trust-anchors.conf
165 newinitd "${FILESDIR}"/dnsmasq-init-dhcp-r1 ${PN}
168 insinto /etc/dbus-1/system.d
169 doins dbus/dnsmasq.conf
172 if use dhcp-tools; then
173 dosbin contrib/lease-tools/{dhcp_release,dhcp_lease_time}
174 doman contrib/lease-tools/{dhcp_release,dhcp_lease_time}.1
176 dosbin contrib/lease-tools/dhcp_release6
177 doman contrib/lease-tools/dhcp_release6.1
181 systemd_newunit "${FILESDIR}"/${PN}.service-r1 ${PN}.service
185 # temporary workaround to (hopefully) prevent leases file from being removed
186 [[ -f /var/lib/misc/dnsmasq.leases ]] && cp /var/lib/misc/dnsmasq.leases "${T}"
190 # temporary workaround to (hopefully) prevent leases file from being removed
191 [[ -f "${T}"/dnsmasq.leases ]] && cp "${T}"/dnsmasq.leases /var/lib/misc/dnsmasq.leases