diff options
Diffstat (limited to 'recipes/sysvinit')
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} +} |