Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pycurl for openSUSE:Factory 
checked in at 2023-01-04 17:50:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pycurl (Old)
 and      /work/SRC/openSUSE:Factory/.python-pycurl.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pycurl"

Wed Jan  4 17:50:45 2023 rev:40 rq:1046272 version:7.45.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pycurl/python-pycurl.changes      
2022-04-30 00:44:35.450902126 +0200
+++ /work/SRC/openSUSE:Factory/.python-pycurl.new.1563/python-pycurl.changes    
2023-01-04 17:50:54.733583771 +0100
@@ -1,0 +2,11 @@
+Mon Jan  2 18:51:53 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 7.45.2:
+  * Python 3.9 compatibility for Py_TRASHCAN_SAFE_BEGIN
+  * Add support for CURL_HTTP_VERSION_3
+  * Add CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS options
+  * Added HTTP09_ALLOWED option
+  * Removed use of distutils
+- drop curl-789-error-message.patch (upstream)
+
+-------------------------------------------------------------------

Old:
----
  curl-789-error-message.patch
  pycurl-7.45.1.tar.gz

New:
----
  pycurl-7.45.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pycurl.spec ++++++
--- /var/tmp/diff_new_pack.o3XxO7/_old  2023-01-04 17:50:55.425587850 +0100
+++ /var/tmp/diff_new_pack.o3XxO7/_new  2023-01-04 17:50:55.429587874 +0100
@@ -1,7 +1,7 @@
 #
 # spec file
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -27,7 +27,7 @@
 %bcond_with test
 %endif
 Name:           python-pycurl%{psuffix}
-Version:        7.45.1
+Version:        7.45.2
 Release:        0
 Summary:        PycURL -- cURL library module
 License:        LGPL-2.1-or-later AND MIT
@@ -41,8 +41,6 @@
 # PATCH-FIX-OPENSUSE make-leap15-compat.patch mc...@suse.com
 # Make tests passing with Leap 15.2
 Patch3:         make-leap15-compat.patch
-# PATCH-FIX-OPENSUSE Handle missing ! in a returned error message
-Patch4:         curl-789-error-message.patch
 BuildRequires:  %{python_module devel}
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes

++++++ pycurl-7.45.1.tar.gz -> pycurl-7.45.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/AUTHORS new/pycurl-7.45.2/AUTHORS
--- old/pycurl-7.45.1/AUTHORS   2022-03-10 00:15:49.000000000 +0100
+++ new/pycurl-7.45.2/AUTHORS   2022-12-16 20:25:22.000000000 +0100
@@ -9,43 +9,60 @@
 Aaron Hill <visine19 at hotmail.com>
 Adam Guthrie <therigu at users.sourceforge.net>
 Adam Jacob Muller <adam at isprime.com>
+Akiomi Kamakura <akiomik at gmail.com>
+Alexandre Pion <pion at afnic.fr>
+Amir Rossert <amir.rossert at safebreach.com>
 Amit Mongia <amit_mongia at hotmail.com>
 Andjelko Horvat <comel at vingd.com>
 Arshad Khan <khan.m.arshad at gmail.com>
+Artur Sobierak <asobierak at gmail.com>
+Ashley Whetter <ashleyw at activestate.com>
 Barry Warsaw <barry at python.org>
 Bastian Kleineidam
 Benjamin Peterson <benjamin at python.org>
+Bill Collins <bill.collins at hp.com>
+Bo Anderson <mail at boanderson.me>
 Casey Miller <camiller at linkedin.com>
+Chih-Hsuan Yen <yan12125 at gmail.com>
+Christian Clauss <cclauss at me.com>
 Christopher Warner <cwarner at kernelcode.com>
 Clint Clayton <clintclayton at me.com>
 Conrad Steenberg <conrad at hep.caltech.edu>
 Daniel Pena Arteaga <dpena at ph.tum.de>
 Daniel Stenberg <daniel at haxx.se>
 decitre <decitre at gmail.com>
+Dima Tisnek <dimaqq at gmail.com>
 Dmitriy Taychenachev <dmitriy.taychenachev at skypicker.com>
 Dmitry Ketov <dketov at gmail.com>
 Domenico Andreoli <cavok at libero.it>
 Dominique <curl-and-python at d242.net>
+Eneas U de Queiroz <cotequeiroz at gmail.com>
 Eric S. Raymond <esr at thyrsus.com>
+Felix Yan <felixonmars at archlinux.org>
 Francisco Alves <chico at corp.globo.com>
 Gabi Davar <grizzly.nyo at gmail.com>
 Gisle Vanem <gvanem at yahoo.no>
 Gregory Petukhov <lorien at lorien.name>
+Hasan <aliyevH at hotmail.com>
 Hugo <hugovk at users.noreply.github.com>
 Iain R. Learmonth <irl at fsfe.org>
 ideal <idealities at gmail.com>
 Jakob Truelsen <jakob at scalgo.com>
 Jakub Wilk <jwilk at jwilk.net>
+James Deucker <bitwisecook at users.noreply.github.com>
 Jan Kryl <jan.kryl at nexenta.com>
 Jayne <corvine at gmail.com>
 James Deucker <bitwisecook at users.noreply.github.com>
 JiCiT <jason at infinitebubble.com>
 Jim Patterson
+Josef Schlehofer <pepe.schlehofer at gmail.com>
 Jozef Melicher <jozef.melicher at eset.sk>
 K.S.Sreeram <sreeram at tachyontech.net>
 Kamil Dudka <kdudka at redhat.com>
 Kevin Ko <kevin.s.ko at gmail.com>
+Kevin Schlosser <drschlosser at hotmail.com>
 Khavish Anshudass Bhundoo <khavishbhundoo at users.noreply.github.com>
+Kian-Meng Ang <kianmeng at cpan.org>
 kxrd <onyeabor at riseup.net>
 Lipin Dmitriy <blackwithwhite666 at gmail.com>
 Léo El Amri <leo at superlel.me>
@@ -56,25 +73,41 @@
 Markus <nepenthesdev at gmail.com>
 Martin Muenstermann <mamuema at sourceforge.net>
 Matt King <matt at gnik.com>
