diff options
Diffstat (limited to 'systemtap.spec')
-rw-r--r-- | systemtap.spec | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/systemtap.spec b/systemtap.spec index 193e1bbd..eb55145a 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -305,37 +305,40 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server/conf.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig install -m 644 initscript/config.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/stap-server -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log -touch $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server.log +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server +touch $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server/log %clean rm -rf ${RPM_BUILD_ROOT} +%pre +getent group stap-server >/dev/null || groupadd -g 155 -r stap-server || groupadd -r stap-server + %pre runtime getent group stapdev >/dev/null || groupadd -r stapdev getent group stapusr >/dev/null || groupadd -r stapusr exit 0 %pre server -getent group stap-server >/dev/null || groupadd -r stap-server -getent passwd stap-server >/dev/null || useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -m -r -s /sbin/nologin stap-server +getent passwd stap-server >/dev/null || \ + useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -m -r -s /sbin/nologin stap-server || \ + useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -m -r -s /sbin/nologin stap-server test -e ~stap-server && chmod 755 ~stap-server exit 0 %post server -chmod 664 %{_localstatedir}/log/stap-server.log -chown stap-server %{_localstatedir}/log/stap-server.log -chgrp stap-server %{_localstatedir}/log/stap-server.log -# Make sure that the uprobes module can be built by the server -test -e /usr/share/systemtap/runtime/uprobes || mkdir -p /usr/share/systemtap/runtime/uprobes -chgrp stap-server /usr/share/systemtap/runtime/uprobes -chmod 775 /usr/share/systemtap/runtime/uprobes -# As stap-server, generate the certificate used for signing and for ssl. -runuser -s /bin/sh - stap-server -c %{_libexecdir}/%{name}/stap-gen-cert >/dev/null -# Authorize the certificate as a trusted ssl peer and as a trusted signer -# on the local host. -%{_bindir}/stap-authorize-server-cert ~stap-server/.systemtap/ssl/server/stap.cert -%{_bindir}/stap-authorize-signing-cert ~stap-server/.systemtap/ssl/server/stap.cert +chmod 664 %{_localstatedir}/log/stap-server/log +chown stap-server %{_localstatedir}/log/stap-server/log +chgrp stap-server %{_localstatedir}/log/stap-server/log +# If it does not already exit, as stap-server, generate the certificate +# used for signing and for ssl. +if test ! -e ~stap-server/.systemtap/ssl/server/stap.cert; then + runuser -s /bin/sh - stap-server -c %{_libexecdir}/%{name}/stap-gen-cert >/dev/null + # Authorize the certificate as a trusted ssl peer and as a trusted signer + # on the local host. + %{_bindir}/stap-authorize-server-cert ~stap-server/.systemtap/ssl/server/stap.cert + %{_bindir}/stap-authorize-signing-cert ~stap-server/.systemtap/ssl/server/stap.cert +fi # Activate the service /sbin/chkconfig --add stap-server @@ -381,12 +384,12 @@ exit 0 %post # Remove any previously-built uprobes.ko materials -(make -C /usr/share/systemtap/runtime/uprobes clean) >/dev/null 2>&1 || true +(make -C %{_datadir}/%{name}/runtime/uprobes clean) >/dev/null 2>&1 || true (/sbin/rmmod uprobes) >/dev/null 2>&1 || true %preun # Ditto -(make -C /usr/share/systemtap/runtime/uprobes clean) >/dev/null 2>&1 || true +(make -C %{_datadir}/%{name}/runtime/uprobes clean) >/dev/null 2>&1 || true (/sbin/rmmod uprobes) >/dev/null 2>&1 || true %files @@ -420,6 +423,9 @@ exit 0 %{_libdir}/%{name}/staplog.so* %endif +# Make sure that the uprobes module can be built by root and by the server +%attr(07754,root,stap-server) %{_datadir}/%{name}/runtime/uprobes + %files runtime %defattr(-,root,root) %attr(4111,root,root) %{_bindir}/staprun @@ -464,7 +470,7 @@ exit 0 %dir %{_sysconfdir}/stap-server %dir %{_sysconfdir}/stap-server/conf.d %config(noreplace) %{_sysconfdir}/sysconfig/stap-server -%{_localstatedir}/log/stap-server.log +%{_localstatedir}/log/stap-server/log %doc initscript/README.stap-server %files sdt-devel |