commit: 97b9a31ac710d1b97480ef469edb9872d920475a Author: Brett A C Sheffield <bacs <AT> librecast <DOT> net> AuthorDate: Mon Mar 9 13:53:19 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Mar 11 13:42:49 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97b9a31a
net-dns/dnsmasq: drop 2.89-r1, 2.90, 2.90-r1 Security cleanup. Bug: https://bugs.gentoo.org/905321 Bug: https://bugs.gentoo.org/924448 Signed-off-by: Brett A C Sheffield <bacs <AT> librecast.net> Part-of: https://codeberg.org/gentoo/gentoo/pulls/270 Merges: https://codeberg.org/gentoo/gentoo/pulls/270 Signed-off-by: Sam James <sam <AT> gentoo.org> net-dns/dnsmasq/Manifest | 2 - net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild | 227 --------------- net-dns/dnsmasq/dnsmasq-2.90-r1.ebuild | 235 ---------------- net-dns/dnsmasq/dnsmasq-2.90.ebuild | 234 --------------- net-dns/dnsmasq/files/dnsmasq-2.90-gcc15.patch | 376 ------------------------- 5 files changed, 1074 deletions(-) diff --git a/net-dns/dnsmasq/Manifest b/net-dns/dnsmasq/Manifest index 201d80edb398..e4a4fdb7b2c4 100644 --- a/net-dns/dnsmasq/Manifest +++ b/net-dns/dnsmasq/Manifest @@ -1,3 +1 @@ -DIST dnsmasq-2.89.tar.xz 562700 BLAKE2B d8be39697ce7d4e7beacf6d94a9ba1842fe0099f7ed7ebb243a7e6e5af8c83195e4723e60841705aee70a43510279be8484a9474191ddcf17eac1ff4edc5389f SHA512 4384ed5b673e10eaf6532e6eaeb5c0a6b817581433cc28c632bdcbadbfc050a0ab73bc5b73c98d708cd39515bb3f72168714b0aa5f16436cebdd18020648d428 -DIST dnsmasq-2.90.tar.xz 570672 BLAKE2B e5a7a3f3b1457c94f508a17c32f1f14267ed61009058295e0202bee7a1798a3eb72c70e53c799f25fb6030b389c5eefc5e50845896b71b733c0fc302d730dff7 SHA512 e169de1892f935e219b0f49d90107f95cba42b40bca20bd3c973313c2cd4df58b929af6628cd988419051d81c3b4ccf8e9f816274df7d0840e79f5bf49602442 DIST dnsmasq-2.91.tar.xz 576820 BLAKE2B a363a084ef528d792829a8f83616dd490a3a37c04812f1b98b8cef6422d742cacf3d91a88b528b3806511a9a7e8c3ab7c42193d35e6a3e05c2c54c7ff4e48252 SHA512 d8b062d28f32d0e499e551aeebba75d3ea9f6a5173d78f45292cb1ef28a5d0f7c86982d987fe25c3cee9f139023b1fd023130dddd0dc849fb0cfbd969c3b0c7f diff --git a/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild b/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild deleted file mode 100644 index 592128226498..000000000000 --- a/net-dns/dnsmasq/dnsmasq-2.89-r1.ebuild +++ /dev/null @@ -1,227 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( lua5-{1..4} luajit ) - -inherit toolchain-funcs lua-single systemd - -DESCRIPTION="Small forwarding DNS server" -HOMEPAGE="https://thekelleys.org.uk/dnsmasq/doc.html" -SRC_URI="https://thekelleys.org.uk/dnsmasq/${P}.tar.xz" - -LICENSE="|| ( GPL-2 GPL-3 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2" -IUSE+=" +loop +inotify ipv6 lua nettlehash 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(+)] ) - ) - nettlehash? ( - static? ( >=dev-libs/nettle-3.4[static-libs(+)] ) - ) -" - -RDEPEND="${COMMON_DEPEND} - dnssec? ( - !static? ( >=dev-libs/nettle-3.4:=[gmp] ) - ) - nettlehash? ( - !static? ( dev-libs/nettle:=[gmp] ) - ) - selinux? ( sec-policy/selinux-dnsmasq ) -" - -REQUIRED_USE=" - dhcp-tools? ( dhcp ) - dnssec? ( !nettlehash ) - 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_setup() { - use lua && lua-single_pkg_setup -} - -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 -n loop) - $(use_have lua luascript) - $(use_have -n script) - $(use_have -n tftp) - $(use_have dnssec) - $(use_have nettlehash) - $(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 - - docinto - dodoc dbus/DBus-interface - 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/net-dns/dnsmasq/dnsmasq-2.90-r1.ebuild b/net-dns/dnsmasq/dnsmasq-2.90-r1.ebuild deleted file mode 100644 index 85c1b1f6d648..000000000000 --- a/net-dns/dnsmasq/dnsmasq-2.90-r1.ebuild +++ /dev/null @@ -1,235 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( lua5-{1..4} luajit ) - -inherit flag-o-matic toolchain-funcs lua-single systemd - -DESCRIPTION="Small forwarding DNS server" -HOMEPAGE="https://thekelleys.org.uk/dnsmasq/doc.html" -SRC_URI="https://thekelleys.org.uk/dnsmasq/${P}.tar.xz" - -LICENSE="|| ( GPL-2 GPL-3 )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - -IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2" -IUSE+=" +loop +inotify ipv6 lua nettlehash 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(+)] ) - ) - nettlehash? ( - static? ( >=dev-libs/nettle-3.4[static-libs(+)] ) - ) -" - -RDEPEND="${COMMON_DEPEND} - dnssec? ( - !static? ( >=dev-libs/nettle-3.4:=[gmp] ) - ) - nettlehash? ( - !static? ( dev-libs/nettle:=[gmp] ) - ) - selinux? ( sec-policy/selinux-dnsmasq ) -" - -REQUIRED_USE=" - dhcp-tools? ( dhcp ) - dnssec? ( !nettlehash ) - lua? ( - script - ${LUA_REQUIRED_USE} - ) - libidn2? ( idn ) -" - -PATCHES=( - "${FILESDIR}/dnsmasq-2.90-gcc15.patch" -) - -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_setup() { - use lua && lua-single_pkg_setup -} - -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 "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 -n loop) - $(use_have lua luascript) - $(use_have -n script) - $(use_have -n tftp) - $(use_have dnssec) - $(use_have nettlehash) - $(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 \ - CC="$(tc-getCC)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" \ - CFLAGS="${CFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - COPTS="${COPTS[*]}" \ - CONFFILE="/etc/${PN}.conf" \ - 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 - - docinto - dodoc dbus/DBus-interface - 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/net-dns/dnsmasq/dnsmasq-2.90.ebuild b/net-dns/dnsmasq/dnsmasq-2.90.ebuild deleted file mode 100644 index a727fb492642..000000000000 --- a/net-dns/dnsmasq/dnsmasq-2.90.ebuild +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( lua5-{1..4} luajit ) - -inherit flag-o-matic toolchain-funcs lua-single systemd - -DESCRIPTION="Small forwarding DNS server" -HOMEPAGE="https://thekelleys.org.uk/dnsmasq/doc.html" -SRC_URI="https://thekelleys.org.uk/dnsmasq/${P}.tar.xz" - -LICENSE="|| ( GPL-2 GPL-3 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -IUSE="auth-dns conntrack dbus +dhcp dhcp-tools dnssec +dumpfile id idn libidn2" -IUSE+=" +loop +inotify ipv6 lua nettlehash 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(+)] ) - ) - nettlehash? ( - static? ( >=dev-libs/nettle-3.4[static-libs(+)] ) - ) -" - -RDEPEND="${COMMON_DEPEND} - dnssec? ( - !static? ( >=dev-libs/nettle-3.4:=[gmp] ) - ) - nettlehash? ( - !static? ( dev-libs/nettle:=[gmp] ) - ) - selinux? ( sec-policy/selinux-dnsmasq ) -" - -REQUIRED_USE=" - dhcp-tools? ( dhcp ) - dnssec? ( !nettlehash ) - 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_setup() { - use lua && lua-single_pkg_setup -} - -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 "s:%%PREFIX%%:${EPREFIX}/usr:" \ - dnsmasq.conf.example || die -} - -src_configure() { - # https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2024q4/017855.html (bug #945183) - append-cflags -std=gnu17 - - 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 -n loop) - $(use_have lua luascript) - $(use_have -n script) - $(use_have -n tftp) - $(use_have dnssec) - $(use_have nettlehash) - $(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 \ - CC="$(tc-getCC)" \ - PKG_CONFIG="$(tc-getPKG_CONFIG)" \ - CFLAGS="${CFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ - COPTS="${COPTS[*]}" \ - CONFFILE="/etc/${PN}.conf" \ - 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 - - docinto - dodoc dbus/DBus-interface - 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/net-dns/dnsmasq/files/dnsmasq-2.90-gcc15.patch b/net-dns/dnsmasq/files/dnsmasq-2.90-gcc15.patch deleted file mode 100644 index a0efca3ab687..000000000000 --- a/net-dns/dnsmasq/files/dnsmasq-2.90-gcc15.patch +++ /dev/null @@ -1,376 +0,0 @@ -https://bugs.gentoo.org/943671 - -From da2cc84854a01dd08a8bb4161428be20b83a5ec7 Mon Sep 17 00:00:00 2001 -From: gen2dev <[email protected]> -Date: Sun, 1 Dec 2024 22:53:16 +0000 -Subject: [PATCH] Fix GCC-15, C23 compatibility and - -Wincompatible-pointer-types errors - -A bug in gentoo linux https://bugs.gentoo.org/945183 reported that dnsmasq 2.90 fails to compile with GCC 15. - -The issue is that while previous versions of GCC defaulted to the C17 standard and C23 could be selected with -"-std=c23" or "-std=gnu23", GCC 15 defaults to C23. In C23 incompatible pointer types are an error instead of -a warning, so the "int (*callback)()" incomplete prototypes cause errors. - -For example, compiling dnsmasq 2.90 with gcc 14.2.1 and "-std=gnu23" fails with errors such as: - lease.c: In function `lease_find_interfaces': - lease.c:467:34: warning: passing argument 3 of `iface_enumerate' from incompatible pointer type [-Wincompatible-pointer-types[https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wincompatible-pointer-types]] - 467 | iface_enumerate(AF_INET, &now, find_interface_v4); - | ^~~~~~~~~~~~~~~~~ - | | - | int (*)(struct in_addr, int, char *, struct in_addr, struct in_addr, void *) - In file included from lease.c:17: - dnsmasq.h:1662:50: note: expected `int (*)(void)' but argument is of type `int (*)(struct in_addr, int, char *, struct in_addr, struct in_addr, void *)' - 1662 | int iface_enumerate(int family, void *parm, int (callback)()); - | ~~~~~^~~~~~~~~~~ - -This patch uses a typedef'ed union of pointer types to get type checking of the pointers. If that's too complicated, -another way might be to use (void *) casts to disable type checking. - -Also, some of the IPv6 callbacks had "int preferred, int valid" and some had -"unsigned int preferred, unsigned int valid". This patch changes them all to "unsigned int" -so they're the same and to avoid casting "u32" to "int", eg: - u32 preferred = 0xffffffff; - callback(..., (int)preferred, ...) -Even if those cast values aren't used in the callback, casting u32 to "int" feels bad, especially if "int" is 32 bits. ---- - src/arp.c | 2 +- - src/bpf.c | 14 +++++++------- - src/dhcp.c | 4 ++-- - src/dhcp6.c | 8 ++++---- - src/dnsmasq.h | 8 +++++++- - src/lease.c | 6 +++--- - src/netlink.c | 12 ++++++------ - src/network.c | 6 +++--- - src/radv.c | 14 +++++++------- - 9 files changed, 40 insertions(+), 34 deletions(-) - -diff --git a/src/arp.c b/src/arp.c -index 0a5a9bf..6ff1f01 100644 ---- a/src/arp.c -+++ b/src/arp.c -@@ -152,7 +152,7 @@ int find_mac(union mysockaddr *addr, unsigned char *mac, int lazy, time_t now) - if (arp->status != ARP_EMPTY) - arp->status = ARP_MARK; - -- iface_enumerate(AF_UNSPEC, NULL, filter_mac); -+ iface_enumerate(AF_UNSPEC, NULL, (callback_t){.af_unspec=filter_mac}); - - /* Remove all unconfirmed entries to old list. */ - for (arp = arps, up = &arps; arp; arp = tmp) -diff --git a/src/bpf.c b/src/bpf.c -index 62b589c..82d0125 100644 ---- a/src/bpf.c -+++ b/src/bpf.c -@@ -47,7 +47,7 @@ static union all_addr del_addr; - - #if defined(HAVE_BSD_NETWORK) && !defined(__APPLE__) - --int arp_enumerate(void *parm, int (*callback)()) -+int arp_enumerate(void *parm, callback_t callback) - { - int mib[6]; - size_t needed; -@@ -91,7 +91,7 @@ int arp_enumerate(void *parm, int (*callback)()) - rtm = (struct rt_msghdr *)next; - sin2 = (struct sockaddr_inarp *)(rtm + 1); - sdl = (struct sockaddr_dl *)((char *)sin2 + SA_SIZE(sin2)); -- if (!(*callback)(AF_INET, &sin2->sin_addr, LLADDR(sdl), sdl->sdl_alen, parm)) -+ if (!callback.af_unspec(AF_INET, &sin2->sin_addr, LLADDR(sdl), sdl->sdl_alen, parm)) - return 0; - } - -@@ -107,7 +107,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - - if (family == AF_UNSPEC) - #if defined(HAVE_BSD_NETWORK) && !defined(__APPLE__) -- return arp_enumerate(parm, callback); -+ return arp_enumerate(parm, callback.af_unspec); - #else - return 0; /* need code for Solaris and MacOS*/ - #endif -@@ -147,7 +147,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - broadcast = ((struct sockaddr_in *) addrs->ifa_broadaddr)->sin_addr; - else - broadcast.s_addr = 0; -- if (!((*callback)(addr, iface_index, NULL, netmask, broadcast, parm))) -+ if (!callback.af_inet(addr, iface_index, NULL, netmask, broadcast, parm)) - goto err; - } - else if (family == AF_INET6) -@@ -212,8 +212,8 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - addr->s6_addr[3] = 0; - } - -- if (!((*callback)(addr, prefix, scope_id, iface_index, flags, -- (int) preferred, (int)valid, parm))) -+ if (!callback.af_inet6(addr, prefix, scope_id, iface_index, flags, -+ (unsigned int) preferred, (unsigned int)valid, parm)) - goto err; - } - -@@ -223,7 +223,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - /* Assume ethernet again here */ - struct sockaddr_dl *sdl = (struct sockaddr_dl *) addrs->ifa_addr; - if (sdl->sdl_alen != 0 && -- !((*callback)(iface_index, ARPHRD_ETHER, LLADDR(sdl), sdl->sdl_alen, parm))) -+ !callback.af_local(iface_index, ARPHRD_ETHER, LLADDR(sdl), sdl->sdl_alen, parm)) - goto err; - } - #endif -diff --git a/src/dhcp.c b/src/dhcp.c -index 2603c76..009c2a0 100644 ---- a/src/dhcp.c -+++ b/src/dhcp.c -@@ -317,7 +317,7 @@ void dhcp_packet(time_t now, int pxe_fd) - match.ind = iface_index; - - if (!daemon->if_addrs || -- !iface_enumerate(AF_INET, &match, check_listen_addrs) || -+ !iface_enumerate(AF_INET, &match, (callback_t){.af_inet=check_listen_addrs}) || - !match.matched) - return; - -@@ -330,7 +330,7 @@ void dhcp_packet(time_t now, int pxe_fd) - if (relay_upstream4(iface_index, mess, (size_t)sz)) - return; - -- if (!iface_enumerate(AF_INET, &parm, complete_context)) -+ if (!iface_enumerate(AF_INET, &parm, (callback_t){.af_inet=complete_context})) - return; - - /* Check for a relay again after iface_enumerate/complete_context has had -diff --git a/src/dhcp6.c b/src/dhcp6.c -index c9d54dc..303d33c 100644 ---- a/src/dhcp6.c -+++ b/src/dhcp6.c -@@ -239,7 +239,7 @@ void dhcp6_packet(time_t now) - relay_upstream6(if_index, (size_t)sz, &from.sin6_addr, from.sin6_scope_id, now)) - return; - -- if (!iface_enumerate(AF_INET6, &parm, complete_context6)) -+ if (!iface_enumerate(AF_INET6, &parm, (callback_t){.af_inet6=complete_context6})) - return; - - /* Check for a relay again after iface_enumerate/complete_context has had -@@ -617,7 +617,7 @@ void make_duid(time_t now) - newnow = now - 946684800; - #endif - -- iface_enumerate(AF_LOCAL, &newnow, make_duid1); -+ iface_enumerate(AF_LOCAL, &newnow, (callback_t){.af_local=make_duid1}); - - if(!daemon->duid) - die("Cannot create DHCPv6 server DUID: %s", NULL, EC_MISC); -@@ -667,7 +667,7 @@ struct cparam { - - static int construct_worker(struct in6_addr *local, int prefix, - int scope, int if_index, int flags, -- int preferred, int valid, void *vparam) -+ unsigned int preferred, unsigned int valid, void *vparam) - { - char ifrn_name[IFNAMSIZ]; - struct in6_addr start6, end6; -@@ -801,7 +801,7 @@ void dhcp_construct_contexts(time_t now) - if (context->flags & CONTEXT_CONSTRUCTED) - context->flags |= CONTEXT_GC; - -- iface_enumerate(AF_INET6, ¶m, construct_worker); -+ iface_enumerate(AF_INET6, ¶m, (callback_t){.af_inet6=construct_worker}); - - for (up = &daemon->dhcp6, context = daemon->dhcp6; context; context = tmp) - { -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index a9019ee..abb06c8 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -1662,7 +1662,13 @@ void route_sock(void); - #endif - - /* bpf.c or netlink.c */ --int iface_enumerate(int family, void *parm, int (callback)()); -+typedef union { -+ int (*af_unspec)(int family, char *addrp, char *mac, size_t maclen, void *parmv); -+ int (*af_inet)(struct in_addr local, int if_index, char *label, struct in_addr netmask, struct in_addr broadcast, void *vparam); -+ int (*af_inet6)(struct in6_addr *local, int prefix, int scope, int if_index, int flags, unsigned int preferred, unsigned int valid, void *vparam); -+ int (*af_local)(int index, unsigned int type, char *mac, size_t maclen, void *parm); -+} callback_t; -+int iface_enumerate(int family, void *parm, callback_t callback); - - /* dbus.c */ - #ifdef HAVE_DBUS -diff --git a/src/lease.c b/src/lease.c -index a133021..06a6ae4 100644 ---- a/src/lease.c -+++ b/src/lease.c -@@ -411,7 +411,7 @@ static int find_interface_v4(struct in_addr local, int if_index, char *label, - #ifdef HAVE_DHCP6 - static int find_interface_v6(struct in6_addr *local, int prefix, - int scope, int if_index, int flags, -- int preferred, int valid, void *vparam) -+ unsigned int preferred, unsigned int valid, void *vparam) - { - struct dhcp_lease *lease; - -@@ -468,9 +468,9 @@ void lease_find_interfaces(time_t now) - for (lease = leases; lease; lease = lease->next) - lease->new_prefixlen = lease->new_interface = 0; - -- iface_enumerate(AF_INET, &now, find_interface_v4); -+ iface_enumerate(AF_INET, &now, (callback_t){.af_inet=find_interface_v4}); - #ifdef HAVE_DHCP6 -- iface_enumerate(AF_INET6, &now, find_interface_v6); -+ iface_enumerate(AF_INET6, &now, (callback_t){.af_inet6=find_interface_v6}); - #endif - - for (lease = leases; lease; lease = lease->next) -diff --git a/src/netlink.c b/src/netlink.c -index ef4b5fe..c706339 100644 ---- a/src/netlink.c -+++ b/src/netlink.c -@@ -151,7 +151,7 @@ static ssize_t netlink_recv(int flags) - family = AF_LOCAL finds MAC addresses. - returns 0 on failure, 1 on success, -1 when restart is required - */ --int iface_enumerate(int family, void *parm, int (*callback)()) -+int iface_enumerate(int family, void *parm, callback_t callback) - { - struct sockaddr_nl addr; - struct nlmsghdr *h; -@@ -247,7 +247,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - } - - if (addr.s_addr && callback_ok) -- if (!((*callback)(addr, ifa->ifa_index, label, netmask, broadcast, parm))) -+ if (!callback.af_inet(addr, ifa->ifa_index, label, netmask, broadcast, parm)) - callback_ok = 0; - } - else if (ifa->ifa_family == AF_INET6) -@@ -288,9 +288,9 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - flags |= IFACE_PERMANENT; - - if (addrp && callback_ok) -- if (!((*callback)(addrp, (int)(ifa->ifa_prefixlen), (int)(ifa->ifa_scope), -+ if (!callback.af_inet6(addrp, (int)(ifa->ifa_prefixlen), (int)(ifa->ifa_scope), - (int)(ifa->ifa_index), flags, -- (int) preferred, (int)valid, parm))) -+ (unsigned int)preferred, (unsigned int)valid, parm)) - callback_ok = 0; - } - } -@@ -318,7 +318,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - - if (!(neigh->ndm_state & (NUD_NOARP | NUD_INCOMPLETE | NUD_FAILED)) && - inaddr && mac && callback_ok) -- if (!((*callback)(neigh->ndm_family, inaddr, mac, maclen, parm))) -+ if (!callback.af_unspec(neigh->ndm_family, inaddr, mac, maclen, parm)) - callback_ok = 0; - } - #ifdef HAVE_DHCP6 -@@ -342,7 +342,7 @@ int iface_enumerate(int family, void *parm, int (*callback)()) - } - - if (mac && callback_ok && !((link->ifi_flags & (IFF_LOOPBACK | IFF_POINTOPOINT))) && -- !((*callback)((int)link->ifi_index, (unsigned int)link->ifi_type, mac, maclen, parm))) -+ !callback.af_local((int)link->ifi_index, (unsigned int)link->ifi_type, mac, maclen, parm)) - callback_ok = 0; - } - #endif -diff --git a/src/network.c b/src/network.c -index 0e93c4d..36d9262 100644 ---- a/src/network.c -+++ b/src/network.c -@@ -596,7 +596,7 @@ static int iface_allowed(struct iface_param *param, int if_index, char *label, - - static int iface_allowed_v6(struct in6_addr *local, int prefix, - int scope, int if_index, int flags, -- int preferred, int valid, void *vparam) -+ unsigned int preferred, unsigned int valid, void *vparam) - { - union mysockaddr addr; - struct in_addr netmask; /* dummy */ -@@ -833,12 +833,12 @@ again: - - param.spare = spare; - -- ret = iface_enumerate(AF_INET6, ¶m, iface_allowed_v6); -+ ret = iface_enumerate(AF_INET6, ¶m, (callback_t){.af_inet6=iface_allowed_v6}); - if (ret < 0) - goto again; - else if (ret) - { -- ret = iface_enumerate(AF_INET, ¶m, iface_allowed_v4); -+ ret = iface_enumerate(AF_INET, ¶m, (callback_t){.af_inet=iface_allowed_v4}); - if (ret < 0) - goto again; - } -diff --git a/src/radv.c b/src/radv.c -index d2d3390..f39716c 100644 ---- a/src/radv.c -+++ b/src/radv.c -@@ -58,7 +58,7 @@ static int add_prefixes(struct in6_addr *local, int prefix, - unsigned int preferred, unsigned int valid, void *vparam); - static int iface_search(struct in6_addr *local, int prefix, - int scope, int if_index, int flags, -- int prefered, int valid, void *vparam); -+ unsigned int prefered, unsigned int valid, void *vparam); - static int add_lla(int index, unsigned int type, char *mac, size_t maclen, void *parm); - static void new_timeout(struct dhcp_context *context, char *iface_name, time_t now); - static unsigned int calc_lifetime(struct ra_interface *ra); -@@ -307,7 +307,7 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad - - /* If no link-local address then we can't advertise since source address of - advertisement must be link local address: RFC 4861 para 6.1.2. */ -- if (!iface_enumerate(AF_INET6, &parm, add_prefixes) || -+ if (!iface_enumerate(AF_INET6, &parm, (callback_t){.af_inet6=add_prefixes}) || - parm.link_pref_time == 0) - return; - -@@ -449,7 +449,7 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad - put_opt6_long(mtu); - } - -- iface_enumerate(AF_LOCAL, &send_iface, add_lla); -+ iface_enumerate(AF_LOCAL, &send_iface, (callback_t){.af_local=add_lla}); - - /* RDNSS, RFC 6106, use relevant DHCP6 options */ - (void)option_filter(parm.tags, NULL, daemon->dhcp_opts6); -@@ -823,7 +823,7 @@ time_t periodic_ra(time_t now) - param.iface = context->if_index; - new_timeout(context, param.name, now); - } -- else if (iface_enumerate(AF_INET6, ¶m, iface_search)) -+ else if (iface_enumerate(AF_INET6, ¶m, (callback_t){.af_inet6=iface_search})) - /* There's a context overdue, but we can't find an interface - associated with it, because it's for a subnet we dont - have an interface on. Probably we're doing DHCP on -@@ -856,7 +856,7 @@ time_t periodic_ra(time_t now) - aparam.iface = param.iface; - aparam.alias_ifs = NULL; - aparam.num_alias_ifs = 0; -- iface_enumerate(AF_LOCAL, &aparam, send_ra_to_aliases); -+ iface_enumerate(AF_LOCAL, &aparam, (callback_t){.af_local=send_ra_to_aliases}); - my_syslog(MS_DHCP | LOG_INFO, "RTR-ADVERT(%s) %s => %d alias(es)", - param.name, daemon->addrbuff, aparam.num_alias_ifs); - -@@ -871,7 +871,7 @@ time_t periodic_ra(time_t now) - those. */ - aparam.max_alias_ifs = aparam.num_alias_ifs; - aparam.num_alias_ifs = 0; -- iface_enumerate(AF_LOCAL, &aparam, send_ra_to_aliases); -+ iface_enumerate(AF_LOCAL, &aparam, (callback_t){.af_local=send_ra_to_aliases}); - for (; aparam.num_alias_ifs; aparam.num_alias_ifs--) - { - my_syslog(MS_DHCP | LOG_INFO, "RTR-ADVERT(%s) %s => i/f %d", -@@ -920,7 +920,7 @@ static int send_ra_to_aliases(int index, unsigned int type, char *mac, size_t ma - - static int iface_search(struct in6_addr *local, int prefix, - int scope, int if_index, int flags, -- int preferred, int valid, void *vparam) -+ unsigned int preferred, unsigned int valid, void *vparam) - { - struct search_param *param = vparam; - struct dhcp_context *context; --- -2.20.1 -
