34 Commits

Author SHA256 Message Date
f831d0344b Sync changes to SLFO-1.2 branch 2025-08-20 11:45:07 +02:00
2376b7a1ef Accepting request 1299158 from devel:languages:python
- Update to 4.10.0 (actually fixes CVE-2025-48945, bsc#1244691)
  * Remove unused import by @saghul in #240
  * Fixup chunked TXT record test by @saghul in #242
  * Remove overzealous checks by @saghul in #241
  * Fix OpenBSD build by @saghul in #243
  * Make result.type Final by @Dreamsorcerer in #246
  * Idna resource reduction using a length check by @Vizonex in #247
  * Add read & write process_fd functions by @Vizonex in #245
  * build(deps): bump pypa/cibuildwheel from 2.23.3 to 3.0.0
    by @dependabot[bot] in #244
  * Remove context manager support by @saghul in #252
  * Fixup test CI by @saghul in #254
  * Refactor channel destruction logic by @saghul in #253
- use system c-ares instead of bundled version
- add python-pycares.rpmlintrc to ignore false positive of using
  gethostbyname.

OBS-URL: https://build.opensuse.org/request/show/1299158
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=15
2025-08-14 09:36:06 +00:00
00a51cf6cf Accepting request 1286872 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1286872
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=14
2025-07-08 13:28:08 +00:00
da6d591cab Accepting request 1286711 from home:nkrapp:branches:devel:languages:python
- Update to 4.9.0 (fixes CVE-2025-48945, bsc#1244691)
  * Create dependabot configuration by @bdraco in #226
  * build(deps): bump pypa/cibuildwheel from 2.22.0 to 2.23.3
    by @dependabot in #227
  * Pin Python version to 3.13.3 to avoid Windows build error by @saghul in #235
  * Fix shutdown race by @bdraco in #236
  * Add support for windows arm64 by @finnagin in #233
- Update to 4.8.0
  * Cancel previous CI jobs on pull request update by @bdraco in #222
  * Update bundled c-ares to v1.34.5 by @bdraco in #221
  * Add ARES_FLAG_NO_DFLT_SVR and ARES_FLAG_EDNS to API by @bdraco in #224
- Update to 4.7.0
  * Update c-ares to 1.29.0 to add reinit support to Channel by @bdraco in #219
  * Add event thread support by @bdraco in #220

OBS-URL: https://build.opensuse.org/request/show/1286711
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=30
2025-06-19 09:06:24 +00:00
c716898cc4 Accepting request 1273211 from devel:languages:python
- update to 4.6.1:
  * Fix missing attribute type information for errno

OBS-URL: https://build.opensuse.org/request/show/1273211
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=13
2025-04-30 17:02:26 +00:00
fac8a0c0a8 - update to 4.6.1:
* Fix missing attribute type information for errno

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=28
2025-04-28 16:43:15 +00:00
51012ae7ec Accepting request 1268555 from devel:languages:python
- Clean up the SPEC file.
- Update to 4.6.0
  * Swap out is_all_ascii for built-in str.isascii by @bdraco in (#209)
  * Fixup tests by @saghul in (#214)
  * Add initial type annotations by @Dreamsorcerer in (#212)
  * Fix module has no attribute type errors by @Dreamsorcerer in (#211)

OBS-URL: https://build.opensuse.org/request/show/1268555
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=12
2025-04-14 10:55:20 +00:00
6ffee7b7f1 - Clean up the SPEC file.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=26
2025-04-11 07:20:00 +00:00
3b61f4b1ef - Update to 4.6.0
* Swap out is_all_ascii for built-in str.isascii by @bdraco in (#209)
  * Fixup tests by @saghul in (#214)
  * Add initial type annotations by @Dreamsorcerer in (#212)
  * Fix module has no attribute type errors by @Dreamsorcerer in (#211)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=25
2025-04-11 07:14:12 +00:00
7157baa70b Accepting request 1236862 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1236862
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=11
2025-01-12 10:08:49 +00:00
10dce554a1 - Update to 4.5.0
* Test data updates to fix test failures
  * Update test_idna_encoding_query_a with
    new errno to align to new c-ares version
  * Do not define HAVE_GETSERVBYPORT_R for
    platforms Android, Cygwin, Darwin
  * Drop distutils
  * build(deps): bump actions/download-artifact
    from 3 to 4.1.7 in /.github/workflows
  * Add 3.13 support, remove 3.8
  * chore(ci): fix upload & add more platforms to cibuildwheel
  * Test building release wheels on PRs
  * Fix building sdist
  * Fixup CI

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=23
2025-01-10 13:00:45 +00:00
c10cd4e1ad Accepting request 1132432 from devel:languages:python
- update to 4.4.0:
  * Add support for 3.12, drop EOL 3.7

- Update to version 4.3.0
- Update to version 4.2.2
- initial commit

OBS-URL: https://build.opensuse.org/request/show/1132432
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=10
2023-12-11 20:49:46 +00:00
5802de0ab2 - update to 4.4.0:
* Add support for 3.12, drop EOL 3.7
- Update to version 4.3.0
- Update to version 4.2.2
- initial commit

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=21
2023-12-11 08:25:03 +00:00
6549b19a8f Accepting request 1081811 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1081811
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=9
2023-04-22 19:59:22 +00:00
c3e6e6478e Accepting request 1081547 from home:dirkmueller:acdc:as_python3_module
SR for python stack proposal

OBS-URL: https://build.opensuse.org/request/show/1081547
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=19
2023-04-21 14:09:09 +00:00
8a2e1dabe4 Accepting request 1042871 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1042871
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=8
2022-12-15 18:24:04 +00:00
a5e4ac8104 Accepting request 1042739 from home:yarunachalam:branches:devel:languages:python
- Update to version 4.3.0 
  * Bump cibuildwheel to build for Python 3.11 + CI total time speedups by @Jackenmen in #174
   Fix tests that depended on external sites by @Jackenmen in #180
   Complete the Python 3.11 support by @Jackenmen in #179
   Drop CPython 3.6 by @saghul in #181
   Improve test compatibility with pytest by @saghul in #182
   Update c-ares submodule to 1.18.1 by @saghul in #183

OBS-URL: https://build.opensuse.org/request/show/1042739
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=17
2022-12-14 10:07:46 +00:00
41689fd103 Accepting request 1041743 from devel:languages:python
- Add cleanup_tests.patch to make the test suite slightly more sane.
- No, the test suite is just broken, and the upstream doesn't care.

OBS-URL: https://build.opensuse.org/request/show/1041743
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=7
2022-12-10 20:17:25 +00:00
49eb1deb6b Fix changelog
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=15
2022-12-08 23:22:06 +00:00
e054b25ea4 - Add cleanup_tests.patch to make the test suite slightly more sane.
- No, the test suite is just broken, and the upstream doesn't care.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=14
2022-12-08 22:32:59 +00:00
ce90170fe9 Accepting request 1008176 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1008176
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=6
2022-10-10 16:44:14 +00:00
0f42f10bb6 Accepting request 1008054 from home:yarunachalam:branches:devel:languages:python
- Update to version 4.2.2 
  no changelog

OBS-URL: https://build.opensuse.org/request/show/1008054
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=12
2022-10-05 10:28:24 +00:00
790f75493b Accepting request 988453 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/988453
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=5
2022-07-13 12:31:43 +00:00
9fc50395f6 Accepting request 988405 from home:apersaud:branches:devel:languages:python
update to latest version

OBS-URL: https://build.opensuse.org/request/show/988405
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=10
2022-07-11 16:41:19 +00:00
aeb0cef9e0 Accepting request 903428 from devel:languages:python
- update to 4.0.0
  * core: add support for CAA queries
  * core: add support for getaddrinfo()
  * core: add ability to use the system installed c-ares
  * test: remove TTL tests
  * core: update c-ares and use a submodule
  * core: drop bundled c-ares version
  * misc: drop tasks.py

OBS-URL: https://build.opensuse.org/request/show/903428
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=4
2021-07-10 20:53:53 +00:00
282f45c2c8 Fix URL (http -> https)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=9
2021-07-01 13:11:42 +00:00
f318795254 Accepting request 903337 from system:homeautomation:home-assistant
- update to 4.0.0
  * core: add support for CAA queries
  * core: add support for getaddrinfo()
  * core: add ability to use the system installed c-ares
  * test: remove TTL tests
  * core: update c-ares and use a submodule
  * core: drop bundled c-ares version
  * misc: drop tasks.py

OBS-URL: https://build.opensuse.org/request/show/903337
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=8
2021-07-01 12:24:51 +00:00
e12b961cee Accepting request 786484 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/786484
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=3
2020-03-26 23:27:41 +00:00
Tomáš Chvátal
7b647f3075 Accepting request 786482 from home:mcalabkova:branches:devel:languages:python
- Update to 3.1.1
  * misc: add Python 3.8 classifier
  * ci: run tests in Python 3.8 too
  * test: remove no longer valid test
  * test: remove empty test
  * errno: return str from errno.strerror
  * core: fix crash when processing .onion queries
  * core: fix support for ARES_OPT_LOOKUPS option
  * misc: simplify non-ascii txt test example
  * core: fix long TXT record with non-ascii bytes

OBS-URL: https://build.opensuse.org/request/show/786482
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=6
2020-03-19 13:37:57 +00:00
9259587d1b Accepting request 687344 from devel:languages:python
- update to 3.0.0
 * first stable version in 3.0 series

OBS-URL: https://build.opensuse.org/request/show/687344
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=2
2019-03-22 14:09:53 +00:00
49e0d049d5 disable p2
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=4
2019-03-21 14:03:08 +00:00
a53bce92de - update to 3.0.0
* first stable version in 3.0 series

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=3
2019-03-21 14:01:45 +00:00
4ac96069e3 Accepting request 680394 from devel:languages:python
Python c-ares .. dependency of aiodns

OBS-URL: https://build.opensuse.org/request/show/680394
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycares?expand=0&rev=1
2019-03-01 15:49:11 +00:00
d68ed2e264 - initial commit
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycares?expand=0&rev=1
2019-03-01 08:54:22 +00:00
9 changed files with 285 additions and 38 deletions

277
CVE-2025-48945.patch Normal file
View File

@@ -0,0 +1,277 @@
From c3c931f5608da23a196b216edfcc2af5b626fc9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= <s@saghul.net>
Date: Mon, 4 Aug 2025 10:27:07 +0200
Subject: [PATCH] Refactor channel destruction logic
- Use ares_queue_wait_empty to wait for queries to be complete before
destruction
- Make sure NO queries are cancelled as side effects on __del__
- Start the destruction thread early, as soon as a channel is created
Cancelling pending queries while in a query callback seemingly causes
heap corruption or double-free bugs, so delay the operation until no
Python code if using the channel anymore, that is, the destructor
thread.
Fixes: https://github.com/aio-libs/aiodns/issues/175
Fixes: https://github.com/saghul/pycares/issues/248
---
docs/channel.rst | 13 ------
src/_cffi_src/build_cares.py | 78 +++++++++++++++++++++++-------------
src/pycares/__init__.py | 61 ++++++++++++----------------
3 files changed, 76 insertions(+), 76 deletions(-)
Index: pycares-4.9.0/docs/channel.rst
===================================================================
--- pycares-4.9.0.orig/docs/channel.rst
+++ pycares-4.9.0/docs/channel.rst
@@ -77,25 +77,6 @@
While channels will attempt automatic cleanup during garbage collection, explicit
closing is safer as it gives you control over when resources are released.
- .. warning::
- The channel destruction mechanism has a limited throughput of 60 channels per minute
- (one channel per second) to ensure thread safety and prevent use-after-free errors
- in c-ares. This means:
-
- - Avoid creating transient channels for individual queries
- - Reuse channel instances whenever possible
- - For applications with high query volume, use a single long-lived channel
- - If you must create multiple channels, consider pooling them
-
- Creating and destroying channels rapidly will result in a backlog as the destruction
- queue processes channels sequentially with a 1-second delay between each.
-
- The Channel class supports the context manager protocol for automatic cleanup::
-
- with pycares.Channel() as channel:
- channel.query('example.com', pycares.QUERY_TYPE_A, callback)
- # Channel is automatically closed when exiting the context
-
.. py:method:: getaddrinfo(host, port, callback, family=0, type=0, proto=0, flags=0)
:param string host: Hostname to resolve.
Index: pycares-4.9.0/src/_cffi_src/build_cares.py
===================================================================
--- pycares-4.9.0.orig/src/_cffi_src/build_cares.py
+++ pycares-4.9.0/src/_cffi_src/build_cares.py
@@ -90,34 +90,6 @@ struct sockaddr_in6 {
typedef int... ares_socket_t;
typedef int... ares_socklen_t;
-#define ARES_SUCCESS ...
-
-#define ARES_ENODATA ...
-#define ARES_EFORMERR ...
-#define ARES_ESERVFAIL ...
-#define ARES_ENOTFOUND ...
-#define ARES_ENOTIMP ...
-#define ARES_EREFUSED ...
-#define ARES_EBADQUERY ...
-#define ARES_EBADNAME ...
-#define ARES_EBADFAMILY ...
-#define ARES_EBADRESP ...
-#define ARES_ECONNREFUSED ...
-#define ARES_ETIMEOUT ...
-#define ARES_EOF ...
-#define ARES_EFILE ...
-#define ARES_ENOMEM ...
-#define ARES_EDESTRUCTION ...
-#define ARES_EBADSTR ...
-#define ARES_EBADFLAGS ...
-#define ARES_ENONAME ...
-#define ARES_EBADHINTS ...
-#define ARES_ENOTINITIALIZED ...
-#define ARES_ELOADIPHLPAPI ...
-#define ARES_EADDRGETNETWORKPARAMS ...
-#define ARES_ECANCELLED ...
-#define ARES_ESERVICE ...
-
#define ARES_FLAG_USEVC ...
#define ARES_FLAG_PRIMARY ...
#define ARES_FLAG_IGNTC ...
@@ -229,6 +201,54 @@ struct ares_server_failover_options {
size_t retry_delay;
};
+typedef enum {
+ ARES_SUCCESS = 0,
+
+ /* Server error codes (ARES_ENODATA indicates no relevant answer) */
+ ARES_ENODATA = 1,
+ ARES_EFORMERR = 2,
+ ARES_ESERVFAIL = 3,
+ ARES_ENOTFOUND = 4,
+ ARES_ENOTIMP = 5,
+ ARES_EREFUSED = 6,
+
+ /* Locally generated error codes */
+ ARES_EBADQUERY = 7,
+ ARES_EBADNAME = 8,
+ ARES_EBADFAMILY = 9,
+ ARES_EBADRESP = 10,
+ ARES_ECONNREFUSED = 11,
+ ARES_ETIMEOUT = 12,
+ ARES_EOF = 13,
+ ARES_EFILE = 14,
+ ARES_ENOMEM = 15,
+ ARES_EDESTRUCTION = 16,
+ ARES_EBADSTR = 17,
+
+ /* ares_getnameinfo error codes */
+ ARES_EBADFLAGS = 18,
+
+ /* ares_getaddrinfo error codes */
+ ARES_ENONAME = 19,
+ ARES_EBADHINTS = 20,
+
+ /* Uninitialized library error code */
+ ARES_ENOTINITIALIZED = 21, /* introduced in 1.7.0 */
+
+ /* ares_library_init error codes */
+ ARES_ELOADIPHLPAPI = 22, /* introduced in 1.7.0 */
+ ARES_EADDRGETNETWORKPARAMS = 23, /* introduced in 1.7.0 */
+
+ /* More error codes */
+ ARES_ECANCELLED = 24, /* introduced in 1.7.0 */
+
+ /* More ares_getaddrinfo error codes */
+ ARES_ESERVICE = 25, /* ares_getaddrinfo() was passed a text service name that
+ * is not recognized. introduced in 1.16.0 */
+
+ ARES_ENOSERVER = 26 /* No DNS servers were configured */
+} ares_status_t;
+
/*! Values for ARES_OPT_EVENT_THREAD */
typedef enum {
/*! Default (best choice) event system */
@@ -597,6 +617,8 @@ const char *ares_inet_ntop(int af, const
int ares_inet_pton(int af, const char *src, void *dst);
ares_bool_t ares_threadsafety(void);
+
+ares_status_t ares_queue_wait_empty(ares_channel channel, int timeout_ms);
"""
CALLBACKS = """
Index: pycares-4.9.0/src/pycares/__init__.py
===================================================================
--- pycares-4.9.0.orig/src/pycares/__init__.py
+++ pycares-4.9.0/src/pycares/__init__.py
@@ -12,10 +12,8 @@ from ._version import __version__
import socket
import math
import threading
-import time
import weakref
from collections.abc import Callable, Iterable
-from contextlib import suppress
from typing import Any, Callable, Optional, Dict, Union
from queue import SimpleQueue
@@ -344,7 +342,7 @@ class _ChannelShutdownManager:
def __init__(self) -> None:
self._queue: SimpleQueue = SimpleQueue()
self._thread: Optional[threading.Thread] = None
- self._thread_started = False
+ self._start_lock = threading.Lock()
def _run_safe_shutdown_loop(self) -> None:
"""Process channel destruction requests from the queue."""
@@ -352,16 +350,27 @@ class _ChannelShutdownManager:
# Block forever until we get a channel to destroy
channel = self._queue.get()
- # Sleep for 1 second to ensure c-ares has finished processing
- # Its important that c-ares is past this critcial section
- # so we use a delay to ensure it has time to finish processing
- # https://github.com/c-ares/c-ares/blob/4f42928848e8b73d322b15ecbe3e8d753bf8734e/src/lib/ares_process.c#L1422
- time.sleep(1.0)
+ # Cancel all pending queries - this will trigger callbacks with ARES_ECANCELLED
+ _lib.ares_cancel(channel[0])
+
+ # Wait for all queries to finish
+ _lib.ares_queue_wait_empty(channel[0], -1)
# Destroy the channel
if _lib is not None and channel is not None:
_lib.ares_destroy(channel[0])
+ def start(self) -> None:
+ """Start the background thread if not already started."""
+ if self._thread is not None:
+ return
+ with self._start_lock:
+ if self._thread is not None:
+ # Started by another thread while waiting for the lock
+ return
+ self._thread = threading.Thread(target=self._run_safe_shutdown_loop, daemon=True)
+ self._thread.start()
+
def destroy_channel(self, channel) -> None:
"""
Schedule channel destruction on the background thread with a safety delay.
@@ -369,17 +378,10 @@ class _ChannelShutdownManager:
Thread Safety and Synchronization:
This method uses SimpleQueue which is thread-safe for putting items
from multiple threads. The background thread processes channels
- sequentially with a 1-second delay before each destruction.
+ sequentially waiting for queries to end before each destruction.
"""
- # Put the channel in the queue
self._queue.put(channel)
- # Start the background thread if not already started
- if not self._thread_started:
- self._thread_started = True
- self._thread = threading.Thread(target=self._run_safe_shutdown_loop, daemon=True)
- self._thread.start()
-
# Global shutdown manager instance
_shutdown_manager = _ChannelShutdownManager()
@@ -516,11 +518,12 @@ class Channel:
self.close()
return False
+ # Ensure the shutdown thread is started
+ _shutdown_manager.start()
+
def __del__(self) -> None:
"""Ensure the channel is destroyed when the object is deleted."""
- if self._channel is not None:
- # Schedule channel destruction using the global shutdown manager
- self._schedule_destruction()
+ self.close()
def _create_callback_handle(self, callback_data):
"""
@@ -764,24 +767,12 @@ class Channel:
# Already destroyed
return
- # Cancel all pending queries - this will trigger callbacks with ARES_ECANCELLED
- self.cancel()
+ # NB: don't cancel queries here, it may lead to problem if done from a
+ # query callback.
# Schedule channel destruction
- self._schedule_destruction()
-
- def _schedule_destruction(self) -> None:
- """Schedule channel destruction using the global shutdown manager."""
- if self._channel is None:
- return
- channel = self._channel
- self._channel = None
- # Can't start threads during interpreter shutdown
- # The channel will be cleaned up by the OS
- # TODO: Change to PythonFinalizationError when Python 3.12 support is dropped
- with suppress(RuntimeError):
- _shutdown_manager.destroy_channel(channel)
-
+ channel, self._channel = self._channel, None
+ _shutdown_manager.destroy_channel(channel)
class AresResult:

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9df70dce6e05afa5d477f48959170e569485e20dad1a089c4cf3b2d7ffbd8bf9
size 654318

BIN
pycares-4.4.0.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:025b6c2ffea4e9fb8f9a097381c2fecb24aff23fbd6906e70da22ec9ba60e19d
size 821554

BIN
pycares-4.6.0.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
pycares-4.6.1.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,22 +1,7 @@
-------------------------------------------------------------------
Fri Aug 8 12:39:36 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
Fri Aug 8 13:15:12 UTC 2025 - Nico Krapp <nico.krapp@suse.com>
- Update to 4.10.0 (actually fixes CVE-2025-48945, bsc#1244691)
* Remove unused import by @saghul in #240
* Fixup chunked TXT record test by @saghul in #242
* Remove overzealous checks by @saghul in #241
* Fix OpenBSD build by @saghul in #243
* Make result.type Final by @Dreamsorcerer in #246
* Idna resource reduction using a length check by @Vizonex in #247
* Add read & write process_fd functions by @Vizonex in #245
* build(deps): bump pypa/cibuildwheel from 2.23.3 to 3.0.0
by @dependabot[bot] in #244
* Remove context manager support by @saghul in #252
* Fixup test CI by @saghul in #254
* Refactor channel destruction logic by @saghul in #253
- use system c-ares instead of bundled version
- add python-pycares.rpmlintrc to ignore false positive of using
gethostbyname.
- Add CVE-2025-48945.patch to actually fix CVE-2025-48945 (bsc#1244691)
-------------------------------------------------------------------
Wed Jun 18 12:58:39 UTC 2025 - Nico Krapp <nico.krapp@suse.com>

View File

@@ -1 +0,0 @@
addFilter("binary-or-shlib-calls-gethostbyname")

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-pycares
#
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,19 @@
%{?sle15_python_module_pythons}
Name: python-pycares
Version: 4.10.0
Version: 4.9.0
Release: 0
Summary: Python interface for c-ares
License: MIT
Group: Development/Languages/Python
URL: https://github.com/saghul/pycares
Source0: https://files.pythonhosted.org/packages/source/p/pycares/pycares-%{version}.tar.gz
Source99: python-pycares.rpmlintrc
Source: https://files.pythonhosted.org/packages/source/p/pycares/pycares-%{version}.tar.gz
# PATCH-FIX-UPSTREAM cleanup_tests.patch bsc#[0-9]+ mcepl@suse.com
# Make the test suite slightly more normal
Patch0: cleanup_tests.patch
# PATCH-FIX-UPSTREAM CVE-2025-48945.patch actually fixes CVE-2025-48945
# taken from https://github.com/saghul/pycares/commit/c3c931f5608da23a196b216edfcc2af5b626fc9a
Patch1: CVE-2025-48945.patch
BuildRequires: %{python_module cffi}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
@@ -51,7 +53,6 @@ resolutions asynchronously
%autosetup -p1 -n pycares-%{version}
%build
export PYCARES_USE_SYSTEM_LIB=1
%pyproject_wheel
%install