1
0
forked from pool/python-pycurl

12 Commits

Author SHA256 Message Date
64a7752871 Accepting request 1316093 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1316093
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycurl?expand=0&rev=51
2025-11-07 17:21:46 +00:00
5dc5cb5159 - fix build with libcurl >= 8.17.0 boo#1253116
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=118
2025-11-06 18:41:28 +00:00
03aafd5db1 Accepting request 1304228 from devel:languages:python
This SR should fix Staging:K with new curl

- Add patch handle-change-debug-curl-8.16.0.patch (bsc#1249448, gh#pycurl/pycurl@eb7f52eeef85)
- Drop patch test-bottle-flask.patch, not needed anymore
- Update to 7.45.6:
  * Re-enable building Linux wheels with CA bundle autodetection
- 7.45.5
  * Enable GSS-API and brotli support in wheels (patch by Scott Talbert).
  * Add support for calling getinfo with CURLOPT_*_T arguments
    (patch by Scott Talbert)
  * Change wheels to build using shared libraries (vice static libraries)
    (patch by Scott Talbert)
  * Build wheels with curl 8.12.1 (mainly for security fixes)
- 7.45.4
  * Add support for CURLOPT_HAPROXY_CLIENT_IP (patch by Scott Talbert).
  * Port tests from bottle to flask (patch by Miro Hrončok).
  * Add constant for CURL_HTTP_VERSION_3ONLY (patch by Pavel Horáček).
  * Add EFFECTIVE_METHOD info option (patch by Pavel Horáček).
  * Don't use `-flat_namespace` on macOS (patch by Michael Cho).
  * Add some missing GIL checks to callback functions
    (patch by Scott Talbert).
  * Fix assorted bugs in pycurl tests, including a segfault
    (patch by Scott Talbert).  All tests should now pass on Linux and
    macOS.
  * Fix minor bug in examples/multi-socket_action-select.py
    (patch by Oleg Broytman).
  * Build all wheels using the latest version of libcurl and its
    dependencies (patch by Scott Talbert).  All wheels should now have
    openssl, HTTP2, and SSH support.
  * Implement Certificate Authority path autodetection when building
    Linux wheels (patch by Scott Talbert).

OBS-URL: https://build.opensuse.org/request/show/1304228
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycurl?expand=0&rev=50
2025-09-12 19:09:20 +00:00
7d4898ba67 - Add patch handle-change-debug-curl-8.16.0.patch (bsc#1249448, gh#pycurl/pycurl@eb7f52eeef85)
- Drop patch test-bottle-flask.patch, not needed anymore
- Update to 7.45.6:
  * Re-enable building Linux wheels with CA bundle autodetection
- 7.45.5
  * Enable GSS-API and brotli support in wheels (patch by Scott Talbert).
  * Add support for calling getinfo with CURLOPT_*_T arguments
    (patch by Scott Talbert)
  * Change wheels to build using shared libraries (vice static libraries)
    (patch by Scott Talbert)
  * Build wheels with curl 8.12.1 (mainly for security fixes)
- 7.45.4
  * Add support for CURLOPT_HAPROXY_CLIENT_IP (patch by Scott Talbert).
  * Port tests from bottle to flask (patch by Miro Hrončok).
  * Add constant for CURL_HTTP_VERSION_3ONLY (patch by Pavel Horáček).
  * Add EFFECTIVE_METHOD info option (patch by Pavel Horáček).
  * Don't use `-flat_namespace` on macOS (patch by Michael Cho).
  * Add some missing GIL checks to callback functions
    (patch by Scott Talbert).
  * Fix assorted bugs in pycurl tests, including a segfault
    (patch by Scott Talbert).  All tests should now pass on Linux and
    macOS.
  * Fix minor bug in examples/multi-socket_action-select.py
    (patch by Oleg Broytman).
  * Build all wheels using the latest version of libcurl and its
    dependencies (patch by Scott Talbert).  All wheels should now have
    openssl, HTTP2, and SSH support.
  * Implement Certificate Authority path autodetection when building
    Linux wheels (patch by Scott Talbert).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=116
2025-09-12 07:31:48 +00:00
6111df1a39 Accepting request 1229355 from devel:languages:python
- Switch to %pyproject_*.

OBS-URL: https://build.opensuse.org/request/show/1229355
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycurl?expand=0&rev=49
2024-12-10 22:43:03 +00:00
e0ccfb8920 Switch off services
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=114
2024-12-09 11:12:04 +00:00
bec0282190 Fix macro
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=113
2024-12-09 09:39:44 +00:00
04441843d1 - Switch to %pyproject_*.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=112
2024-12-09 09:39:18 +00:00
1da5c2b711 Accepting request 1205723 from devel:languages:python
- Switching off test_multi_ tests, they are just too
  unrealiable. When running the test cycle in cycle I have never
  managed to make it pass ten times without this change.

OBS-URL: https://build.opensuse.org/request/show/1205723
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycurl?expand=0&rev=48
2024-10-06 15:51:39 +00:00
eea1e6e357 - Switching off test_multi_ tests, they are just too
unrealiable. When running the test cycle in cycle I have never
  managed to make it pass ten times without this change.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=110
2024-10-04 14:29:20 +00:00
6292cf768b Accepting request 1202901 from devel:languages:python
- Add upstream patch test-bottle-flask.patch to use Flask instead of
  bottle for tests.
  gh#pycurl/pycurl#838

OBS-URL: https://build.opensuse.org/request/show/1202901
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pycurl?expand=0&rev=47
2024-09-25 19:52:39 +00:00
7cdd102b91 - Add upstream patch test-bottle-flask.patch to use Flask instead of
bottle for tests.
  gh#pycurl/pycurl#838

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycurl?expand=0&rev=108
2024-09-24 10:48:42 +00:00
9 changed files with 162 additions and 15 deletions

15
_service Normal file
View File

@@ -0,0 +1,15 @@
<services>
<service name="obs_scm" mode="disabled">
<param name="versionprefix">7.45.3+git</param>
<param name="url">https://github.com/pycurl/pycurl.git</param>
<param name="scm">git</param>
<param name="revision">main</param>
<param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="disabled"/>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service>
<service name="set_version" mode="disabled" />
</services>

View File

@@ -0,0 +1,28 @@
From eb7f52eeef85feb6c117678d52803050bbdd7bc8 Mon Sep 17 00:00:00 2001
From: Carlos Henrique Lima Melara <charlesmelara@riseup.net>
Date: Thu, 28 Aug 2025 20:37:33 -0300
Subject: [PATCH] tests: handle change in debug output in curl 8.16.0
Debug message has changed and so the assert in the test is failing.
Handle this by checking the version to pick the expected string to
compare in the test.
---
tests/debug_test.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: pycurl-7.45.6/tests/debug_test.py
===================================================================
--- pycurl-7.45.6.orig/tests/debug_test.py
+++ pycurl-7.45.6/tests/debug_test.py
@@ -34,8 +34,10 @@ class DebugTest(unittest.TestCase):
self.check(0, util.b('Trying'))
if util.pycurl_version_less_than(7, 24):
self.check(0, util.b('connected'))
- else:
+ elif util.pycurl_version_less_than(8, 16):
self.check(0, util.b('Connected to %s' % localhost))
+ else:
+ self.check(0, util.b('Established connection to %s' % localhost))
self.check(0, util.b('port 8380'))
# request
self.check(2, util.b('GET /success HTTP/1.1'))

View File

@@ -1,8 +1,10 @@
Index: pycurl-7.43.0/tests/runwsgi.py
===================================================================
--- pycurl-7.43.0.orig/tests/runwsgi.py
+++ pycurl-7.43.0/tests/runwsgi.py
@@ -48,10 +48,10 @@ def start_bottle_server(app, port, serve
---
tests/runwsgi.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/tests/runwsgi.py
+++ b/tests/runwsgi.py
@@ -56,10 +56,10 @@ def start_bottle_server(app, port, serve
server_thread.daemon = True
server_thread.start()

Binary file not shown.

3
pycurl-7.45.6.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2b73e66b22719ea48ac08a93fc88e57ef36d46d03cb09d972063c9aa86bb74e6
size 239470

View File

@@ -1,3 +1,7 @@
---
tests/ssh_key_cb_test.py | 31 +++++++++++++++++++++++--------
1 file changed, 23 insertions(+), 8 deletions(-)
--- a/tests/ssh_key_cb_test.py
+++ b/tests/ssh_key_cb_test.py
@@ -33,8 +33,11 @@ class SshKeyCbTest(unittest.TestCase):

View File

@@ -1,3 +1,61 @@
-------------------------------------------------------------------
Thu Nov 6 16:51:52 UTC 2025 - Andreas Stieger <andreas.stieger@gmx.de>
- fix build with libcurl >= 8.17.0 boo#1253116
skip_kerberos_tests_on_libcurl_8_17_0.patch
-------------------------------------------------------------------
Fri Sep 12 06:19:06 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add patch handle-change-debug-curl-8.16.0.patch (bsc#1249448, gh#pycurl/pycurl@eb7f52eeef85)
- Drop patch test-bottle-flask.patch, not needed anymore
- Update to 7.45.6:
* Re-enable building Linux wheels with CA bundle autodetection
- 7.45.5
* Enable GSS-API and brotli support in wheels (patch by Scott Talbert).
* Add support for calling getinfo with CURLOPT_*_T arguments
(patch by Scott Talbert)
* Change wheels to build using shared libraries (vice static libraries)
(patch by Scott Talbert)
* Build wheels with curl 8.12.1 (mainly for security fixes)
- 7.45.4
* Add support for CURLOPT_HAPROXY_CLIENT_IP (patch by Scott Talbert).
* Port tests from bottle to flask (patch by Miro Hrončok).
* Add constant for CURL_HTTP_VERSION_3ONLY (patch by Pavel Horáček).
* Add EFFECTIVE_METHOD info option (patch by Pavel Horáček).
* Don't use `-flat_namespace` on macOS (patch by Michael Cho).
* Add some missing GIL checks to callback functions
(patch by Scott Talbert).
* Fix assorted bugs in pycurl tests, including a segfault
(patch by Scott Talbert). All tests should now pass on Linux and
macOS.
* Fix minor bug in examples/multi-socket_action-select.py
(patch by Oleg Broytman).
* Build all wheels using the latest version of libcurl and its
dependencies (patch by Scott Talbert). All wheels should now have
openssl, HTTP2, and SSH support.
* Implement Certificate Authority path autodetection when building
Linux wheels (patch by Scott Talbert).
-------------------------------------------------------------------
Mon Dec 9 09:38:48 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
- Switch to %pyproject_*.
-------------------------------------------------------------------
Fri Oct 4 14:25:56 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
- Switching off test_multi_ tests, they are just too
unrealiable. When running the test cycle in cycle I have never
managed to make it pass ten times without this change.
-------------------------------------------------------------------
Tue Sep 24 10:47:25 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
- Add upstream patch test-bottle-flask.patch to use Flask instead of
bottle for tests.
gh#pycurl/pycurl#838
-------------------------------------------------------------------
Thu Jun 6 15:17:31 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-pycurl
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,12 +27,14 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pycurl%{psuffix}
Version: 7.45.3
Version: 7.45.6
%global upversion %{version}
Release: 0
Summary: PycURL -- cURL library module
License: LGPL-2.1-or-later AND MIT
URL: http://pycurl.io/
Source: https://files.pythonhosted.org/packages/source/p/pycurl/pycurl-%{version}.tar.gz
# Source: pycurl-%%{version}.tar.gz
# PATCH-FIX-OPENSUSE increase_test_timeout.diff -- Increase the timeout in a test so it doesn't fail when obs is overloaded
Patch0: increase_test_timeout.diff
# PATCH-FIX-UPSTREAM handle difference between libssh and libssh2
@@ -41,15 +43,21 @@ Patch2: disable_randomly_failing_tests.patch
# PATCH-FIX-OPENSUSE make-leap15-compat.patch mcepl@suse.com
# Make tests passing with Leap 15.2
Patch3: make-leap15-compat.patch
# PATCH-FIX-UPSTREAM handle-change-debug-curl-8.16.0.patch gh#pycurl/pycurl@eb7f52eeef85
Patch4: handle-change-debug-curl-8.16.0.patch
# PATCH-FIX-UPSTREAM skip_kerberos_tests_on_libcurl_8_17_0.patch gh#pycurl/pycurl@33bf92f
Patch5: skip_kerberos_tests_on_libcurl_8_17_0.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libcurl) >= 7.19.0
BuildRequires: pkgconfig(openssl)
%if %{with test}
BuildRequires: %{python_module bottle}
BuildRequires: %{python_module Flask}
BuildRequires: %{python_module flaky}
BuildRequires: %{python_module pytest}
%endif
@@ -84,11 +92,11 @@ rm -f tests/failonerror_test.py
%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
export PYCURL_SSL_LIBRARY=openssl
%python_build --with-openssl
%pyproject_wheel
%install
export PYCURL_SSL_LIBRARY=openssl
%python_install --with-openssl
%pyproject_install
rm -rf %{buildroot}%{_datadir}/doc # Remove wrongly installed junk
@@ -106,7 +114,7 @@ export PYCURL_SSL_LIBRARY=openssl
# not the rest of the mess in the upstream runner
pushd tests/fake-curl/libcurl
rm -f *.so
make %{?_smp_mflags}
%make_build
popd
# exclude certain tests
test_flags='online or occasionally_failing'
@@ -125,6 +133,8 @@ dont_test="or test_getinfo "
dont_test+="or test_multi_socket_select "
# test_multi_socket_action gh#pycurl/pycurl#729
dont_test+="or test_multi_socket_action "
# just get rid of all test_multi tests
dont_test+="or test_multi_ "
# test_request_with_verifypeer for gh#pycurl/pycurl#822
dont_test+="or test_request_with_verifypeer "
%pytest_arch -s -k "not ($test_flags $dont_test)"
@@ -138,7 +148,7 @@ rm -rf %{buildroot}%{_prefix}/lib/debug %{buildroot}%{_libdir}/python*
%doc AUTHORS ChangeLog README.rst
%{python_sitearch}/curl
%{python_sitearch}/pycurl*.so
%{python_sitearch}/pycurl-%{version}*-info
%{python_sitearch}/pycurl-%{upversion}*-info
%if 0%{?suse_version} > 1500
%files -n %{name}-doc

View File

@@ -0,0 +1,30 @@
From ea92e3ca230a3ff3d464cb6816102fa157177aca Mon Sep 17 00:00:00 2001
From: Jacek Migacz <jmigacz@redhat.com>
Date: Fri, 17 Oct 2025 13:55:48 +0200
Subject: [PATCH] Skip Kerberos tests on libcurl >= 8.17.0
CURLOPT_KRBLEVEL and CURLOPT_KRB4LEVEL were removed in libcurl
8.17.0 and now return CURLE_NOT_BUILT_IN.
---
tests/option_constants_test.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/option_constants_test.py b/tests/option_constants_test.py
index 1dd862c39..de1b08012 100644
--- a/tests/option_constants_test.py
+++ b/tests/option_constants_test.py
@@ -502,12 +502,14 @@ def test_ssl_sessionid_cache(self):
curl.setopt(curl.SSL_SESSIONID_CACHE, True)
curl.close()
+ @util.removed_in_libcurl(8, 17, 0)
@util.only_gssapi
def test_krblevel(self):
curl = pycurl.Curl()
curl.setopt(curl.KRBLEVEL, 'clear')
curl.close()
+ @util.removed_in_libcurl(8, 17, 0)
@util.only_gssapi
def test_krb4level(self):
curl = pycurl.Curl()