summaryrefslogtreecommitdiff
path: root/community-testing/systemd/systemd.install
diff options
context:
space:
mode:
Diffstat (limited to 'community-testing/systemd/systemd.install')
-rw-r--r--community-testing/systemd/systemd.install50
1 files changed, 50 insertions, 0 deletions
diff --git a/community-testing/systemd/systemd.install b/community-testing/systemd/systemd.install
new file mode 100644
index 000000000..259d09b9e
--- /dev/null
+++ b/community-testing/systemd/systemd.install
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+checkgroups() {
+ getent group lock >/dev/null || groupadd -g 54 lock
+
+ utmpent=$(getent group utmp)
+ if [ -z $utmpent ]; then
+ getent group utmp >/dev/null || groupadd -g 32 utmp
+ elif [ $(echo $utmpent | cut -d: -f3) = '22' ]; then
+ groupmod -g 32 utmp
+ fi
+}
+
+post_install() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+
+ # Try to read default runlevel from the old inittab if it exists
+ runlevel=$(/bin/awk -F':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
+ if [ -z "$runlevel" ]; then
+ target="/lib/systemd/system/graphical.target"
+ else
+ target="/lib/systemd/system/runlevel$runlevel.target"
+ fi
+
+ # And symlink what we found to the new-style default.target
+ /bin/ln -sf "$target" /etc/systemd/system/default.target
+
+ echo "systemd has been installed to /bin/systemd. Please ensure you append"
+ echo "init=/bin/systemd to your kernel command line in your bootloader."
+}
+
+post_upgrade() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+ /bin/systemctl daemon-reexec >/dev/null || :
+}
+
+pre_remove() {
+ /bin/rm -f /etc/systemd/system/default.target
+}
+
+post_remove() {
+ getent group lock >/dev/null && groupdel lock
+ getent group utmp >/dev/null && groupdel utmp
+}
+
+# vim:set ts=2 sw=2 et: