#%{!?upstream_version: %global upstream_version %{version}%{?milestone}} %global upstream_version 5.0.0.0rc1 #%global with_doc %{!?_without_doc:1}%{?_without_doc:0} %global with_doc 0 %global pypi_name freezer-api %global freezer_user freezer-api %global freezer_group %{freezer_user} %global service freezer-api Name: openstack-freezer-api Version: 5.0.0 Release: 0.rc1 Summary: Backup/DR service for OpenStack License: ASL 2.0 URL: https://wiki.openstack.org/wiki/Freezer Source0: https://tarballs.openstack.org/%{pypi_name}/%{pypi_name}-%{upstream_version}.tar.gz Source1: freezer-dist.conf Source2: freezer-api.logrotate Source3: freezer-api.conf Source10: openstack-freezer-api.service BuildArch: noarch BuildRequires: python-oslo-sphinx BuildRequires: python-pbr BuildRequires: python-sphinx BuildRequires: python2-devel BuildRequires: python-setuptools BuildRequires: systemd BuildRequires: git # Required to compile translation files BuildRequires: python-babel Requires: python-freezer = %{version}-%{release} # we dropped the patch to remove PBR for Delorean Requires: python-pbr Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires(pre): shadow-utils %description Freezer is a backup/restore platform for OpenStack. %package -n python-freezer-api Summary: Freezer Python libraries Group: Applications/System Requires: qemu-img Requires: python-iso8601 >= 0.1.11 Requires: python-stevedore >= 1.17.1 Requires: python-sqlalchemy >= 1.0.10 Requires: python-migrate >= 0.9.6 Requires: python-paste-deploy Requires: python-glanceclient >= 1:2.5.0 Requires: python-swiftclient >= 3.2.0 Requires: python-keystoneclient >= 3.8.0 Requires: python-novaclient >= 1:6.0.0 Requires: python-oslo-config >= 2:3.14.0 Requires: python-six >= 1.9.0 Requires: python-psutil >= 1.1.1 Requires: python-babel Requires: python-oslo-context >= 2.9.0 Requires: python-oslo-concurrency >= 3.8.0 Requires: python-oslo-middleware >= 3.19.0 Requires: python-oslo-policy >= 1.17.0 Requires: python-oslo-reports >= 0.6.0 Requires: python-oslo-service >= 1.10.0 Requires: python-oslo-utils >= 3.18.0 Requires: python-oslo-log >= 3.16.0 Requires: python-oslo-i18n >= 2.1.0 Requires: python-keystonemiddleware >= 4.12.0 Requires: python-crypto >= 2.6 %description -n python-freezer-api OpenStack Volume (codename Cinder) provides services to manage and access block storage volumes for use by Virtual Machine instances. This package contains the freezer-api Python library. %package -n python-freezer-api-tests Summary: Freezer-api tests Requires: openstack-freezer-api = %{version}-%{release} # Added test requirements Requires: python-hacking Requires: python-coverage >= 4.0 Requires: python-ddt >= 1.0.1 Requires: python-fixtures Requires: python-mock >= 2.0 Requires: python-mox3 Requires: python-oslotest Requires: python-subunit Requires: python-testtools Requires: python-testrepository Requires: python-testresources Requires: python-testscenarios Requires: python-os-testr Requires: python-tempest %description -n python-freezer-api-tests OpenStack Volume (codename Cinder) provides services to manage and access block storage volumes for use by Virtual Machine instances. This package contains the Cinder test files. %if 0%{?with_doc} %package doc Summary: Documentation for OpenStack Freezer Group: Documentation Requires: %{name} = %{version}-%{release} BuildRequires: graphviz # Required to build module documents BuildRequires: python-sqlalchemy %description doc Freezer is a backup/restore platform for OpenStack. This package contains documentation files for freezer-api. %endif %prep %autosetup -n freezer-api-%{upstream_version} -S git find . \( -name .gitignore -o -name .placeholder \) -delete find freezer_api -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} + sed -i 's/%{version}.%{milestone}/%{version}/' PKG-INFO # Remove the requirements file so that pbr hooks don't add it # to distutils requires_dist config rm -rf {test-,}requirements.txt tools/{pip,test}-requires # Remove the tempest API plugin files, these will be built # from the separate freezer-tempest-plugin project. rm -rf freezer_api/tests/freezer_api_tempest_plugin/* #touch %{_builddir}/freezer-api-5.0.0.0rc1/freezer_api/tests/freezer_api_tempest_plugin/README.rst # Remove tempest plugin entry point sed -i '/freezer_api_tempest_plugin/d' setup.cfg %build sed -i 's/pbr>=2.0.0/pbr/' setup.py SKIP_GIT_SDIST=1 %{__python2} setup.py build %install %{__python2} setup.py install -O1 --skip-build --root %{buildroot} # docs generation requires everything to be installed first export PYTHONPATH="$( pwd ):$PYTHONPATH" %if 0%{?with_doc} %{__python2} setup.py build_sphinx --builder html # Fix hidden-file-or-dir warnings rm -fr doc/build/html/.buildinfo %endif # Setup directories install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service} install -d -m 755 %{buildroot}%{_localstatedir}/log/%{service} # Install config files install -d -m 755 %{buildroot}%{_sysconfdir}/%{service} install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf install -p -D -m 640 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf # Install initscripts for services install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-freezer-api.service # Install logrotate install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-freezer-api # Install pid directory install -d -m 755 %{buildroot}%{_localstatedir}/run/freezer-api %pre # Origin: http://fedoraproject.org/wiki/Packaging:UsersAndGroups#Dynamic_allocation USERNAME=%{freezer_user} GROUPNAME=%{freezer_group} HOMEDIR=%{_sharedstatedir}/freezer-api getent group $GROUPNAME >/dev/null || groupadd -r $GROUPNAME getent passwd $USERNAME >/dev/null || \ useradd -r -g $GROUPNAME -G $GROUPNAME -d $HOMEDIR -s /sbin/nologin \ -c "Freezer Daemons" $USERNAME exit 0 %post %systemd_post openstack-freezer-api %preun %systemd_preun openstack-freezer-api %postun %systemd_postun_with_restart openstack-freezer-api %files %dir %{_sysconfdir}/freezer-api %config(noreplace) %attr(-, root, %{freezer_group}) %{_sysconfdir}/%{service}/%{service}.conf %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-%{service} %attr(-, root, %{freezer_group}) %{_datadir}/%{service}/%{service}-dist.conf %dir %attr(0750, %{freezer_user}, root) %{_localstatedir}/log/%{service} %dir %attr(0755, %{freezer_user}, root) %{_localstatedir}/run/%{service} %{_bindir}/freezer-* %{_unitdir}/*.service %{_datarootdir}/%{service} %defattr(-, freezer, freezer, -) %dir %{_sharedstatedir}/%{service} #%files -n python-freezer-api -f %{pypi_name}.lang %files -n python-freezer-api %{?!_licensedir: %global license %%doc} %license LICENSE %{python2_sitelib}/freezer_api %{python2_sitelib}/freezer_api*.egg-info %exclude %{python2_sitelib}/freezer_api/tests %files -n python-freezer-api-tests %license LICENSE %{python2_sitelib}/freezer_api/tests #%{python2_sitelib}/%{service}_tests.egg-info %if 0%{?with_doc} %files doc %doc doc/build/html %endif %changelog