+Michael Coughlin <michael.w.coughlin at gmail.com>
+Michael Treanor <26148512+skeptycal at users.noreply.github.com>
+Michał Górny <mgorny at gentoo.org>
 Nelson Chen <crazysim at gmail.com>
 Nick Pilon <npilon at oreilly.com>
+Nicolas Pauss <nicolas.pauss at intersec.com>
 Oren <orenyomtov at users.noreply.github.com>
 Orion Poplawski <orion at cora.nwra.com>
 Oskari Saarenmaa <os at ohmu.fi>
 Paul Pacheco
+Pierre Grimaud <grimaud.pierre at gmail.com>
+René Dudfield <renesd at gmail.com>
+resokou <resokou at gmail.com>
 Roland Sommer <rol at ndsommer.de>
 Romuald Brunet <romuald at gandi.net>
 Romulo A. Ceccon <romuloceccon at gmail.com>
+Russell McConnachie <okanaganrusty at mcconnachie.ca>
+Russell McConnachie <pmcconna at cisco.com>
 Samuel Dion-Girardeau <samuel.diongirardeau at gmail.com>
+Samuel Henrique <samueloph at debian.org>
+Scott Talbert <swt at techie.net>
+Simon Legner <Simon.Legner at gmail.com>
 Srinivas <spg349 at nyu.edu>
+Steve Kowalik <steven at wedontsleep.org>
+Subin <eourm20 at gmail.com>
 Tal Einat <tal.einat at socialcodeinc.com>
 Thomas Hunger <teh at camvine.org>
 Tino Lange <Tino.Lange at gmx.de>
 toddrme2178 <toddrme2178 at gmail.com>
 Tom Pierce <tom.pierce0 at gmail.com>
 Victor Lascurain <bittor at eleka.net>
+Vincent Philippon <Vincent.Philippon at ubisoft.com>
 Vitaly Murashev <vitaly.murashev at gmail.com>
 Vitezslav Cizek <vcizek at suse.com>
+vmurashev <vitaly.murashev at gmail.com>
 Wei C <gitsouler at users.noreply.github.com>
 Whitney Sorenson <wsorenson at gmail.com>
 Wim Lewis <wiml at users.sourceforge.net>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/ChangeLog new/pycurl-7.45.2/ChangeLog
--- old/pycurl-7.45.1/ChangeLog 2022-03-13 08:12:05.000000000 +0100
+++ new/pycurl-7.45.2/ChangeLog 2022-12-16 20:31:12.000000000 +0100
@@ -1,8 +1,21 @@
+Version 7.45.2 [requires libcurl-7.19.0 or better] - 2022-12-16
+---------------------------------------------------------------
+
+        * Python 3.9 compatibility for Py_TRASHCAN_SAFE_BEGIN
+          (patch by Scott Talbert).
+        * Add support for CURL_HTTP_VERSION_3 (patch by Scott Talbert).
+        * Add CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS options
+          (patch by Scott Talbert).
+        * Added HTTP09_ALLOWED option (patch by Scott Talbert).
+        * Removed use of distutils (patch by Scott Talbert).
+
+
 Version 7.45.1 [requires libcurl-7.19.0 or better] - 2022-03-13
 ---------------------------------------------------------------
 
         * Fixed build against libcurl < 7.64.1 (patch by Scott Talbert).
 
+
 Version 7.45.0 [requires libcurl-7.64.1 or better] - 2022-03-09
 ---------------------------------------------------------------
 
@@ -21,12 +34,14 @@
         * Add support for SecureTransport SSL backend (MacOS)
           (patch by Scott Talbert).
 
+
 Version 7.44.1 [requires libcurl-7.19.0 or better] - 2021-08-15
 ---------------------------------------------------------------
 
         * Fixed Python thread initialization causing hangs on operations
           (patch by Scott Talbert).
 
+
 Version 7.44.0 [requires libcurl-7.19.0 or better] - 2021-08-08
 ---------------------------------------------------------------
 
@@ -47,6 +62,7 @@
         
         * Compilation fixed against Python 3.10 alpha (patch by Kamil Dudka).
 
+
 Version 7.43.0.6 [requires libcurl-7.19.0 or better] - 2020-09-02
 -----------------------------------------------------------------
 
@@ -77,6 +93,7 @@
         * surrogateescape error handler is used in multi_info_read to handle
           invalid UTF-8.
 
+
 Version 7.43.0.5 [requires libcurl-7.19.0 or better] - 2020-01-29
 -----------------------------------------------------------------
 
@@ -547,7 +564,7 @@
         * Added CURLE_NOT_BUILT_IN and CURLE_UNKNOWN_OPTION (libcurl 7.21.5+).
 
         * Added CURL_SEEKFUNC_OK, CURL_SEEKFUNC_FAIL and
-          CURL_SEEKFUNC_CANTSEEK. All contstants require libcurl 7.19.5+;
+          CURL_SEEKFUNC_CANTSEEK. All constants require libcurl 7.19.5+;
           numeric values of CURL_SEEKFUNC_OK and CURL_SEEKFUNC_FAIL were
           understood earlier but constants only exist as of libcurl 7.19.5.
 
@@ -1420,7 +1437,7 @@
 2002-07-16  Markus F.X.J. Oberhumer <mfx>
 
         * Under Python 2.2 or better, Curl and CurlMulti objects now
-        automatically participate in cyclic garbarge collection
+        automatically participate in cyclic garbage collection
         (using the gc module).
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/Makefile new/pycurl-7.45.2/Makefile
--- old/pycurl-7.45.1/Makefile  2021-08-09 03:47:03.000000000 +0200
+++ new/pycurl-7.45.2/Makefile  2022-12-16 20:41:00.000000000 +0100
@@ -9,6 +9,9 @@
 PYTEST = pytest
 PYFLAKES = pyflakes
 
+PYTHONMAJOR=$$($(PYTHON) -V 2>&1 |awk '{print $$2}' |awk -F. '{print $$1}')
+PYTHONMINOR=$$($(PYTHON) -V 2>&1 |awk '{print $$2}' |awk -F. '{print $$2}')
+
 # -c on linux
 # freebsd does not understand -c
 CHMOD_VERBOSE=-v
