-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix issues running on Python 3.12 and 3.13
- Loading branch information
Showing
2 changed files
with
74 additions
and
0 deletions.
There are no files selected for viewing
71 changes: 71 additions & 0 deletions
71
salt/fix-issues-that-break-salt-in-python-3.12-and-3.13-6.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
From d7a6f923ed86be59183161590b60698ea2fd1a21 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?= | ||
<psuarezhernandez@suse.com> | ||
Date: Wed, 22 Jan 2025 13:01:09 +0000 | ||
Subject: [PATCH] Fix issues that break Salt in Python 3.12 and 3.13 | ||
(#698) | ||
|
||
--- | ||
salt/ext/tornado/netutil.py | 22 +++++++++++++--------- | ||
salt/utils/url.py | 5 ++--- | ||
2 files changed, 15 insertions(+), 12 deletions(-) | ||
|
||
diff --git a/salt/ext/tornado/netutil.py b/salt/ext/tornado/netutil.py | ||
index f86b430674..3e7fa130b5 100644 | ||
--- a/salt/ext/tornado/netutil.py | ||
+++ b/salt/ext/tornado/netutil.py | ||
@@ -48,15 +48,19 @@ except ImportError: | ||
if PY3: | ||
xrange = range | ||
|
||
-if hasattr(ssl, 'match_hostname') and hasattr(ssl, 'CertificateError'): # python 3.2+ | ||
- ssl_match_hostname = ssl.match_hostname | ||
- SSLCertificateError = ssl.CertificateError | ||
-elif ssl is None: | ||
- ssl_match_hostname = SSLCertificateError = None # type: ignore | ||
-else: | ||
- import backports.ssl_match_hostname | ||
- ssl_match_hostname = backports.ssl_match_hostname.match_hostname | ||
- SSLCertificateError = backports.ssl_match_hostname.CertificateError # type: ignore | ||
+try: | ||
+ from salt.ext.ssl_match_hostname import CertificateError as SSLCertificateError | ||
+ from salt.ext.ssl_match_hostname import match_hostname as ssl_match_hostname | ||
+except ImportError: | ||
+ if hasattr(ssl, 'match_hostname') and hasattr(ssl, 'CertificateError'): # python 3.2+ | ||
+ ssl_match_hostname = ssl.match_hostname | ||
+ SSLCertificateError = ssl.CertificateError | ||
+ elif ssl is None: | ||
+ ssl_match_hostname = SSLCertificateError = None # type: ignore | ||
+ else: | ||
+ import backports.ssl_match_hostname | ||
+ ssl_match_hostname = backports.ssl_match_hostname.match_hostname | ||
+ SSLCertificateError = backports.ssl_match_hostname.CertificateError # type: ignore | ||
|
||
if hasattr(ssl, 'SSLContext'): | ||
if hasattr(ssl, 'create_default_context'): | ||
diff --git a/salt/utils/url.py b/salt/utils/url.py | ||
index a30610394c..0a10e0e1b6 100644 | ||
--- a/salt/utils/url.py | ||
+++ b/salt/utils/url.py | ||
@@ -5,7 +5,7 @@ URL utils | ||
|
||
import re | ||
import sys | ||
-from urllib.parse import urlparse, urlunparse | ||
+from urllib.parse import urlparse, urlunparse, urlunsplit | ||
|
||
import salt.utils.data | ||
import salt.utils.path | ||
@@ -47,8 +47,7 @@ def create(path, saltenv=None): | ||
path = salt.utils.data.decode(path) | ||
|
||
query = "saltenv={}".format(saltenv) if saltenv else "" | ||
- url = salt.utils.data.decode(urlunparse(("file", "", path, "", query, ""))) | ||
- return "salt://{}".format(url[len("file:///") :]) | ||
+ return f'salt://{salt.utils.data.decode(urlunsplit(("", "", path, query, "")))}' | ||
|
||
|
||
def is_escaped(url): | ||
-- | ||
2.47.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters