# # spec file for package python-pycurl # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: python-pycurl Version: 7.43.0 Release: 1.2 Url: http://pycurl.sourceforge.net/ Summary: PycURL -- cURL library module License: LGPL-2.1+ and MIT Group: Development/Languages/Python Source: https://pypi.python.org/packages/source/p/pycurl/pycurl-%{version}.tar.gz Patch0: pycurl-no-runtime-curlvercheck.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libcurl-devel >= 7.19.0 BuildRequires: openssl-devel BuildRequires: python-bottle BuildRequires: python-devel BuildRequires: python-nose BuildRequires: python-simplejson Requires: python-bottle Requires: python-simplejson %if 0%{?suse_version} %py_requires %endif Provides: python-curl = %{version} Obsoletes: python-curl < %{version} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %description This module provides bindings for the cURL library. %package doc Summary: Documentation for python-curl Group: Development/Libraries/Python Requires: %{name} = %{version} %description doc This module provides bindings for the cURL library. This package contains documentation and examples. %prep %setup -q -n pycurl-%{version} # %patch0 -p1 %build CFLAGS="%{optflags}" python setup.py build --with-ssl %install python setup.py install --prefix=%{_prefix} --root=%{buildroot} --with-ssl rm -rf %{buildroot}%{_datadir}/doc # Remove wrongly installed junk %check %if 0%{?suse_version} >= 1320 make test %endif %files %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING-LGPL COPYING-MIT README.rst %{python_sitearch}/* %files doc %defattr(-,root,root) %doc examples doc/*.rst %changelog * Wed Mar 25 2015 mcihar@suse.cz - Run testsuite during build * Wed Mar 25 2015 mcihar@suse.cz - Update to 7.19.5.1: * Added CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5_HOSTNAME. * setup.py now prints PycURL-specific option help when -h is used. * LibreSSL is now supported (patch by JiCiT.) * Fixed an oversight that broke PycURL building against libcurl 7.19.4 through 7.21.1. The bug was introduced in PycURL 7.19.5. * Tests are now included in source distributions again, thanks to Kamil Dudka and Johan Bergstroem. * Added CURLOPT_MAIL_FROM and CURLOPT_MAIL_RCPT (libcurl 7.20.0+) and CURLOPT_MAIL_AUTH (libcurl 7.25.0+). * Tests removed from source and binary distributions. * Documentation greatly improved. Quickstart guide added. * pycurl.Curl, pycurl.CurlMulti and pycurl.CurlShare are now classes rather than factory functions. Previously, the classes were "hidden" (they were accessible as e.g. type(pycurl.Curl()), but could not be instantiated, nor could class methods be obtained from the classes. Please see this mailing list post for further information: http://curl.haxx.se/mail/curlpython-2014-06/0004.html * When passing a file-like object to READDATA option, PycURL was mistakenly looking for write method on this object. Now read method is looked up, as would be expected. * Python 3.4 is now officially supported. * Windows packages now build libcurl against zlib. * CherryPy is no longer required for the test suite, ssl module from the Python standard library is used instead. * Fixed a reference leak of SOCKET and TIMER callbacks on CurlMulti instances, thanks to Ben Darnell. * Fixed build against openssl on cygwin, where pycurl needs to link against libcrypto rather than libssl. * Added CURLOPT_SSH_KNOWNHOSTS (libcurl 7.19.6+). * Added CURLE_FTP_ACCEPT_FAILED (libcurl 7.24.0+). * Mon May 26 2014 toddrme2178@gmail.com - Removed part of patch that breaks now necessary things: pycurl-no-runtime-curlvercheck.patch - Specify ssl type since it is not automatically detected. * Wed May 21 2014 toddrme2178@gmail.com - Removed patch specific to python3-pycurl: pycurl-python3.patch - Rebase patch: pycurl-no-runtime-curlvercheck.patch * Tue May 20 2014 toddrme2178@gmail.com - Update to version 7.19.3.1 * Added --avoid-stdio setup.py option to avoid passing FILE pointers from Python to libcurl. Applies to Python 2 only. * Added CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS multi options (patch by Jakob Truelsen). * SSL detection logic changed to consult `curl-config --static-libs` even if `curl-config --libs` succeeded. This should achieve pre-7.19.3 behavior with respect to automatic SSL detection (patch by Andjelko Horvat). - Update to version 7.19.3 * Added CURLOPT_NOPROXY. * Added CURLINFO_LOCAL_PORT, CURLINFO_PRIMARY_PORT and CURLINFO_LOCAL_IP (patch by Adam Jacob Muller). * When running on Python 2.x, for compatibility with Python 3.x, Unicode strings containing ASCII code points only are now accepted in setopt() calls. * PycURL now requires that compile time SSL backend used by libcurl is the same as the one used at runtime. setup.py supports - -with-ssl, --with-gnutls and --with-nss options like libcurl does, to specify which backend libcurl uses. On some systems PycURL can automatically figure out libcurl's backend. If the backend is not one for which PycURL provides crypto locks (i.e., any of the other backends supported by libcurl), no runtime SSL backend check is performed. * Default PycURL user agent string is now built at runtime, and will include the user agent string of libcurl loaded at runtime rather than the one present at compile time. * PycURL will now use WSAduplicateSocket rather than dup on Windows to duplicate sockets obtained from OPENSOCKETFUNCTION. Using dup may have caused crashes, OPENSOCKETFUNCTION should now be usable on Windows. * A new script, winbuild.py, was added to build PycURL on Windows against Python 2.6, 2.7, 3.2 and 3.3. * Added CURL_LOCK_DATA_SSL_SESSION (patch by Tom Pierce). * Added E_OPERATION_TIMEDOUT (patch by Romuald Brunet). * setup.py now handles --help argument and will print PycURL-specific configuration options in addition to distutils help. * Windows build configuration has been redone: PYCURL_USE_LIBCURL_DLL #define is gone, use --use-libcurl-dll argument to setup.py to build against a libcurl DLL. CURL_STATICLIB is now #defined only when --use-libcurl-dll is not given to setup.py, and PycURL is built against libcurl statically. - -libcurl-lib-name option can be used to override libcurl import library name. * Added CURLAUTH_DIGEST_IE as pycurl.HTTPAUTH_DIGEST_IE. * Added CURLOPT_POSTREDIR option and CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303 and CURL_REDIR_POST_ALL constants. CURL_REDIR_POST_303 requires libcurl 7.26.0 or higher, all others require libcurl 7.19.1 or higher. * PycURL now supports Python 3.1 through 3.3. Python 3.0 might work but it appears to ship with broken distutils, making virtualenv not function on it. * PycURL multi objects now have the multi constants defined on them. Previously the constants were only available on pycurl module. The new behavior matches that of curl and share objects. * PycURL share objects can now be closed via the close() method. * PycURL will no longer call `curl-config --static-libs` if `curl-config --libs` succeeds and returns output. Systems on which neither `curl-config --libs` nor `curl-config --static-libs` do the right thing should provide a `curl-config` wrapper that is sane. * Added CURLFORM_BUFFER and CURLFORM_BUFFERPTR. * pycurl.version and user agent string now include both PycURL version and libcurl version as separate items. * Added CURLOPT_DNS_SERVERS. * PycURL can now be dynamically linked against libcurl on Windows if PYCURL_USE_LIBCURL_DLL is #defined during compilation. * Breaking change: opensocket callback now takes an additional (address, port) tuple argument. Existing callbacks will need to be modified to accept this new argument. https://github.com/pycurl/pycurl/pull/18 - Update to version 7.19.0.3 * Re-release of 7.19.0.2 with minor changes to build Windows packages due to botched 7.19.0.2 files on PyPi. http://curl.haxx.se/mail/curlpython-2013-12/0021.html - Update to version 7.19.0.2 [requires libcurl-7.19.0 or better] - 2013-10-08 * Fixed a bug in a commit made in 2008 but not released until 7.19.0.1 which caused CURLOPT_POSTFIELDS to not correctly increment reference count of the object being given as its argument, despite libcurl not copying the data provided by said object. * Added support for libcurl pause/unpause functionality, via curl_easy_pause call and returning READFUNC_PAUSE from read callback function. - Update to version 7.19.0.1 [requires libcurl-7.19.0 or better] - 2013-09-23 * Test matrix tool added to test against all supported Python and libcurl versions. * Python 2.4 is now the minimum required version. * Source code, bugs and patches are now kept on GitHub. * Added CURLINFO_CERTINFO and CURLOPT_CERTINFO. * Added CURLOPT_RESOLVE. * PycURL can now be used with Python binaries without thread support. * gcrypt is no longer initialized when a newer version of gnutls is used. * Marked NSS as supported. * Fixed relative URL request logic. * Fixed a memory leak in util_curl_init. * Added CURLOPT_USERNAME and CURLOPT_PASSWORD. * Fixed handling of big timeout values. * Added GLOBAL_ACK_EINTR. * setopt(..., None) can be used as unsetopt(). * CURLOPT_RANGE can now be unset. * Write callback can return -1 to signal user abort. * Reorganized tests into an automated test suite. * Added CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA. * Cleaned up website. * Fix pycurl.reset() (patch by ). * Fix install routine in setup.py where certain platforms (Solaris, Mac OSX, etc) would search for a static copy of libcurl (dbp). * Fixed build on OpenSolaris 0906 and other platforms on which curl-config does not have a --static-libs option. * No longer keep string options copies in the Curl Python objects, since string options are now managed by libcurl. - Add additional dependencies - Remove no longer necessary patch: * pycurl-7.18.1-nostaticlibs.patch * Fri Aug 30 2013 crrodriguez@opensuse.org - remove runtime curl version check and __DATE__ __TIME__ usage (pycurl-no-runtime-curlvercheck.patch) * Fri Apr 5 2013 idonmez@suse.com - Add Source URL, see https://en.opensuse.org/SourceUrls * Sat Apr 28 2012 highwaystar.ru@gmail.com - added python3 package - spec file slighly cleaned (old buildroot macro replaced) * Thu Jan 12 2012 coolo@suse.com - change license to be in spdx.org format * Tue Sep 20 2011 saschpe@suse.de - Renamed package to 'python-pycurl' to match upstream name - Removed authors from description * Wed Feb 10 2010 jfunk@funktronics.ca - Update to 7.19.0: * Added CURLFILE, ADDRESS_SCOPE and ISSUERCERT options, as well as the APPCONNECT_TIME info. * Added PRIMARY_IP info (patch by Yuhui H ). * Added support for curl_easy_reset through a new 'reset' method on curl objects (patch by Nick Pilon ). * Added support for OPENSOCKET callbacks. See 'tests/test_opensocket.py' for example usage (patch by Thomas Hunger ). - Version 7.18.2: * Added REDIRECT_URL info and M_MAXCONNECTS option (patch by Yuhui H ). * Added socket_action() method to CurlMulti objects. See 'tests/test_multi_socket_select.py' for example usage (patch by Yuhui H ). * Added AUTOREFERER option. * Allow resetting some list operations (HTTPHEADER, QUOTE, POSTQUOTE, PREQUOTE) by passing an empty list to setopt (patch by Jim Patterson). - Split off doc subpackage * Fri Apr 25 2008 jfunk@funktronics.ca - Update to 7.18.1: * Added POST301, SSH_HOST_PUBLIC_KEY_MD5, COPYPOSTFIELDS and PROXY_TRANSFER_MODE options. * Check for static libs in setup.py to better detect whether libcurl was linked with OpenSSL or GNUTLS. * PycURL is now dual licensed under the LGPL and a license similar to the cURL license (an MIT/X derivate). - Version 7.16.4: * Allow any callable object as the callback function. This change comes handy when you would like to use objects which are callable but are not functions or methods, for example those objects created by the functions in the functools module (patch by Daniel Pena Arteaga ). * Added NEW_DIRECTORY_PERMS and NEW_FILE_PERMS options. - Version 7.16.2.1: * Added IOCMD_NOP and IOCMD_RESTARTREAD for ioctl callback handling (patch by Mark Eichin). * Use Py_ssize_t where appropriate for Python 2.5 and 64-bit compatibility. This fixes the problem reported by Aaron Hill, where the exception "pycurl.error: (2, '')" is thrown when calling setopt(pycurl.POSTFIELDS,...) on 64-bit platforms. - Version 7.16.2: * Added options HTTP_TRANSFER_DECODING, HTTP_CONTENT_DECODING, TIMEOUT_MS, CONNECTTIMEOUT_MS from libcurl 7.16.2. * Right-strip URLs read from files in the test scripts to avoid sending requests with '\n' at the end. - Version 7.16.1: * Added constants for all libcurl (error) return codes. They are named the same as the macro constants in curl.h but prefixed with E_ instead of CURLE. Return codes for the multi API are prefixed with M_ instead of CURLM. * Added CURLOPT_FTP_SSL_CCC, CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPT_SSH_AUTH_TYPES. * Removed CLOSEPOLICY and friends since this option is now deprecated in libcurl. * Set the _use_datetime attribute on the CURLTransport class to unbreak xmlrpc_curl.py on Python 2.5. - Version 7.16.0 [no public release]: * Added CURLOPT_SSL_SESSIONID_CACHE. * Removed SOURCE_* options since they are no longer supported by libcurl. * Mon Oct 2 2006 cthiel@suse.de - fix build on older distributions * Sun Oct 1 2006 cthiel@suse.de - update to version 7.15.5.1 * Added test for basic ftp usage (tests/test_ftp.py). * Fix broken ssl mutex lock funcction when using GNU TLS * Thu Sep 21 2006 cthiel@suse.de - fix build with python 2.5 * Mon Aug 14 2006 cthiel@suse.de - update to version 7.15.5 * Added CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_MAX_SEND_SPEED_LARGE, and CURLOPT_MAX_RECV_SPEED_LARGE. - requires curl >= 7.15.5 * Sat Aug 5 2006 cthiel@suse.de - initial package (version 7.15.4.2)