diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 100 |
1 files changed, 66 insertions, 34 deletions
@@ -4,30 +4,42 @@ pkgname='python2-requests' _name="${pkgname#python2-}" -pkgver=2.27.1 -pkgrel=4 +_commit='fa1b0a367abc8488542f7ce7c02a3614ad8aa09d' +pkgver=2.27.1.r5.gfa1b0a36 +pkgrel=1 pkgdesc='HTTP for Humans (legacy Python 2 version)' arch=('any') url="https://pypi.org/project/${_name}/${pkgver}/" +_repourl="https://github.com/psf/${_name}" license=('Apache') makedepends=('python2-setuptools') -# checkdepends=( -# 'python2-pytest' -# 'python2-pytest-mock' -# 'python2-pytest-httpbin' -# 'python2-pytest-xdist' -# 'python2-pysocks' -# 'python2-trustme' -# ) -optdepends=('python2-pysocks: SOCKS proxy support') -_tarname="${_name}-${pkgver}" -source=("https://github.com/psf/${_name}/releases/download/v${pkgver}/${_tarname}.tar.gz" +_depends_that_are_checkdepends=( + 'ca-certificates-utils' + 'python2-chardet' + 'python2-idna' + 'python2-urllib3' +) +_checkdepends_needed=( + 'python2-flask' + 'python2-pytest-mock' + 'python2-pytest-httpbin' +# 'python2-pytest-xdist' # optional; enables parallel testing, but unavailable + 'python2-trustme' +) +optdepends=('python2-pysocks: SOCKS proxy support (deprecated)') +optdepends+=("${_checkdepends_needed[@]/%/: needed for check() during build}") +_tardirname="${_name}-${_commit}" +source=("python-${_name}-${pkgver}.tar.gz::${_repourl}/archive/${_commit}.tar.gz" 'certs.patch') -b2sums=('a7fed53998fa61b3d03abd254a0cee76450c5b60d76f80aa6b91f32dca1dae5d2c51987b3d3f2138d72c50790e35c36cb03eb5974554ac4eb1a902eff79b5bdd' +b2sums=('350b89ec150702b6b1ecb9faa3f20e79977620b828df20b625a422216ff33a040ab561ed07bb14663c5319802f7d37baafcb5752746faf702dd81b1dbb968fc7' 'b6a7c9796a8ffedebcdbf0d2f95c40b1bbfa0beb45a3c7d5b493a459c4516533992291c720cf02e291cdbbf554dd0bf25c1312f4be41e39acd586b41911ad5b0') +_checkinstalled() { + pacman --deptest $@ +} + prepare() { - cd "${_tarname}" + cd "${_tardirname}" echo 'Patching setup.py:' echo '- removing unnecessary upper version constraints' @@ -36,39 +48,59 @@ prepare() { -e '/certifi/d' \ -e '/charset_normalizer/d' \ -i 'setup.py' + echo echo "Patching certs.py: use Arch's default ca-certificates.crt" patch --verbose -p1 -i "${srcdir}/certs.patch" + echo - echo 'Changing hashbangs in *.py files to refer to python2' - sed -e '1s|#![ ]*/usr/bin/python.*|#!/usr/bin/python2|' \ - -e '1s|#![ ]*/usr/bin/env python.*|#!/usr/bin/env python2|' \ - -e '1s|#![ ]*/bin/env python.*|#!/usr/bin/env python2|' \ + echo "Changing hashbangs in *.py files to refer to 'python2'" + sed -e '1s|#![ ]*/[a-zA-Z0-9./_ ]*python.*|#!/usr/bin/env python2|' \ -i $(find . -name '*.py') } build() { - cd "${_tarname}" + cd "${_tardirname}" python2 setup.py build } -# check() { -# # Seems to be a problem about pytest-httpbin: -# # pytest-httpbin server hit an exception serving request: [SSL: HTTP_REQUEST] http request (_ssl.c:1129) -# # pytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1129) -# -# cd "${_tarname}" -# pytest tests --deselect tests/test_requests.py::TestRequests::test_pyopenssl_redirect -# } +check() { + ( _checkinstalled "${_checkdepends_needed[@]}" "${_depends_that_are_checkdepends[@]}" > /dev/null ) \ + || echo "Skipping testing: checkdepends not installed:"; \ + ( _checkinstalled "${_checkdepends_needed[@]}" "${_depends_that_are_checkdepends[@]}" ) || \ + return 0 + + # Seems to be a problem about pytest-httpbin: + # pytest-httpbin server hit an exception serving request: [SSL: HTTP_REQUEST] http request (_ssl.c:1129) + # pytest-httpbin server hit an exception serving request: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1129) + + cd "${_tardirname}" + ( + echo '-- Using LC_ALL=C.UTF-8 locale to ensure UTF-8 filesystem encoding is used in Python 2' + + ( _checkinstalled 'python2-pysocks' > /dev/null ) \ + || echo '-- Disabling tests for python2-pysocks: not installed'; \ + export _pytest_conditional_options=(-k="not test_use_proxy_from_environment") + echo + + export LC_ALL=C.UTF-8 + export PYTHONDONTWRITEBYTECODE=1 + export PYTHONPATH="${PWD}/build/lib:${PYTHONPATH}" + set -x + pytest2 tests \ + --verbose \ + --cache-clear \ + --deselect 'tests/test_requests.py::TestRequests::test_pyopenssl_redirect' \ + "${_pytest_conditional_options[@]}" + ) +} package() { depends=( - 'ca-certificates-utils' 'python2' - 'python2-chardet' - 'python2-idna' - 'python2-urllib3' + "${_depends_that_are_checkdepends[@]}" ) - cd "${_tarname}" - python2 setup.py install --skip-build --optimize=1 --root="${pkgdir}" + cd "${_tardirname}" + python2 setup.py install --root="${pkgdir}" --prefix='/usr' --optimize=1 --skip-build + install --verbose -Dm 644 'README.md' -t "${pkgdir}/usr/share/doc/${pkgname}" } |