Package: python3-irc
Version: 8.5.3+dfsg-5
Severity: important

Dear Maintainer,

This package still has ssl.wrap_socket calls, but this was removed in
Python 3.12.  Trixie has 3.13 which means that creating an SSL socket
isn't supported without an extra patch.

This has been fixed upstream, but it looks like bug 783396 isn't going to
get fixed any time soon to bring a newer version to Debian.

Given this, could you consider a patch to move from ssl.wrap_socket to
ssl.SSLContext.wrap_socket.

I have a sample patch available (untested as yet) which would likely
resolve the fact that this package is broken for all SSL connections in
Debian 13 and I will attach this to this bug report shortly.

Thank you in advance for your consideration.

Regards,

Chris Malton

-- System Information:
Debian Release: 13.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.12.90+deb13.1-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-irc depends on:
ii  python3      3.13.5-1
ii  python3-six  1.17.0-1

python3-irc recommends no packages.

python3-irc suggests no packages.
Description: Correct the SSLContext wrapping for newer Python
 .
 Since Python 3.2 ssl.wrap_socket is deprecated and it was removed
 in Python 3.12.  This patch deals with wrapping the socket correctly.
Bug: https://github.com/jaraco/irc/issues/216
Author: Chris Malton <[email protected]>
Last-Update: 2026-06-02


diff --git old/irc/connection.py new/irc/connection.py
index ec312eb..67fde17 100644
--- old/irc/connection.py
+++ new/irc/connection.py
@@ -51,7 +51,7 @@ class Factory(object):
         if localaddress or localport:
             self.bind_address = (localaddress, localport)
         if ssl:
-            self.wrapper = import_module('ssl').wrap_socket
+            self.wrapper = import_module('ssl').SSLContext.wrap_socket
         if ipv6:
             self.family = socket.AF_INET6
 

Reply via email to