[PATCH 2/2] removing rc.local manipulation from rpm spec file and replacing it with systemd/sysv scripts
Dan Radez
dradez at redhat.com
Tue Feb 7 03:42:11 UTC 2012
---
agent/Makefile | 4 +-
agent/aeolus-audrey-agent.spec.in | 69 ++++++++++++++++++++++++++----------
2 files changed, 52 insertions(+), 21 deletions(-)
diff --git a/agent/Makefile b/agent/Makefile
index 86d12fb..5a96004 100644
--- a/agent/Makefile
+++ b/agent/Makefile
@@ -51,7 +51,7 @@ dist: src/audrey/agent.py audrey.$(man_section)
aeolus-audrey-agent.spec.in > aeolus-audrey-agent.spec
cp -ar aeolus-audrey-agent.spec.in aeolus-audrey-agent.spec \
COPYING Makefile src bin audrey.$(man_section) \
- test_audrey_agent.py dist/aeolus-audrey-agent-$(VERSION)
+ test_audrey_agent.py scripts dist/aeolus-audrey-agent-$(VERSION)
tar -C dist -zcvf aeolus-audrey-agent-$(VERSION).tar.gz aeolus-audrey-agent-$(VERSION)
# cp src/audrey/agent.py.in to src/audrey/agent.py
@@ -62,7 +62,7 @@ src/audrey/agent.py: src/audrey/agent.py.in
# from the Audrey agent.
# Run the audrey target before generating the man page.
audrey.$(man_section): bin/audrey
- PYTHONPATH=$(PYTHONPATH):src ./$< --help
+ PYTHONPATH=$(PYTHONPATH):src ./$< --help > /dev/null
PYTHONPATH=$(PYTHONPATH):src help2man --name='Aeolus agent' \
--section $(man_section) --no-info ./$< > $@
diff --git a/agent/aeolus-audrey-agent.spec.in b/agent/aeolus-audrey-agent.spec.in
index 182af8b..818af4a 100644
--- a/agent/aeolus-audrey-agent.spec.in
+++ b/agent/aeolus-audrey-agent.spec.in
@@ -13,6 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
+%if 0%{?rhel} == 5
+# sitelib for noarch packages
+%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%endif
+
Name: aeolus-audrey-agent
Version: @VERSION@
Release: @RELEASE@
@@ -27,15 +33,13 @@ Source0: https://github.com/aeolusproject/audrey/tarball/master/aeolus-audrey
# process "audrey --help" is executed to generate the man page.
BuildRequires: help2man
BuildRequires: facter python-httplib2 python-oauth2
-%if (0%{?fedora} <= 14 || 0%{?rhel} <= 6)
-BuildRequires: python-argparse
-BuildRequires: python-setuptools
-%endif
-
Requires: facter python-httplib2 python-oauth2
Requires: python-argparse
-%if (0%{?fedora} <= 14 || 0%{?rhel} <= 6)
+
+%if 0%{?rhel} == 5
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+BuildRequires: python-argparse
+BuildRequires: python-setuptools
Requires: python-argparse
Requires: python-setuptools
%endif
@@ -55,33 +59,60 @@ make %{?_smp_mflags}
%install
rm -rf %{buildroot}
-mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
-mkdir -p %{buildroot}%{python_sitelib}
+
+# copy over the audrey agent bits
+mkdir -p %{buildroot}%{python_sitelib}/audrey/csclient
mkdir -p %{buildroot}%{_bindir}
+install -m644 src/audrey/*py* %{buildroot}%{python_sitelib}/audrey
+install -m644 src/audrey/csclient/* %{buildroot}%{python_sitelib}/audrey/csclient
+install -m755 bin/audrey %{buildroot}%{_bindir}/audrey
+
+#install man files
mkdir -p %{buildroot}%{_mandir}/man8
+install -m644 audrey.8 %{buildroot}%{_mandir}/man8
-# copy over the audrey agent bits
-cp -r src/audrey %{buildroot}%{python_sitelib}
-install bin/audrey %{buildroot}%{_bindir}/audrey
-cp audrey.8 %{buildroot}%{_mandir}/man8
+# create the cloud-info file for the subpackages
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
touch %{buildroot}%{_sysconfdir}/sysconfig/cloud-info
+if [ 0%{?rhel} == 05 ]; then
+ # install the sysv service script
+ mkdir -p $RPM_BUILD_ROOT/%{_initrddir}/%{name}
+ install -Dp -m755 scripts/audrey.sysv %{buildroot}%{_initrddir}/audrey
+else
+ # install the systemd unit file
+ mkdir -p $RPM_BUILD_ROOT/%{_unitdir}/
+ install -m644 scripts/audrey.service $RPM_BUILD_ROOT/%{_unitdir}/
+fi
+
%post
-if ! grep -q audrey %{_sysconfdir}/rc.d/rc.local; then
- # install rc.local invocation
- echo '# This conditionally runs Audrey if it exists' >> %{_sysconfdir}/rc.d/rc.local
- echo '[ -f /usr/bin/audrey ] && /usr/bin/audrey' >> %{_sysconfdir}/rc.d/rc.local
+if [ 0%{?rhel} == 05 ]; then
+/sbin/chkconfig --add audrey
+/sbin/chkconfig audrey on
+else
+/bin/systemctl enable audrey.service > /dev/null
fi
-%postun
-# remove the audrey calls from rc.local
-sed -i "/[Aa]udrey/d" /etc/rc.d/rc.local
+
+%preun
+if [ "$1" = 0 ] ; then
+if [ 0%{?rhel} == 05 ]; then
+/sbin/chkconfig --del audrey
+else
+/bin/systemctl disable audrey.service > /dev/null
+fi
+fi
%files
%defattr(-,root,root,-)
%{_bindir}/audrey
%{python_sitelib}/audrey/*
%{_mandir}/man8/audrey.8*
+%if 0%{?rhel} == 5
+%{_initrddir}/audrey
+%else
+%{_unitdir}/audrey.service
+%endif
%doc COPYING
###
--
1.7.7.6
More information about the aeolus-devel
mailing list