%if 0%{?rhel} && 0%{?rhel} <= 7 %bcond_with python3 # Minimum nose version is 1.3.3, while EL7 has 1.3.0 %bcond_with tests %else %bcond_without python3 %bcond_without tests %endif %define __python /usr/bin/python2 %global pypi_name s3transfer %global bundled_lib_dir bundled # python-futures %global futures_version 3.0.3 %global futures_dir %{bundled_lib_dir}/futures # python-botocore %global botocore_version 1.23.46 %global botocore_dir %{bundled_lib_dir}/botocore # python-jmespath %global jmespath_version 0.9.0 %global jmespath_dir %{bundled_lib_dir}/jmespath # python-urllib3 %global urllib3_version 1.26.8 %global urllib3_dir %{bundled_lib_dir}/urllib3 Name: python-%{pypi_name} Version: 0.1.13 Release: 1%{?dist}.2 Summary: An Amazon S3 Transfer Manager License: ASL 2.0 URL: https://github.com/boto/s3transfer Source0: %{pypi_name}-%{version}.tar.gz Source1: https://pypi.python.org/packages/source/f/futures/futures-%{futures_version}.tar.gz Source2: https://pypi.io/packages/source/b/botocore/botocore-%{botocore_version}.tar.gz Source3: https://pypi.python.org/packages/source/j/jmespath/jmespath-%{jmespath_version}.tar.gz Source4: https://github.com/urllib3/urllib3/archive/%{urllib3_version}/urllib3-%{urllib3_version}.tar.gz Patch0: bundled-futures-botocore-jmespath.patch Patch1: python2-fixes.patch BuildArch: noarch BuildRequires: python-devel BuildRequires: python-setuptools Obsoletes: python2-%{pypi_name} <= %{version} %if %{with tests} BuildRequires: python-nose BuildRequires: python-mock BuildRequires: python-wheel BuildRequires: python-botocore BuildRequires: python-coverage BuildRequires: python-unittest2 %endif # tests # python-futures bundle #Requires: python-futures # python-botocore bundle #Requires: python-botocore # python-futures bundle Provides: bundled(python-futures) = %{futures_version} # python-botocore bundle Provides: bundled(python-botocore) = %{botocore_version} # python-jmespath bundle #Requires: python-jmespath >= 0.7.1 Provides: bundled(python-jmespath) = %{jmespath_version} Requires: python-dateutil >= 1.4 Requires: python-docutils >= 0.10 # python-urllib3 bundle Provides: bundled(python-urllib3) = %{urllib3_version} %description S3transfer is a Python library for managing Amazon S3 transfers. %if %{with python3} %package -n python3-%{pypi_name} Summary: An Amazon S3 Transfer Manager BuildRequires: python3-devel BuildRequires: python3-setuptools %if %{with tests} BuildRequires: python3-nose BuildRequires: python3-mock BuildRequires: python3-wheel BuildRequires: python3-botocore BuildRequires: python3-coverage BuildRequires: python3-unittest2 %endif # tests Requires: python3-botocore %{?python_provide:%python_provide python3-%{pypi_name}} %description -n python3-%{pypi_name} S3transfer is a Python library for managing Amazon S3 transfers. %endif # python3 %prep %setup -q -n %{pypi_name}-%{version} # Remove online tests (see https://github.com/boto/s3transfer/issues/8) rm -rf tests/integration # bundles mkdir -p %{bundled_lib_dir} # python-futures bundle tar -xzf %SOURCE1 -C %{bundled_lib_dir} mv %{bundled_lib_dir}/futures-%{futures_version} %{futures_dir} cp %{futures_dir}/LICENSE futures_LICENSE # python-botocore bundle tar -xzf %SOURCE2 -C %{bundled_lib_dir} mv %{bundled_lib_dir}/botocore-%{botocore_version} %{botocore_dir} cp %{botocore_dir}/LICENSE.txt botocore_LICENSE.txt cp %{botocore_dir}/README.rst botocore_README.rst # python-jmespath bundle tar -xzf %SOURCE3 -C %{bundled_lib_dir} mv %{bundled_lib_dir}/jmespath-%{jmespath_version} %{jmespath_dir} cp %{jmespath_dir}/LICENSE.txt jmespath_LICENSE.txt cp %{jmespath_dir}/README.rst jmespath_README.rst # python-urllib3 bundle tar -xzf %SOURCE4 -C %{bundled_lib_dir} mv %{bundled_lib_dir}/urllib3-%{urllib3_version} %{urllib3_dir} cp %{urllib3_dir}/LICENSE.txt urllib3_LICENSE.txt cp %{urllib3_dir}/README.rst urllib3_README.rst # append bundled-directory to search path %patch0 -p1 %patch1 -p1 pushd %{botocore_dir} rm -rf botocore.egg-info # Remove online tests rm -rf tests/integration popd pushd %{jmespath_dir} rm -rf jmespath.egg-info popd %build %py2_build %if %{with python3} %py3_build %endif # python3 # python-futures bundle pushd %{futures_dir} %{__python2} setup.py build popd # python-botocore bundle pushd %{botocore_dir} %{__python2} setup.py build popd # python-jmespath bundle pushd %{jmespath_dir} CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s" popd # python-urllib3 bundle pushd %{urllib3_dir} CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s" popd %install %py2_install %if %{with python3} %py3_install %endif # python3 # python-futures bundle pushd %{futures_dir} %{__python2} setup.py install -O1 --skip-build --root %{buildroot} --install-lib %{_usr}/lib/fence-agents/bundled popd # python-botocore bundle pushd %{botocore_dir} %{__python2} setup.py install -O1 --skip-build --root %{buildroot} --install-lib %{_usr}/lib/fence-agents/bundled popd # python-jmespath bundle pushd %{jmespath_dir} CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} install -O1 --skip-build --root %{buildroot} --install-lib %{_usr}/lib/fence-agents/bundled mv %{buildroot}/%{_bindir}/jp.py %{buildroot}/%{_bindir}/jp.py-%{python2_version} ln -sf %{_bindir}/jp.py-%{python2_version} %{buildroot}/%{_bindir}/jp.py-2 ln -sf %{_bindir}/jp.py-%{python2_version} %{buildroot}/%{_bindir}/jp.py popd # python-urllib3 bundle pushd %{urllib3_dir} %{__python2} setup.py install -O1 --skip-build --root %{buildroot} --install-lib %{_usr}/lib/fence-agents/bundled popd %if %{with tests} %check nosetests-%{python2_version} --with-coverage --cover-erase --cover-package s3transfer --with-xunit --cover-xml -v tests/unit/ tests/functional/ %if %{with python3} nosetests-%{python3_version} --with-coverage --cover-erase --cover-package s3transfer --with-xunit --cover-xml -v tests/unit/ tests/functional/ %endif # python3 %endif # tests %files -n python-%{pypi_name} %{!?_licensedir:%global license %doc} %doc README.rst botocore_README.rst jmespath_README.rst %license LICENSE.txt futures_LICENSE botocore_LICENSE.txt jmespath_LICENSE.txt %{python_sitelib}/%{pypi_name} %{python_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info # python-futures and python-botocore bundles %{_usr}/lib/fence-agents/bundled %exclude %{_bindir}/jp.py* %if %{with python3} %files -n python3-%{pypi_name} %doc README.rst %license LICENSE.txt %{python3_sitelib}/%{pypi_name} %{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info %endif # python3 %changelog * Tue Feb 22 2022 Oyvind Albrigtsen - 0.1.13-1.2 - Upgrade python-botocore to fix IMDSv2 support Resolves: rhbz#2050751 * Thu May 24 2018 Oyvind Albrigtsen - 0.1.13-1 - Fix "python2-s3transfer" from EPEL issue by adding it to Obsoletes - Rebase to v0.1.13 to fix missing "max_bandwidth" issue Resolves: rhbz#1576985 Resolves: rhbz#1578083 * Mon Feb 12 2018 Oyvind Albrigtsen - 0.1.10-8 - Bundle python-futures, python-botocore and python-jmespath Resolves: rhbz#1509441 * Thu Jul 27 2017 Fedora Release Engineering - 0.1.10-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Sat Feb 11 2017 Fedora Release Engineering - 0.1.10-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Wed Dec 28 2016 Fabio Alessandro Locati - 0.1.10-1 - Update to 0.1.10 * Mon Dec 19 2016 Miro HronĨok - 0.1.9-2 - Rebuild for Python 3.6 * Thu Oct 27 2016 Fabio Alessandro Locati - 0.1.9-1 - Update to 0.1.9 * Mon Oct 10 2016 Fabio Alessandro Locati - 0.1.7-1 - Uodate to 0.1.7 * Sun Oct 02 2016 Fabio Alessandro Locati - 0.1.5-1 - Update to 0.1.5 * Wed Sep 28 2016 Fabio Alessandro Locati - 0.1.4-1 - Update to 0.1.4 * Wed Sep 07 2016 Fabio Alessandro Locati - 0.1.3-1 - Update to 0.1.3 * Thu Aug 04 2016 Fabio Alessandro Locati - 0.1.1-1 - Update to 0.1.1 * Tue Aug 02 2016 Fabio Alessandro Locati - 0.1.0-1 - Update to 0.1.0 * Tue Jul 19 2016 Fedora Release Engineering - 0.0.1-4 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Wed Feb 24 2016 Fabio Alessandro Locati - 0.0.1-3 - Cleanup the spec a little bit - Remove patch * Tue Feb 23 2016 Fabio Alessandro Locati - 0.0.1-2 - Add patch to remove tests needing web connection * Tue Feb 23 2016 Fabio Alessandro Locati - 0.0.1-1 - Initial package.