public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-dns/dnsmasq/, profiles/
@ 2020-12-22  0:09 Marek Szuba
  0 siblings, 0 replies; only message in thread
From: Marek Szuba @ 2020-12-22  0:09 UTC (permalink / raw
  To: gentoo-commits

commit:     5db875781303dc0944abfdf04c51a6e05804fbd7
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 22 00:07:46 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue Dec 22 00:09:35 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5db87578

net-dns/dnsmasq: migrate to lua-single.eclass

The wrapper works fine with the Makefile hack used in the unmigrated
ebuilds to point at slot 0. Upstream only checks for lua5.2 but in the end,
links fine against all Lua implementations currently in the tree.

Closes: https://bugs.gentoo.org/752798
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 net-dns/dnsmasq/dnsmasq-2.82-r100.ebuild | 210 +++++++++++++++++++++++++++++++
 profiles/package.mask                    |   1 +
 2 files changed, 211 insertions(+)

diff --git a/net-dns/dnsmasq/dnsmasq-2.82-r100.ebuild b/net-dns/dnsmasq/dnsmasq-2.82-r100.ebuild
new file mode 100644
index 00000000000..d15dc180337
--- /dev/null
+++ b/net-dns/dnsmasq/dnsmasq-2.82-r100.ebuild
@@ -0,0 +1,210 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+
+inherit toolchain-funcs flag-o-matic lua-single systemd
+
+DESCRIPTION="Small forwarding DNS server"
+HOMEPAGE="http://www.thekelleys.org.uk/dnsmasq/doc.html"
+SRC_URI="http://www.thekelleys.org.uk/dnsmasq/${P}.tar.xz"
+
+LICENSE="|| ( GPL-2 GPL-3 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2"
+IUSE+=" +inotify ipv6 lua nls script selinux static tftp"
+
+DM_LINGUAS=(de es fi fr id it no pl pt_BR ro)
+
+BDEPEND="
+	app-arch/xz-utils
+	virtual/pkgconfig
+	nls? ( sys-devel/gettext )
+"
+
+COMMON_DEPEND="
+	acct-group/dnsmasq
+	acct-user/dnsmasq
+	dbus? ( sys-apps/dbus:= )
+	idn? (
+		!libidn2? ( net-dns/libidn:0= )
+		libidn2? ( >=net-dns/libidn2-2.0:= )
+	)
+	lua? ( ${LUA_DEPS} )
+	conntrack? ( net-libs/libnetfilter_conntrack:= )
+	nls? ( sys-devel/gettext )
+"
+
+DEPEND="${COMMON_DEPEND}
+	dnssec? (
+		dev-libs/nettle:=[gmp]
+		static? ( >=dev-libs/nettle-3.4[static-libs(+)] )
+	)
+"
+
+RDEPEND="${COMMON_DEPEND}
+	dnssec? (
+		!static? ( >=dev-libs/nettle-3.4:=[gmp] )
+	)
+	selinux? ( sec-policy/selinux-dnsmasq )
+"
+
+REQUIRED_USE="
+	dhcp-tools? ( dhcp )
+	lua? (
+		script
+		${LUA_REQUIRED_USE}
+	)
+	libidn2? ( idn )"
+
+use_have() {
+	local no_only
+	if [[ ${1} == '-n' ]]; then
+		no_only=1
+		shift
+	fi
+	local useflag="${1}"
+	shift
+
+	local uword="${1:-${useflag}}"
+	shift
+
+	while [[ ${uword} ]]; do
+		uword="${uword^^}"
+
+		if ! use "${useflag}"; then
+			printf -- " -DNO_%s" "${uword}"
+		elif [[ -z "${no_only}" ]]; then
+			printf -- " -DHAVE_%s" "${uword}"
+		fi
+		uword="${1}"
+		shift
+	done
+}
+
+pkg_pretend() {
+	if use static; then
+		einfo "Only sys-libs/gmp and dev-libs/nettle are statically linked."
+		use dnssec || einfo "Thus, ${P}[!dnssec,static] makes no sense;" \
+			"in this case the static USE flag does nothing."
+	fi
+}
+
+src_prepare() {
+	default
+
+	sed -i -r 's:lua5.[0-9]+:lua:' Makefile || die
+	sed -i "s:%%PREFIX%%:${EPREFIX}/usr:" \
+		dnsmasq.conf.example || die
+}
+
+src_configure() {
+	COPTS=(
+		$(use_have -n auth-dns auth)
+		$(use_have conntrack)
+		$(use_have dbus)
+		$(use libidn2 || use_have idn)
+		$(use_have libidn2)
+		$(use_have -n inotify)
+		$(use_have -n dhcp dhcp dhcp6)
+		$(use_have -n ipv6 ipv6 dhcp6)
+		$(use_have -n id id)
+		$(use_have lua luascript)
+		$(use_have -n script)
+		$(use_have -n tftp)
+		$(use_have dnssec)
+		$(use_have static dnssec_static)
+		$(use_have -n dumpfile)
+	)
+}
+
+src_compile() {
+	emake \
+		PREFIX=/usr \
+		MANDIR=/usr/share/man \
+		CC="$(tc-getCC)" \
+		PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+		CFLAGS="${CFLAGS}" \
+		LDFLAGS="${LDFLAGS}" \
+		COPTS="${COPTS[*]}" \
+		CONFFILE="/etc/${PN}.conf" \
+		all$(use nls && printf -- "-i18n\n")
+
+	use dhcp-tools && emake -C contrib/lease-tools \
+		PREFIX=/usr \
+		MANDIR=/usr/share/man \
+		CC="$(tc-getCC)" \
+		PKG_CONFIG="$(tc-getPKG_CONFIG)" \
+		CFLAGS="${CFLAGS}" \
+		LDFLAGS="${LDFLAGS}" \
+		all
+}
+
+src_install() {
+	local lingua puid
+	emake \
+		PREFIX=/usr \
+		MANDIR=/usr/share/man \
+		COPTS="${COPTS[*]}" \
+		DESTDIR="${ED}" \
+		install$(use nls && printf -- "-i18n\n")
+
+	for lingua in "${DM_LINGUAS[@]}"; do
+		has ${lingua} ${LINGUAS-${lingua}} \
+			|| rm -rf "${ED}"/usr/share/locale/${lingua}
+	done
+	[[ -d "${D}"/usr/share/locale/ ]] && \
+		rmdir --ignore-fail-on-non-empty "${ED}"/usr/share/locale/
+
+	dodoc CHANGELOG CHANGELOG.archive FAQ dnsmasq.conf.example
+	dodoc -r logo
+
+	docinto html/
+	dodoc *.html
+
+	newinitd "${FILESDIR}"/dnsmasq-init-r4 ${PN}
+	newconfd "${FILESDIR}"/dnsmasq.confd-r1 ${PN}
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}"/dnsmasq.logrotate ${PN}
+
+	insinto /etc
+	newins dnsmasq.conf.example dnsmasq.conf
+
+	insinto /usr/share/dnsmasq
+	doins trust-anchors.conf
+
+	if use dhcp; then
+		keepdir /var/lib/misc
+		newinitd "${FILESDIR}"/dnsmasq-init-dhcp-r3 ${PN}
+	fi
+	if use dbus; then
+		insinto /etc/dbus-1/system.d
+		doins dbus/dnsmasq.conf
+	fi
+
+	if use dhcp-tools; then
+		dosbin contrib/lease-tools/{dhcp_release,dhcp_lease_time}
+		doman contrib/lease-tools/{dhcp_release,dhcp_lease_time}.1
+		if use ipv6; then
+			dosbin contrib/lease-tools/dhcp_release6
+			doman contrib/lease-tools/dhcp_release6.1
+		fi
+	fi
+
+	systemd_newunit "${FILESDIR}"/${PN}.service-r1 ${PN}.service
+}
+
+pkg_preinst() {
+	[[ -f /var/lib/misc/dnsmasq.leases ]] && \
+		cp /var/lib/misc/dnsmasq.leases "${T}"
+}
+
+pkg_postinst() {
+	[[ -f "${T}"/dnsmasq.leases ]] && \
+		cp "${T}"/dnsmasq.leases /var/lib/misc/dnsmasq.leases
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index fc1d28408bc..6dfae6dfd16 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -543,6 +543,7 @@ kde-apps/kdebase-meta:5
 >=net-analyzer/snort-2.9.16-r100
 >=net-analyzer/suricata-6.0.1-r100
 >=net-analyzer/wireshark-3.4.2-r100
+>=net-dns/dnsmasq-2.82-r100
 >=net-im/prosody-0.11.7-r100
 >=net-im/swift-4.0.2-r100
 >=net-irc/hexchat-2.14.3-r100


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-12-22  0:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-22  0:09 [gentoo-commits] repo/gentoo:master commit in: net-dns/dnsmasq/, profiles/ Marek Szuba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox