Hello community,

here is the log from the commit of package c-ares for openSUSE:Factory checked 
in at 2020-02-14 16:35:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/c-ares (Old)
 and      /work/SRC/openSUSE:Factory/.c-ares.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "c-ares"

Fri Feb 14 16:35:48 2020 rev:7 rq:770034 version:1.15.0+20200117

Changes:
--------
--- /work/SRC/openSUSE:Factory/c-ares/c-ares.changes    2019-11-18 
20:06:05.217722574 +0100
+++ /work/SRC/openSUSE:Factory/.c-ares.new.26092/c-ares.changes 2020-02-14 
16:36:01.419540570 +0100
@@ -1,0 +2,23 @@
+Mon Feb  3 15:17:24 UTC 2020 - Adam Majer <[email protected]>
+
+- Upgrade to latest snapshot from 2020-01-17
+- disable-live-tests.patch: refreshed
+- regression.patch: fix a regression in DNS results that contain
+  both A and AAAA answers.
+
+-------------------------------------------------------------------
+Tue Jan 28 15:52:23 UTC 2020 - MichaƂ Rostecki <[email protected]>
+
+- Add netcfg as the build requirement and runtime requirement.
+  ares_getaddrinfo function uses the getservbyport_r function which
+  requires the /etc/services file to function properly. That config
+  file is provided by the netcfg package. Unit tests rely on it
+  too, hence it has to be a build dependency as well.
+
+-------------------------------------------------------------------
+Mon Jan  6 17:54:05 UTC 2020 - Todd R <[email protected]>
+
+- Switch to cmake-based build.
+  Some packages need the cmake build files.
+
+-------------------------------------------------------------------

Old:
----
  c-ares-1.15.0-20191108.tar.gz

New:
----
  c-ares-1.15.0-20200117.tar.gz
  regression.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ c-ares.spec ++++++
--- /var/tmp/diff_new_pack.3u5nda/_old  2020-02-14 16:36:03.951541982 +0100
+++ /var/tmp/diff_new_pack.3u5nda/_new  2020-02-14 16:36:03.955541984 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package c-ares
 #
-# Copyright (c) 2019 SUSE LLC.
+# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,14 +16,14 @@
 #
 
 
-%define libname libcares2
-%define realver 1.15.0-20191108
+%define sonum   2
+%define libname libcares%{sonum}
+%define realver 1.15.0-20200117
 Name:           c-ares
-Version:        1.15.0+20191108
+Version:        1.15.0+20200117
 Release:        0
 Summary:        Library for asynchronous name resolves
 License:        MIT
-Group:          Development/Libraries/C and C++
 URL:            https://c-ares.haxx.se/
 #Source0:        https://c-ares.haxx.se/daily-snapshot/c-ares-%{realver}.tar.gz
 Source0:        c-ares-%{realver}.tar.gz
@@ -33,10 +33,12 @@
 Source4:        baselibs.conf
 Patch0:         0001-Use-RPM-compiler-options.patch
 Patch1:         disable-live-tests.patch
-BuildRequires:  autoconf
-BuildRequires:  automake
+Patch2:         regression.patch
+BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  libtool
+# Needed for getservbyport_r function to work properly.
+BuildRequires:  netcfg
 BuildRequires:  pkgconfig
 
 %description
@@ -44,18 +46,32 @@
 asynchronously. c-ares is a fork of the library named 'ares', written
 by Greg Hudson at MIT.
 
+%package        utils
+Summary:        Tools for asynchronous name resolves
+
+%description    utils
+c-ares is a C library that performs DNS requests and name resolves
+asynchronously. c-ares is a fork of the library named 'ares', written
+by Greg Hudson at MIT.
+
+This package provides some tools that make use of c-ares.
+
+
 %package -n %{libname}
 Summary:        Library for asynchronous name resolves
-Group:          System/Libraries
+# Needed for getservbyport_r function to work properly.
+Requires:       netcfg
 
 %description -n %{libname}
 c-ares is a C library that performs DNS requests and name resolves
 asynchronously. c-ares is a fork of the library named 'ares', written
 by Greg Hudson at MIT.
 
+This package provides the shared libraries for c-ares.
+
+
 %package devel
-Summary:        Library for asynchronous name resolves
-Group:          Development/Libraries/C and C++
+Summary:        Development files for %{name}
 Requires:       %{libname} = %{version}
 Requires:       glibc-devel
 Provides:       libcares-devel = %{version}
@@ -66,6 +82,10 @@
 asynchronously. c-ares is a fork of the library named 'ares', written
 by Greg Hudson at MIT.
 
+This package provides the development libraries and headers needed
+to build packages that depend on c-ares.
+
+
 %prep
 %autosetup -p1 -n %{name}-%{realver}
 
