summaryrefslogtreecommitdiff
path: root/recipes/sysvinit
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/sysvinit
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/sysvinit')
-rw-r--r--recipes/sysvinit/sysvinit-2.86/install.patch77
-rwxr-xr-xrecipes/sysvinit/sysvinit/angstrom/rc176
-rwxr-xr-xrecipes/sysvinit/sysvinit/angstrom/rcS56
-rwxr-xr-xrecipes/sysvinit/sysvinit/bootlogd.init85
-rw-r--r--recipes/sysvinit/sysvinit/inittab30
-rw-r--r--recipes/sysvinit/sysvinit/mnci/inittab11
-rw-r--r--recipes/sysvinit/sysvinit/need6
-rwxr-xr-xrecipes/sysvinit/sysvinit/openmn/rcS79
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rc108
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rcS9
-rw-r--r--recipes/sysvinit/sysvinit/openmoko/rcS-default25
-rw-r--r--recipes/sysvinit/sysvinit/oplinux-uclibc/inittab39
-rw-r--r--recipes/sysvinit/sysvinit/oplinux/inittab39
-rw-r--r--recipes/sysvinit/sysvinit/postinst17
-rw-r--r--recipes/sysvinit/sysvinit/prerm9
-rw-r--r--recipes/sysvinit/sysvinit/provide6
-rwxr-xr-xrecipes/sysvinit/sysvinit/rc102
-rwxr-xr-xrecipes/sysvinit/sysvinit/rcS110
-rw-r--r--recipes/sysvinit/sysvinit/rcS-default25
-rw-r--r--recipes/sysvinit/sysvinit/rt3000/inittab12
-rw-r--r--recipes/sysvinit/sysvinit/slugos/inittab32
-rw-r--r--recipes/sysvinit/sysvinit/slugos/rcS-default30
-rw-r--r--recipes/sysvinit/sysvinit_2.86.bb136
23 files changed, 1219 insertions, 0 deletions
diff --git a/recipes/sysvinit/sysvinit-2.86/install.patch b/recipes/sysvinit/sysvinit-2.86/install.patch
new file mode 100644
index 0000000000..01c1367c03
--- /dev/null
+++ b/recipes/sysvinit/sysvinit-2.86/install.patch
@@ -0,0 +1,77 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- sysvinit-2.85/src/Makefile~install
++++ sysvinit-2.85/src/Makefile
+@@ -47,7 +47,15 @@
+ BIN_GROUP = root
+ BIN_COMBO = $(BIN_OWNER):$(BIN_GROUP)
+ INSTALL = install -o $(BIN_OWNER) -g $(BIN_GROUP)
+-MANDIR = /usr/share/man
++
++ROOT =
++bindir = /bin
++sbindir = /sbin
++usrbindir = /usr/bin
++usrbindir = /usr/bin
++includedir = /usr/include
++mandir = /usr/share/man
++
+
+ # Additional libs for GNU libc.
+ ifneq ($(wildcard /usr/lib/libcrypt.a),)
+@@ -110,32 +118,39 @@
+ distclean: clobber
+
+ install:
++ install -d $(ROOT)$(bindir)
+ for i in $(BIN); do \
+- $(INSTALL) -m 755 $$i $(ROOT)/bin/; \
++ $(INSTALL) -m 755 $$i $(ROOT)$(bindir)/; \
+ done
++ install -d $(ROOT)$(sbindir)
+ for i in $(SBIN); do \
+- $(INSTALL) -m 755 $$i $(ROOT)/sbin/; \
++ $(INSTALL) -m 755 $$i $(ROOT)$(sbindir)/; \
+ done
++ install -d $(ROOT)$(usrbindir)
+ for i in $(USRBIN); do \
+- $(INSTALL) -m 755 $$i $(ROOT)/usr/bin/; \
++ $(INSTALL) -m 755 $$i $(ROOT)$(usrbindir)/; \
+ done
+ # $(INSTALL) -m 755 etc/initscript.sample $(ROOT)/etc/
+- ln -sf halt $(ROOT)/sbin/reboot
+- ln -sf halt $(ROOT)/sbin/poweroff
+- ln -sf init $(ROOT)/sbin/telinit
+- ln -sf ../sbin/killall5 $(ROOT)/bin/pidof
+- if [ ! -f $(ROOT)/usr/bin/lastb ]; then \
+- ln -sf last $(ROOT)/usr/bin/lastb; \
++ ln -sf halt $(ROOT)$(sbindir)/reboot
++ ln -sf halt $(ROOT)$(sbindir)/poweroff
++ ln -sf init $(ROOT)$(sbindir)/telinit
++ ln -sf ../sbin/killall5 $(ROOT)$(bindir)/pidof
++ if [ ! -f $(ROOT)$(usrbindir)/lastb ]; then \
++ ln -sf last $(ROOT)$(usrbindir)/lastb; \
+ fi
+- $(INSTALL) -m 644 initreq.h $(ROOT)/usr/include/
++ install -d $(ROOT)$(includedir)
++ $(INSTALL) -m 644 initreq.h $(ROOT)$(includedir)/
++ install -d $(ROOT)$(mandir)/man1 \
++ $(ROOT)$(mandir)/man5 \
++ $(ROOT)$(mandir)/man8
+ for i in $(MAN1); do \
+- $(INSTALL) -m 644 ../man/$$i $(ROOT)$(MANDIR)/man1/; \
++ $(INSTALL) -m 644 ../man/$$i $(ROOT)$(mandir)/man1/; \
+ done
+ for i in $(MAN5); do \
+- $(INSTALL) -m 644 ../man/$$i $(ROOT)$(MANDIR)/man5/; \
++ $(INSTALL) -m 644 ../man/$$i $(ROOT)$(mandir)/man5/; \
+ done
+ for i in $(MAN8); do \
+- $(INSTALL) -m 644 ../man/$$i $(ROOT)$(MANDIR)/man8/; \
++ $(INSTALL) -m 644 ../man/$$i $(ROOT)$(mandir)/man8/; \
+ done
+ ifeq ($(ROOT),)
+ #
diff --git a/recipes/sysvinit/sysvinit/angstrom/rc b/recipes/sysvinit/sysvinit/angstrom/rc
new file mode 100755
index 0000000000..30b69ad516
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/angstrom/rc
@@ -0,0 +1,176 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+startup_progress() {
+ step=$(($step + $step_change))
+ if [ "$num_steps" != "0" ]; then
+ progress=$((($step * $progress_size / $num_steps) + $first_step))
+ else
+ progress=$progress_size
+ fi
+ #echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
+ if type psplash-write >/dev/null 2>&1; then
+ TMPDIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
+ fi
+}
+
+
+#
+# Start script or program.
+#
+startup() {
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $@..."
+
+ case "$1" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ scriptname=$1
+ shift
+ . $scriptname
+ )
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+ startup_progress
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # Find out where in the progress bar the initramfs got to.
+ PROGRESS_STATE=0
+ #if [ -f /dev/.initramfs/progress_state ]; then
+ # . /dev/.initramfs/progress_state
+ #fi
+
+ # Split the remaining portion of the progress bar into thirds
+ progress_size=$(((100 - $PROGRESS_STATE) / 3))
+
+ case "$runlevel" in
+ 0|6)
+ # Count down from -100 to 0 and use the entire bar
+ first_step=-100
+ progress_size=100
+ step_change=1
+ ;;
+ S)
+ # Begin where the initramfs left off and use 2/3
+ # of the remaining space
+ first_step=$PROGRESS_STATE
+ progress_size=$(($progress_size * 2))
+ step_change=1
+ ;;
+ *)
+ # Begin where rcS left off and use the final 1/3 of
+ # the space (by leaving progress_size unchanged)
+ first_step=$(($progress_size * 2 + $PROGRESS_STATE))
+ step_change=1
+ ;;
+ esac
+
+ num_steps=0
+ for s in /etc/rc$runlevel.d/[SK]*; do
+ case "${s##/etc/rc$runlevel.d/S??}" in
+ gdm|xdm|kdm|reboot|halt)
+ break
+ ;;
+ esac
+ num_steps=$(($num_steps + 1))
+ done
+ step=0
+
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
+
+#Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
+#if [ "x$runlevel" != "xS" ]; then
+# if type psplash-write >/dev/null 2>&1; then
+# TMPDIR=/mnt/.psplash psplash-write "QUIT" || true
+# umount /mnt/.psplash
+# fi
+#fi
diff --git a/recipes/sysvinit/sysvinit/angstrom/rcS b/recipes/sysvinit/sysvinit/angstrom/rcS
new file mode 100755
index 0000000000..90af4149e4
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/angstrom/rcS
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+# Make sure proc is mounted
+#
+[ -d "/proc/1" ] || mount /proc
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Call all parts in order.
+#
+exec /etc/init.d/rc S
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
+
diff --git a/recipes/sysvinit/sysvinit/bootlogd.init b/recipes/sysvinit/sysvinit/bootlogd.init
new file mode 100755
index 0000000000..f8f07a050f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/bootlogd.init
@@ -0,0 +1,85 @@
+#! /bin/sh
+#
+# bootlogd One of the first scripts to be executed. Starts or stops
+# the bootlogd log program. If this script is called as
+# "stop-bootlogd", it will stop the daemon instead of
+# starting it even when called with the "start" argument.
+#
+# Version: @(#)bootlogd 2.85-12 21-Mar-2004 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/sbin/bootlogd
+NAME=bootlogd
+DESC="Bootlog daemon"
+
+test -f $DAEMON || exit 0
+
+[ -r /etc/default/bootlogd ] && . /etc/default/bootlogd
+
+## set -e # not needed
+
+case "$BOOTLOGD_ENABLE" in
+ [Nn]*)
+ exit 0
+ ;;
+esac
+
+STOPPER=
+ACTION="$1"
+case "$0" in
+ *stop-bootlog*)
+ STOPPER=Y
+ if [ "$ACTION" = start ]
+ then
+ ACTION=stop
+ fi
+ ;;
+esac
+
+case "$ACTION" in
+ start)
+ echo -n "Starting $DESC: "
+ if [ -d /proc/1/. ]
+ then
+ umask 027
+ start-stop-daemon --start --quiet \
+ --exec $DAEMON -- -r
+ else
+ $DAEMON -r
+ fi
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --exec $DAEMON
+
+ if [ "$STOPPER" ] && [ -f /var/log/boot ] && \
+ [ -f /var/log/boot~ ]
+ then
+ cd /var/log
+ chgrp adm boot
+ savelog -p -c 5 boot > /dev/null 2>&1
+ mv boot.0 boot
+ mv boot~ boot.0
+ fi
+
+ echo "$NAME."
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop --quiet --exec $DAEMON
+ sleep 1
+ start-stop-daemon --start --quiet --exec $DAEMON
+ echo "$NAME."
+ ;;
+ *)
+ N=${0##*/}
+ N=${N#[SK]??}
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
diff --git a/recipes/sysvinit/sysvinit/inittab b/recipes/sysvinit/sysvinit/inittab
new file mode 100644
index 0000000000..6abbdf4558
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/inittab
@@ -0,0 +1,30 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:5:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
diff --git a/recipes/sysvinit/sysvinit/mnci/inittab b/recipes/sysvinit/sysvinit/mnci/inittab
new file mode 100644
index 0000000000..d2c46a8a78
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/mnci/inittab
@@ -0,0 +1,11 @@
+id:2:initdefault:
+si::sysinit:/etc/init.d/rcS
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+0:2345:respawn:/sbin/getty -L 115200 tts/0
+v1:2345:respawn:/sbin/getty -L 115200 vc/1
diff --git a/recipes/sysvinit/sysvinit/need b/recipes/sysvinit/sysvinit/need
new file mode 100644
index 0000000000..4d84bbeee7
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/need
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# need binary that doesnt do anything, supplied for simpleinit
+# vs sysvinit compatibility for the supplied startup scripts
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/openmn/rcS b/recipes/sysvinit/sysvinit/openmn/rcS
new file mode 100755
index 0000000000..7d7ed02340
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmn/rcS
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Call all parts in order.
+#
+for i in /etc/rcS.d/S??*
+do
+ # Ignore dangling symlinks for now.
+ [ ! -f "$i" ] && continue
+
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+
+ #
+ # Report status based on result code
+ #
+ result=$?
+done
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
diff --git a/recipes/sysvinit/sysvinit/openmoko/rc b/recipes/sysvinit/sysvinit/openmoko/rc
new file mode 100644
index 0000000000..1c2c79b6ae
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rc
@@ -0,0 +1,108 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Start script or program.
+#
+startup() {
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $@..."
+
+ case "$1" in
+ *.sh)
+ # Source shell script for speed.
+ scriptname=$1
+ shift
+ . $scriptname
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
diff --git a/recipes/sysvinit/sysvinit/openmoko/rcS b/recipes/sysvinit/sysvinit/openmoko/rcS
new file mode 100644
index 0000000000..08dca5dc1e
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rcS
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+exec /etc/init.d/rc S
diff --git a/recipes/sysvinit/sysvinit/openmoko/rcS-default b/recipes/sysvinit/sysvinit/openmoko/rcS-default
new file mode 100644
index 0000000000..5bb57ef74f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/openmoko/rcS-default
@@ -0,0 +1,25 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Whether to fsck root on boot
+ENABLE_ROOTFS_FSCK=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set TICKADJ to the correct tick value for this specific machine
+#TICKADJ=10000
+# Enable caching in populate-volatile.sh
+VOLATILE_ENABLE_CACHE=yes
diff --git a/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab b/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab
new file mode 100644
index 0000000000..1bb7c45254
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/oplinux-uclibc/inittab
@@ -0,0 +1,39 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+
+1:2345:respawn:/sbin/getty 115200 tty1
+2:23:respawn:/sbin/getty 115200 tty2
+3:23:respawn:/sbin/getty 115200 tty3
+4:23:respawn:/sbin/getty 115200 tty4
+5:23:respawn:/sbin/getty 115200 tty5
+6:23:respawn:/sbin/getty 115200 tty6
+
diff --git a/recipes/sysvinit/sysvinit/oplinux/inittab b/recipes/sysvinit/sysvinit/oplinux/inittab
new file mode 100644
index 0000000000..1bb7c45254
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/oplinux/inittab
@@ -0,0 +1,39 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+
+1:2345:respawn:/sbin/getty 115200 tty1
+2:23:respawn:/sbin/getty 115200 tty2
+3:23:respawn:/sbin/getty 115200 tty3
+4:23:respawn:/sbin/getty 115200 tty4
+5:23:respawn:/sbin/getty 115200 tty5
+6:23:respawn:/sbin/getty 115200 tty6
+
diff --git a/recipes/sysvinit/sysvinit/postinst b/recipes/sysvinit/sysvinit/postinst
new file mode 100644
index 0000000000..b6fe547fa4
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/postinst
@@ -0,0 +1,17 @@
+#!/bin/busybox ash
+
+action="$1"
+oldversion="$2"
+
+umask 022
+
+if [ "$action" != configure ]
+then
+ exit 0
+fi
+
+update-alternatives --install /sbin/init init /sbin/sysvinit 25
+update-alternatives --install /sbin/need need /sbin/need.sysvinit 25
+update-alternatives --install /sbin/provide provide /sbin/provide.sysvinit 25
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/prerm b/recipes/sysvinit/sysvinit/prerm
new file mode 100644
index 0000000000..704a29ffd5
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/prerm
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ "$1" != "upgrade" ]; then
+ update-alternatives --remove need /sbin/need.sysvinit
+ update-alternatives --remove provide /sbin/provide.sysvinit
+ update-alternatives --remove init /sbin/sysvinit
+fi
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/provide b/recipes/sysvinit/sysvinit/provide
new file mode 100644
index 0000000000..c90cf3537b
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/provide
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# provide binary that doesnt do anything, supplied for simpleinit
+# vs sysvinit compatibility for the supplied startup scripts
+
+exit 0
diff --git a/recipes/sysvinit/sysvinit/rc b/recipes/sysvinit/sysvinit/rc
new file mode 100755
index 0000000000..fdb0fce887
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rc
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+# rc This file is responsible for starting/stopping
+# services when the runlevel changes.
+#
+# Optimization feature:
+# A startup script is _not_ run when the service was
+# running in the previous runlevel and it wasn't stopped
+# in the runlevel transition (most Debian services don't
+# have K?? links in rc{1,2,3,4,5} )
+#
+# Author: Miquel van Smoorenburg <miquels@cistron.nl>
+# Bruce Perens <Bruce@Pixar.com>
+#
+# Version: @(#)rc 2.78 07-Nov-1999 miquels@cistron.nl
+#
+
+. /etc/default/rcS
+export VERBOSE
+
+#
+# Start script or program.
+#
+startup() {
+ case "$1" in
+ *.sh)
+ sh "$@"
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+}
+
+ # Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
+ trap ":" INT QUIT TSTP
+
+ # Set onlcr to avoid staircase effect.
+ stty onlcr 0>&1
+
+ # Now find out what the current and what the previous runlevel are.
+
+ runlevel=$RUNLEVEL
+ # Get first argument. Set new runlevel to this argument.
+ [ "$1" != "" ] && runlevel=$1
+ if [ "$runlevel" = "" ]
+ then
+ echo "Usage: $0 <runlevel>" >&2
+ exit 1
+ fi
+ previous=$PREVLEVEL
+ [ "$previous" = "" ] && previous=N
+
+ export runlevel previous
+
+ # Is there an rc directory for this new runlevel?
+ if [ -d /etc/rc$runlevel.d ]
+ then
+ # First, run the KILL scripts.
+ if [ $previous != N ]
+ then
+ for i in /etc/rc$runlevel.d/K[0-9][0-9]*
+ do
+ # Check if the script is there.
+ [ ! -f $i ] && continue
+
+ # Stop the service.
+ startup $i stop
+ done
+ fi
+ # Now run the START scripts for this runlevel.
+ for i in /etc/rc$runlevel.d/S*
+ do
+ [ ! -f $i ] && continue
+
+ if [ $previous != N ] && [ $previous != S ]
+ then
+ #
+ # Find start script in previous runlevel and
+ # stop script in this runlevel.
+ #
+ suffix=${i#/etc/rc$runlevel.d/S[0-9][0-9]}
+ stop=/etc/rc$runlevel.d/K[0-9][0-9]$suffix
+ previous_start=/etc/rc$previous.d/S[0-9][0-9]$suffix
+ #
+ # If there is a start script in the previous level
+ # and _no_ stop script in this level, we don't
+ # have to re-start the service.
+ #
+ [ -f $previous_start ] && [ ! -f $stop ] && continue
+ fi
+ case "$runlevel" in
+ 0|6)
+ startup $i stop
+ ;;
+ *)
+ startup $i start
+ ;;
+ esac
+ done
+ fi
+# eof /etc/init.d/rc
diff --git a/recipes/sysvinit/sysvinit/rcS b/recipes/sysvinit/sysvinit/rcS
new file mode 100755
index 0000000000..e7a7e617d0
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rcS
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+# Make sure proc is mounted
+#
+[ -d "/proc/1" ] || mount /proc
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Do we have /proc/progress and set VERBOSE to "no" ?
+# If so, calculate the number of scripts and the incremental step
+#
+if [ "$VERBOSE" = no ]; then
+ if [ -e /proc/progress ]; then
+ set `ls -1 /etc/rc$runlevel.d/S* | wc`
+ numscripts=$1
+ PROGRESS_incstep=`expr 90 / $1`
+ PROGRESS_value=10
+ PROGRESS=yes
+ export PROGRESS_value PROGRESS_incstep
+ fi
+fi
+export VERBOSE PROGRESS
+
+#
+# Call all parts in order.
+#
+for i in /etc/rcS.d/S??*
+do
+ # Ignore dangling symlinks for now.
+ [ ! -f "$i" ] && continue
+
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
+ if [ "$PROGRESS" = yes ]; then
+ export PROGRESS_value=`expr $PROGRESS_value + $PROGRESS_incstep`
+ echo "$PROGRESS_value Starting $i..." >/proc/progress
+ fi
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+
+ #
+ # Report status based on result code
+ #
+ result=$?
+ if [ "$PROGRESS" = yes ]; then
+ if [ "$result" = 0 ]; then
+ echo "=s" >/proc/progress
+ else
+ echo "=f" >/proc/progress
+ fi
+ fi
+done
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
+
diff --git a/recipes/sysvinit/sysvinit/rcS-default b/recipes/sysvinit/sysvinit/rcS-default
new file mode 100644
index 0000000000..7ad3c7bf8f
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rcS-default
@@ -0,0 +1,25 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+# UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Whether to fsck root on boot
+ENABLE_ROOTFS_FSCK=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set TICKADJ to the correct tick value for this specific machine
+#TICKADJ=10000
+# Enable caching in populate-volatile.sh
+VOLATILE_ENABLE_CACHE=yes
diff --git a/recipes/sysvinit/sysvinit/rt3000/inittab b/recipes/sysvinit/sysvinit/rt3000/inittab
new file mode 100644
index 0000000000..3cfb5eec6a
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/rt3000/inittab
@@ -0,0 +1,12 @@
+id:2:initdefault:
+si::sysinit:/etc/init.d/rcS
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+0:2345:respawn:/sbin/getty -L 115200 tts/0
+2:2345:respawn:/sbin/getty -L 115200 tts/2
+v1:2345:respawn:/sbin/getty -L 115200 vc/1
diff --git a/recipes/sysvinit/sysvinit/slugos/inittab b/recipes/sysvinit/sysvinit/slugos/inittab
new file mode 100644
index 0000000000..a82c1f5449
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/slugos/inittab
@@ -0,0 +1,32 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+ca:123456:ctrlaltdel:/sbin/poweroff
diff --git a/recipes/sysvinit/sysvinit/slugos/rcS-default b/recipes/sysvinit/sysvinit/slugos/rcS-default
new file mode 100644
index 0000000000..8bd6656cb5
--- /dev/null
+++ b/recipes/sysvinit/sysvinit/slugos/rcS-default
@@ -0,0 +1,30 @@
+#
+# Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+# Set to ok if the machine supports SULOGIN, otherwise a
+# boot time failure will be ignored unless the system
+# is known to support a serial port
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
+#SlugOS: see the comments in /etc/init.d/hwclock.sh before changing this.
+UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be editted automatically
+EDITMOTD=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set DOSWAP to "no" if you do not want all swap to automatically be mounted
+DOSWAP=yes
+# Set ROOTFSCK to "yes" to check the root fs automatically on boot
+# WARNING: fsck for the file system must be installed and must work
+# before enabling this option, if not your system will drop to single
+# user (sulogin) if SULOGIN is set to yes or ok!
+ROOTFSCK=no
diff --git a/recipes/sysvinit/sysvinit_2.86.bb b/recipes/sysvinit/sysvinit_2.86.bb
new file mode 100644
index 0000000000..6e6f98c6ed
--- /dev/null
+++ b/recipes/sysvinit/sysvinit_2.86.bb
@@ -0,0 +1,136 @@
+DESCRIPTION = "System-V like init."
+SECTION = "base"
+LICENSE = "GPL"
+HOMEPAGE = "http://freshmeat.net/projects/sysvinit/"
+PR = "r46"
+
+# USE_VT and SERIAL_CONSOLE are generally defined by the MACHINE .conf.
+# Set PACKAGE_ARCH appropriately.
+PACKAGE_ARCH_${PN}-inittab = "${MACHINE_ARCH}"
+
+RDEPENDS_${PN} = "${PN}-inittab"
+
+PACKAGES =+ "bootlogd ${PN}-inittab"
+FILES_bootlogd = "/etc/init.d/bootlogd /etc/init.d/stop-bootlogd /etc/rc?.d/S*bootlogd /sbin/bootlogd"
+FILES_${PN}-inittab = "${sysconfdir}/inittab"
+CONFFILES_${PN}-inittab = "${sysconfdir}/inittab"
+
+USE_VT ?= "1"
+SYSVINIT_ENABLED_GETTYS ?= "1"
+
+SRC_URI = "ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/sysvinit-${PV}.tar.gz \
+ file://install.patch;patch=1 \
+ file://need \
+ file://provide \
+ file://inittab \
+ file://rcS-default \
+ file://rc \
+ file://rcS \
+ file://bootlogd.init"
+
+S = "${WORKDIR}/sysvinit-${PV}"
+B = "${S}/src"
+
+inherit update-alternatives
+
+ALTERNATIVE_NAME = "init"
+ALTERNATIVE_LINK = "${base_sbindir}/init"
+ALTERNATIVE_PATH = "${base_sbindir}/init.sysvinit"
+ALTERNATIVE_PRIORITY = "60"
+
+PACKAGES =+ "sysvinit-pidof sysvinit-sulogin"
+FILES_${PN} += "${base_sbindir}/* ${base_bindir}/*"
+FILES_sysvinit-pidof = "${base_bindir}/pidof.sysvinit"
+FILES_sysvinit-sulogin = "${base_sbindir}/sulogin"
+
+CFLAGS_prepend = "-D_GNU_SOURCE "
+export LCRYPT = "-lcrypt"
+EXTRA_OEMAKE += "'INSTALL=install' \
+ 'bindir=${base_bindir}' \
+ 'sbindir=${base_sbindir}' \
+ 'usrbindir=${bindir}' \
+ 'usrsbindir=${sbindir}' \
+ 'includedir=${includedir}' \
+ 'mandir=${mandir}' \
+ DISTRO=''"
+
+do_install () {
+ oe_runmake 'ROOT=${D}' install
+ install -d ${D}${sysconfdir}
+ install -d ${D}${sysconfdir}/default
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab
+ if [ ! -z "${SERIAL_CONSOLE}" ]; then
+ echo "S:2345:respawn:${base_sbindir}/getty ${SERIAL_CONSOLE}" >> ${D}${sysconfdir}/inittab
+ fi
+ if [ "${USE_VT}" = "1" ]; then
+ cat <<EOF >>${D}${sysconfdir}/inittab
+# ${base_sbindir}/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+
+EOF
+
+ for n in ${SYSVINIT_ENABLED_GETTYS}
+ do
+ echo "$n:2345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab
+ done
+ echo "" >> ${D}${sysconfdir}/inittab
+ fi
+ install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS
+ install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd
+ ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd
+ install -d ${D}${sysconfdir}/rcS.d
+ ln -sf ../init.d/bootlogd ${D}${sysconfdir}/rcS.d/S07bootlogd
+ for level in 2 3 4 5; do
+ install -d ${D}${sysconfdir}/rc$level.d
+ ln -sf ../init.d/stop-bootlogd ${D}${sysconfdir}/rc$level.d/S99stop-bootlogd
+ done
+ mv ${D}${base_sbindir}/init ${D}${base_sbindir}/init.${PN}
+ mv ${D}${base_bindir}/pidof ${D}${base_bindir}/pidof.${PN}
+ mv ${D}${base_sbindir}/halt ${D}${base_sbindir}/halt.${PN}
+ mv ${D}${base_sbindir}/reboot ${D}${base_sbindir}/reboot.${PN}
+ mv ${D}${base_sbindir}/shutdown ${D}${base_sbindir}/shutdown.${PN}
+ mv ${D}${base_sbindir}/poweroff ${D}${base_sbindir}/poweroff.${PN}
+ mv ${D}${bindir}/last ${D}${bindir}/last.${PN}
+ mv ${D}${bindir}/mesg ${D}${bindir}/mesg.${PN}
+ mv ${D}${bindir}/wall ${D}${bindir}/wall.${PN}
+}
+
+pkg_postinst_${PN} () {
+#!/bin/sh
+update-alternatives --install ${base_sbindir}/halt halt halt.${PN} 200
+update-alternatives --install ${base_sbindir}/reboot reboot reboot.${PN} 200
+update-alternatives --install ${base_sbindir}/shutdown shutdown shutdown.${PN} 200
+update-alternatives --install ${base_sbindir}/poweroff poweroff poweroff.${PN} 200
+update-alternatives --install ${bindir}/last last last.${PN} 200
+update-alternatives --install ${bindir}/mesg mesg mesg.${PN} 200
+update-alternatives --install ${bindir}/wall wall wall.${PN} 200
+}
+
+pkg_prerm_${PN} () {
+#!/bin/sh
+update-alternatives --remove halt halt.${PN}
+update-alternatives --remove reboot reboot.${PN}
+update-alternatives --remove shutdown shutdown.${PN}
+update-alternatives --remove last last.${PN}
+update-alternatives --remove mesg mesg.${PN}
+update-alternatives --remove wall wall.${PN}
+}
+
+pkg_postinst_sysvinit-pidof () {
+#!/bin/sh
+update-alternatives --install ${base_bindir}/pidof pidof pidof.${PN} 200
+}
+
+pkg_prerm_sysvinit-pidof () {
+#!/bin/sh
+update-alternatives --remove pidof pidof.${PN}
+}