[upstart] move jobs to /lib/upstart/init and make symlinks in /etc/init
Petr Lautrbach
plautrba at fedoraproject.org
Tue Mar 15 15:16:56 UTC 2011
commit 4bbee5dbc7f94e59342cd8ca45968364e2c62391
Author: Petr Lautrbach <plautrba at redhat.com>
Date: Tue Mar 15 16:14:49 2011 +0100
move jobs to /lib/upstart/init and make symlinks in /etc/init
upstart.spec | 43 ++++++++++++++++++++++++++++++++++++-------
1 files changed, 36 insertions(+), 7 deletions(-)
---
diff --git a/upstart.spec b/upstart.spec
index d1ac266..28e820d 100644
--- a/upstart.spec
+++ b/upstart.spec
@@ -69,7 +69,7 @@ make install DESTDIR=%{buildroot}
mv %{buildroot}/sbin/init %{buildroot}/sbin/upstart
rm %{buildroot}/sbin/halt
rm %{buildroot}/sbin/poweroff
-mkdir -p -m 755 %{buildroot}/lib/upstart
+mkdir -p -m 755 %{buildroot}/lib/upstart/init
mv %{buildroot}/sbin/reboot %{buildroot}/lib/upstart/reboot
mv %{buildroot}/sbin/runlevel %{buildroot}/lib/upstart/runlevel
mv %{buildroot}/sbin/shutdown %{buildroot}/lib/upstart/shutdown
@@ -93,10 +93,10 @@ rm -f %{buildroot}/%{_mandir}/man8/{halt,init,poweroff,reboot,runlevel,shutdown,
# don't ship default jobs
rm -f %{buildroot}/%{_sysconfdir}/init/*
-install -m 644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/init/
-install -m 644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/init/
+install -m 644 %{SOURCE1} %{buildroot}/lib/upstart/init/
+install -m 644 %{SOURCE3} %{buildroot}/lib/upstart/init/
for file in initjobs-%{initscripts}/*.conf ; do
- install -m 644 $file %{buildroot}/%{_sysconfdir}/init/
+ install -m 644 $file %{buildroot}/lib/upstart/init/
done
@@ -112,8 +112,36 @@ done
%clean
rm -rf %{buildroot}
-%triggerpostun -- upstart < 0.6.0
-[ -f /proc/1/exe -a -d /proc/1/root ] && kill -TERM 1
+%post
+#create symlinks to /lib/upstart/init after instalation
+if [ $1 -eq 1 ]; then
+ cd /lib/upstart/init
+ for j in *.conf; do
+ if [ ! -e /etc/init/$j ]; then
+ ln -sf /lib/upstart/init/$j /etc/init
+ fi
+ done
+fi
+
+%postun
+#remove broken symlinks from /etc/init
+if [ $1 -eq 0 ]; then
+ for j in $(find -L /etc/init/ -type l); do
+ if ls -l $j | grep -q '/lib/upstart/init/'; then
+ rm -f $j
+ fi
+ done
+fi
+
+%triggerpostun -- upstart < 1.0-2
+#version before 1.0-2 didn't use symlinks to /lib/upstart/init
+cd /lib/upstart/init
+for j in *.conf; do
+ if [ ! -e /etc/init/$j ]; then
+ ln -sf /lib/upstart/init/$j /etc/init
+ fi
+done
+initctl reload-configuration || :
%files -f %{name}.lang
%defattr(-,root,root,-)
@@ -123,7 +151,8 @@ rm -rf %{buildroot}
%doc README
%doc TODO
%doc HACKING
-%{_sysconfdir}/init/
+%dir %{_sysconfdir}/init/
+/lib/upstart/init/
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/Upstart.conf
%dir /lib/upstart
/lib/upstart/halt
More information about the scm-commits
mailing list