#
# 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.19.5.1
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 <johansen at sun.com>).
  * 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 <eyecat at gmail.com>).
  * Added support for curl_easy_reset through a
    new 'reset' method on curl objects
    (patch by Nick Pilon <npilon at oreilly.com>).
  * Added support for OPENSOCKET callbacks.
    See 'tests/test_opensocket.py' for example
    usage (patch by Thomas Hunger <teh at camvine.com>).
- Version 7.18.2:
  * Added REDIRECT_URL info and M_MAXCONNECTS option
    (patch by Yuhui H <eyecat at gmail.com>).
  * Added socket_action() method to CurlMulti objects.
    See 'tests/test_multi_socket_select.py' for example
    usage (patch by Yuhui H <eyecat at gmail.com>).
  * 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 <dpena at ph.tum.de>).
  * 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)