From 389f40bfd59b1cb9bcb2efd448822ef7da900ccb Mon Sep 17 00:00:00 2001 From: Petr Menšík Date: May 11 2017 17:42:38 +0000 Subject: Update to 2.77rc2 --- diff --git a/.gitignore b/.gitignore index 2cde38c..bbb4928 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ dnsmasq-2.52.tar.lzma /dnsmasq-2.72.tar.xz /dnsmasq-2.75.tar.xz /dnsmasq-2.76.tar.xz +/dnsmasq-2.77rc2.tar.xz diff --git a/dnsmasq-2.76-dns-sleep-resume.patch b/dnsmasq-2.76-dns-sleep-resume.patch deleted file mode 100644 index ef4e920..0000000 --- a/dnsmasq-2.76-dns-sleep-resume.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index 1896a64..aa5ec84 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -487,6 +487,7 @@ struct serverfd { - int fd; - union mysockaddr source_addr; - char interface[IF_NAMESIZE+1]; -+ unsigned int ifindex, used; - struct serverfd *next; - }; - -diff --git a/src/network.c b/src/network.c -index e7722fd..d87d08f 100644 ---- a/src/network.c -+++ b/src/network.c -@@ -1204,6 +1204,7 @@ int local_bind(int fd, union mysockaddr *addr, char *intname, int is_tcp) - static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - { - struct serverfd *sfd; -+ unsigned int ifindex = 0; - int errsave; - - /* when using random ports, servers which would otherwise use -@@ -1224,11 +1225,15 @@ static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - return NULL; - #endif - } -+ -+ if (intname && strlen(intname) != 0) -+ ifindex = if_nametoindex(intname); /* index == 0 when not binding to an interface */ - - /* may have a suitable one already */ - for (sfd = daemon->sfds; sfd; sfd = sfd->next ) - if (sockaddr_isequal(&sfd->source_addr, addr) && -- strcmp(intname, sfd->interface) == 0) -+ strcmp(intname, sfd->interface) == 0 && -+ ifindex == sfd->ifindex) - return sfd; - - /* need to make a new one. */ -@@ -1250,11 +1255,13 @@ static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - errno = errsave; - return NULL; - } -- -+ - strcpy(sfd->interface, intname); - sfd->source_addr = *addr; - sfd->next = daemon->sfds; -+ sfd->ifindex = ifindex; - daemon->sfds = sfd; -+ - return sfd; - } - -@@ -1429,12 +1436,16 @@ void check_servers(void) - { - struct irec *iface; - struct server *serv; -+ struct serverfd *sfd, *tmp, **up; - int port = 0, count; - - /* interface may be new since startup */ - if (!option_bool(OPT_NOWILD)) - enumerate_interfaces(0); - -+ for (sfd = daemon->sfds; sfd; sfd = sfd->next) -+ sfd->used = 0; -+ - #ifdef HAVE_DNSSEC - /* Disable DNSSEC validation when using server=/domain/.... servers - unless there's a configured trust anchor. */ -@@ -1505,6 +1516,9 @@ void check_servers(void) - serv->flags |= SERV_MARK; - continue; - } -+ -+ if (serv->sfd) -+ serv->sfd->used = 1; - } - - if (!(serv->flags & SERV_NO_REBIND) && !(serv->flags & SERV_LITERAL_ADDRESS)) -@@ -1547,6 +1561,20 @@ void check_servers(void) - if (count - 1 > SERVERS_LOGGED) - my_syslog(LOG_INFO, _("using %d more nameservers"), count - SERVERS_LOGGED - 1); - -+ /* Remove unused sfds */ -+ for (sfd = daemon->sfds, up = &daemon->sfds; sfd; sfd = tmp) -+ { -+ tmp = sfd->next; -+ if (!sfd->used) -+ { -+ *up = sfd->next; -+ close(sfd->fd); -+ free(sfd); -+ } -+ else -+ up = &sfd->next; -+ } -+ - cleanup_servers(); - } - diff --git a/dnsmasq-2.76-libidn2.patch b/dnsmasq-2.76-libidn2.patch deleted file mode 100644 index 185ea46..0000000 --- a/dnsmasq-2.76-libidn2.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 53ba1f8632b1fb09b5bf78e5bc355eebed2bc8b4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= -Date: Tue, 9 May 2017 18:56:16 +0200 -Subject: [PATCH] Support for libidn2 - ---- - Makefile | 6 ++++-- - src/config.h | 10 +++++++++- - src/util.c | 19 ++++++++++++++----- - 3 files changed, 27 insertions(+), 8 deletions(-) - -diff --git a/Makefile b/Makefile -index dd0513b..eacf5d4 100644 ---- a/Makefile -+++ b/Makefile -@@ -55,6 +55,8 @@ dbus_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) - dbus_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DBUS $(PKG_CONFIG) --libs dbus-1` - idn_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --cflags libidn` - idn_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_IDN $(PKG_CONFIG) --libs libidn` -+idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFIG) --cflags libidn2` -+idn2_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFIG) --libs libidn2` - ct_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --cflags libnetfilter_conntrack` - ct_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_CONNTRACK $(PKG_CONFIG) --libs libnetfilter_conntrack` - lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua5.1` -@@ -82,8 +84,8 @@ hdrs = dnsmasq.h config.h dhcp-protocol.h dhcp6-protocol.h \ - all : $(BUILDDIR) - @cd $(BUILDDIR) && $(MAKE) \ - top="$(top)" \ -- build_cflags="$(version) $(dbus_cflags) $(idn_cflags) $(ct_cflags) $(lua_cflags) $(nettle_cflags)" \ -- build_libs="$(dbus_libs) $(idn_libs) $(ct_libs) $(lua_libs) $(sunos_libs) $(nettle_libs) $(gmp_libs)" \ -+ build_cflags="$(version) $(dbus_cflags) $(idn2_cflags) $(idn_cflags) $(ct_cflags) $(lua_cflags) $(nettle_cflags)" \ -+ build_libs="$(dbus_libs) $(idn2_libs) $(idn_libs) $(ct_libs) $(lua_libs) $(sunos_libs) $(nettle_libs) $(gmp_libs)" \ - -f $(top)/Makefile dnsmasq - - mostly_clean : -diff --git a/src/config.h b/src/config.h -index 80a50e1..c9e24e5 100644 ---- a/src/config.h -+++ b/src/config.h -@@ -92,11 +92,14 @@ HAVE_DBUS - servers via DBus. - - HAVE_IDN -- define this if you want international domain name support. -+ define this if you want international domain name 2003 support. - NOTE: for backwards compatibility, IDN support is automatically - included when internationalisation support is built, using the - *-i18n makefile targets, even if HAVE_IDN is not explicitly set. - -+HAVE_LIBIDN2 -+ define this if you want international domain name 2008 support. -+ - HAVE_CONNTRACK - define this to include code which propogates conntrack marks from - incoming DNS queries to the corresponding upstream queries. This adds -@@ -173,6 +176,7 @@ RESOLVFILE - /* #define HAVE_LUASCRIPT */ - /* #define HAVE_DBUS */ - /* #define HAVE_IDN */ -+/* #define HAVE_LIBIDN2 */ - /* #define HAVE_CONNTRACK */ - /* #define HAVE_DNSSEC */ - -@@ -396,6 +400,10 @@ static char *compile_opts = - "no-" - #endif - "IDN " -+#if !defined(HAVE_LIBIDN2) -+"no-" -+#endif -+"IDN2 " - #ifndef HAVE_DHCP - "no-" - #endif -diff --git a/src/util.c b/src/util.c -index 93b24f5..0d3285f 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -24,7 +24,9 @@ - #include - #endif - --#if defined(LOCALEDIR) || defined(HAVE_IDN) -+#ifdef HAVE_LIBIDN2 -+#include -+#elif defined(LOCALEDIR) || defined(HAVE_IDN) - #include - #endif - -@@ -134,7 +136,7 @@ static int check_name(char *in) - else if (isascii((unsigned char)c) && iscntrl((unsigned char)c)) - /* iscntrl only gives expected results for ascii */ - return 0; --#if !defined(LOCALEDIR) && !defined(HAVE_IDN) -+#if !defined(LOCALEDIR) && !defined(HAVE_IDN) && !defined(HAVE_LIBIDN2) - else if (!isascii((unsigned char)c)) - return 0; - #endif -@@ -184,7 +186,7 @@ int legal_hostname(char *name) - char *canonicalise(char *in, int *nomem) - { - char *ret = NULL; --#if defined(LOCALEDIR) || defined(HAVE_IDN) -+#if defined(LOCALEDIR) || defined(HAVE_IDN) || defined(HAVE_LIBIDN2) - int rc; - #endif - -@@ -194,8 +196,15 @@ char *canonicalise(char *in, int *nomem) - if (!check_name(in)) - return NULL; - --#if defined(LOCALEDIR) || defined(HAVE_IDN) -- if ((rc = idna_to_ascii_lz(in, &ret, 0)) != IDNA_SUCCESS) -+#if defined(LOCALEDIR) || defined(HAVE_IDN) || defined(HAVE_LIBIDN2) -+#ifdef HAVE_LIBIDN2 -+ rc = idn2_to_ascii_lz(in, &ret, IDN2_NONTRANSITIONAL); -+ if (rc == IDN2_DISALLOWED) -+ rc = idn2_to_ascii_lz(in, &ret, IDN2_TRANSITIONAL); -+#else -+ rc = idna_to_ascii_lz(in, &ret, 0); -+#endif -+ if (rc != IDNA_SUCCESS) - { - if (ret) - free(ret); --- -2.9.3 - diff --git a/dnsmasq.spec b/dnsmasq.spec index 86520f5..dcd03fb 100644 --- a/dnsmasq.spec +++ b/dnsmasq.spec @@ -1,19 +1,19 @@ %define testrelease 0 -%define releasecandidate 0 +%define releasecandidate 2 %if 0%{testrelease} %define extrapath test-releases/ - %define extraversion test16 + %define extraversion test%{testrelease} %endif %if 0%{releasecandidate} %define extrapath release-candidates/ - %define extraversion rc1 + %define extraversion rc%{releasecandidate} %endif %define _hardened_build 1 Name: dnsmasq -Version: 2.76 -Release: 4%{?dist} +Version: 2.77 +Release: 1%{?extraversion:.%{extraversion}}%{?dist} Summary: A lightweight DHCP/caching DNS server Group: System Environment/Daemons @@ -22,11 +22,6 @@ URL: http://www.thekelleys.org.uk/dnsmasq/ Source0: http://www.thekelleys.org.uk/dnsmasq/%{?extrapath}%{name}-%{version}%{?extraversion}.tar.xz Source1: %{name}.service -# dns not updated after sleep and resume laptop -# https://bugzilla.redhat.com/show_bug.cgi?id=1367772 -Patch0: dnsmasq-2.76-dns-sleep-resume.patch -Patch1: dnsmasq-2.76-libidn2.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: dbus-devel @@ -60,8 +55,6 @@ query/remove a DHCP server's leases. %prep %setup -q -n %{name}-%{version}%{?extraversion} -%patch0 -p1 -%patch1 -p1 # use /var/lib/dnsmasq instead of /var/lib/misc for file in dnsmasq.conf.example man/dnsmasq.8 man/es/dnsmasq.8 src/config.h; do @@ -71,14 +64,8 @@ done # fix the path to the trust anchor sed -i 's|%%%%PREFIX%%%%|%{_prefix}|' dnsmasq.conf.example -#enable dbus -sed -i 's|/\* #define HAVE_DBUS \*/|#define HAVE_DBUS|g' src/config.h - -#enable IDN support -sed -i 's|/\* #define HAVE_LIBIDN2 \*/|#define HAVE_LIBIDN2|g' src/config.h - -#enable DNSSEC support -sed -i 's|/\* #define HAVE_DNSSEC \*/|#define HAVE_DNSSEC|g' src/config.h +# optional parts +sed -i 's|^COPTS[[:space:]]*=|\0 -DHAVE_DBUS -DHAVE_LIBIDN2 -DHAVE_DNSSEC|' Makefile #enable /etc/dnsmasq.d fix bz 526703, ignore RPM backup files cat << EOF >> dnsmasq.conf.example @@ -153,6 +140,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/dhcp_* %changelog +* Thu May 11 2017 Petr Menšík - 2.77-1 +- Update to 2.77rc2 + * Thu May 11 2017 Petr Menšík - Include dhcp_release6 tool and license in utils - Support for IDN 2008 (#1449150) diff --git a/sources b/sources index 8f74da5..6d4d2fa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -00f5ee66b4e4b7f14538bf62ae3c9461 dnsmasq-2.76.tar.xz +SHA512 (dnsmasq-2.77rc2.tar.xz) = d9e5c723dd1de33d6d71194855c1987e9f0541f84663f1dc70bfafe2c6010df4acfc1db4969de70b1f0debbb5471bd97ad943e2f9a9ef507725939badab93a91