From 7c896e3f7174c6abfca9400a81460ad4dbbce065ef91b8abf1cf54c8fff07f12 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 4 Jun 2021 14:23:45 +0000 Subject: [PATCH] - Add curl7770_compatibility.patch to have package compatible with curl 7.77.0. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=86 --- curl7770_compatibility.patch | 89 ++++++++++++++++++++++++++++++++++++ python-pycurl.changes | 5 ++ python-pycurl.spec | 5 +- 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 curl7770_compatibility.patch diff --git a/curl7770_compatibility.patch b/curl7770_compatibility.patch new file mode 100644 index 0000000..9766d7a --- /dev/null +++ b/curl7770_compatibility.patch @@ -0,0 +1,89 @@ +From 18f1103fb9c6b4dc2233e323e3df1818db25c209 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Thu, 27 May 2021 10:52:09 +0200 +Subject: [PATCH 1/2] option_constants_test: skip check of SSLVERSION_SSLv* + +... with curl-7.77.0, where they started to return +CURLE_BAD_FUNCTION_ARGUMENT: + + https://github.com/curl/curl/pull/6773 + +Closes: https://github.com/pycurl/pycurl/pull/689 +--- + tests/failonerror_test.py | 6 ++++++ + tests/option_constants_test.py | 9 ++++++++- + tests/util.py | 14 ++++++++++++++ + 3 files changed, 28 insertions(+), 1 deletion(-) + +--- a/tests/failonerror_test.py ++++ b/tests/failonerror_test.py +@@ -21,6 +21,8 @@ class FailonerrorTest(unittest.TestCase) + # not sure what the actual min is but 7.26 is too old + # and does not include status text, only the status code + @util.min_libcurl(7, 38, 0) ++ # no longer supported by libcurl: https://github.com/curl/curl/issues/6615 ++ @util.removed_in_libcurl(7, 75, 0) + def test_failonerror(self): + self.curl.setopt(pycurl.URL, 'http://%s:8380/status/403' % localhost) + sio = util.BytesIO() +@@ -41,6 +43,8 @@ class FailonerrorTest(unittest.TestCase) + # not sure what the actual min is but 7.26 is too old + # and does not include status text, only the status code + @util.min_libcurl(7, 38, 0) ++ # no longer supported by libcurl: https://github.com/curl/curl/issues/6615 ++ @util.removed_in_libcurl(7, 75, 0) + def test_failonerror_status_line_invalid_utf8_python2(self): + self.curl.setopt(pycurl.URL, 'http://%s:8380/status_invalid_utf8' % localhost) + sio = util.BytesIO() +@@ -61,6 +65,8 @@ class FailonerrorTest(unittest.TestCase) + # not sure what the actual min is but 7.26 is too old + # and does not include status text, only the status code + @util.min_libcurl(7, 38, 0) ++ # no longer supported by libcurl: https://github.com/curl/curl/issues/6615 ++ @util.removed_in_libcurl(7, 75, 0) + def test_failonerror_status_line_invalid_utf8_python3(self): + self.curl.setopt(pycurl.URL, 'http://%s:8380/status_invalid_utf8' % localhost) + sio = util.BytesIO() +--- a/tests/option_constants_test.py ++++ b/tests/option_constants_test.py +@@ -163,9 +163,16 @@ class OptionConstantsTest(unittest.TestC + def test_sslversion_options(self): + curl = pycurl.Curl() + curl.setopt(curl.SSLVERSION, curl.SSLVERSION_DEFAULT) ++ curl.setopt(curl.SSLVERSION, curl.SSLVERSION_TLSv1) ++ curl.close() ++ ++ # SSLVERSION_SSLv* return CURLE_BAD_FUNCTION_ARGUMENT with curl-7.77.0 ++ @util.removed_in_libcurl(7, 77, 0) ++ @util.only_ssl ++ def test_legacy_sslversion_options(self): ++ curl = pycurl.Curl() + curl.setopt(curl.SSLVERSION, curl.SSLVERSION_SSLv2) + curl.setopt(curl.SSLVERSION, curl.SSLVERSION_SSLv3) +- curl.setopt(curl.SSLVERSION, curl.SSLVERSION_TLSv1) + curl.close() + + @util.min_libcurl(7, 34, 0) +--- a/tests/util.py ++++ b/tests/util.py +@@ -115,6 +115,20 @@ def min_libcurl(major, minor, patch): + + return decorator + ++def removed_in_libcurl(major, minor, patch): ++ ++ def decorator(fn): ++ @functools.wraps(fn) ++ def decorated(*args, **kwargs): ++ if not pycurl_version_less_than(major, minor, patch): ++ raise unittest.SkipTest('libcurl >= %d.%d.%d' % (major, minor, patch)) ++ ++ return fn(*args, **kwargs) ++ ++ return decorated ++ ++ return decorator ++ + def only_ssl(fn): + import pycurl + diff --git a/python-pycurl.changes b/python-pycurl.changes index 43d2249..253253e 100644 --- a/python-pycurl.changes +++ b/python-pycurl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jun 4 13:59:08 UTC 2021 - Matej Cepl + +- Add curl7770_compatibility.patch to have package compatible with curl 7.77.0. + ------------------------------------------------------------------- Mon Mar 8 09:27:05 UTC 2021 - Pedro Monreal diff --git a/python-pycurl.spec b/python-pycurl.spec index 4179d85..5b992fb 100644 --- a/python-pycurl.spec +++ b/python-pycurl.spec @@ -1,5 +1,5 @@ # -# spec file for package python-pycurl +# spec file # # Copyright (c) 2021 SUSE LLC # @@ -44,6 +44,9 @@ Patch4: remove_nose.patch # PATCH-FIX-OPENSUSE make-leap15-compat.patch mcepl@suse.com # Make tests passing with Leap 15.2 Patch5: make-leap15-compat.patch +# PATCH-FIX-UPSTREAM curl7770_compatibility.patch gh#pycurl/pycurl#689 mcepl@suse.com +# Provide compatiblity with curl 7.77.0+ +Patch6: curl7770_compatibility.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} BuildRequires: fdupes