[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