Name: pcs Version: 0.9.154 Release: 2%{?dist} License: GPLv2 URL: https://github.com/ClusterLabs/pcs Group: System Environment/Base Summary: Pacemaker Configuration System #part after last slash is recognized as filename in look-aside repository #desired name is achived by trick with hash anchor Source0: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: pcsd-bundle-config-1 Source11: https://rubygems.org/downloads/orderedhash-0.0.6.gem Source12: https://rubygems.org/downloads/rack-1.6.4.gem Source13: https://rubygems.org/downloads/rpam-ruby19-1.2.1.gem Source14: https://rubygems.org/downloads/sinatra-1.4.7.gem Source15: https://rubygems.org/downloads/sinatra-contrib-1.4.7.gem Patch0: fedfix.patch # git for patches BuildRequires: git # python for pcs BuildRequires: python3 python3-devel python3-setuptools # gcc for compiling custom rubygems BuildRequires: gcc gcc-c++ # ruby and gems for pcsd BuildRequires: ruby ruby-devel rubygem-bundler rubygem-io-console BuildRequires: rubygem-backports rubygem-json rubygem-multi_json rubygem-open4 BuildRequires: rubygem-rack-protection rubygem-rack-test rubygem-tilt # pam devel for compiling rubygem-rpam-ruby19 BuildRequires: pam-devel # for post, preun and postun macros BuildRequires: systemd # for UpdateTimestamps sanitization function BuildRequires: diffstat # for tests BuildRequires: corosync BuildRequires: pacemaker pacemaker-cli BuildRequires: fence-agents-all fence-virt BuildRequires: booth-site BuildRequires: python3-lxml python3-mock BuildRequires: rubygem-test-unit # python and libraries for pcs, setuptools for pcs entrypoint Requires: python3 python3-setuptools python3-lxml # ruby and gems for pcsd Requires: ruby Requires: rubygem-backports rubygem-json rubygem-multi_json rubygem-open4 Requires: rubygem-rack-protection rubygem-rack-test rubygem-tilt # for killall Requires: psmisc # for working with certificates (validation etc.) Requires: openssl # cluster stack and related packages Requires: corosync pacemaker pacemaker-cli # clufter currently doesn't have python3 package Requires: python-clufter => 0.59.0 # for post, preun and postun macros Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: bundled(rubygem-orderedhash) = 0.0.6 # fedora provides version 2.0.1 which is not compatible with pcsd currently Provides: bundled(rubygem-rack) = 1.6.4 Provides: bundled(rubygem-rpam-ruby19) = 1.2.1 # fedora provides a patched verison of sinatra which works with rack 2.0.1 but # doesn't work with rack 1.6.4 Provides: bundled(rubygem-sinatra) = 1.4.7 Provides: bundled(rubygem-sinatra-contrib) = 1.4.7 %description pcs is a corosync and pacemaker configuration tool. It permits users to easily view, modify and created pacemaker based clusters. %prep %setup -q # -- following borrowed from python-simplejon.el5 -- # Update timestamps on the files touched by a patch, to avoid non-equal # .pyc/.pyo files across the multilib peers within a build, where "Level" # is the patch prefix option (e.g. -p1) UpdateTimestamps() { Level=$1 PatchFile=$2 # Locate the affected files: for f in $(diffstat $Level -l $PatchFile); do # Set the files to have the same timestamp as that of the patch: touch -r $PatchFile $f done } %patch0 -p1 UpdateTimestamps -p1 %{PATCH0} mkdir -p pcsd/.bundle cp -f %SOURCE1 pcsd/.bundle/config mkdir -p pcsd/vendor/cache #copy ruby gems cp -f %SOURCE11 pcsd/vendor/cache cp -f %SOURCE12 pcsd/vendor/cache cp -f %SOURCE13 pcsd/vendor/cache cp -f %SOURCE14 pcsd/vendor/cache cp -f %SOURCE15 pcsd/vendor/cache #ruby gems copied %build %define PCS_PREFIX /usr %install rm -rf $RPM_BUILD_ROOT pwd make install \ DESTDIR=$RPM_BUILD_ROOT \ PREFIX=%{PCS_PREFIX} \ PYTHON=%{__python3} \ PYTHON_SITELIB=%{python3_sitelib} \ BASH_COMPLETION_DIR=$RPM_BUILD_ROOT/usr/share/bash-completion/completions make install_pcsd \ DESTDIR=$RPM_BUILD_ROOT \ PREFIX=%{PCS_PREFIX} \ PYTHON=%{__python3} \ PYTHON_SITELIB=%{python3_sitelib} \ hdrdir="%{_includedir}" \ rubyhdrdir="%{_includedir}" \ includedir="%{_includedir}" %check run_all_tests(){ #prepare environmet for tests sitelib=$RPM_BUILD_ROOT%{python3_sitelib} pcsd_dir=$RPM_BUILD_ROOT%{PCS_PREFIX}/lib/pcsd export PYTHONPATH="${PYTHONPATH}:${sitelib}" #run pcs tests and remove them, we do not distribute them in rpm # disabled tests: # # pcs.test.test_cluster.ClusterTest.testUIDGID # touches live cluster configuration, cannot run in mock environment # # pcs.lib.booth.test.test_env.SetKeyfileAccessTest.test_set_desired_file_access # touches live cluster configuration, test need to be fixed # Traceback (most recent call last): # File "/builddir/build/BUILDROOT/pcs-0.9.152-6.el7.x86_64/usr/lib/python2.7/site-packages/pcs/lib/booth/test/test_env.py", line 148, in test_set_desired_file_access # env.set_keyfile_access(file_path) # File "/builddir/build/BUILDROOT/pcs-0.9.152-6.el7.x86_64/usr/lib/python2.7/site-packages/pcs/lib/booth/env.py", line 63, in set_keyfile_access # raise report_keyfile_io_error(file_path, "chown", e) # LibraryError: ERROR FILE_IO_ERROR: {u'reason': u"Operation not permitted: '/builddir/build/BUILDROOT/pcs-0.9.152-6.el7.x86_64/usr/lib/python2.7/site-packages/pcs/test/resources/temp-keyfile'", u'file_role': u'BOOTH_KEY', u'file_path': u'/builddir/build/BUILDROOT/pcs-0.9.152-6.el7.x86_64/usr/lib/python2.7/site-packages/pcs/test/resources/temp-keyfile', u'operation': u'chown'} %{__python3} ${sitelib}/pcs/test/suite.py -v --no-color --all-but \ pcs.test.test_cluster.ClusterTest.testUIDGID \ pcs.lib.booth.test.test_env.SetKeyfileAccessTest.test_set_desired_file_access \ test_result_python=$? #remove pcs tests, we do not distribute them in rpm find ${sitelib}/pcs -name test -type d -print0|xargs -0 rm -r -v -- #run pcsd tests and remove them GEM_HOME=${pcsd_dir}/vendor/bundle/ruby ruby \ -I${pcsd_dir} \ -I${pcsd_dir}/test \ ${pcsd_dir}/test/test_all_suite.rb test_result_ruby=$? #remove pcsd tests, we do not distribute them in rpm rm -r -v ${pcsd_dir}/test if [ $test_result_python -ne 0 ]; then return $test_result_python fi return $test_result_ruby } run_all_tests %pretrans -p -- workaround for upgrading from a broken package pcs-0.9.150-1.fc24 -- taken from https://fedoraproject.org/wiki/Packaging:Directory_Replacement -- see https://bugzilla.redhat.com/show_bug.cgi?id=1370095 for details for i, path in pairs({ "/usr/lib/pcsd/vendor/bundle/ruby/extensions", "/usr/lib/pcsd/vendor/bundle/ruby/gems", "/usr/lib/pcsd/vendor/bundle/ruby/specifications" }) do st = posix.stat(path) if st and st.type == "link" then os.remove(path) end end %post %systemd_post pcsd.service %preun %systemd_preun pcsd.service %postun %systemd_postun_with_restart pcsd.service %files %{python3_sitelib}/pcs %{python3_sitelib}/pcs-%{version}-py3.*.egg-info /usr/sbin/pcs /usr/lib/pcsd/* /usr/lib/pcsd/.bundle/config /usr/lib/systemd/system/pcsd.service /usr/share/bash-completion/completions/pcs /var/lib/pcsd /etc/pam.d/pcsd /etc/logrotate.d/pcsd %dir /var/log/pcsd %config(noreplace) /etc/sysconfig/pcsd %ghost %config(noreplace) /var/lib/pcsd/cfgsync_ctl %ghost %config(noreplace) /var/lib/pcsd/pcsd.cookiesecret %ghost %config(noreplace) /var/lib/pcsd/pcsd.crt %ghost %config(noreplace) /var/lib/pcsd/pcsd.key %ghost %config(noreplace) /var/lib/pcsd/pcs_settings.conf %ghost %config(noreplace) /var/lib/pcsd/pcs_users.conf %ghost %config(noreplace) /var/lib/pcsd/tokens %{_mandir}/man8/pcs.* %exclude /usr/lib/pcsd/*.debian %exclude /usr/lib/pcsd/pcsd.service %exclude /usr/lib/pcsd/pcsd.conf %exclude %{python3_sitelib}/pcs/bash_completion.sh %exclude %{python3_sitelib}/pcs/pcs.8 %exclude %{python3_sitelib}/pcs/pcs %doc COPYING README %changelog * Tue Oct 18 2016 Tomas Jelinek - 0.9.154-2 - Fixed upgrading from pcs-0.9.150 * Thu Sep 22 2016 Tomas Jelinek - 0.9.154-1 - Re-synced to upstream sources - Spec file cleanup and fixes * Tue Jul 19 2016 Fedora Release Engineering - 0.9.150-2 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Mon Apr 11 2016 Tomas Jelinek - 0.9.150-1 - Re-synced to upstream sources - Make pcs depend on python3 - Spec file cleanup * Tue Feb 23 2016 Tomas Jelinek - 0.9.149-2 - Fixed rubygems issues which prevented pcsd from starting - Added missing python-lxml dependency * Thu Feb 18 2016 Tomas Jelinek - 0.9.149-1 - Re-synced to upstream sources - Security fix for CVE-2016-0720, CVE-2016-0721 - Fixed rubygems issues which prevented pcsd from starting - Rubygems built with RELRO - Spec file cleanup - Fixed multilib .pyc/.pyo issue * Thu Feb 04 2016 Fedora Release Engineering - 0.9.144-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Jan 12 2016 Vít Ondruch - 0.9.144-2 - Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 * Fri Sep 18 2015 Tomas Jelinek - 0.9.144-1 - Re-synced to upstream sources * Tue Jun 23 2015 Tomas Jelinek - 0.9.141-2 - Added requirement for psmisc for killall * Tue Jun 23 2015 Tomas Jelinek - 0.9.141-1 - Re-synced to upstream sources * Thu Jun 18 2015 Fedora Release Engineering - 0.9.140-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Fri Jun 05 2015 Tomas Jelinek - 0.9.140-1 - Re-synced to upstream sources * Fri May 22 2015 Tomas Jelinek - 0.9.139-4 - Fix for CVE-2015-1848, CVE-2015-3983 (sessions not signed) * Thu Mar 26 2015 Tomas Jelinek - 0.9.139-3 - Add BuildRequires: systemd (rhbz#1206253) * Fri Feb 27 2015 Tomas Jelinek - 0.9.139-2 - Reflect clufter inclusion (rhbz#1180723) * Thu Feb 19 2015 Tomas Jelinek - 0.9.139-1 - Re-synced to upstream sources * Sat Jan 17 2015 Mamoru TASAKA - 0.9.115-5 - Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 * Sun Aug 17 2014 Fedora Release Engineering - 0.9.115-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Fri Jun 06 2014 Fedora Release Engineering - 0.9.115-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Tue May 06 2014 Tomas Jelinek - 0.9.115-2 - Rebuild to fix ruby dependencies * Mon Apr 21 2014 Chris Feist - 0.9.115-1 - Re-synced to upstream sources * Fri Dec 13 2013 Chris Feist - 0.9.102-1 - Re-synced to upstream sources * Wed Jun 19 2013 Chris Feist - 0.9.48-1 - Rebuild with upstream sources * Thu Jun 13 2013 Chris Feist - 0.9.44-5 - Added fixes for building rpam with ruby-2.0.0 * Mon Jun 03 2013 Chris Feist - 0.9.44-4 - Rebuild with upstream sources * Tue May 07 2013 Chris Feist - 0.9.41-2 - Resynced to upstream sources * Fri Apr 19 2013 Chris Feist - 0.9.39-1 - Fixed gem building - Re-synced to upstream sources * Mon Mar 25 2013 Chris Feist - 0.9.36-4 - Don't try to build gems at all * Mon Mar 25 2013 Chris Feist - 0.9.36-3 - Removed all gems from build, will need to find pam package in the future * Mon Mar 25 2013 Chris Feist - 0.9.36-2 - Removed duplicate libraries already present in fedora * Mon Mar 18 2013 Chris Feist - 0.9.36-1 - Resynced to latest upstream * Mon Mar 11 2013 Chris Feist - 0.9.33-1 - Resynched to latest upstream - pcsd has been moved to /usr/lib to fix /usr/local packaging issues * Thu Feb 21 2013 Chris Feist - 0.9.32-1 - Resynced to latest version of pcs/pcsd * Mon Nov 05 2012 Chris Feist - 0.9.27-3 - Build on all archs * Thu Oct 25 2012 Chris Feist - 0.9.27-2 - Resync to latest version of pcs - Added pcsd daemon * Mon Oct 08 2012 Chris Feist - 0.9.26-1 - Resync to latest version of pcs * Thu Sep 20 2012 Chris Feist - 0.9.24-1 - Resync to latest version of pcs * Thu Sep 20 2012 Chris Feist - 0.9.23-1 - Resync to latest version of pcs * Wed Sep 12 2012 Chris Feist - 0.9.22-1 - Resync to latest version of pcs * Thu Sep 06 2012 Chris Feist - 0.9.19-1 - Resync to latest version of pcs * Tue Aug 07 2012 Chris Feist - 0.9.12-1 - Resync to latest version of pcs * Fri Jul 20 2012 Fedora Release Engineering - 0.9.3.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Thu May 24 2012 Chris Feist - 0.9.4-1 - Resync to latest version of pcs - Move cluster creation options to cluster sub command. * Mon May 07 2012 Chris Feist - 0.9.3.1-1 - Resync to latest version of pcs which includes fixes to work with F17. * Mon Mar 19 2012 Chris Feist - 0.9.2.4-1 - Resynced to latest version of pcs * Mon Jan 23 2012 Chris Feist - 0.9.1-1 - Updated BuildRequires and %doc section for fedora * Fri Jan 20 2012 Chris Feist - 0.9.0-2 - Updated spec file for fedora specific changes * Mon Jan 16 2012 Chris Feist - 0.9.0-1 - Initial Build