[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