[packages/python-pyxmpp2] Rel 15; python3 fixes

arekm arekm at pld-linux.org
Thu May 28 12:31:52 CEST 2026


commit a6bc1a133f96cf23ecc4f521a3b6ec572aa489b2
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu May 28 12:31:28 2026 +0200

    Rel 15; python3 fixes

 is-closed-syntaxwarning.patch | 11 +++++++++++
 python-pyxmpp2.spec           |  6 +++++-
 ssl-context.patch             | 43 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 59 insertions(+), 1 deletion(-)
---
diff --git a/python-pyxmpp2.spec b/python-pyxmpp2.spec
index 213f637..941d86c 100644
--- a/python-pyxmpp2.spec
+++ b/python-pyxmpp2.spec
@@ -10,7 +10,7 @@
 Summary:	XMPP implementation for Python
 Name:		python-%{pypi_name}
 Version:	2.0.1
-Release:	14
+Release:	15
 License:	LGPL v2.1+
 Group:		Libraries/Python
 #Source0:	https://github.com/Jajcus/pyxmpp2/releases/download/2.0.1/pyxmpp2-2.0.1.tar.gz
@@ -19,6 +19,8 @@ Source0:	https://github.com/Jajcus/pyxmpp2/archive/%{version}.tar.gz
 Patch0:		py.patch
 Patch1:		tls.patch
 Patch2:		newer-setuptools.patch
+Patch3:		ssl-context.patch
+Patch4:		is-closed-syntaxwarning.patch
 URL:		https://github.com/Jajcus/pyxmpp2
 BuildRequires:	rpm-pythonprov
 BuildRequires:	rpmbuild(macros) >= 1.714
@@ -73,6 +75,8 @@ Dokumentacja API modułu Pythona %{module}.
 %patch -P 0 -p1
 %patch -P 1 -p1
 %patch -P 2 -p1
+%patch -P 3 -p1
+%patch -P 4 -p1
 
 find . -type f -exec sed -i 's|^#![[:space:]]*/usr/bin/python\(\S*\)|#!/usr/bin/python2\1|' "{}" ";"
 
diff --git a/is-closed-syntaxwarning.patch b/is-closed-syntaxwarning.patch
new file mode 100644
index 0000000..25fbec3
--- /dev/null
+++ b/is-closed-syntaxwarning.patch
@@ -0,0 +1,11 @@
+--- pyxmpp2-2.0.1/pyxmpp2/streambase.py.orig
++++ pyxmpp2-2.0.1/pyxmpp2/streambase.py
+@@ -411,7 +411,7 @@ class StreamBase(StanzaProcessor, XMLStr
+     def _send_stream_error(self, condition):
+         """Same as `send_stream_error`, but expects `lock` acquired.
+         """
+-        if self._output_state is "closed":
++        if self._output_state == "closed":
+             return
+         if self._output_state in (None, "restart"):
+             self._send_stream_start()
diff --git a/ssl-context.patch b/ssl-context.patch
new file mode 100644
index 0000000..1e1b929
--- /dev/null
+++ b/ssl-context.patch
@@ -0,0 +1,43 @@
+--- pyxmpp2-2.0.1/pyxmpp2/transport.py.orig
++++ pyxmpp2-2.0.1/pyxmpp2/transport.py
+@@ -653,14 +653,38 @@
+                 raise ValueError("Not TLS-connected")
+             return get_certificate_from_ssl_socket(self._socket)
+ 
++    # ssl.wrap_socket() was removed in Python 3.12; emulate the legacy
++    # kwargs API via SSLContext (available on Python 2.7.9+ and 3.x).
+     def _initiate_starttls(self, **kwargs):
+         """Initiate starttls handshake over the socket.
+         """
+         if self._tls_state == "connected":
+             raise RuntimeError("Already TLS-connected")
+-        kwargs["do_handshake_on_connect"] = False
+         logger.debug("Wrapping the socket into ssl")
+-        self._socket = ssl.wrap_socket(self._socket, **kwargs)
++        server_side = kwargs.pop("server_side", False)
++        keyfile = kwargs.pop("keyfile", None)
++        certfile = kwargs.pop("certfile", None)
++        cert_reqs = kwargs.pop("cert_reqs", ssl.CERT_NONE)
++        ca_certs = kwargs.pop("ca_certs", None)
++        ssl_version = kwargs.pop("ssl_version", None)
++        kwargs.pop("do_handshake_on_connect", None)
++        # Prefer PROTOCOL_TLS_(CLIENT|SERVER) on Python 3.6+; fall back to
++        # the caller's ssl_version or ssl.PROTOCOL_TLS on Python 2.7.
++        proto = getattr(ssl,
++                "PROTOCOL_TLS_SERVER" if server_side else "PROTOCOL_TLS_CLIENT",
++                None)
++        if proto is None:
++            proto = ssl_version if ssl_version is not None else ssl.PROTOCOL_TLS
++        ctx = ssl.SSLContext(proto)
++        ctx.check_hostname = False
++        ctx.verify_mode = cert_reqs
++        if certfile:
++            ctx.load_cert_chain(certfile, keyfile)
++        if ca_certs:
++            ctx.load_verify_locations(cafile=ca_certs)
++        self._socket = ctx.wrap_socket(self._socket,
++                                       server_side=server_side,
++                                       do_handshake_on_connect=False)
+         self._set_state("tls-handshake")
+         self._continue_tls_handshake()
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/python-pyxmpp2.git/commitdiff/a6bc1a133f96cf23ecc4f521a3b6ec572aa489b2



More information about the pld-cvs-commit mailing list