commit
36fc892796
@ -0,0 +1,8 @@
|
||||
SOURCES/SecretStorage-2.3.1.tar.gz
|
||||
SOURCES/adal-1.2.0.tar.gz
|
||||
SOURCES/azure-sdk-4.0.0.tar.gz
|
||||
SOURCES/certifi-2018.10.15.tar.gz
|
||||
SOURCES/isodate-0.5.4.tar.gz
|
||||
SOURCES/keyring-13.2.1.tar.gz
|
||||
SOURCES/msrest-0.6.2.tar.gz
|
||||
SOURCES/msrestazure-0.5.1.tar.gz
|
@ -0,0 +1,8 @@
|
||||
e255c82842e7c50cd9ff9942bafd647e59eb5459 SOURCES/SecretStorage-2.3.1.tar.gz
|
||||
1601d78ad0edf639c0716e8dc80bd8e9e67932ac SOURCES/adal-1.2.0.tar.gz
|
||||
1d01c4919c2e55cd7394c09a5233421aa290a913 SOURCES/azure-sdk-4.0.0.tar.gz
|
||||
73eb43fcb367b3d2bd346d99df89e911da7fee05 SOURCES/certifi-2018.10.15.tar.gz
|
||||
40ccf07a8e46284a79cfc4d41e151f71ae63f535 SOURCES/isodate-0.5.4.tar.gz
|
||||
0e35ea34961f9762de35bf62fcdfef65d44cfbe1 SOURCES/keyring-13.2.1.tar.gz
|
||||
d5fb55c3c6f7b61d166c530d7694bdb51503e644 SOURCES/msrest-0.6.2.tar.gz
|
||||
ab7f31d5c3c7264539660bab88778795de7b90ea SOURCES/msrestazure-0.5.1.tar.gz
|
@ -0,0 +1,15 @@
|
||||
diff -r -u certifi-2018.10.15.orig/certifi/core.py certifi-2018.10.15/certifi/core.py
|
||||
--- certifi-2018.10.15.orig/certifi/core.py 2018-01-18 15:27:24.000000000 -0500
|
||||
+++ certifi-2018.10.15/certifi/core.py 2018-12-13 11:08:30.834151536 -0500
|
||||
@@ -19,9 +19,7 @@
|
||||
|
||||
|
||||
def where():
|
||||
- f = os.path.dirname(__file__)
|
||||
-
|
||||
- return os.path.join(f, 'cacert.pem')
|
||||
+ return '/etc/pki/tls/certs/ca-bundle.crt'
|
||||
|
||||
|
||||
def old_where():
|
||||
Only in certifi-2018.10.15/certifi: core.py~
|
@ -0,0 +1,23 @@
|
||||
diff -up ./tests/test_mex.py.orig ./tests/test_mex.py
|
||||
--- ./tests/test_mex.py.orig 2018-10-19 00:29:42.000000000 +0200
|
||||
+++ ./tests/test_mex.py 2018-11-02 01:34:24.851553069 +0100
|
||||
@@ -25,6 +25,7 @@
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
import os
|
||||
+from distutils.version import LooseVersion
|
||||
import unittest
|
||||
import httpretty
|
||||
from tests import util
|
||||
@@ -52,7 +53,10 @@ class Test_Mex(unittest.TestCase):
|
||||
mex.discover()
|
||||
self.fail('No exception was thrown caused by failed request')
|
||||
except Exception as exp:
|
||||
- self.assertEqual(exp.args[0], 'Mex Get request returned http error: 500 and server response: HTTPretty :)')
|
||||
+ if LooseVersion(httpretty.__version__) >= LooseVersion("0.9.0"):
|
||||
+ self.assertEqual(exp.args[0], 'Mex Get request returned http error: 500 and server response: {"message": "HTTPretty :)"}')
|
||||
+ else:
|
||||
+ self.assertEqual(exp.args[0], 'Mex Get request returned http error: 500 and server response: HTTPretty :)')
|
||||
|
||||
@httpretty.activate
|
||||
def _happyPathTest(self, file_name, expectedUrl):
|
@ -0,0 +1,12 @@
|
||||
diff -up ./setup.py.orig ./setup.py
|
||||
--- ./setup.py.orig 2018-08-02 18:37:34.000000000 +0200
|
||||
+++ ./setup.py 2018-08-06 11:25:14.496926373 +0200
|
||||
@@ -27,7 +27,7 @@ nspkg_packages.sort(key = lambda x: len(
|
||||
meta_package = ['azure-mgmt', 'azure']
|
||||
|
||||
# So content packages are:
|
||||
-content_package = [p for p in packages if p not in meta_package+nspkg_packages]
|
||||
+content_package = [p for p in packages if p not in meta_package+['azure-sdk-tools']]
|
||||
# Move azure-common at the beginning
|
||||
content_package.remove("azure-common")
|
||||
content_package.insert(0, "azure-common")
|
@ -0,0 +1,41 @@
|
||||
diff -up ./msrest/serialization.py.orig ./msrest/serialization.py
|
||||
--- ./msrest/serialization.py.orig 2018-10-15 18:43:34.000000000 +0000
|
||||
+++ ./msrest/serialization.py 2018-11-02 00:23:20.092139671 +0000
|
||||
@@ -27,6 +27,7 @@
|
||||
from base64 import b64decode, b64encode
|
||||
import calendar
|
||||
import datetime
|
||||
+from distutils.version import LooseVersion, StrictVersion
|
||||
import decimal
|
||||
from enum import Enum
|
||||
import json
|
||||
@@ -37,6 +38,7 @@ try:
|
||||
from urllib import quote # type: ignore
|
||||
except ImportError:
|
||||
from urllib.parse import quote # type: ignore
|
||||
+import pkg_resources
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import isodate
|
||||
@@ -57,6 +59,7 @@ except NameError:
|
||||
basestring = str # type: ignore
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
+_ISODATE_VERSION = pkg_resources.get_distribution("isodate").version
|
||||
|
||||
try:
|
||||
_long_type = long # type: ignore
|
||||
@@ -1712,8 +1715,11 @@ class Deserializer(object):
|
||||
attr = attr.text
|
||||
if re.search(r"[^\W\d_]", attr, re.I + re.U):
|
||||
raise DeserializationError("Date must have only digits and -. Received: %s" % attr)
|
||||
- # This must NOT use defaultmonth/defaultday. Using None ensure this raises an exception.
|
||||
- return isodate.parse_date(attr, defaultmonth=None, defaultday=None)
|
||||
+ if LooseVersion(_ISODATE_VERSION) >= LooseVersion("0.6.0"):
|
||||
+ # This must NOT use defaultmonth/defaultday. Using None ensure this raises an exception.
|
||||
+ return isodate.parse_date(attr, defaultmonth=None, defaultday=None)
|
||||
+ else:
|
||||
+ return isodate.parse_date(attr)
|
||||
|
||||
@staticmethod
|
||||
def deserialize_rfc(attr):
|
@ -0,0 +1,44 @@
|
||||
diff -up ./setup.py.orig ./setup.py
|
||||
--- ./setup.py.orig 2018-10-15 20:43:34.000000000 +0200
|
||||
+++ ./setup.py 2018-11-01 15:56:18.995147704 +0100
|
||||
@@ -25,6 +25,20 @@
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
+import sys
|
||||
+
|
||||
+install_requires = [
|
||||
+ "requests>=2.16,<2.17",
|
||||
+ "requests_oauthlib>=0.5.0",
|
||||
+ "isodate>=0.6.0",
|
||||
+ "certifi>=2017.4.17"
|
||||
+]
|
||||
+if sys.version_info < (3, 4):
|
||||
+ install_requires.append("enum34>=1.0.4")
|
||||
+if sys.version_info < (3, 5):
|
||||
+ install_requires.append("typing")
|
||||
+else:
|
||||
+ install_requires += ["aiohttp>=3.0", "aiodns"]
|
||||
|
||||
setup(
|
||||
name='msrest',
|
||||
@@ -47,18 +61,5 @@ setup(
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
'Topic :: Software Development'],
|
||||
- install_requires=[
|
||||
- "requests~=2.16",
|
||||
- "requests_oauthlib>=0.5.0",
|
||||
- "isodate>=0.6.0",
|
||||
- "certifi>=2017.4.17",
|
||||
- ],
|
||||
- extras_require={
|
||||
- ":python_version<'3.4'": ['enum34>=1.0.4'],
|
||||
- ":python_version<'3.5'": ['typing'],
|
||||
- "async:python_version>='3.5'": [
|
||||
- 'aiohttp>=3.0',
|
||||
- 'aiodns'
|
||||
- ],
|
||||
- }
|
||||
+ install_requires=install_requires
|
||||
)
|
@ -0,0 +1,191 @@
|
||||
diff -up ./tests/asynctests/test_pipeline.py.orig ./tests/asynctests/test_pipeline.py
|
||||
--- ./tests/asynctests/test_pipeline.py.orig 2018-10-15 20:43:34.000000000 +0200
|
||||
+++ ./tests/asynctests/test_pipeline.py 2018-11-02 11:50:16.085392737 +0100
|
||||
@@ -75,54 +75,54 @@ async def test_sans_io_exception():
|
||||
await pipeline.run(req)
|
||||
|
||||
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_basic_aiohttp():
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_basic_aiohttp():
|
||||
|
||||
- request = ClientRequest("GET", "http://bing.com")
|
||||
- policies = [
|
||||
- UserAgentPolicy("myusergant")
|
||||
- ]
|
||||
- async with AsyncPipeline(policies) as pipeline:
|
||||
- response = await pipeline.run(request)
|
||||
-
|
||||
- assert pipeline._sender.driver._session.closed
|
||||
- assert response.http_response.status_code == 200
|
||||
-
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_basic_async_requests():
|
||||
-
|
||||
- request = ClientRequest("GET", "http://bing.com")
|
||||
- policies = [
|
||||
- UserAgentPolicy("myusergant")
|
||||
- ]
|
||||
- async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender()) as pipeline:
|
||||
- response = await pipeline.run(request)
|
||||
-
|
||||
- assert response.http_response.status_code == 200
|
||||
-
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_conf_async_requests():
|
||||
-
|
||||
- conf = Configuration("http://bing.com/")
|
||||
- request = ClientRequest("GET", "http://bing.com/")
|
||||
- policies = [
|
||||
- UserAgentPolicy("myusergant")
|
||||
- ]
|
||||
- async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender(AsyncRequestsHTTPSender(conf))) as pipeline:
|
||||
- response = await pipeline.run(request)
|
||||
-
|
||||
- assert response.http_response.status_code == 200
|
||||
-
|
||||
-def test_conf_async_trio_requests():
|
||||
-
|
||||
- async def do():
|
||||
- conf = Configuration("http://bing.com/")
|
||||
- request = ClientRequest("GET", "http://bing.com/")
|
||||
- policies = [
|
||||
- UserAgentPolicy("myusergant")
|
||||
- ]
|
||||
- async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender(AsyncTrioRequestsHTTPSender(conf))) as pipeline:
|
||||
- return await pipeline.run(request)
|
||||
+# request = ClientRequest("GET", "http://bing.com")
|
||||
+# policies = [
|
||||
+# UserAgentPolicy("myusergant")
|
||||
+# ]
|
||||
+# async with AsyncPipeline(policies) as pipeline:
|
||||
+# response = await pipeline.run(request)
|
||||
+
|
||||
+# assert pipeline._sender.driver._session.closed
|
||||
+# assert response.http_response.status_code == 200
|
||||
+
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_basic_async_requests():
|
||||
+
|
||||
+# request = ClientRequest("GET", "http://bing.com")
|
||||
+# policies = [
|
||||
+# UserAgentPolicy("myusergant")
|
||||
+# ]
|
||||
+# async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender()) as pipeline:
|
||||
+# response = await pipeline.run(request)
|
||||
+
|
||||
+# assert response.http_response.status_code == 200
|
||||
+
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_conf_async_requests():
|
||||
+
|
||||
+# conf = Configuration("http://bing.com/")
|
||||
+# request = ClientRequest("GET", "http://bing.com/")
|
||||
+# policies = [
|
||||
+# UserAgentPolicy("myusergant")
|
||||
+# ]
|
||||
+# async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender(AsyncRequestsHTTPSender(conf))) as pipeline:
|
||||
+# response = await pipeline.run(request)
|
||||
+
|
||||
+# assert response.http_response.status_code == 200
|
||||
+
|
||||
+# def test_conf_async_trio_requests():
|
||||
+
|
||||
+# async def do():
|
||||
+# conf = Configuration("http://bing.com/")
|
||||
+# request = ClientRequest("GET", "http://bing.com/")
|
||||
+# policies = [
|
||||
+# UserAgentPolicy("myusergant")
|
||||
+# ]
|
||||
+# async with AsyncPipeline(policies, AsyncPipelineRequestsHTTPSender(AsyncTrioRequestsHTTPSender(conf))) as pipeline:
|
||||
+# return await pipeline.run(request)
|
||||
|
||||
- response = trio.run(do)
|
||||
- assert response.http_response.status_code == 200
|
||||
\ No newline at end of file
|
||||
+# response = trio.run(do)
|
||||
+# assert response.http_response.status_code == 200
|
||||
diff -up ./tests/asynctests/test_universal_http.py.orig ./tests/asynctests/test_universal_http.py
|
||||
--- ./tests/asynctests/test_universal_http.py.orig 2018-10-15 20:43:34.000000000 +0200
|
||||
+++ ./tests/asynctests/test_universal_http.py 2018-11-02 11:48:24.360298265 +0100
|
||||
@@ -43,46 +43,46 @@ import trio
|
||||
import pytest
|
||||
|
||||
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_basic_aiohttp():
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_basic_aiohttp():
|
||||
|
||||
- request = ClientRequest("GET", "http://bing.com")
|
||||
- async with AioHTTPSender() as sender:
|
||||
- response = await sender.send(request)
|
||||
- assert response.body() is not None
|
||||
+# request = ClientRequest("GET", "http://bing.com")
|
||||
+# async with AioHTTPSender() as sender:
|
||||
+# response = await sender.send(request)
|
||||
+# assert response.body() is not None
|
||||
|
||||
- assert sender._session.closed
|
||||
- assert response.status_code == 200
|
||||
+# assert sender._session.closed
|
||||
+# assert response.status_code == 200
|
||||
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_basic_async_requests():
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_basic_async_requests():
|
||||
|
||||
- request = ClientRequest("GET", "http://bing.com")
|
||||
- async with AsyncBasicRequestsHTTPSender() as sender:
|
||||
- response = await sender.send(request)
|
||||
- assert response.body() is not None
|
||||
+# request = ClientRequest("GET", "http://bing.com")
|
||||
+# async with AsyncBasicRequestsHTTPSender() as sender:
|
||||
+# response = await sender.send(request)
|
||||
+# assert response.body() is not None
|
||||
|
||||
- assert response.status_code == 200
|
||||
+# assert response.status_code == 200
|
||||
|
||||
-@pytest.mark.asyncio
|
||||
-async def test_conf_async_requests():
|
||||
+# @pytest.mark.asyncio
|
||||
+# async def test_conf_async_requests():
|
||||
|
||||
- conf = Configuration("http://bing.com/")
|
||||
- request = ClientRequest("GET", "http://bing.com/")
|
||||
- async with AsyncRequestsHTTPSender(conf) as sender:
|
||||
- response = await sender.send(request)
|
||||
- assert response.body() is not None
|
||||
+# conf = Configuration("http://bing.com/")
|
||||
+# request = ClientRequest("GET", "http://bing.com/")
|
||||
+# async with AsyncRequestsHTTPSender(conf) as sender:
|
||||
+# response = await sender.send(request)
|
||||
+# assert response.body() is not None
|
||||
|
||||
- assert response.status_code == 200
|
||||
+# assert response.status_code == 200
|
||||
|
||||
-def test_conf_async_trio_requests():
|
||||
+# def test_conf_async_trio_requests():
|
||||
|
||||
- async def do():
|
||||
- conf = Configuration("http://bing.com/")
|
||||
- request = ClientRequest("GET", "http://bing.com/")
|
||||
- async with AsyncTrioRequestsHTTPSender(conf) as sender:
|
||||
- return await sender.send(request)
|
||||
- assert response.body() is not None
|
||||
+# async def do():
|
||||
+# conf = Configuration("http://bing.com/")
|
||||
+# request = ClientRequest("GET", "http://bing.com/")
|
||||
+# async with AsyncTrioRequestsHTTPSender(conf) as sender:
|
||||
+# return await sender.send(request)
|
||||
+# assert response.body() is not None
|
||||
|
||||
- response = trio.run(do)
|
||||
- assert response.status_code == 200
|
||||
\ No newline at end of file
|
||||
+# response = trio.run(do)
|
||||
+# assert response.status_code == 200
|
@ -0,0 +1,325 @@
|
||||
%global srcname azure-sdk
|
||||
%global common_description This project provides a set of Python packages that make it easy to access\
|
||||
Management (Virtual Machines, ...) or Runtime (ServiceBus using HTTP, Batch,\
|
||||
Monitor) components of Microsoft Azure Complete feature list of this repo and\
|
||||
where to find Python packages not in this repo can be found on our Azure SDK for\
|
||||
Python documentation.
|
||||
|
||||
# EL is missing recommonmark library to build documentation
|
||||
%global _with_doc 0%{?fedora}
|
||||
%global pydoc_prefix %{?rhel:python}%{?fedora:python%{python3_pkgversion}}
|
||||
%global sphinxbuild sphinx-build%{?fedora:-%{python3_version}}
|
||||
|
||||
%global azure_storage_min_version 1.0.0
|
||||
%global msrest_min_version 0.4.26
|
||||
%global msrestazure_min_version 0.5.0
|
||||
|
||||
# bundles
|
||||
%global bundled_lib_dir bundled
|
||||
# python3-certifi bundle
|
||||
%global certifi certifi
|
||||
%global certifi_version 2018.10.15
|
||||
%global certifi_dir %{bundled_lib_dir}/azure/%{certifi}
|
||||
# python3-isodate bundle
|
||||
%global isodate isodate
|
||||
%global isodate_version 0.5.4
|
||||
%global isodate_dir %{bundled_lib_dir}/azure/%{isodate}
|
||||
# python3-msrest bundle
|
||||
%global msrest msrest
|
||||
%global msrest_version 0.6.2
|
||||
%global msrest_dir %{bundled_lib_dir}/azure/%{msrest}
|
||||
# python3-adal bundle
|
||||
%global adal adal
|
||||
%global adal_version 1.2.0
|
||||
%global adal_dir %{bundled_lib_dir}/azure/%{adal}
|
||||
# python3-SecretStorage bundle
|
||||
%global secretstorage SecretStorage
|
||||
%global secretstorage_version 2.3.1
|
||||
%global secretstorage_dir %{bundled_lib_dir}/azure/%{secretstorage}
|
||||
# python3-keyring bundle
|
||||
%global keyring keyring
|
||||
%global keyring_version 13.2.1
|
||||
%global keyring_dir %{bundled_lib_dir}/azure/%{keyring}
|
||||
# python3-msrestazure bundle
|
||||
%global msrestazure msrestazure
|
||||
%global msrestazure_version 0.5.1
|
||||
%global msrestazure_dir %{bundled_lib_dir}/azure/%{msrestazure}
|
||||
|
||||
Name: python3-%{srcname}
|
||||
Version: 4.0.0
|
||||
Release: 9%{?dist}
|
||||
Summary: Microsoft Azure SDK for Python
|
||||
|
||||
# All packages are licensed under the MIT license, except:
|
||||
# - azure-servicebus
|
||||
# - azure-servicemanagement-legacy
|
||||
License: MIT and ASL 2.0 and MPLv2.0 and BSD and Python
|
||||
URL: https://github.com/Azure/azure-sdk-for-python
|
||||
Source0: %{url}/archive/azure_%{version}/%{srcname}-%{version}.tar.gz
|
||||
Source1: %{certifi}-%{certifi_version}.tar.gz
|
||||
Source2: %{isodate}-%{isodate_version}.tar.gz
|
||||
Source3: %{msrest}-%{msrest_version}.tar.gz
|
||||
Source4: %{adal}-%{adal_version}.tar.gz
|
||||
Source5: %{secretstorage}-%{secretstorage_version}.tar.gz
|
||||
Source6: %{keyring}-%{keyring_version}.tar.gz
|
||||
Source7: %{msrestazure}-%{msrestazure_version}.tar.gz
|
||||
# Install namespace package modules (disabled by default, may be required by
|
||||
# modules depending on Azure SDK for development)
|
||||
Patch0: python-azure-sdk-4.0.0-nspkgs.patch
|
||||
# bundles
|
||||
Patch1000: certifi-2018.10.15-use-system-cert.patch
|
||||
Patch1001: python-msrest-0.6.1-setup.patch
|
||||
Patch1002: python-msrest-0.6.1-isodate.patch
|
||||
Patch1003: python-msrest-0.6.1-tests.patch
|
||||
Patch1004: python-adal-1.2.0-tests.patch
|
||||
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
# bundles
|
||||
# python3-certifi bundle
|
||||
BuildRequires: ca-certificates
|
||||
# python3-keyring bundle
|
||||
BuildRequires: python3-setuptools_scm
|
||||
%if 0%{?_with_doc}
|
||||
BuildRequires: %{pydoc_prefix}-recommonmark
|
||||
BuildRequires: %{pydoc_prefix}-sphinx
|
||||
BuildRequires: %{pydoc_prefix}-sphinx_rtd_theme
|
||||
%endif
|
||||
Requires: python%{python3_pkgversion}-pyOpenSSL
|
||||
Requires: python%{python3_pkgversion}-requests
|
||||
%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}
|
||||
# bundles
|
||||
# python3-certifi bundle
|
||||
Provides: bundled(python3-%{certifi}) = %{certifi_version}
|
||||
# python3-isodate bundle
|
||||
Provides: bundled(python3-%{isodate}) = %{isodate_version}
|
||||
# python3-msrest bundle
|
||||
Provides: bundled(python3-%{msrest}) = %{msrest_version}
|
||||
# python3-adal bundle
|
||||
Provides: bundled(python3-%{adal}) = %{adal_version}
|
||||
# python3-SecretStorage bundle
|
||||
Provides: bundled(python3-%{secretstorage}) = %{secretstorage_version}
|
||||
# python3-keyring bundle
|
||||
Provides: bundled(python3-%{keyring}) = %{keyring_version}
|
||||
# python3-msrestazure bundle
|
||||
Provides: bundled(python3-%{msrestazure}) = %{msrestazure_version}
|
||||
# python3-certifi bundle
|
||||
Requires: ca-certificates
|
||||
# python3-msrest bundle
|
||||
Requires: python3-requests-oauthlib
|
||||
# python3-adal bundle
|
||||
Requires: python3-cryptography
|
||||
Requires: python3-dateutil
|
||||
Requires: python3-jwt
|
||||
BuildArch: noarch
|
||||
|
||||
%description
|
||||
%{common_description}
|
||||
|
||||
|
||||
%if 0%{?_with_doc}
|
||||
%package doc
|
||||
Summary: Documentation for %{name}
|
||||
|
||||
%description doc
|
||||
This package provides documentation for %{name}.
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{srcname}-for-python-azure_%{version}%{?prerelease}
|
||||
%patch0
|
||||
|
||||
# bundles
|
||||
mkdir -p %{bundled_lib_dir}/azure
|
||||
|
||||
# python3-certifi bundle
|
||||
tar -xzf %SOURCE1 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{certifi}-%{certifi_version} %{certifi_dir}
|
||||
# Remove bundled egg-info
|
||||
rm -rf %{certifi_dir}/*.egg-info
|
||||
rm -rf %{certifi_dir}/certifi/*.pem
|
||||
cp %{certifi_dir}/README.rst %{certifi}_README.rst
|
||||
cp %{certifi_dir}/LICENSE %{certifi}_LICENSE
|
||||
pushd %{certifi_dir}
|
||||
%patch1000 -p1
|
||||
popd
|
||||
|
||||
# python3-isodate bundle
|
||||
tar -xzf %SOURCE2 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{isodate}-%{isodate_version} %{isodate_dir}
|
||||
cp %{isodate_dir}/README.rst %{isodate}_README.rst
|
||||
|
||||
# python3-msrest
|
||||
tar -xzf %SOURCE3 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{msrest}-for-python-%{msrest_version} %{msrest_dir}
|
||||
cp %{msrest_dir}/README.rst %{msrest}_README.rst
|
||||
cp %{msrest_dir}/LICENSE.md %{msrest}_LICENSE.md
|
||||
pushd %{msrest_dir}
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
popd
|
||||
|
||||
# python3-adal
|
||||
tar -xzf %SOURCE4 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/azure-activedirectory-library-for-python-%{adal_version} %{adal_dir}
|
||||
cp %{adal_dir}/README.md %{adal}_README.md
|
||||
cp %{adal_dir}/LICENSE %{adal}_LICENSE
|
||||
pushd %{adal_dir}
|
||||
%patch1004 -p1
|
||||
popd
|
||||
|
||||
# python3-SecretStorage bundle
|
||||
tar -xzf %SOURCE5 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{secretstorage}-%{secretstorage_version} %{secretstorage_dir}
|
||||
cp %{secretstorage_dir}/README.rst %{secretstorage}_README.rst
|
||||
cp %{secretstorage_dir}/LICENSE %{secretstorage}_LICENSE
|
||||
|
||||
# python3-keyring bundle
|
||||
tar -xzf %SOURCE6 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{keyring}-%{keyring_version} %{keyring_dir}
|
||||
cp %{keyring_dir}/README.rst %{keyring}_README.rst
|
||||
cp %{keyring_dir}/LICENSE %{keyring}_LICENSE
|
||||
|
||||
# python3-msrestazure bundle
|
||||
tar -xzf %SOURCE7 -C %{bundled_lib_dir}
|
||||
mv %{bundled_lib_dir}/%{msrestazure}-for-python-%{msrestazure_version} %{msrestazure_dir}
|
||||
cp %{msrestazure_dir}/README.rst %{msrestazure}_README.rst
|
||||
cp %{msrestazure_dir}/LICENSE.md %{msrestazure}_LICENSE.md
|
||||
|
||||
# append bundled-directory to search path
|
||||
sed -i "/^import keyring/iimport sys\nsys.path.insert(0, '%{_libdir}/fence-agents/bundled')" azure-batch/azure/batch/batch_auth.py
|
||||
|
||||
%build
|
||||
%py3_build
|
||||
|
||||
%if 0%{?_with_doc}
|
||||
%make_build -C doc/ html SPHINXBUILD=%{sphinxbuild}
|
||||
rm doc/_build/html/.buildinfo
|
||||
%endif
|
||||
|
||||
# bundles
|
||||
# python3-certifi bundle
|
||||
pushd %{certifi_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-isodate bundle
|
||||
pushd %{isodate_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-msrest bundle
|
||||
pushd %{msrest_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-adal bundle
|
||||
pushd %{adal_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-SecretStorage bundle
|
||||
pushd %{secretstorage_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-keyring bundle
|
||||
pushd %{keyring_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
# python3-msrestazure bundle
|
||||
pushd %{msrestazure_dir}
|
||||
%{__python3} setup.py build
|
||||
popd
|
||||
|
||||
|
||||
%install
|
||||
%py3_install
|
||||
|
||||
# bundles
|
||||
# python3-certifi bundle
|
||||
pushd %{certifi_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-isodate bundle
|
||||
pushd %{isodate_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-msrest bundle
|
||||
pushd %{msrest_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-adal bundle
|
||||
pushd %{adal_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-SecretStorage bundle
|
||||
pushd %{secretstorage_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-keyring bundle
|
||||
pushd %{keyring_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
# python3-msrestazure bundle
|
||||
pushd %{msrestazure_dir}
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --install-lib /usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
popd
|
||||
|
||||
|
||||
%files
|
||||
%doc CONTRIBUTING.md README.rst
|
||||
%license LICENSE.txt
|
||||
# bundled libraries
|
||||
%doc %{certifi}_README.rst %{isodate}_README.rst %{msrest}_README.rst %{adal}_README.md %{secretstorage}_README.rst %{keyring}_README.rst %{msrestazure}_README.rst
|
||||
%license %{certifi}_LICENSE %{msrest}_LICENSE.md %{adal}_LICENSE %{secretstorage}_LICENSE %{keyring}_LICENSE %{msrestazure}_LICENSE.md
|
||||
%{python3_sitelib}/azure/
|
||||
%{python3_sitelib}/azure_*.egg-info/
|
||||
# bundled libraries
|
||||
%dir /usr/lib/fence-agents
|
||||
%dir /usr/lib/fence-agents/%{bundled_lib_dir}
|
||||
/usr/lib/fence-agents/%{bundled_lib_dir}/azure
|
||||
%exclude /usr/bin/keyring
|
||||
|
||||
|
||||
%if 0%{?_with_doc}
|
||||
%files doc
|
||||
%doc doc/_build/html/
|
||||
%license LICENSE.txt
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue May 14 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.0-9
|
||||
- Update to 4.0.0 + azure-mgmt-compute 5.0.0 (for skip_shutdown feature)
|
||||
Resolves: rhbz#1708129
|
||||
- Add CI gating tests
|
||||
Resolves: rhbz#1682879
|
||||
|
||||
* Wed Jan 30 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.0-8
|
||||
- Bundled libraries
|
||||
Resolves: rhbz#1630844
|
||||
|
||||
* Fri Jan 25 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 4.0.0-4
|
||||
- Initial import
|
||||
Resolves: rhbz#1630844
|
||||
|
||||
* Thu Nov 22 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 4.0.0-3
|
||||
- Build documentation with Python 3 on Fedora
|
||||
- Fix Python 3-only file deployment
|
||||
- Don't glob everything under the Python sitelib directory
|
||||
|
||||
* Mon Aug 06 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 4.0.0-2
|
||||
- Delete all Python 3-only files from the python2 subpackage
|
||||
|
||||
* Mon Aug 06 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 4.0.0-1
|
||||
- Update to 4.0.0
|
Loading…
Reference in new issue