@@ -74,35 +94,48 @@
 sed -i -e '/XC_CHECK_USER_FLAGS/d' m4/xc-cc-check.m4
 
 %build
-autoreconf -fiv
-%configure \
-       --disable-silent-rules \
-       --enable-symbol-hiding \
-       --enable-nonblocking \
-       --enable-shared \
-       --disable-static \
-       --enable-tests
+%cmake \
+    -DCARES_STATIC:BOOL=OFF \
+    -DCARES_SHARED:BOOL=ON \
+    -DCARES_INSTALL:BOOL=ON \
+    -DCARES_BUILD_TESTS:BOOL=ON \
+    -DCARES_BUILD_TOOLS:BOOL=ON
 make %{?_smp_mflags}
 
-%check
-make -C test %{?_smp_mflags}
-./test/arestest
-
 %install
-%make_install
+%cmake_install
+install -m 644 -Dt %{buildroot}%{_mandir}/man1/ *.1
+install -m 644 -Dt %{buildroot}%{_mandir}/man3/ *.3
 find %{buildroot} -type f -name "*.la" -delete -print
 
+%check
+pushd build
+make -C test %{?_smp_mflags}
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
+./bin/arestest
+
 %post -n %{libname} -p /sbin/ldconfig
 %postun -n %{libname} -p /sbin/ldconfig
 
+%files utils
+%license LICENSE.md
+%{_bindir}/acountry
+%{_bindir}/adig
+%{_bindir}/ahost
+%{_mandir}/man1/acountry.1%{ext_man}
+%{_mandir}/man1/adig.1%{ext_man}
+%{_mandir}/man1/ahost.1%{ext_man}
+
 %files -n %{libname}
 %license LICENSE.md
 %{_libdir}/libcares.so.2*
 
 %files devel
