From 9ea317d5100db94c79fb570931b2dbe35c4036d2 Mon Sep 17 00:00:00 2001 From: Erik Johnson Date: Fri, 5 Sep 2014 15:11:02 -0500 Subject: [PATCH] Add spec file for git builds --- tests/pkg/rpm/salt.spec | 310 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100644 tests/pkg/rpm/salt.spec diff --git a/tests/pkg/rpm/salt.spec b/tests/pkg/rpm/salt.spec new file mode 100644 index 0000000000..5ed38bd1b2 --- /dev/null +++ b/tests/pkg/rpm/salt.spec @@ -0,0 +1,310 @@ +# Maintainer: Erik Johnson (https://github.com/terminalmage) +# +# This is a modified version of the spec file, which supports git builds. It +# should be kept more or less up-to-date with upstream changes. +# +# Please contact the maintainer before submitting any pull requests for this +# spec file. + +%if ! (0%{?rhel} >= 6 || 0%{?fedora} > 12) +%global with_python26 1 +%define pybasever 2.6 +%define __python_ver 26 +%define __python %{_bindir}/python%{?pybasever} +%endif + +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} + +%global srcver REPLACE_ME + +Name: salt +Version: REPLACE_ME +Release: 1%{?dist} +Summary: A parallel remote execution system + +Group: System Environment/Daemons +License: ASL 2.0 +URL: http://saltstack.org/ +Source0: %{name}-%{srcver}.tar.gz +Source1: %{name}-master +Source2: %{name}-syndic +Source3: %{name}-minion +Source4: %{name}-api +Source5: %{name}-master.service +Source6: %{name}-syndic.service +Source7: %{name}-minion.service +Source8: %{name}-api.service +Source9: README.fedora +Source10: logrotate.salt + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch + +%ifarch %{ix86} x86_64 +Requires: dmidecode +%endif + +Requires: pciutils +Requires: yum-utils +Requires: sshpass + +%if 0%{?with_python26} +BuildRequires: python26-devel +Requires: python26-m2crypto +Requires: python26-crypto +Requires: python26-jinja2 +Requires: python26-msgpack +Requires: python26-PyYAML +Requires: python26-zmq +Requires: python26-requests + +%else + +BuildRequires: python-devel +Requires: m2crypto +Requires: python-crypto +Requires: python-zmq +Requires: python-jinja2 +Requires: PyYAML +Requires: python-msgpack +Requires: python-requests + +%endif + +%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) + +Requires(post): chkconfig +Requires(preun): chkconfig +Requires(preun): initscripts +Requires(postun): initscripts + +%else + +%if 0%{?systemd_preun:1} + +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +%endif + +BuildRequires: systemd-units +Requires: systemd-python + +%endif + +%description +Salt is a distributed remote execution system used to execute commands and +query data. It was developed in order to bring the best solutions found in +the world of remote execution together and make them better, faster and more +malleable. Salt accomplishes this via its ability to handle larger loads of +information, and not just dozens, but hundreds or even thousands of individual +servers, handle them quickly and through a simple and manageable interface. + +%package -n salt-master +Summary: Management component for salt, a parallel remote execution system +Group: System Environment/Daemons +Requires: salt = %{version}-%{release} + +%description -n salt-master +The Salt master is the central server to which all minions connect. + +%package -n salt-minion +Summary: Client component for salt, a parallel remote execution system +Group: System Environment/Daemons +Requires: salt = %{version}-%{release} + +%description -n salt-minion +Salt minion is queried and controlled from the master. + +%prep +%setup -n %{name}-%{srcver} + +%build + + +%install +rm -rf %{buildroot} +#cd $RPM_BUILD_DIR/%{name}-%{version}/%{name}-%{version} +%{__python} setup.py install -O1 --root %{buildroot} + +install -d -m 0755 %{buildroot}%{_var}/cache/salt + +%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) +mkdir -p %{buildroot}%{_initrddir} +install -p %{SOURCE1} %{buildroot}%{_initrddir}/ +install -p %{SOURCE2} %{buildroot}%{_initrddir}/ +install -p %{SOURCE3} %{buildroot}%{_initrddir}/ +install -p %{SOURCE4} %{buildroot}%{_initrddir}/ +%else +mkdir -p %{buildroot}%{_unitdir} +install -p -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/ +install -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ +install -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/ +install -p -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/ +%endif + +install -p %{SOURCE9} . +mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/ +install -p %{SOURCE10} %{buildroot}%{_sysconfdir}/logrotate.d/salt + +mkdir -p %{buildroot}%{_sysconfdir}/salt/ +install -p -m 0640 conf/minion %{buildroot}%{_sysconfdir}/salt/minion +install -p -m 0640 conf/master %{buildroot}%{_sysconfdir}/salt/master + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%doc LICENSE +%{python_sitelib}/%{name}/* +%{python_sitelib}/%{name}-*-py?.?.egg-info +%{_sysconfdir}/logrotate.d/salt +%{_var}/cache/salt +%doc %{_mandir}/man7/salt.7.* +%doc README.fedora + +%files -n salt-minion +%defattr(-,root,root) +%doc %{_mandir}/man1/salt-call.1.* +%doc %{_mandir}/man1/salt-minion.1.* +%{_bindir}/salt-minion +%{_bindir}/salt-call + +%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) +%attr(0755, root, root) %{_initrddir}/salt-minion +%else +%{_unitdir}/salt-minion.service +%endif + +%config(noreplace) %{_sysconfdir}/salt/minion + +%files -n salt-master +%defattr(-,root,root) +%doc %{_mandir}/man1/salt.1.* +%doc %{_mandir}/man1/salt-api.1.* +%doc %{_mandir}/man1/salt-cloud.1.* +%doc %{_mandir}/man1/salt-cp.1.* +%doc %{_mandir}/man1/salt-key.1.* +%doc %{_mandir}/man1/salt-master.1.* +%doc %{_mandir}/man1/salt-run.1.* +%doc %{_mandir}/man1/salt-ssh.1.* +%doc %{_mandir}/man1/salt-syndic.1.* +%{_bindir}/salt +%{_bindir}/salt-api +%{_bindir}/salt-cloud +%{_bindir}/salt-cp +%{_bindir}/salt-key +%{_bindir}/salt-master +%{_bindir}/salt-run +%{_bindir}/salt-ssh +%{_bindir}/salt-syndic +%{_bindir}/salt-unity +%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) +%attr(0755, root, root) %{_initrddir}/salt-master +%attr(0755, root, root) %{_initrddir}/salt-syndic +%attr(0755, root, root) %{_initrddir}/salt-api +%else +%{_unitdir}/salt-master.service +%{_unitdir}/salt-syndic.service +%{_unitdir}/salt-api.service +%endif +%config(noreplace) %{_sysconfdir}/salt/master + +# less than RHEL 8 / Fedora 16 +# not sure if RHEL 7 will use systemd yet +%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) + +%preun -n salt-master + if [ $1 -eq 0 ] ; then + /sbin/service salt-master stop >/dev/null 2>&1 + /sbin/service salt-syndic stop >/dev/null 2>&1 + /sbin/chkconfig --del salt-master + /sbin/chkconfig --del salt-syndic + fi + +%preun -n salt-minion + if [ $1 -eq 0 ] ; then + /sbin/service salt-minion stop >/dev/null 2>&1 + /sbin/chkconfig --del salt-minion + fi + +%post -n salt-master + /sbin/chkconfig --add salt-master + /sbin/chkconfig --add salt-syndic + +%post -n salt-minion + /sbin/chkconfig --add salt-minion + +%postun -n salt-master + if [ "$1" -ge "1" ] ; then + /sbin/service salt-master condrestart >/dev/null 2>&1 || : + /sbin/service salt-syndic condrestart >/dev/null 2>&1 || : + fi + +%postun -n salt-minion + if [ "$1" -ge "1" ] ; then + /sbin/service salt-minion condrestart >/dev/null 2>&1 || : + fi + +%else + +%preun -n salt-master +%if 0%{?systemd_preun:1} + %systemd_preun salt-master.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable salt-master.service > /dev/null 2>&1 || : + /bin/systemctl stop salt-master.service > /dev/null 2>&1 || : + + /bin/systemctl --no-reload disable salt-syndic.service > /dev/null 2>&1 || : + /bin/systemctl stop salt-syndic.service > /dev/null 2>&1 || : + fi +%endif + +%preun -n salt-minion +%if 0%{?systemd_preun:1} + %systemd_preun salt-minion.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable salt-minion.service > /dev/null 2>&1 || : + /bin/systemctl stop salt-minion.service > /dev/null 2>&1 || : + fi +%endif + +%post -n salt-master +%if 0%{?systemd_post:1} + %systemd_post salt-master.service +%else + /bin/systemctl daemon-reload &>/dev/null || : +%endif + +%post -n salt-minion +%if 0%{?systemd_post:1} + %systemd_post salt-minion.service +%else + /bin/systemctl daemon-reload &>/dev/null || : +%endif + +%postun -n salt-master +%if 0%{?systemd_post:1} + %systemd_postun salt-master.service +%else + /bin/systemctl daemon-reload &>/dev/null + [ $1 -gt 0 ] && /bin/systemctl try-restart salt-master.service &>/dev/null || : + [ $1 -gt 0 ] && /bin/systemctl try-restart salt-syndic.service &>/dev/null || : +%endif + +%postun -n salt-minion +%if 0%{?systemd_post:1} + %systemd_postun salt-minion.service +%else + /bin/systemctl daemon-reload &>/dev/null + [ $1 -gt 0 ] && /bin/systemctl try-restart salt-minion.service &>/dev/null || : +%endif + +%endif