diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..027511c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/boto3-1.4.6.tar.gz diff --git a/.python-boto3.metadata b/.python-boto3.metadata new file mode 100644 index 0000000..7e73f99 --- /dev/null +++ b/.python-boto3.metadata @@ -0,0 +1 @@ +13bf519908d0696039d8d9aaed74a01f38f37f72 SOURCES/boto3-1.4.6.tar.gz diff --git a/SOURCES/bundled-botocore-jmespath.patch b/SOURCES/bundled-botocore-jmespath.patch new file mode 100644 index 0000000..de38642 --- /dev/null +++ b/SOURCES/bundled-botocore-jmespath.patch @@ -0,0 +1,275 @@ +diff -uNr a/boto3/compat.py b/boto3/compat.py +--- a/boto3/compat.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/compat.py 2018-05-17 09:35:12.624144609 +0200 +@@ -15,6 +15,7 @@ + import errno + import socket + ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.vendored import six + + if six.PY3: +diff -uNr a/boto3/docs/action.py b/boto3/docs/action.py +--- a/boto3/docs/action.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/action.py 2018-05-17 09:35:12.624144609 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.model import OperationModel + from botocore.utils import get_service_module_name +diff -uNr a/boto3/docs/attr.py b/boto3/docs/attr.py +--- a/boto3/docs/attr.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/attr.py 2018-05-17 09:35:12.624144609 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.docs.params import ResponseParamsDocumenter + + from boto3.docs.utils import get_identifier_description +diff -uNr a/boto3/docs/base.py b/boto3/docs/base.py +--- a/boto3/docs/base.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/base.py 2018-05-17 09:35:12.624144609 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.compat import OrderedDict + + +diff -uNr a/boto3/docs/client.py b/boto3/docs/client.py +--- a/boto3/docs/client.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/client.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.docs.client import ClientDocumenter + + +diff -uNr a/boto3/docs/collection.py b/boto3/docs/collection.py +--- a/boto3/docs/collection.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/collection.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.docs.method import get_instance_public_methods + from botocore.docs.utils import DocumentedShape +diff -uNr a/boto3/docs/docstring.py b/boto3/docs/docstring.py +--- a/boto3/docs/docstring.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/docstring.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.docs.docstring import LazyLoadedDocstring + + from boto3.docs.action import document_action +diff -uNr a/boto3/docs/method.py b/boto3/docs/method.py +--- a/boto3/docs/method.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/method.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.docs.method import document_model_driven_method + + +diff -uNr a/boto3/docs/resource.py b/boto3/docs/resource.py +--- a/boto3/docs/resource.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/resource.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.docs.utils import get_official_service_name + +diff -uNr a/boto3/docs/service.py b/boto3/docs/service.py +--- a/boto3/docs/service.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/service.py 2018-05-17 09:35:12.625144591 +0200 +@@ -13,6 +13,8 @@ + import os + + import boto3 ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.exceptions import DataNotFoundError + from botocore.docs.service import ServiceDocumenter as BaseServiceDocumenter + from botocore.docs.bcdoc.restdoc import DocumentStructure +diff -uNr a/boto3/docs/subresource.py b/boto3/docs/subresource.py +--- a/boto3/docs/subresource.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/subresource.py 2018-05-17 09:35:12.625144591 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.utils import get_service_module_name + +diff -uNr a/boto3/docs/utils.py b/boto3/docs/utils.py +--- a/boto3/docs/utils.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/utils.py 2018-05-17 09:35:12.626144574 +0200 +@@ -12,6 +12,8 @@ + # language governing permissions and limitations under the License. + import inspect + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + import jmespath + + from botocore.compat import six +diff -uNr a/boto3/docs/waiter.py b/boto3/docs/waiter.py +--- a/boto3/docs/waiter.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/docs/waiter.py 2018-05-17 09:35:12.626144574 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.utils import get_service_module_name + from botocore.docs.method import document_model_driven_method +diff -uNr a/boto3/dynamodb/types.py b/boto3/dynamodb/types.py +--- a/boto3/dynamodb/types.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/dynamodb/types.py 2018-05-17 09:35:12.626144574 +0200 +@@ -14,6 +14,8 @@ + from decimal import Decimal, Context, Clamped + from decimal import Overflow, Inexact, Underflow, Rounded + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.compat import six + + +diff -uNr a/boto3/exceptions.py b/boto3/exceptions.py +--- a/boto3/exceptions.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/exceptions.py 2018-05-17 09:35:12.626144574 +0200 +@@ -12,6 +12,8 @@ + # language governing permissions and limitations under the License. + + # All exceptions in this class should subclass from Boto3Error. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + import botocore.exceptions + + +diff -uNr a/boto3/resources/action.py b/boto3/resources/action.py +--- a/boto3/resources/action.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/resources/action.py 2018-05-17 09:35:12.626144574 +0200 +@@ -13,6 +13,8 @@ + + import logging + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + + from .params import create_request_parameters +diff -uNr a/boto3/resources/collection.py b/boto3/resources/collection.py +--- a/boto3/resources/collection.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/resources/collection.py 2018-05-17 09:35:12.626144574 +0200 +@@ -14,6 +14,8 @@ + import copy + import logging + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + from botocore.utils import merge_dicts + +diff -uNr a/boto3/resources/model.py b/boto3/resources/model.py +--- a/boto3/resources/model.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/resources/model.py 2018-05-17 09:35:12.627144557 +0200 +@@ -25,6 +25,8 @@ + + import logging + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore import xform_name + + +diff -uNr a/boto3/resources/params.py b/boto3/resources/params.py +--- a/boto3/resources/params.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/resources/params.py 2018-05-17 09:35:12.627144557 +0200 +@@ -13,6 +13,8 @@ + + import re + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + import jmespath + from botocore import xform_name + +diff -uNr a/boto3/resources/response.py b/boto3/resources/response.py +--- a/boto3/resources/response.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/resources/response.py 2018-05-17 09:35:12.627144557 +0200 +@@ -11,6 +11,8 @@ + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + import jmespath + from botocore import xform_name + +diff -uNr a/boto3/s3/inject.py b/boto3/s3/inject.py +--- a/boto3/s3/inject.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/s3/inject.py 2018-05-17 09:35:12.627144557 +0200 +@@ -10,6 +10,8 @@ + # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + # ANY KIND, either express or implied. See the License for the specific + # language governing permissions and limitations under the License. ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.exceptions import ClientError + + from boto3.s3.transfer import create_transfer_manager +diff -uNr a/boto3/s3/transfer.py b/boto3/s3/transfer.py +--- a/boto3/s3/transfer.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/s3/transfer.py 2018-05-17 09:38:14.359063098 +0200 +@@ -122,6 +122,8 @@ + + + """ ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + from botocore.exceptions import ClientError + from botocore.compat import six + from s3transfer.exceptions import RetriesExceededError as \ +diff -uNr a/boto3/session.py b/boto3/session.py +--- a/boto3/session.py 2017-08-12 01:38:50.000000000 +0200 ++++ b/boto3/session.py 2018-05-17 09:35:12.627144557 +0200 +@@ -14,6 +14,8 @@ + import copy + import os + ++import sys ++sys.path.insert(0, '/usr/lib/fence-agents/bundled') + import botocore.session + from botocore.client import Config + from botocore.exceptions import DataNotFoundError, UnknownServiceError diff --git a/SPECS/python-boto3.spec b/SPECS/python-boto3.spec new file mode 100644 index 0000000..c2a5bb1 --- /dev/null +++ b/SPECS/python-boto3.spec @@ -0,0 +1,173 @@ +%if 0%{?rhel} && 0%{?rhel} <= 8 +%bcond_with python3 +%else +%bcond_without python3 +%endif + +%global _with_tests 0 + + +%global pypi_name boto3 + +Name: python-%{pypi_name} +Version: 1.4.6 +Release: 5%{?dist} +Summary: The AWS SDK for Python + +License: ASL 2.0 +URL: https://github.com/boto/boto3 +Source0: %{pypi_name}-%{version}.tar.gz +Patch0: bundled-botocore-jmespath.patch +# python-botocore bundled in python-s3transfer +#Requires: python-botocore >= 1.5.0 +# python-jmespath bundled in python-s3transfer +#Requires: python2-jmespath >= 0.7.1 +Requires: python-s3transfer >= 0.1.10 +BuildRequires: python-devel +BuildRequires: python-setuptools +# python-botocore bundled in python-s3transfer +#BuildRequires: python-botocore +#BuildRequires: python-s3transfer + +# Needed for tests +%if 0%{?_with_tests} +BuildRequires: python-nose +BuildRequires: python-mock +BuildRequires: python-wheel +%endif +BuildArch: noarch + +%description +Boto3 is the Amazon Web Services (AWS) Software Development +Kit (SDK) for Python, which allows Python developers to +write software that makes use of services like Amazon S3 +and Amazon EC2. + +%if %{with python3} +%package -n python3-%{pypi_name} +Summary: The AWS SDK for Python + +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-nose +BuildRequires: python3-mock +BuildRequires: python3-wheel +BuildRequires: python3-botocore +BuildRequires: python3-jmespath +BuildRequires: python3-s3transfer +Requires: python3-botocore >= 1.5.0 +Requires: python3-jmespath >= 0.7.1 +Requires: python3-s3transfer >= 0.1.10 +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +Boto3 is the Amazon Web Services (AWS) Software Development +Kit (SDK) for Python, which allows Python developers to +write software that makes use of services like Amazon S3 +and Amazon EC2. +%endif # with python3 + +%prep +%setup -q -n %{pypi_name}-%{version} +rm -rf %{pypi_name}.egg-info +# Remove online tests +rm -rf tests/integration + +# python-botocore and python-jmespath bundled in python-s3transfer +%patch0 -p1 + + +%build +%py2_build +%if %{with python3} +%py3_build +%endif # with python3 + +%install +%if %{with python3} +%py3_install +%endif # with python3 +%py2_install + +%check +%if 0%{?_with_tests} +%{__python2} setup.py test +%if %{with python3} +%{__python3} setup.py test +%endif # with python3 +%endif + +%files -n python-%{pypi_name} +%{!?_licensedir:%global license %doc} +%doc README.rst +%license LICENSE +%{python2_sitelib}/%{pypi_name} +%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info + +%if %{with python3} +%files -n python3-%{pypi_name} +%doc README.rst +%license LICENSE +%{python3_sitelib}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info +%endif # with python3 + +%changelog +* Tue May 22 2018 Oyvind Albrigtsen - 1.4.6-5 +- Fix missing "import sys" in s3/transfer.py + + Resolves: rhbz#1576981 + +* Mon Feb 12 2018 Oyvind Albrigtsen - 1.4.6-4 +- Append python-botocore and python-jmespath bundled directories to + search path where needed + + Resolves: rhbz#1509439 + +* Sun Aug 13 2017 Fabio Alessandro Locati 1.4.6-2 +- Update to 1.4.6 + +* Thu Jul 27 2017 Fedora Release Engineering - 1.4.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 20 2017 Fabio Alessandro Locati 1.4.4-1 +- Update to 1.4.4 + +* Wed Dec 28 2016 Fabio Alessandro Locati 1.4.3-1 +- Update to 1.4.3 + +* Mon Dec 19 2016 Miro HronĨok - 1.4.2-2 +- Rebuild for Python 3.6 + +* Sat Dec 03 2016 Fabio Alessandro Locati 1.4.2-1 +- Update to 1.4.2 + +* Mon Oct 10 2016 Fabio Alessandro Locati - 1.4.1-1 +- Update to 1.4.1 + +* Thu Aug 04 2016 Fabio Alessandro Locati - 1.4.0-1 +- New upstream release + +* Tue Jul 19 2016 Fedora Release Engineering - 1.3.1-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Sat May 28 2016 Fabio Alessandro Locati - 1.3.1-1 +- New upstream release + +* Tue Mar 29 2016 Fabio Alessandro Locati - 1.3.0-1 +- New upstream release + +* Fri Feb 19 2016 Fabio Alessandro Locati - 1.2.4-1 +- New upstream release + +* Thu Feb 11 2016 Fabio Alessandro Locati - 1.2.3-3 +- Fix python2- subpackage to require python-future + +* Thu Feb 04 2016 Fedora Release Engineering - 1.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Dec 29 2015 Fabio Alessandro Locati - 1.2.3-1 +- Initial package.