Blob Blame History Raw
%global srcname pyVirtualize
%global modname pyvirtualize

%global date    20181003
%global commit0 57d2307f64f492b36fa99bc7c259210ec6a95635

%if 0%{?rhel} >= 7 || 0%{?fedora}
%global with_python3 1
%endif
%if 0%{?rhel}
%global with_python2 1
%endif
# FIXME epel7 Could not import extension sphinx.ext.githubpages (exception: No module named githubpages)
%if 0%{?fedora}
%global with_build_doc 1
%endif

%global desc A python interface to access and manage VMware.\
\
pyVirtualize is build over pyVmomi, hence it has ability\
to perform all the operations what vSphere client is able to.\
\
pyVirtualize provides easy interfaces to:\
Connect to VMWare's ESX, ESXi, Virtual Center and\
Virtual Server hosts.\
Query hosts, datacenters, resource pools, virtual machines\
and perform various operations over them.\
VMs operations: power, file, process, snapshot, admin, utilities\
\
And of course, you can use it to access all the API through python.

Name:           python-%{modname}
# pypi tells current version is 0.9
Version:        0.9
Release:        2.%{date}git%(c=%commit0; echo ${c:0:7} )%{?dist}
Summary:        Python module to access and manage VMware

License:        ASL 2.0
URL:            https://github.com/rocky1109/%{srcname}
Source0:        %{url}/archive/%{commit0}.tar.gz#/%{srcname}-%{commit0}.tar.gz

BuildArch:      noarch
%if 0%{?with_python2}
BuildRequires:  python2-devel
BuildRequires:  python2-setuptools
%endif
BuildRequires:  python%{python3_pkgversion}-devel
BuildRequires:  python%{python3_pkgversion}-setuptools
%if 0%{?python3_other_pkgversion}
BuildRequires:  python%{python3_other_pkgversion}-devel
BuildRequires:  python%{python3_other_pkgversion}-setuptools
%endif
%if 0%{?rhel}
BuildRequires:  python2-sphinx
BuildRequires:  python2-sphinx_rtd_theme
%endif
%if 0%{?fedora}
# FIXME Fedora specifics, so we can depend without macros
BuildRequires:  python3-sphinx
BuildRequires:  python3-sphinx_rtd_theme
%endif
BuildRequires:  web-assets-devel

%description
%desc

%if 0%{?with_python2}
%package -n python2-%{modname}
Summary:        %{summary}
%{?python_provide:%python_provide python2-%{srcname}}
Requires:       python2-pyvmomi

%description -n python2-%{modname}
%desc
%endif

%if 0%{?with_python3}
%package -n python%{python3_pkgversion}-%{modname}
Summary:        %{summary}
%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}
Requires:       python%{python3_pkgversion}-pyvmomi

%description -n python%{python3_pkgversion}-%{modname}
%desc
%endif

%if 0%{?python3_other_pkgversion}
%package -n python%{python3_other_pkgversion}-%{modname}
Summary:        %{summary}
%{?python_provide:%python_provide python%{python3_other_pkgversion}-%{srcname}}
Requires:       python%{python3_other_pkgversion}-pyvmomi

%description -n python%{python3_other_pkgversion}-%{modname}
%desc
%endif

%package doc
Summary:        Documentation files for %{srcname}
Requires:       js-jquery
# some js files of documentation are licensed with BSD
License:        ASL 2.0 and BSD

%description doc
This package installs %{summary}.


%prep
%autosetup -n %{srcname}-%{commit0}

%build
%{?with_python2: %py2_build}
%{?with_python3: %py3_build}
%{?python3_other_pkgversion: %py3_other_build}
%if 0%{?with_build_doc}
# drop useless files
rm -rfv docs/build/*
sphinx-build -d docs/build/doctrees docs/source docs/build/html
# drop useless build garbage
find docs/build/html -name '.*' -print -delete
%endif
# unbundle jquery
rm -v docs/build/html/_static/jquery*.js
ln -fs %{_jsdir}/jquery/3/jquery.js docs/build/html/_static

%install
%{?python3_other_pkgversion: %py3_other_install}
%{?with_python3: %py3_install}
%{?with_python2: %py2_install}


%if 0%{?with_python2}
%files -n python2-%{modname}
%license LICENSE
%doc README.md
%{python2_sitelib}/%{srcname}/
%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
%endif

%if 0%{?with_python3}
%files -n python%{python3_pkgversion}-%{modname}
%license LICENSE
%doc README.md
%{python3_sitelib}/%{srcname}/
%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
%endif

%if 0%{?python3_other_pkgversion}
%files -n python%{python3_other_pkgversion}-%{modname}
%license LICENSE
%doc README.md
%{python3_other_sitelib}/%{srcname}/
%{python3_other_sitelib}/%{srcname}-%{version}-py?.?.egg-info/
%endif

%files doc
%license LICENSE
%doc docs/build/html/


%changelog
* Thu Nov 01 2018 Raphael Groner <projects.rg@smart.ms> - 0.9-2.20181003git57d2307
- use current snapshot
- use python3 only in Fedora but still also python2 in EPEL
- introduce modname macro

* Tue Sep 04 2018 Raphael Groner <projects.rg@smart.ms> - 0.9-1.20180205git4b01f44
- initial