Accepting request 507839 from devel:languages:python
1 OBS-URL: https://build.opensuse.org/request/show/507839 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-requests?expand=0&rev=43
This commit is contained in:
commit
ed0ab381ed
@ -1,29 +0,0 @@
|
||||
Requests is a tricky package.
|
||||
|
||||
The unbundling of urllib3 is unsupported by upstream; AFAICT, mostly because
|
||||
people are being unreasonable and *third-party packages* expect the bundled
|
||||
urllib3 to exist. And requests upstream wants to support that usecase.
|
||||
|
||||
Therefore, extra care must be taken with the unbundling.
|
||||
|
||||
First, upstream also recognizes that we distributors will unbundle, and
|
||||
actually include a helpful shim in requests/packages/__init__.py. This is to
|
||||
make sure that importing `requests.packages.urllib3` works even if it is
|
||||
unbundled, and also that you will get the identical import (unlike if we
|
||||
installed symlinks, in which case Python would consider `r.p.urrlib3` and
|
||||
`urllib3` to be different packages. See the file __init__.py for more
|
||||
information.
|
||||
|
||||
We want to keep the shim, so we must install requests/packages/__init__.py
|
||||
even though we don't install the subdirectories.
|
||||
|
||||
Second, it is our job to set requirements in the egg-info properly, so that
|
||||
users of virtualenvs get the right thing in certain unusual configurations.
|
||||
|
||||
Third, requests are at times sensitive to version of urllib3. Historically,
|
||||
requests even bundled pre-release versions. This will probably not happen
|
||||
again, but it does mean that we must express requirements for a certain
|
||||
version of urllib3. I have taken some pains to make the build fail if the
|
||||
right version of urllib3 is not present. Make sure that urllib3 is updated
|
||||
first, and run `set_urllib3_version.sh` to update the definition in the spec
|
||||
file.
|
@ -1,60 +0,0 @@
|
||||
Index: requests-2.12.4/MANIFEST.in
|
||||
===================================================================
|
||||
--- requests-2.12.4.orig/MANIFEST.in
|
||||
+++ requests-2.12.4/MANIFEST.in
|
||||
@@ -1 +1 @@
|
||||
-include README.rst LICENSE NOTICE HISTORY.rst test_requests.py requirements.txt requests/cacert.pem
|
||||
+include README.rst LICENSE NOTICE HISTORY.rst test_requests.py requirements.txt
|
||||
Index: requests-2.12.4/requests/adapters.py
|
||||
===================================================================
|
||||
--- requests-2.12.4.orig/requests/adapters.py
|
||||
+++ requests-2.12.4/requests/adapters.py
|
||||
@@ -213,15 +213,13 @@ class HTTPAdapter(BaseAdapter):
|
||||
if verify is not True:
|
||||
cert_loc = verify
|
||||
|
||||
- if not cert_loc:
|
||||
- cert_loc = DEFAULT_CA_BUNDLE_PATH
|
||||
-
|
||||
- if not cert_loc:
|
||||
- raise Exception("Could not find a suitable SSL CA certificate bundle.")
|
||||
-
|
||||
conn.cert_reqs = 'CERT_REQUIRED'
|
||||
|
||||
- if not os.path.isdir(cert_loc):
|
||||
+ if cert_loc is None:
|
||||
+ # use default context
|
||||
+ conn.ca_certs = None
|
||||
+ conn.ca_cert_dir = None
|
||||
+ elif not os.path.isdir(cert_loc):
|
||||
conn.ca_certs = cert_loc
|
||||
else:
|
||||
conn.ca_cert_dir = cert_loc
|
||||
Index: requests-2.12.4/requests/certs.py
|
||||
===================================================================
|
||||
--- requests-2.12.4.orig/requests/certs.py
|
||||
+++ requests-2.12.4/requests/certs.py
|
||||
@@ -18,8 +18,9 @@ try:
|
||||
except ImportError:
|
||||
def where():
|
||||
"""Return the preferred certificate bundle."""
|
||||
- # vendored bundle inside Requests
|
||||
- return os.path.join(os.path.dirname(__file__), 'cacert.pem')
|
||||
+ # in openSUSE we rely on ca-certificates instead of
|
||||
+ # having an another bundle
|
||||
+ return '/etc/ssl/ca-bundle.pem'
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(where())
|
||||
diff -rupN requests-2.10.0.orig/setup.py requests-2.10.0/setup.py
|
||||
--- requests-2.10.0.orig/setup.py 2016-04-29 18:03:18.000000000 -0400
|
||||
+++ requests-2.10.0/setup.py 2016-06-03 01:17:13.549030517 -0400
|
||||
@@ -68,7 +68,7 @@ setup(
|
||||
author_email='me@kennethreitz.com',
|
||||
url='http://python-requests.org',
|
||||
packages=packages,
|
||||
- package_data={'': ['LICENSE', 'NOTICE'], 'requests': ['*.pem']},
|
||||
+ package_data={'': ['LICENSE', 'NOTICE']},
|
||||
package_dir={'requests': 'requests'},
|
||||
include_package_data=True,
|
||||
install_requires=requires,
|
@ -1,3 +1,92 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 3 11:36:40 UTC 2017 - tbechtold@suse.com
|
||||
|
||||
update to version v2.18.1
|
||||
* 2.17.1
|
||||
* Fix a typo: verison -> version
|
||||
* fix
|
||||
* Prepare v2.18.0
|
||||
* Update requirements.txt
|
||||
* cleanup models.py
|
||||
* Preserve identity of unbundled deps
|
||||
* ignore undefined names in flake8
|
||||
* flake8 ignore lambda expressions
|
||||
* Add the pytest .cache/ directory to .gitignore
|
||||
* docutils
|
||||
* try junit
|
||||
* new installation location
|
||||
* cleanup utils.py
|
||||
* flake8report.txt
|
||||
* empty commit
|
||||
* no more pipenv
|
||||
* Begin dev section of README
|
||||
* Remove exec permission from files that shouldn't have it
|
||||
* change development philosophy docs to reflect reality
|
||||
* fix manifest file
|
||||
* only flake8 the right directory
|
||||
* update development documentation
|
||||
* Remove session redirect cache
|
||||
* no piping to a file
|
||||
* Catch error if multiprocessing is not available or is unable to determine the number of CPUs
|
||||
* todo
|
||||
* cleanup sessions.py
|
||||
* typo
|
||||
* number of cores for travis
|
||||
* ignore import statements for flake8
|
||||
* Update README.rst
|
||||
* better ci file
|
||||
* bunk change
|
||||
* that doesn't work on windows
|
||||
* improve development instructions
|
||||
* Fix a typo: paramters -> parameters
|
||||
* Adds changelog entry for #4134
|
||||
* ignore line continuations for flake8
|
||||
* Allow Requests.Response to be used as a context manager
|
||||
* Fix requests.packages not having package attributes
|
||||
* remove note about cacerts.pem
|
||||
* v2.17.3
|
||||
* improve install documentation syntax
|
||||
* improve installation instructions
|
||||
* flake8: import statement improvements
|
||||
* fix spaces in api.py
|
||||
* v2.18.1
|
||||
* skip for now
|
||||
* v2.17.2
|
||||
* fix flake8 for EOF in __init__.py
|
||||
* improve flake8 help.py
|
||||
* Prepare for next release cycle
|
||||
* try this travis file
|
||||
* remove "are you crazy?" section
|
||||
* fix sidebars
|
||||
* Update index.rst
|
||||
* fix empty lines for flake8
|
||||
* convert version compatibility checks to warning
|
||||
* fix github stars
|
||||
* v2.17.1
|
||||
* improve line continuations for flake8
|
||||
* attempt new ads
|
||||
* speed up appveyor
|
||||
* v2.17.0
|
||||
* improve installation docs
|
||||
* fix flake8 indent error
|
||||
* Adds to AUTHORS
|
||||
* Clearer makefile for building README
|
||||
* flake8
|
||||
* Fixes error swallowing in set_environ
|
||||
* cleanup help.py (flake8)
|
||||
* improve install docs
|
||||
* new requests namespace
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 10 08:40:50 UTC 2017 - dmueller@suse.com
|
||||
|
||||
- update to 2.16.5:
|
||||
* unvendored bundled libraries
|
||||
* for more changes, see https://pypi.python.org/pypi/requests
|
||||
|
||||
- drop no-default-cacert.patch: this is now in python-certifi
|
||||
- drop requests-do-not-use-bundle.patch: obsolete
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 5 22:43:27 UTC 2017 - jengelh@inai.de
|
||||
|
||||
|
@ -16,34 +16,27 @@
|
||||
#
|
||||
|
||||
|
||||
%define urllib3_version 1.20
|
||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||
Name: python-requests
|
||||
Version: 2.13.0
|
||||
Version: 2.18.1
|
||||
Release: 0
|
||||
Summary: Awesome Python HTTP Library That's Actually Usable
|
||||
License: Apache-2.0
|
||||
Group: Development/Languages/Python
|
||||
Url: http://python-requests.org/
|
||||
#Source: https://files.pythonhosted.org/packages/source/r/requests/requests-%{version}.tar.gz
|
||||
Source: https://github.com/kennethreitz/requests/archive/v%{version}.tar.gz
|
||||
Source100: PACKAGING_NOTES
|
||||
Source101: set_urllib3_version.sh
|
||||
# PATCH-FIX-OPENSUSE no-default-cacert.patch -- Completely ignore the internal CA bundle.
|
||||
Patch0: no-default-cacert.patch
|
||||
# PATCH-FIX-OPENSUSE requests-do-not-use-bundle.patch -- Use system libraries instead of bundled ones.
|
||||
Patch1: requests-do-not-use-bundle.patch
|
||||
Source: https://files.pythonhosted.org/packages/source/r/requests/requests-%{version}.tar.gz
|
||||
BuildRequires: %{python_module certifi}
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module py}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module urllib3 >= %urllib3_version}
|
||||
BuildRequires: %{python_module urllib3 >= 1.21.1}
|
||||
BuildRequires: ca-certificates
|
||||
BuildRequires: python
|
||||
BuildRequires: python-rpm-macros
|
||||
# SECTION test requirements
|
||||
BuildRequires: %{python_module PySocks >= 1.5.6}
|
||||
BuildRequires: %{python_module chardet}
|
||||
BuildRequires: %{python_module idna >= 2.2}
|
||||
BuildRequires: %{python_module chardet >= 3.0.2}
|
||||
BuildRequires: %{python_module idna >= 2.5}
|
||||
BuildRequires: %{python_module pytest-httpbin}
|
||||
BuildRequires: %{python_module pytest-mock}
|
||||
BuildRequires: %{python_module pytest}
|
||||
@ -55,10 +48,11 @@ Recommends: ca-certificates-mozilla
|
||||
Recommends: python-pyOpenSSL >= 0.14
|
||||
Recommends: python-cryptography >= 1.3.4
|
||||
Recommends: python-PySocks >= 1.5.6
|
||||
Requires: python-chardet
|
||||
Requires: python-idna >= 2.2
|
||||
Requires: python-certifi >= 2017.4.17
|
||||
Requires: python-chardet >= 3.0.2
|
||||
Requires: python-idna >= 2.5
|
||||
Requires: python-py
|
||||
Requires: python-urllib3 >= %urllib3_version
|
||||
Requires: python-urllib3 >= 1.21.1
|
||||
BuildArch: noarch
|
||||
|
||||
%python_subpackages
|
||||
@ -83,13 +77,7 @@ Features of Requests:
|
||||
|
||||
%prep
|
||||
%setup -q -n requests-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
rm -f requests/cacert.pem
|
||||
|
||||
# fill out required urllib3 version
|
||||
sed -i s/#URLLIB3VERSION#/%{urllib3_version}/ setup.py
|
||||
echo "urllib3 >= %{urllib3_version}" >> requirements.txt
|
||||
# drop shebang from certs.py
|
||||
sed -i '1s/^#!.*$//' requests/certs.py
|
||||
|
||||
@ -102,24 +90,13 @@ sed -i '1s/^#!.*$//' requests/certs.py
|
||||
test ! -e %{buildroot}%{python3_sitelib}/requests/packages/urllib3
|
||||
|
||||
%check
|
||||
# first check that we have a good version of urllib3
|
||||
# DO NOT DISABLE THIS TEST unless you know what you are doing
|
||||
# see PACKAGING_NOTES for details
|
||||
python3 <<END
|
||||
import sys, pkg_resources
|
||||
from requests.packages.urllib3 import __version__
|
||||
required = "urllib3 >= {}".format(__version__)
|
||||
dist = pkg_resources.get_distribution(required)
|
||||
if dist is None or not dist.location.startswith("%{_prefix}"):
|
||||
sys.exit(1)
|
||||
END
|
||||
|
||||
touch requirements.txt
|
||||
# exclude tests connecting to TARPIT
|
||||
%python_exec -m pytest tests -k "not (TestTimeout and connect)"
|
||||
|
||||
%files %{python_files}
|
||||
%defattr(-,root,root)
|
||||
%doc HISTORY.rst LICENSE NOTICE README.rst
|
||||
%doc HISTORY.rst LICENSE README.rst
|
||||
%{python_sitelib}/requests/
|
||||
%{python_sitelib}/requests-*
|
||||
|
||||
|
3
requests-2.18.1.tar.gz
Normal file
3
requests-2.18.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c6f3bdf4a4323ac7b45d01e04a6f6c20e32a052cd04de81e05103abc049ad9b9
|
||||
size 124229
|
@ -1,32 +0,0 @@
|
||||
Index: requests-2.13.0/setup.py
|
||||
===================================================================
|
||||
--- requests-2.13.0.orig/setup.py
|
||||
+++ requests-2.13.0/setup.py
|
||||
@@ -36,17 +36,9 @@ if sys.argv[-1] == 'publish':
|
||||
packages = [
|
||||
'requests',
|
||||
'requests.packages',
|
||||
- 'requests.packages.chardet',
|
||||
- 'requests.packages.idna',
|
||||
- 'requests.packages.urllib3',
|
||||
- 'requests.packages.urllib3.packages',
|
||||
- 'requests.packages.urllib3.contrib',
|
||||
- 'requests.packages.urllib3.util',
|
||||
- 'requests.packages.urllib3.packages.ssl_match_hostname',
|
||||
- 'requests.packages.urllib3.packages.backports',
|
||||
]
|
||||
|
||||
-requires = []
|
||||
+requires = ['chardet', 'idna', 'urllib3 >= #URLLIB3VERSION#']
|
||||
test_requirements = ['pytest>=2.8.0', 'pytest-httpbin==0.0.7', 'pytest-cov', 'pytest-mock']
|
||||
|
||||
with open('requests/__init__.py', 'r') as fd:
|
||||
@@ -72,7 +64,7 @@ setup(
|
||||
packages=packages,
|
||||
package_data={'': ['LICENSE', 'NOTICE']},
|
||||
package_dir={'requests': 'requests'},
|
||||
- include_package_data=True,
|
||||
+ include_package_data=False,
|
||||
install_requires=requires,
|
||||
license='Apache 2.0',
|
||||
zip_safe=False,
|
@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
wd=$PWD
|
||||
tmpdir=`mktemp -d`
|
||||
cd $tmpdir
|
||||
tar xzf $wd/requests-*.tar.gz
|
||||
cd requests-*
|
||||
version=`python3 -c 'from requests.packages.urllib3 import __version__; print(__version__, end="")'`
|
||||
cd ../..
|
||||
rm -rf $tmpdir
|
||||
cd $wd
|
||||
sed -i 's/%define urllib3_version .*$/%define urllib3_version '"$version"'/' python-requests.spec
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:48fd188aaa388b4193bf7b917cf861a00eafacad651148475bc65ffaef445627
|
||||
size 3341123
|
Loading…
Reference in New Issue
Block a user