@@ -111,8 +114,7 @@
 # rails-style alias
 c: console
 console:
-       PYTHONSUFFIX=$$(python -V 2>&1 |awk '{print $$2}' |awk -F. '{print $$1 
"." $$2}') && \
-       PYTHONPATH=$$(ls -d build/lib.*$$PYTHONSUFFIX):$$PYTHONPATH \
+       PYTHONPATH=$$(ls -d 
build/lib.*$$PYTHONMAJOR*$$PYTHONMINOR):$$PYTHONPATH \
        $(PYTHON)
 
 # (needs GNU binutils)
@@ -145,8 +147,7 @@
 docs: build
        mkdir -p build/docstrings
        for file in doc/docstrings/*.rst; do tail -n +3 $$file 
>build/docstrings/`basename $$file`; done
-       PYTHONSUFFIX=$$($(PYTHON) -V 2>&1 |awk '{print $$2}' |awk -F. '{print 
$$1 "." $$2}') && \
-       PYTHONPATH=$$(ls -d build/lib.*$$PYTHONSUFFIX):$$PYTHONPATH \
+       PYTHONPATH=$$(ls -d 
build/lib.*$$PYTHONMAJOR*$$PYTHONMINOR):$$PYTHONPATH \
        $(PYTHON) -m sphinx doc build/doc
        cp ChangeLog build/doc
 
@@ -157,8 +158,7 @@
        # sphinx-docs has an -a option but it does not seem to always
        # rebuild everything
        rm -rf build/doc
-       PYTHONSUFFIX=$$($(PYTHON) -V 2>&1 |awk '{print $$2}' |awk -F. '{print 
$$1 "." $$2}') && \
-       PYTHONPATH=$$(ls -d build/lib.*$$PYTHONSUFFIX):$$PYTHONPATH \
+       PYTHONPATH=$$(ls -d 
build/lib.*$$PYTHONMAJOR*$$PYTHONMINOR):$$PYTHONPATH \
        $(PYTHON) -m sphinx doc build/doc
        cp ChangeLog build/doc
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/PKG-INFO new/pycurl-7.45.2/PKG-INFO
--- old/pycurl-7.45.1/PKG-INFO  2022-03-13 08:13:38.993937500 +0100
+++ new/pycurl-7.45.2/PKG-INFO  2022-12-16 20:42:08.906181000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pycurl
-Version: 7.45.1
+Version: 7.45.2
 Summary: PycURL -- A Python Interface To The cURL library
 Home-page: http://pycurl.io/
 Author: Kjetil Jacobsen, Markus F.X.J. Oberhumer, Oleg Pudeyev
@@ -110,5 +110,3 @@
 .. _urllib: http://docs.python.org/library/urllib.html
 .. _COPYING-LGPL: 
https://raw.githubusercontent.com/pycurl/pycurl/master/COPYING-LGPL
 .. _COPYING-MIT: 
https://raw.githubusercontent.com/pycurl/pycurl/master/COPYING-MIT
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/RELEASE-NOTES.rst 
new/pycurl-7.45.2/RELEASE-NOTES.rst
--- old/pycurl-7.45.1/RELEASE-NOTES.rst 2022-03-13 08:13:13.000000000 +0100
+++ new/pycurl-7.45.2/RELEASE-NOTES.rst 2022-12-16 20:32:49.000000000 +0100
@@ -1,6 +1,12 @@
 Release Notes
 =============
 
+PycURL 7.45.2 - 2022-12-16
+--------------------------
+
+This release fixes several minor issues and adds support for several libcurl
+options.
+
 PycURL 7.45.1 - 2022-03-13
 --------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/doc/conf.py 
new/pycurl-7.45.2/doc/conf.py
--- old/pycurl-7.45.1/doc/conf.py       2022-03-13 08:12:29.000000000 +0100
+++ new/pycurl-7.45.2/doc/conf.py       2022-12-16 20:31:31.000000000 +0100
@@ -54,9 +54,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = '7.45.1'
+version = '7.45.2'
 # The full version, including alpha/beta/rc tags.
-release = '7.45.1'
+release = '7.45.2'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/doc/unimplemented.rst 
new/pycurl-7.45.2/doc/unimplemented.rst
--- old/pycurl-7.45.1/doc/unimplemented.rst     2021-08-09 03:47:03.000000000 
+0200
+++ new/pycurl-7.45.2/doc/unimplemented.rst     2022-12-16 20:17:56.000000000 
+0100
@@ -55,7 +55,7 @@
 --------------------
 
 Some symbols are present in libcurl's `symbols in versions`_ document but
-are not documented by libcurl. These symbols are not impemented by PycURL.
+are not documented by libcurl. These symbols are not implemented by PycURL.
 
 As of this writing, the following symbols are thusly omitted:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/pycurl.egg-info/PKG-INFO 
new/pycurl-7.45.2/pycurl.egg-info/PKG-INFO
--- old/pycurl-7.45.1/pycurl.egg-info/PKG-INFO  2022-03-13 08:13:38.000000000 
+0100
+++ new/pycurl-7.45.2/pycurl.egg-info/PKG-INFO  2022-12-16 20:42:08.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pycurl
-Version: 7.45.1
+Version: 7.45.2
 Summary: PycURL -- A Python Interface To The cURL library
 Home-page: http://pycurl.io/
 Author: Kjetil Jacobsen, Markus F.X.J. Oberhumer, Oleg Pudeyev
@@ -110,5 +110,3 @@
 .. _urllib: http://docs.python.org/library/urllib.html
 .. _COPYING-LGPL: 
https://raw.githubusercontent.com/pycurl/pycurl/master/COPYING-LGPL
 .. _COPYING-MIT: 
https://raw.githubusercontent.com/pycurl/pycurl/master/COPYING-MIT
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/python/curl/__init__.py 
new/pycurl-7.45.2/python/curl/__init__.py
--- old/pycurl-7.45.1/python/curl/__init__.py   2021-08-09 03:47:03.000000000 
+0200
+++ new/pycurl-7.45.2/python/curl/__init__.py   2022-12-16 20:17:56.000000000 
+0100
@@ -1,7 +1,7 @@
 '''A high-level interface to the pycurl extension'''
 
 # ** mfx NOTE: the CGI class uses "black magic" using COOKIEFILE in
-#    combination with a non-existant file name. See the libcurl docs
+#    combination with a non-existent file name. See the libcurl docs
 #    for more info.
 
 import sys, pycurl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/setup.py new/pycurl-7.45.2/setup.py
--- old/pycurl-7.45.1/setup.py  2022-03-13 08:12:37.000000000 +0100
+++ new/pycurl-7.45.2/setup.py  2022-12-16 20:31:55.000000000 +0100
@@ -6,17 +6,11 @@
 
 PACKAGE = "pycurl"
 PY_PACKAGE = "curl"
-VERSION = "7.45.1"
+VERSION = "7.45.2"
 
-import glob, os, re, sys, subprocess
-import distutils
-try:
-    from setuptools import setup
-except ImportError:
-    from distutils.core import setup
-from distutils.extension import Extension
-from distutils.util import split_quoted
-from distutils.version import LooseVersion
+import glob, os, re, shlex, sys, subprocess
+from setuptools import setup
+from setuptools.extension import Extension
 
 py3 = sys.version_info[0] == 3
 
@@ -128,7 +122,7 @@
                 msg += ":\n" + stderr.decode()
             raise ConfigurationError(msg)
         curl_has_ssl = False
-        for feature in split_quoted(stdout.decode()):
+        for feature in shlex.split(stdout.decode()):
             if feature == 'SSL':
                 # this means any ssl library, not just openssl.
                 # we set the ssl flag to check for ssl library mismatch
@@ -185,7 +179,7 @@
 
         if not ssl_lib_detected:
             # self.sslhintbuf is a hack
-            for arg in split_quoted(self.sslhintbuf):
+            for arg in shlex.split(self.sslhintbuf):
                 if arg[:2] == "-l":
                     if arg[2:] == 'ssl':
                         self.using_openssl()
@@ -254,7 +248,7 @@
             if stderr:
                 msg += ":\n" + stderr.decode()
             raise ConfigurationError(msg)
-        for arg in split_quoted(stdout.decode()):
+        for arg in shlex.split(stdout.decode()):
             if arg[:2] == "-I":
                 # do not add /usr/include
                 if not re.search(r"^\/+usr\/+include\/*$", arg[2:]):
@@ -280,7 +274,7 @@
         # for hints as to which SSL library libcurl is linked against.
         # More information: https://github.com/pycurl/pycurl/pull/147
         #
-        # The final point is we should link agaist the SSL library in use
+        # The final point is we should link against the SSL library in use
         # even if libcurl does not tell us to, because *we* invoke functions
         # in that SSL library. This means any SSL libraries found in
         # --static-libs are forwarded to our libraries.
@@ -336,7 +330,7 @@
 
         # libraries and options - all libraries and options are forwarded
         # but if --libs succeeded, --static-libs output is ignored
-        for arg in split_quoted(optbuf):
+        for arg in shlex.split(optbuf):
             if arg[:2] == "-l":
                 self.libraries.append(arg[2:])
             elif arg[:2] == "-L":
@@ -586,39 +580,6 @@
         self.define_macros.append(('HAVE_CURL_SSL', 1))
         self.ssl_lib_detected = 'sectransp'
 
-def get_bdist_msi_version_hack():
-    # workaround for distutils/msi version requirement per
-    # epydoc.sourceforge.net/stdlib/distutils.version.StrictVersion-class.html 
-
-    # only x.y.z version numbers are supported, whereas our versions might be 
x.y.z.p.
-    # bugs.python.org/issue6040#msg133094
-    from distutils.command.bdist_msi import bdist_msi
-    import inspect
-    import types
-    import re
-
-    class bdist_msi_version_hack(bdist_msi):
-        """ MSI builder requires version to be in the x.x.x format """
-        def run(self):
-            def monkey_get_version(self):
-                """ monkey patch replacement for metadata.get_version() that
-                        returns MSI compatible version string for bdist_msi
-                """
-                # get filename of the calling function
-                if inspect.stack()[1][1].endswith('bdist_msi.py'):
-                    # strip revision from version (if any), e.g. 11.0.0-r31546
-                    match = re.match(r'(\d+\.\d+\.\d+)', self.version)
-                    assert match
-                    return match.group(1)
-                else:
-                    return self.version
-
-            # monkeypatching get_version() call for DistributionMetadata
-            self.distribution.metadata.get_version = \
-                types.MethodType(monkey_get_version, 
self.distribution.metadata)
-            bdist_msi.run(self)
-
-    return bdist_msi_version_hack
-
 
 def strip_pycurl_options(argv):
     if sys.platform == 'win32':
@@ -776,12 +737,12 @@
     authors_para = paras[AUTHORS_PARAGRAPH]
     authors = [author for author in authors_para.strip().split("\n")]
 
-    log = subprocess.check_output(['git', 'log', '--format=%an (%ae)'])
+    log = subprocess.check_output(['git', 'log', '--format=%an 
(%ae)']).decode()
     for author in log.strip().split("\n"):
         author = author.replace('@', ' at ').replace('(', '<').replace(')', 
'>')
         if author not in authors:
             authors.append(author)
-    authors.sort()
+    authors.sort(key=lambda s: s.lower())
     paras[AUTHORS_PARAGRAPH] = "\n".join(authors)
     f = open('AUTHORS', 'w')
     try:
@@ -948,17 +909,9 @@
     packages=[PY_PACKAGE],
     package_dir={ PY_PACKAGE: os.path.join('python', 'curl') },
     python_requires='>=3.5',
+    platforms='All',
 )
 
-if sys.platform == "win32":
-    setup_args['cmdclass'] = {'bdist_msi': get_bdist_msi_version_hack()}
-
-##print distutils.__version__
-if LooseVersion(distutils.__version__) > LooseVersion("1.0.1"):
-    setup_args["platforms"] = "All"
-if LooseVersion(distutils.__version__) < LooseVersion("1.0.3"):
-    setup_args["licence"] = setup_args["license"]
-
 unix_help = '''\
 PycURL Unix options:
  --curl-config=/path/to/curl-config  use specified curl-config binary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/easy.c new/pycurl-7.45.2/src/easy.c
--- old/pycurl-7.45.1/src/easy.c        2022-03-10 00:12:32.000000000 +0100
+++ new/pycurl-7.45.2/src/easy.c        2022-12-16 20:17:56.000000000 +0100
@@ -348,7 +348,7 @@
     }
 
     /* Checking for CURLE_OK is not required here.
-     * All values have already been successfuly setopt'ed with self->handle. */
+     * All values have already been successfully setopt'ed with self->handle. 
*/
 
     /* Assign and incref python callback and update data pointers */
     if (self->w_cb != NULL) {
@@ -606,13 +606,13 @@
 do_curl_dealloc(CurlObject *self)
 {
     PyObject_GC_UnTrack(self);
-    Py_TRASHCAN_SAFE_BEGIN(self);
+    CPy_TRASHCAN_BEGIN(self, do_curl_dealloc);
 
     Py_CLEAR(self->dict);
     util_curl_close(self);
 
     Curl_Type.tp_free(self);
-    Py_TRASHCAN_SAFE_END(self);
+    CPy_TRASHCAN_END(self);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/easyopt.c 
new/pycurl-7.45.2/src/easyopt.c
--- old/pycurl-7.45.1/src/easyopt.c     2022-01-11 20:34:56.000000000 +0100
+++ new/pycurl-7.45.2/src/easyopt.c     2022-12-16 20:17:56.000000000 +0100
@@ -314,6 +314,10 @@
     case CURLOPT_PROXY_SSLKEY:
     case CURLOPT_PROXY_SSLKEYTYPE:
 #endif
+#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 61, 0)
+    case CURLOPT_TLS13_CIPHERS:
+    case CURLOPT_PROXY_TLS13_CIPHERS:
+#endif
 #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 62, 0)
     case CURLOPT_DOH_URL:
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/module.c 
new/pycurl-7.45.2/src/module.c
--- old/pycurl-7.45.1/src/module.c      2022-03-13 08:10:38.000000000 +0100
+++ new/pycurl-7.45.2/src/module.c      2022-12-16 20:17:56.000000000 +0100
@@ -1077,9 +1077,16 @@
 #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 45, 0)
     insint_c(d, "DEFAULT_PROTOCOL", CURLOPT_DEFAULT_PROTOCOL);
 #endif
+#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 61, 0)
+    insint_c(d, "TLS13_CIPHERS", CURLOPT_TLS13_CIPHERS);
+    insint_c(d, "PROXY_TLS13_CIPHERS", CURLOPT_PROXY_TLS13_CIPHERS);
+#endif
 #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 62, 0)
     insint_c(d, "DOH_URL", CURLOPT_DOH_URL);
 #endif
+#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 64, 0)
+    insint_c(d, "HTTP09_ALLOWED", CURLOPT_HTTP09_ALLOWED);
+#endif
 #if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 80, 0)
     insint_c(d, "MAXLIFETIME_CONN", CURLOPT_MAXLIFETIME_CONN);
 #endif
@@ -1129,6 +1136,9 @@
     insint_c(d, "CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE", 
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE);
     insint_c(d, "TCP_FASTOPEN", CURLOPT_TCP_FASTOPEN);
 #endif
+#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 66, 0)
+    insint_c(d, "CURL_HTTP_VERSION_3", CURL_HTTP_VERSION_3);
+#endif
     insint_c(d, "CURL_HTTP_VERSION_LAST", CURL_HTTP_VERSION_LAST);
 
     /* CURL_NETRC_OPTION: constants for setopt(NETRC, x) */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/multi.c 
new/pycurl-7.45.2/src/multi.c
--- old/pycurl-7.45.1/src/multi.c       2022-01-11 20:34:56.000000000 +0100
+++ new/pycurl-7.45.2/src/multi.c       2022-12-16 20:17:56.000000000 +0100
@@ -117,7 +117,7 @@
 do_multi_dealloc(CurlMultiObject *self)
 {
     PyObject_GC_UnTrack(self);
-    Py_TRASHCAN_SAFE_BEGIN(self);
+    CPy_TRASHCAN_BEGIN(self, do_multi_dealloc);
 
     util_multi_xdecref(self);
     util_multi_close(self);
@@ -127,7 +127,7 @@
     }
 
     CurlMulti_Type.tp_free(self);
-    Py_TRASHCAN_SAFE_END(self);
+    CPy_TRASHCAN_END(self);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/pycurl.h 
new/pycurl-7.45.2/src/pycurl.h
--- old/pycurl-7.45.1/src/pycurl.h      2022-01-11 20:34:56.000000000 +0100
+++ new/pycurl-7.45.2/src/pycurl.h      2022-12-16 20:17:56.000000000 +0100
@@ -693,5 +693,13 @@
 # define PYCURL_TYPE_FLAGS Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_WEAKREFS | 
Py_TPFLAGS_BASETYPE
 #endif
 
+#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 8
+# define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_BEGIN(op, dealloc)
+# define CPy_TRASHCAN_END(op) Py_TRASHCAN_END
+#else
+# define CPy_TRASHCAN_BEGIN(op, dealloc) Py_TRASHCAN_SAFE_BEGIN(op)
+# define CPy_TRASHCAN_END(op) Py_TRASHCAN_SAFE_END(op)
+#endif
+
 /* vi:ts=4:et:nowrap
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/src/share.c 
new/pycurl-7.45.2/src/share.c
--- old/pycurl-7.45.1/src/share.c       2022-01-11 20:34:56.000000000 +0100
+++ new/pycurl-7.45.2/src/share.c       2022-12-16 20:17:56.000000000 +0100
@@ -119,7 +119,7 @@
 do_share_dealloc(CurlShareObject *self)
 {
     PyObject_GC_UnTrack(self);
-    Py_TRASHCAN_SAFE_BEGIN(self);
+    CPy_TRASHCAN_BEGIN(self, do_share_dealloc);
 
     Py_CLEAR(self->dict);
     util_share_close(self);
@@ -133,7 +133,7 @@
     }
      
     CurlShare_Type.tp_free(self);
-    Py_TRASHCAN_SAFE_END(self);
+    CPy_TRASHCAN_END(self);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/certs/ca.crt 
new/pycurl-7.45.2/tests/certs/ca.crt
--- old/pycurl-7.45.1/tests/certs/ca.crt        2021-08-09 03:47:03.000000000 
+0200
+++ new/pycurl-7.45.2/tests/certs/ca.crt        2022-12-16 20:17:56.000000000 
+0100
@@ -1,8 +1,8 @@
 -----BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIUFrIR/j704ZfessaZ6fpA3BE0HNEwDQYJKoZIhvcNAQEL
+MIIDwzCCAqugAwIBAgIUSxsCNrFED1qO/AQe5iz0sFzgdRowDQYJKoZIhvcNAQEL
 BQAwZjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoM
 EVB5Y1VSTCB0ZXN0IHN1aXRlMRIwEAYDVQQLDAlsb2NhbGhvc3QxEjAQBgNVBAMM
-CWxvY2FsaG9zdDAeFw0yMDA4MTMxNzI1MTRaFw00NzEyMzAxNzI1MTRaMGYxCzAJ
+CWxvY2FsaG9zdDAeFw0yMjA1MDYxNTI5MDVaFw00OTA5MjExNTI5MDVaMGYxCzAJ
 BgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMRowGAYDVQQKDBFQeWNVUkwg
 dGVzdCBzdWl0ZTESMBAGA1UECwwJbG9jYWxob3N0MRIwEAYDVQQDDAlsb2NhbGhv
 c3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtrtJgPWnNZCHEmvJg
@@ -11,15 +11,13 @@
 uSfg4BVEW+lGs2FGCLElRWmrOPPMQsyP5llwuVhaRQ5QN8wQgkd5n2wXF2tsQ2dO
 YmJ5fVDjs0P0f0TNCWhS9zxd/orV7UqWIiGWiZt2jdEsAZTNmVaUbZaisXNfXrUT
 aFjYUcUh31K6xYc0nEqyY5R6s2/StZh7Png47BdaH/Y4pw1XWErUgUqQQdQ/tQwu
-G8BTAgMBAAGjgdYwgdMwHQYDVR0OBBYEFC7U1Afby9PQYRB7dkgUzZH9mkbBMIGj
-BgNVHSMEgZswgZiAFC7U1Afby9PQYRB7dkgUzZH9mkbBoWqkaDBmMQswCQYDVQQG
-EwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEaMBgGA1UECgwRUHljVVJMIHRlc3Qg
-c3VpdGUxEjAQBgNVBAsMCWxvY2FsaG9zdDESMBAGA1UEAwwJbG9jYWxob3N0ghQW
-shH+PvThl96yxpnp+kDcETQc0TAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUA
-A4IBAQAX3ENYqtAZLRz0p/EzRpIia+8fgwAjQrg9ucMX/UMVXHaUq/cgTPR2YhUn
-aIwhANqdZnSQ2nUHlDgCmUQmH2hLKhkR7PVOMuYDAQmPusII4iUdmwGFLPTudxRV
-fMKE8VBDKrRNSvWIS6Y9ucJi04jE705+wjUzB5eylP0R5kj7qt9VmPFYGgGb+jLz
-hNHmaI7NVC6cIhafMWcbI2uGdpPlGDK79HVtR53EtmCDlIVZ/DfIsVQ3KA0SwdD5
-TzqIM/V2vCKEsGbFMgVc5S4RLK5mu0/wTP3Y/PSy9zTz/z1l5BMEvbBxNhu3uqAi
-kBlHhSUHg81tR609TkQ/zl9ehe33
+G8BTAgMBAAGjaTBnMB0GA1UdDgQWBBQu1NQH28vT0GEQe3ZIFM2R/ZpGwTAfBgNV
+HSMEGDAWgBQu1NQH28vT0GEQe3ZIFM2R/ZpGwTAPBgNVHRMBAf8EBTADAQH/MBQG
+A1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAQOYupzgDcLn3
+dT7lPXDrWSWFQQoNGDD3suu3UPIHuLIBTghADOTgAW9QxmcB5z7EWXj8TLRssAZ7
+6bwPR1g466IgDpR7U+q9YIyBVW98MgYyaSX6TuRyrRxEugH5mzIKQ7Ed9qYiJrVA
+5npHkQOXdlcdsjLsjD/itfbk/M13GuCMkixXM3RGcruUbd143aKFGVvGPhl31L14
+AOjQsbC1OQQ6rPsA5FObSqLjm6L+cq53PqOaRIiTRdiaKD2Xj8hXWrs5zivx60qM
+GQkUnTfyPuQ7EXf7jQrjwrCYN8lk+KbuE9FKKS89b6ZyfK7iZp6AR3IdYRAVo1FE
+H7ZnvduIZQ==
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/certs/server.crt 
new/pycurl-7.45.2/tests/certs/server.crt
--- old/pycurl-7.45.1/tests/certs/server.crt    2021-08-09 03:47:03.000000000 
+0200
+++ new/pycurl-7.45.2/tests/certs/server.crt    2022-12-16 20:17:56.000000000 
+0100
@@ -1,20 +1,21 @@
 -----BEGIN CERTIFICATE-----
-MIIDPzCCAicCFERGPoslPJ3jHZfE8sJaHNmaFqfcMA0GCSqGSIb3DQEBCwUAMGYx
-CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMRowGAYDVQQKDBFQeWNV
-UkwgdGVzdCBzdWl0ZTESMBAGA1UECwwJbG9jYWxob3N0MRIwEAYDVQQDDAlsb2Nh
-bGhvc3QwHhcNMjAwODEzMTc0MTI2WhcNNDcxMjMwMTc0MTI2WjBSMQswCQYDVQQG
-EwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEaMBgGA1UECgwRUHljVVJMIHRlc3Qg
-c3VpdGUxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAOYnLv7lONDJDKbYYhIcVfWNRdqfGk+hFpPHVi8RfD49g90WKdSv
-hmIrPCtfoeXVZvSgh+tXuDZRiuczuoRq0uOM4pkNMXyQanlDn5AFthBNnDbc4DXb
-6lBXIdUbJZB+YXpiMQvQsmO0XFMD9nZ8CeeZutkxF34TcDE1YE4yCZIgpttLX1VG
-8OVFJomXeavrfQ8fjrRpDfOfmuM4I7YgCl5IxOAVyhFPGHNhpE8M/fJnk7UZ7iuB
-08Qca87/b0hvlGacL2AwWfwAdz2JcxVdmtKMhd03+PMqbUNYD7XlHJiKw+89VLv9
-lZGLJEO92lNRlJ06su5HzQSEycLpiKvDHBECAwEAATANBgkqhkiG9w0BAQsFAAOC
-AQEAboEGBE+LJhRBMXtcxGbewEK6KByid7VR3/j+e2jSQiy9l8UTrKDx+hinwIPp
-g/qNbVJC/aqa1kuaQrF8fHidM8t1A1brCjsZ+sEfc3q1K0jPZEzvSabRWznM21L+
-eZYnmINMrq4vlSjh5Oz1QGdoImjq+o4qWokOt8p38FYBMKgrMLBbW6N+olU8htuu
-x1o9y6CscwkFrhGvENe6nCrE9QTVEH0Ka1BMFOwfCUIztgz5YWgvJpSzw+2l6lo0
-4lh8olZ09Fzu+VcjUU9t0yiFFh1qwKTLWJA7NJMWOtEwTbfx/K+5m2Xiuzp6BPM5
-DcPA3/hx8YLKkxA570MOszh6Dg==
+MIIDXjCCAkagAwIBAgIUGSiMniv/FqlCAJXut6b+TJx1gzYwDQYJKoZIhvcNAQEL
+BQAwZjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoM
+EVB5Y1VSTCB0ZXN0IHN1aXRlMRIwEAYDVQQLDAlsb2NhbGhvc3QxEjAQBgNVBAMM
+CWxvY2FsaG9zdDAeFw0yMjA1MDYyMTU4NTJaFw00OTA5MjEyMTU4NTJaMFIxCzAJ
+BgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMRowGAYDVQQKDBFQeWNVUkwg
+dGVzdCBzdWl0ZTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA5icu/uU40MkMpthiEhxV9Y1F2p8aT6EWk8dWLxF8Pj2D
+3RYp1K+GYis8K1+h5dVm9KCH61e4NlGK5zO6hGrS44zimQ0xfJBqeUOfkAW2EE2c
+NtzgNdvqUFch1RslkH5hemIxC9CyY7RcUwP2dnwJ55m62TEXfhNwMTVgTjIJkiCm
+20tfVUbw5UUmiZd5q+t9Dx+OtGkN85+a4zgjtiAKXkjE4BXKEU8Yc2GkTwz98meT
+tRnuK4HTxBxrzv9vSG+UZpwvYDBZ/AB3PYlzFV2a0oyF3Tf48yptQ1gPteUcmIrD
+7z1Uu/2VkYskQ73aU1GUnTqy7kfNBITJwumIq8McEQIDAQABoxgwFjAUBgNVHREE
+DTALgglsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggEBAC0y9o5FUCzpSEqBK7Ns
+1FiAR/cNS6MKmpCKjN4sNvALSThCTdDB4QVBEOe+eTZP/q105oyf8boSktCG/3MO
+B6Jwdo5AnBHiE2QGfacMluUkuYRGf1XqWl9oa1AeuqCS+ilGk485akiI0A/z6ZRz
+ynGvk/9bqYYhqIPV2ioxFdHaXNlNKT36BV1NFrW3ebZSa3w7nHIrEakZuVmc67vH
+dCuxHf8l2Bya/xT1yktq4MaiFzUY9ZZLSnpWPuGzXnika0IeREF7rm9ubozq8mSq
+JyTC0KAZvwt7BmbEO98NcfL8gtYAVqDBR/t6gW4TSxKGc0PB3j/+73Nj5hGBasxd
+2cc=
 -----END CERTIFICATE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/error_test.py 
new/pycurl-7.45.2/tests/error_test.py
--- old/pycurl-7.45.1/tests/error_test.py       2021-08-09 03:47:03.000000000 
+0200
+++ new/pycurl-7.45.2/tests/error_test.py       2022-12-16 20:17:56.000000000 
+0100
@@ -29,7 +29,8 @@
             err, msg = exc.args
             self.assertEqual(pycurl.E_URL_MALFORMAT, err)
             # possibly fragile
-            self.assertEqual('No URL set!', msg)
+            # curl < 7.83.0 has an exclamation mark in this error message
+            self.assertIn(msg, ['No URL set!', 'No URL set'])
         else:
             self.fail('Expected pycurl.error to be raised')
     
@@ -43,9 +44,10 @@
             self.curl.perform()
         except pycurl.error:
             # might be fragile
-            self.assertEqual('No URL set!', self.curl.errstr())
+            # curl < 7.83.0 has an exclamation mark in this error message
+            self.assertIn(self.curl.errstr(), ['No URL set!', 'No URL set'])
             # repeated checks do not clear value
-            self.assertEqual('No URL set!', self.curl.errstr())
+            self.assertIn(self.curl.errstr(), ['No URL set!', 'No URL set'])
             # check the type - on all python versions
             self.assertEqual(str, type(self.curl.errstr()))
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/option_constants_test.py 
new/pycurl-7.45.2/tests/option_constants_test.py
--- old/pycurl-7.45.1/tests/option_constants_test.py    2022-01-11 
20:23:49.000000000 +0100
+++ new/pycurl-7.45.2/tests/option_constants_test.py    2022-12-16 
20:17:56.000000000 +0100
@@ -373,6 +373,26 @@
         curl.setopt(curl.SSL_OPTIONS, curl.SSLOPT_NO_REVOKE)
         curl.close()
 
+    @util.min_libcurl(7, 64, 0)
+    def test_http09_allowed_option(self):
+        curl = pycurl.Curl()
+        curl.setopt(curl.HTTP09_ALLOWED, 1)
+        curl.close()
+
+    @util.min_libcurl(7, 61, 0)
+    @util.only_ssl_backends('openssl')
+    def test_tls13_ciphers(self):
+        curl = pycurl.Curl()
+        curl.setopt(curl.TLS13_CIPHERS, 'TLS_CHACHA20_POLY1305_SHA256')
+        curl.close()
+
+    @util.min_libcurl(7, 61, 0)
+    @util.only_ssl_backends('openssl')
+    def test_proxy_tls13_ciphers(self):
+        curl = pycurl.Curl()
+        curl.setopt(curl.PROXY_TLS13_CIPHERS, 'TLS_CHACHA20_POLY1305_SHA256')
+        curl.close()
+
 class OptionConstantsSettingTest(unittest.TestCase):
     def setUp(self):
         self.curl = pycurl.Curl()
@@ -476,6 +496,10 @@
     def test_http_version_2prior_knowledge(self):
         self.curl.setopt(self.curl.HTTP_VERSION, 
self.curl.CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE)
 
+    @util.min_libcurl(7, 66, 0)
+    def test_http_version_3(self):
+        self.curl.setopt(self.curl.HTTP_VERSION, self.curl.CURL_HTTP_VERSION_3)
+
     @util.min_libcurl(7, 21, 5)
     def test_sockopt_constants(self):
         assert self.curl.SOCKOPT_OK is not None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/run.sh 
new/pycurl-7.45.2/tests/run.sh
--- old/pycurl-7.45.1/tests/run.sh      2021-08-09 03:47:03.000000000 +0200
+++ new/pycurl-7.45.2/tests/run.sh      2022-12-16 20:17:56.000000000 +0100
@@ -7,8 +7,9 @@
 test -n "$PYTEST" || PYTEST=pytest
 
 mkdir -p tests/tmp
-export PYTHONSUFFIX=$($PYTHON -V 2>&1 |awk '{print $2}' |awk -F. '{print $1 
"." $2}')
-export PYTHONPATH=$(ls -d build/lib.*$PYTHONSUFFIX):$PYTHONPATH
+export PYTHONMAJOR=$($PYTHON -V 2>&1 |awk '{print $2}' |awk -F. '{print $1}')
+export PYTHONMINOR=$($PYTHON -V 2>&1 |awk '{print $2}' |awk -F. '{print $2}')
+export PYTHONPATH=$(ls -d build/lib.*$PYTHONMAJOR*$PYTHONMINOR):$PYTHONPATH
 
 extra_attrs=
 if test "$CI" = true; then
@@ -25,4 +26,4 @@
 fi
 
 $PYTHON -c 'import pycurl; print(pycurl.version)'
-$PYTEST
+$PYTEST -v
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/runwsgi.py 
new/pycurl-7.45.2/tests/runwsgi.py
--- old/pycurl-7.45.1/tests/runwsgi.py  2021-08-09 03:47:03.000000000 +0200
+++ new/pycurl-7.45.2/tests/runwsgi.py  2022-12-16 20:17:56.000000000 +0100
@@ -35,10 +35,12 @@
 
         import ssl
         cert_dir = os.path.join(os.path.dirname(__file__), 'certs')
-        self.srv.socket = ssl.wrap_socket(
+        context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
+        context.load_cert_chain(
+            os.path.join(cert_dir, 'server.crt'),
+            keyfile=os.path.join(cert_dir, 'server.key'))
+        self.srv.socket = context.wrap_socket(
             self.srv.socket,
-            keyfile=os.path.join(cert_dir, 'server.key'),
-            certfile=os.path.join(cert_dir, 'server.crt'),
             server_side=True)
 
         self.serve()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/tests/util.py 
new/pycurl-7.45.2/tests/util.py
--- old/pycurl-7.45.1/tests/util.py     2022-01-11 20:23:49.000000000 +0100
+++ new/pycurl-7.45.2/tests/util.py     2022-12-16 20:17:56.000000000 +0100
@@ -2,7 +2,7 @@
 # vi:ts=4:et
 
 import tempfile
-import os, sys, socket
+import sys, socket
 import time as _time
 import functools
 import unittest
@@ -256,40 +256,6 @@
             break
     return ok
 
-#
-# prepare sys.path in case we are still in the build directory
-# see also: distutils/command/build.py (build_platlib)
-#
-
-def get_sys_path(p=None):
-    if p is None:
-        p = sys.path
-    p = p[:]
-    try:
-        from distutils.util import get_platform
-    except ImportError:
-        return p
-    p0 = ""
-    if p:
-        p0 = p[0]
-    #
-    plat = get_platform()
-    plat_specifier = "%s-%s" % (plat, sys.version[:3])
-    ##print plat, plat_specifier
-    #
-    for prefix in (p0, os.curdir, os.pardir,):
-        if not prefix:
-            continue
-        d = os.path.join(prefix, "build")
-        for subdir in ("lib", "lib." + plat_specifier, "lib." + plat):
-            dir = os.path.normpath(os.path.join(d, subdir))
-            if os.path.isdir(dir):
-                if dir not in p:
-                    p.insert(1, dir)
-    #
-    return p
-
-
 def DefaultCurl():
     import pycurl
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pycurl-7.45.1/winbuild.py 
new/pycurl-7.45.2/winbuild.py
--- old/pycurl-7.45.1/winbuild.py       2022-03-13 08:12:42.000000000 +0100
+++ new/pycurl-7.45.2/winbuild.py       2022-12-16 20:31:48.000000000 +0100
@@ -103,7 +103,7 @@
     # whether to build binary wheels
     build_wheels = True
     # pycurl version to build, we should know this ourselves
-    pycurl_version = '7.45.1'
+    pycurl_version = '7.45.2'
 
     # Sometimes vc14 does not include windows sdk path in vcvars which breaks 
stuff.
     # another application for this is to supply normaliz.lib for vc9

Reply via email to