Sync from SUSE:SLFO:Main c-ares revision d128fc34ef70c3323d8e2302e62eaf83

This commit is contained in:
Adrian Schröter 2025-02-25 16:22:07 +01:00
parent dc1230800a
commit cd7a9d1df8
9 changed files with 602 additions and 25 deletions

View File

@ -0,0 +1,318 @@
commit a531524a3d085fcd9a5e25d5f6cbdb953082c2b9
Author: Brad House <brad@brad-house.com>
Date: Fri Jan 3 12:55:54 2025 -0500
tests: Convert some live tests to Mock tests (#954)
In Issue #953 `GetTCPSock` and `VerifySocketFunctionCallback` tests
might rely on the fact that `connect()` doesn't return an immediate
failure. If `connect()` returned `EWOULDBLOCK`/`EAGAIN` the test would
succeed, but on systems that check on the call for available routes or
listening servers on localhost the `connect()` function would return an
immediate failure.
These functions were not actually tagged with a `Live` prefix so they
would run even callers exclude Live tests. These are testing functions
that shouldn't be limited to live scenarios so we need to move them to
the Mock frameworks and test appropriately.
Fixes #953
Signed-off-by: Brad House (@bradh352)
diff --git a/test/ares-test-live.cc b/test/ares-test-live.cc
index e23dadfe..557c485e 100644
--- a/test/ares-test-live.cc
+++ b/test/ares-test-live.cc
@@ -669,115 +669,7 @@ VIRT_NONVIRT_TEST_F(DefaultChannelTest, LiveGetNameInfoAllocFail) {
EXPECT_EQ(ARES_ENOMEM, result.status_);
}
-VIRT_NONVIRT_TEST_F(DefaultChannelTest, GetSock) {
- ares_socket_t socks[3] = {ARES_SOCKET_BAD, ARES_SOCKET_BAD, ARES_SOCKET_BAD};
- int bitmask = ares_getsock(channel_, socks, 3);
- EXPECT_EQ(0, bitmask);
- bitmask = ares_getsock(channel_, nullptr, 0);
- EXPECT_EQ(0, bitmask);
-
- // Ask again with a pending query.
- HostResult result;
- ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
- bitmask = ares_getsock(channel_, socks, 3);
- EXPECT_NE(0, bitmask);
-
- size_t sock_cnt = 0;
- for (size_t i=0; i<3; i++) {
- if (ARES_GETSOCK_READABLE(bitmask, i) || ARES_GETSOCK_WRITABLE(bitmask, i)) {
- EXPECT_NE(ARES_SOCKET_BAD, socks[i]);
- if (socks[i] != ARES_SOCKET_BAD)
- sock_cnt++;
- }
- }
- EXPECT_NE((size_t)0, sock_cnt);
-
- bitmask = ares_getsock(channel_, nullptr, 0);
- EXPECT_EQ(0, bitmask);
-
- Process();
-}
-
-TEST_F(LibraryTest, GetTCPSock) {
- ares_channel_t *channel;
- struct ares_options opts;
- memset(&opts, 0, sizeof(opts));
- opts.tcp_port = 53;
- opts.flags = ARES_FLAG_USEVC;
- int optmask = ARES_OPT_TCP_PORT | ARES_OPT_FLAGS;
- EXPECT_EQ(ARES_SUCCESS, ares_init_options(&channel, &opts, optmask));
- EXPECT_NE(nullptr, channel);
-
- ares_socket_t socks[3] = {ARES_SOCKET_BAD, ARES_SOCKET_BAD, ARES_SOCKET_BAD};
- int bitmask = ares_getsock(channel, socks, 3);
- EXPECT_EQ(0, bitmask);
- bitmask = ares_getsock(channel, nullptr, 0);
- EXPECT_EQ(0, bitmask);
-
- // Ask again with a pending query.
- HostResult result;
- ares_gethostbyname(channel, "www.google.com.", AF_INET, HostCallback, &result);
- bitmask = ares_getsock(channel, socks, 3);
- EXPECT_NE(0, bitmask);
-
- size_t sock_cnt = 0;
- for (size_t i=0; i<3; i++) {
- if (ARES_GETSOCK_READABLE(bitmask, i) || ARES_GETSOCK_WRITABLE(bitmask, i)) {
- EXPECT_NE(ARES_SOCKET_BAD, socks[i]);
- if (socks[i] != ARES_SOCKET_BAD)
- sock_cnt++;
- }
- }
- EXPECT_NE((size_t)0, sock_cnt);
-
- bitmask = ares_getsock(channel, nullptr, 0);
- EXPECT_EQ(0, bitmask);
-
- ProcessWork(channel, NoExtraFDs, nullptr);
- ares_destroy(channel);
-}
-
-TEST_F(DefaultChannelTest, VerifySocketFunctionCallback) {
- VirtualizeIO vio(channel_);
-
- auto my_functions = VirtualizeIO::default_functions;
- size_t count = 0;
-
- my_functions.asocket = [](int af, int type, int protocol, void * p) -> ares_socket_t {
- EXPECT_NE(nullptr, p);
- (*reinterpret_cast<size_t *>(p))++;
- return ::socket(af, type, protocol);
- };
-
- ares_set_socket_functions(channel_, &my_functions, &count);
-
- {
- count = 0;
- HostResult result;
- ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
- Process();
-
- EXPECT_TRUE(result.done_);
- EXPECT_NE((size_t)0, count);
- }
-
- {
- count = 0;
- ares_channel_t *copy;
- EXPECT_EQ(ARES_SUCCESS, ares_dup(&copy, channel_));
-
- HostResult result;
- ares_gethostbyname(copy, "www.google.com.", AF_INET, HostCallback, &result);
-
- ProcessWork(copy, NoExtraFDs, nullptr);
-
- EXPECT_TRUE(result.done_);
- ares_destroy(copy);
- EXPECT_NE((size_t)0, count);
- }
-
-}
TEST_F(DefaultChannelTest, LiveSetServers) {
struct ares_addr_node server1;
diff --git a/test/ares-test-mock.cc b/test/ares-test-mock.cc
index 8c74c05f..ebae7140 100644
--- a/test/ares-test-mock.cc
+++ b/test/ares-test-mock.cc
@@ -1662,6 +1662,135 @@ TEST_P(MockChannelTest, GetHostByAddrDestroy) {
EXPECT_EQ(0, result.timeouts_);
}
+TEST_P(MockUDPChannelTest, GetSock) {
+ DNSPacket reply;
+ reply.set_response().set_aa()
+ .add_question(new DNSQuestion("www.google.com", T_A))
+ .add_answer(new DNSARR("www.google.com", 0x0100, {0x01, 0x02, 0x03, 0x04}));
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
+ .WillByDefault(SetReply(&server_, &reply));
+
+ ares_socket_t socks[3] = {ARES_SOCKET_BAD, ARES_SOCKET_BAD, ARES_SOCKET_BAD};
+ int bitmask;
+
+ bitmask = ares_getsock(channel_, socks, 3);
+ EXPECT_EQ(0, bitmask);
+ bitmask = ares_getsock(channel_, nullptr, 0);
+ EXPECT_EQ(0, bitmask);
+
+ // Ask again with a pending query.
+ HostResult result;
+ ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
+ bitmask = ares_getsock(channel_, socks, 3);
+ EXPECT_NE(0, bitmask);
+
+ size_t sock_cnt = 0;
+ for (size_t i=0; i<3; i++) {
+ if (ARES_GETSOCK_READABLE(bitmask, i) || ARES_GETSOCK_WRITABLE(bitmask, i)) {
+ EXPECT_NE(ARES_SOCKET_BAD, socks[i]);
+ if (socks[i] != ARES_SOCKET_BAD)
+ sock_cnt++;
+ }
+ }
+ EXPECT_NE((size_t)0, sock_cnt);
+
+ Process();
+
+ bitmask = ares_getsock(channel_, nullptr, 0);
+ EXPECT_EQ(0, bitmask);
+}
+
+TEST_P(MockTCPChannelTest, GetSock) {
+ DNSPacket reply;
+ reply.set_response().set_aa()
+ .add_question(new DNSQuestion("www.google.com", T_A))
+ .add_answer(new DNSARR("www.google.com", 0x0100, {0x01, 0x02, 0x03, 0x04}));
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
+ .WillByDefault(SetReply(&server_, &reply));
+
+ ares_socket_t socks[3] = {ARES_SOCKET_BAD, ARES_SOCKET_BAD, ARES_SOCKET_BAD};
+ int bitmask;
+
+ bitmask = ares_getsock(channel_, socks, 3);
+ EXPECT_EQ(0, bitmask);
+ bitmask = ares_getsock(channel_, nullptr, 0);
+ EXPECT_EQ(0, bitmask);
+
+ // Ask again with a pending query.
+ HostResult result;
+ ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
+ bitmask = ares_getsock(channel_, socks, 3);
+ EXPECT_NE(0, bitmask);
+
+ size_t sock_cnt = 0;
+ for (size_t i=0; i<3; i++) {
+ if (ARES_GETSOCK_READABLE(bitmask, i) || ARES_GETSOCK_WRITABLE(bitmask, i)) {
+ EXPECT_NE(ARES_SOCKET_BAD, socks[i]);
+ if (socks[i] != ARES_SOCKET_BAD)
+ sock_cnt++;
+ }
+ }
+ EXPECT_NE((size_t)0, sock_cnt);
+
+ Process();
+
+ bitmask = ares_getsock(channel_, nullptr, 0);
+ EXPECT_EQ(0, bitmask);
+}
+
+
+TEST_P(MockChannelTest, VerifySocketFunctionCallback) {
+ ares_socket_functions sock_funcs;
+ memset(&sock_funcs, 0, sizeof(sock_funcs));
+
+ DNSPacket reply;
+ reply.set_response().set_aa()
+ .add_question(new DNSQuestion("www.google.com", T_A))
+ .add_answer(new DNSARR("www.google.com", 0x0100, {0x01, 0x02, 0x03, 0x04}));
+ ON_CALL(server_, OnRequest("www.google.com", T_A))
+ .WillByDefault(SetReply(&server_, &reply));
+
+ size_t count = 0;
+
+ sock_funcs.asocket = [](int af, int type, int protocol, void * p) -> ares_socket_t {
+ EXPECT_NE(nullptr, p);
+ (*reinterpret_cast<size_t *>(p))++;
+ return ::socket(af, type, protocol);
+ };
+
+ ares_set_socket_functions(channel_, &sock_funcs, &count);
+
+ {
+ count = 0;
+ HostResult result;
+ ares_gethostbyname(channel_, "www.google.com.", AF_INET, HostCallback, &result);
+ Process();
+
+ EXPECT_TRUE(result.done_);
+ EXPECT_EQ(ARES_SUCCESS, result.status_);
+ EXPECT_EQ(0, result.timeouts_);
+ EXPECT_NE((size_t)0, count);
+ }
+
+ {
+ count = 0;
+ ares_channel_t *copy;
+ EXPECT_EQ(ARES_SUCCESS, ares_dup(&copy, channel_));
+
+ HostResult result;
+ ares_gethostbyname(copy, "www.google.com.", AF_INET, HostCallback, &result);
+
+ ProcessAltChannel(copy);
+
+ EXPECT_TRUE(result.done_);
+ ares_destroy(copy);
+ EXPECT_NE((size_t)0, count);
+ EXPECT_EQ(ARES_SUCCESS, result.status_);
+ EXPECT_EQ(0, result.timeouts_);
+ }
+
+}
+
static const unsigned char *
fetch_server_cookie(const ares_dns_record_t *dnsrec, size_t *len)
{
diff --git a/test/ares-test.cc b/test/ares-test.cc
index 99ab0a00..f383ecbe 100644
--- a/test/ares-test.cc
+++ b/test/ares-test.cc
@@ -888,14 +888,18 @@ void MockChannelOptsTest::ProcessFD(ares_socket_t fd) {
}
}
-void MockChannelOptsTest::Process(unsigned int cancel_ms) {
+void MockChannelOptsTest::ProcessAltChannel(ares_channel_t *chan, unsigned int cancel_ms) {
using namespace std::placeholders;
- ProcessWork(channel_,
+ ProcessWork(chan,
std::bind(&MockChannelOptsTest::fds, this),
std::bind(&MockChannelOptsTest::ProcessFD, this, _1),
cancel_ms);
}
+void MockChannelOptsTest::Process(unsigned int cancel_ms) {
+ ProcessAltChannel(channel_, cancel_ms);
+}
+
void MockEventThreadOptsTest::Process(unsigned int cancel_ms) {
std::set<ares_socket_t> fds;
diff --git a/test/ares-test.h b/test/ares-test.h
index 61275921..77baa902 100644
--- a/test/ares-test.h
+++ b/test/ares-test.h
@@ -328,6 +328,7 @@ public:
// Process all pending work on ares-owned and mock-server-owned file
// descriptors.
+ void ProcessAltChannel(ares_channel_t *chan, unsigned int cancel_ms = 0);
void Process(unsigned int cancel_ms = 0);
protected:

BIN
c-ares-1.27.0.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAmXYSD0ACgkQXMkI/bce
EsIrPAgAsE8zpviLmbuAS9TvBG+mRYhr/Q0Bix9ZpBke/V+4XUpGrlNPcyD5Y1wX
KmTWRFxQWfj/wau8uI1pMYkIQlq7GxU1MaIWiyqEk+4GPEry945PA/YesLiQWuCo
ny/1xA9FNdffCLDpH5OYQtTrKYhZ9wrU4Ae4bh2Mo0V5pwTkX2BviAj9R3SUtXnD
sQi+kRAuhii/3aVPLDURw3MWgGYV1n1dRBWQr1yaeUey3PCn+aUfSsDRHCy6mBIy
5rm2YiiWBaSF89u6PFqqEYI57xDHz7eJa6CYk/nwKktse43zTlWSY2NpAgYR3iW7
mRCAt3/6KVx5pPyzeq3+ZGBmGY0qng==
=hubf
-----END PGP SIGNATURE-----

BIN
c-ares-1.34.4.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

7
c-ares-1.34.4.tar.gz.asc Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQR162yg5j6QxP8sho/B0VYRsuRyCwUCZ12h2wAKCRDB0VYRsuRy
CxKEAP91aSsfGvFmgxEI6MAwR+RpqGG3rd4BrbWPyyiOfZ1t4wD/dDpVlP48TvqG
QlzCeji6ngkysUh2hXqVhrLmyb8HWgY=
=wI3w
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,215 @@
-------------------------------------------------------------------
Fri Jan 3 22:36:24 UTC 2025 - Adam Majer <adam.majer@suse.de>
- skip-test.patch replaced with upstream unit test fix
a531524a3d085fcd9a5e25d5f6cbdb953082c2b9.patch
-------------------------------------------------------------------
Mon Dec 30 11:13:26 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares 1.34.4
This is a bugfix release.
Changes:
QNX Port: Port to QNX 8, add primary config reading support, add CI build. PR #934, PR #937, PR #938
Bugfixes:
Empty TXT records were not being preserved. PR #922
docs: update deprecation notices for ares_create_query() and ares_mkquery(). PR #910
license: some files weren't properly updated. PR #920
Fix bind local device regression from 1.34.0. PR #929, PR #931, PR #935
CMake: set policy version to prevent deprecation warnings. PR #932
CMake: shared and static library names should be the same on unix platforms like autotools uses. PR #933
Update to latest autoconf archive macros for enhanced system compatibility. PR #936
In version 1.34.3
This is a bugfix release.
Changes:
Build the release package in an automated way so we can provide provenance as per SLSA3. PR #906
Bugfixes:
Some upstream servers are non-compliant with EDNS options, resend queries without EDNS. Issue #911
TSAN warns on missing lock, but lock isn't actually necessary. PR #915
ares_getaddrinfo() for AF_UNSPEC should retry IPv4 if only IPv6 is received. 765d558
ares_send() shouldn't return ARES_EBADRESP, its ARES_EBADQUERY. 91519e7
Fix typos in man pages. PR #905
- skip-test.patch: fix failing tests
-------------------------------------------------------------------
Tue Oct 29 09:24:43 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares 1.34.2
Features:
* adig: read arguments from adigrc. [PR #856]
* Add new pending write callback optimization via `ares_set_pending_write_cb`. [PR #857]
* New function `ares_process_fds()`. [PR #875]
* Failed servers should be probed rather than redirecting queries which could
cause unexpected latency. [PR #877]
* adig: rework command line arguments to mimic dig from bind. [PR #890]
* Add new method for overriding network functions
`ares_set_socket_function_ex()` to properly support all new functionality.
[PR #894]
* Fix regression with custom socket callbacks due to DNS cookie support. [PR #895]
* ares_socket: set IP_BIND_ADDRESS_NO_PORT on ares_set_local_ip* tcp sockets [PR #887]
* URI parser/writer for ares_set_servers_csv()/ares_get_servers_csv(). [PR #882]
Changes:
* Connection handling modularization. [PR #857], [PR #876]
* Expose library/utility functions to tools. [PR #860]
* Remove `ares__` prefix, just use `ares_` for internal functions. [PR #872]
Bugfixes:
* fix: potential WIN32_LEAN_AND_MEAN redefinition.
[PR #869]
* Fix googletest v1.15 compatibility.
[PR #874]
* Fix pkgconfig thread dependencies.
[PR #884]
Features in 1.33.0:
* Add DNS cookie support (RFC7873 + RFC9018) to help prevent off-path cache
poisoning attacks. [PR #833]
* Implement TCP FastOpen (TFO) RFC7413, which will make TCP reconnects 0-RTT
on supported systems. [PR #840]
Changes:
* Reorganize source tree. [PR #822]
* Refactoring of connection handling to prevent code duplication. [PR #839]
* New dynamic array data structure to prevent simple logic flaws in array
handling in various code paths. [PR #841]
Bugfixes:
* `ares_destroy()` race condition during shutdown due to missing lock. [PR #831]
Features in 1.32:
* Add support for DNS 0x20 to help prevent cache poisoning attacks, enabled
by specifying `ARES_FLAG_DNS0x20`. Disabled by default. [PR #800]
* Rework query timeout logic to automatically adjust timeouts based on network
conditions. The timeout specified now is only used as a hint until there
is enough history to calculate a more valid timeout. [PR #794]
Changes:
* DNS RR TXT strings should not be automatically concatenated as there are use
cases outside of RFC 7208. In order to maintain ABI compliance, the ability
to retrieve TXT strings concatenated is retained as well as a new API to
retrieve the individual strings. This restores behavior from c-ares 1.20.0.
[PR #801]
* Clean up header inclusion logic to make hacking on code easier. [PR #797]
* GCC/Clang: Enable even more strict warnings to catch more coding flaws. [253bdee]
Bugfixes:
* Tests: Fix thread race condition in test cases for EventThread. [PR #803]
* Thread Saftey: `ares_timeout()` was missing lock. [74a64e4]
-------------------------------------------------------------------
Tue Jun 18 13:51:01 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares 1.31.0
Changes:
* Enable Query Cache by default. [PR #786]
Bugfixes:
* Enhance Windows DNS configuration change detection to also
detect manual DNS configuration changes. [PR #785]
* Various legacy MacOS Build fixes. [Issue #782]
* Ndots value of zero in resolv.conf was not being honored. [852a60a]
* Watt-32 build support had been broken for some time. [PR #781]
* Distribute `ares_dns_rec_type_tostr` manpage. [PR #778]
-------------------------------------------------------------------
Mon Jun 10 11:36:09 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares 1.30.0
Features:
* Basic support for SIG RR record (RFC 2931 / RFC 2535) [PR #773]
Changes:
* Validation that DNS strings can only consist of printable ascii characters
otherwise will trigger a parse failure. [75de16c] and [40fb125]
Bugfixes:
* QueryCache: Fix issue where purging on server changes wasn't working. [a6c8fe6]
- updated dowload URLs to point to github
- updated keyring to include Brad House DA7D64E4C82C6294CB73A20E22E3D13B5411B7CA
-------------------------------------------------------------------
Sun Jun 2 02:30:49 UTC 2024 - jun wang <jgwang@suse.com>
- c-ares 1.29.0
Features:
* When using ARES_OPT_EVENT_THREAD, automatically reload
system configuration when network conditions change.
[PR #759]
* Apple: reimplement DNS configuration reading to more
accurately pull DNS settings. [PR #750]
* Add observability into DNS server health via a server state
callback, invoked whenever a query finishes. [PR #744]
* Add server failover retry behavior, where failed servers are
retried with small probability after a minimum delay.
[PR #731]
Changes:
* Mark ares_channel_t * as const in more places in the public
API. [PR #758]
Bugfixes:
* Due to a logic flaw dns name compression writing was not
properly implemented which would result in the name prefix not
being written for a partial match. This could cause issues in
various record types such as MX records when using the
deprecated API. Regression introduced in 1.28.0. [Issue #757]
* Revert OpenBSD SOCK_DNS flag, it doesn't do what the docs say
it does and causes c-ares to become non-functional. [PR #754]
* ares_getnameinfo(): loosen validation on salen parameter.
[Issue #752]
* cmake: Android requires C99. [PR #748]
* ares_queue_wait_empty() does not honor timeout_ms >= 0.
[Issue #742]
-------------------------------------------------------------------
Tue Apr 2 08:42:30 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares 1.28.1
Features:
* Emit warnings when deprecated c-ares functions are used.
This can be disabled by passing a compiler definition of
`CARES_NO_DEPRECATED`. [PR #732]
* Add function `ares_search_dnsrec()` to search for records
using the new DNS record data structures. [PR #719]
* Rework internals to pass around `ares_dns_record_t` instead of
binary data, this introduces new public functions of
`ares_query_dnsrec()` and `ares_send_dnsrec()`. [PR #730]
Changes:
* tests: when performing simulated queries, reduce timeouts
to make tests run faster
* Replace configuration file parsers with memory-safe parser. [PR #725]
* Remove `acountry` completely, the manpage might still get
installed otherwise. [Issue #718]
Bugfixes:
* CMake: don't overwrite global required libraries/definitions/includes
which could cause build errors for projects chain building c-ares.
[Issue #729]
* On some platforms, `netinet6/in6.h` is not included by `netinet/in.h`
and needs to be included separately. [PR #728]
* Fix a potential memory leak in `ares_init()`. [Issue #724]
* Some platforms don't have the `isascii()` function.
Implement as a macro. [PR #721]
* CMake: Fix Chain building if CMAKE runtime paths not set
* NDots configuration should allow a value of zero. [PR #735]
-------------------------------------------------------------------
Mon Feb 26 13:25:59 UTC 2024 - Adam Majer <adam.majer@suse.de>

View File

@ -1,8 +1,3 @@
pub rsa2048 2016-04-07 [SC]
27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2
uid [ unknown] Daniel Stenberg <daniel@haxx.se>
sub rsa2048 2016-04-07 [E]
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFcGiPEBCAC7sCnaZqWxfXNgBC7P28BSDUs9w4y/PEFsOv9bpgbgZagX1Fnh
@ -29,6 +24,59 @@ mFeJcJ4qLUkvBA0OsvlVnMWmeCmzsXhlQVM4Bv6IWyr7JBWgkK5q2CWVB59V7v7z
nf5kWnMGFhDFPlLsGbxDWLMoZGH+Iy84whMJFgferwCJy1dND/bHXPztfhvFXi8N
NlJUFJa8Xtmugm78C+nwNHcFpVC70HPr3oa8U1ODXMp7L8W/dL3eLYXmRCNd0urH
gYrzDt6V/zf5ymvPk5w4HBocn2oRCJj/FXKhFAUptmpTE3g1yvYULmuFcNGAnPAE
xmAmd6NqsCmbj/qx4ytjt5uxt6Jm6IXV9cry8i6x
=iWGV
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
CPvCxKgoXTCnUWZvlJUx
=YYcS
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -26,15 +26,17 @@
%endif
Name: c-ares%pkg_suffix
Version: 1.27.0
Version: 1.34.4
Release: 0
Summary: Library for asynchronous name resolves
License: MIT
URL: https://c-ares.org/
Source0: https://c-ares.org/download/c-ares-%{version}.tar.gz
Source1: https://c-ares.org/download/c-ares-%{version}.tar.gz.asc
Source0: https://github.com/c-ares/c-ares/releases/download/v%{version}/c-ares-%{version}.tar.gz
Source1: https://github.com/c-ares/c-ares/releases/download/v%{version}/c-ares-%{version}.tar.gz.asc
Source3: c-ares.keyring
Source4: baselibs.conf
Source5: series
Patch1: a531524a3d085fcd9a5e25d5f6cbdb953082c2b9.patch
BuildRequires: c++_compiler
BuildRequires: cmake
# Needed for getservbyport_r function to work properly.
@ -91,7 +93,7 @@ to build packages that depend on c-ares.
%endif
%prep
%autosetup -p1 -n c-ares-%{version}
%autosetup -n c-ares-%{version} -p1
%build
%cmake \

1
series Normal file
View File

@ -0,0 +1 @@
skip-test.patch