+%license LICENSE.md
 %{_libdir}/libcares.so
 %{_includedir}/*.h
-%{_mandir}/man3/ares_*
+%{_mandir}/man3/ares_*.3%{ext_man}
 %{_libdir}/pkgconfig/libcares.pc
+%{_libdir}/cmake/c-ares/
 
 %changelog

++++++ c-ares-1.15.0-20191108.tar.gz -> c-ares-1.15.0-20200117.tar.gz ++++++
++++ 7218 lines of diff (skipped)

++++++ disable-live-tests.patch ++++++
--- /var/tmp/diff_new_pack.3u5nda/_old  2020-02-14 16:36:04.519542298 +0100
+++ /var/tmp/diff_new_pack.3u5nda/_new  2020-02-14 16:36:04.519542298 +0100
@@ -1,20 +1,19 @@
-Index: c-ares-1.15.0-20191108/test/Makefile.inc
+Index: c-ares-1.15.0-20200117/test/Makefile.inc
 ===================================================================
---- c-ares-1.15.0-20191108.orig/test/Makefile.inc
-+++ c-ares-1.15.0-20191108/test/Makefile.inc
-@@ -13,8 +13,6 @@ TESTSOURCES = ares-test-main.cc      \
+--- c-ares-1.15.0-20200117.orig/test/Makefile.inc
++++ c-ares-1.15.0-20200117/test/Makefile.inc
+@@ -13,7 +13,6 @@ TESTSOURCES = ares-test-main.cc      \
    ares-test-parse-srv.cc              \
    ares-test-parse-txt.cc              \
    ares-test-misc.cc                   \
 -  ares-test-live.cc                   \
--  ares-test-live-ai.cc                        \
    ares-test-mock.cc                   \
    ares-test-mock-ai.cc                        \
    ares-test-internal.cc               \
-Index: c-ares-1.15.0-20191108/test/ares-test-misc.cc
+Index: c-ares-1.15.0-20200117/test/ares-test-misc.cc
 ===================================================================
---- c-ares-1.15.0-20191108.orig/test/ares-test-misc.cc
-+++ c-ares-1.15.0-20191108/test/ares-test-misc.cc
+--- c-ares-1.15.0-20200117.orig/test/ares-test-misc.cc
++++ c-ares-1.15.0-20200117/test/ares-test-misc.cc
 @@ -47,10 +47,12 @@ TEST_F(DefaultChannelTest, SetServers) {
    EXPECT_EQ(expected, GetNameServers(channel_));
  

++++++ regression.patch ++++++
commit 9413d54ff43d18cedf0d4531408aabc7c2c102a2
Author: Adam Majer <[email protected]>
Date:   Mon Feb 3 15:19:08 2020 +0100

    Only count valid addresses when response parsing
    
    When ares_parse_a_reply or ares_parse_aaaa_reply is called in case
    where another AAAA and A responses exist, the resulting ares_addrttl
    count is invalid and the structure points to gibberish.
    
    This is a regression since 1.15.

    PR: https://github.com/c-ares/c-ares/pull/302

diff --git a/ares_parse_a_reply.c b/ares_parse_a_reply.c
index b506f72..920ba24 100644
--- a/ares_parse_a_reply.c
+++ b/ares_parse_a_reply.c
@@ -86,7 +86,10 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
   next = ai.nodes;
   while (next)
     {
-      ++naddrs;
+      if (next->ai_family == AF_INET)
+        {
+          ++naddrs;
+        }
       next = next->ai_next;
     }
 
diff --git a/ares_parse_aaaa_reply.c b/ares_parse_aaaa_reply.c
index aca3f00..d39e138 100644
--- a/ares_parse_aaaa_reply.c
+++ b/ares_parse_aaaa_reply.c
@@ -88,7 +88,10 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int 
alen,
   next = ai.nodes;
   while (next)
     {
-      ++naddrs;
+      if(next->ai_family == AF_INET6)
+        {
+          ++naddrs;
+        }
       next = next->ai_next;
     }
 
diff --git a/test/ares-test-parse-a.cc b/test/ares-test-parse-a.cc
index 77d9591..0741c0d 100644
--- a/test/ares-test-parse-a.cc
+++ b/test/ares-test-parse-a.cc
@@ -11,13 +11,14 @@ TEST_F(LibraryTest, ParseAReplyOK) {
   DNSPacket pkt;
   pkt.set_qid(0x1234).set_response().set_aa()
     .add_question(new DNSQuestion("example.com", ns_t_a))
-    .add_answer(new DNSARR("example.com", 0x01020304, {2,3,4,5}));
+    .add_answer(new DNSARR("example.com", 0x01020304, {2,3,4,5}))
+    .add_answer(new DNSAaaaRR("example.com", 0x01020304, 
{0,0,0,0,0,0,0,0,0,0,0,0,2,3,4,5}));
   std::vector<byte> data = {
     0x12, 0x34,  // qid
     0x84, // response + query + AA + not-TC + not-RD
     0x00, // not-RA + not-Z + not-AD + not-CD + rc=NoError
     0x00, 0x01,  // num questions
-    0x00, 0x01,  // num answer RRs
+    0x00, 0x02,  // num answer RRs
     0x00, 0x00,  // num authority RRs
     0x00, 0x00,  // num additional RRs
     // Question
@@ -35,6 +36,15 @@ TEST_F(LibraryTest, ParseAReplyOK) {
     0x01, 0x02, 0x03, 0x04, // TTL
     0x00, 0x04,  // rdata length
     0x02, 0x03, 0x04, 0x05,
+    // Answer 2
+    0x07, 'e', 'x', 'a', 'm', 'p', 'l', 'e',
+    0x03, 'c', 'o', 'm',
+    0x00,
+    0x00, 0x1c,  //  RR type
+    0x00, 0x01,  //  class IN
+    0x01, 0x02, 0x03, 0x04, // TTL
+    0x00, 0x10,  // rdata length
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x02, 0x03, 0x04, 0x05,
   };
   EXPECT_EQ(data, pkt.data());
   struct hostent *host = nullptr;
@@ -68,7 +78,7 @@ TEST_F(LibraryTest, ParseMalformedAReply) {
     0x84, // [2] response + query + AA + not-TC + not-RD
     0x00, // [3] not-RA + not-Z + not-AD + not-CD + rc=NoError
     0x00, 0x01,  // [4:6) num questions
-    0x00, 0x01,  // [6:8) num answer RRs
+    0x00, 0x02,  // [6:8) num answer RRs
     0x00, 0x00,  // [8:10) num authority RRs
     0x00, 0x00,  // [10:12) num additional RRs
     // Question
diff --git a/test/ares-test-parse-aaaa.cc b/test/ares-test-parse-aaaa.cc
index 9d0457e..1314c83 100644
--- a/test/ares-test-parse-aaaa.cc
+++ b/test/ares-test-parse-aaaa.cc
@@ -13,7 +13,8 @@ TEST_F(LibraryTest, ParseAaaaReplyOK) {
     .add_question(new DNSQuestion("example.com", ns_t_aaaa))
     .add_answer(new DNSAaaaRR("example.com", 100,
                               {0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
-                               0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 
0x04}));
+                               0x03, 0x03, 0x03, 0x03, 0x04, 0x04, 0x04, 
0x04}))
+    .add_answer(new DNSARR("example.com", 0x01020304, {2,3,4,5}));
   std::vector<byte> data = pkt.data();
   struct hostent *host = nullptr;
   struct ares_addr6ttl info[5];

Reply via email to