--- sysvinit.old/debian/emdebianpostinst Wed Aug 27 19:49:51 2008 +++ /opt/emdebian/trunk/s/sysvinit/trunk/sysvinit-2.86.ds1/debian/emdebianpostinst Wed Aug 27 19:49:45 2008 @@ -0,0 +1,271 @@ +#! /bin/sh +# +# initscripts postinst +# + +set -e + +case "$1" in + configure) + PREV_VER=$2 + ;; + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; +esac + +umask 022 + +# +# Function like update-rc.d but simpler & faster. +# Usage: updatercd basename start|stop NN runlevel . +# +# Heuristic: use the real update-rc.d if file-rc or insserv is +# detected, or if the /etc/rc2.d directory is not present. +# +updatercd() { + + [ -f /etc/init.d/$1 ] || return 0 + + if \ + [ -d /usr/share/file-rc/. ] \ + || [ -d /usr/lib/file-rc/. ] \ + || [ -d /usr/share/insserv/. ] \ + || [ ! -d /etc/rc2.d/. ] + then + # Funniness on next line is because we are running with set -e + update-rc.d "$@" >/dev/null && return 0 || return $? + fi + + base=$1 + shift + + tmp="$(echo /etc/rc?.d/[SK]??$base)" + case "$tmp" in + "/etc/rc?.d/[SK]??$base") : ;; + *) return ;; + esac + + while [ "$1" != "" ] + do + if [ "$1" = stop ] + then + tlet=K + else + tlet=S + fi + case "$2" in + ?) lev=0$2 ;; + *) lev=$2 ;; + esac + shift 2 + while [ "$1" != "." ] + do + cd /etc/rc$1.d + ln -sf ../init.d/$base $tlet$lev$base + shift + done + shift + done +} + +chrooted() { + if [ -r /proc/1/root ]; then + return 1 + fi + return 0 +} + +# +# Initialize rcS default file. +# +if [ ! -f /etc/default/rcS ] +then + cp -p /usr/share/initscripts/default.rcS /etc/default/rcS +fi + +# +# In 2.86.ds1-7 the "single" script was moved. +# We have to remove the old links _before_ we install new ones. +# + +# In 2.86.ds1-16, the mtab.sh and hostname.sh scripts were moved. + +# In 2.86.ds1-21, the sendsigs script were moved, and in 2.86.ds1-35 +# it was moved back. + +# +# Okay, we could do this with update-rc.d, but that would probably +# be pretty slow. This way we win some speed. +# DO NOT FOLLOW THIS EXAMPLE IN OTHER PACKAGES. +# +# Links in runlevel S +# +updatercd mountkernfs.sh start 2 S . +updatercd hostname.sh start 2 S . +updatercd mountdevsubfs.sh start 4 S . +updatercd bootlogd start 5 S . +updatercd checkroot.sh start 10 S . +updatercd mtab.sh start 12 S . +updatercd checkfs.sh start 30 S . +updatercd mountall.sh start 35 S . +updatercd mountall-bootclean.sh start 36 S . +updatercd mountoverflowtmp start 37 S . stop 63 0 6 . +updatercd mountnfs.sh start 45 S . +updatercd mountnfs-bootclean.sh start 46 S . +updatercd bootmisc.sh start 55 S . +updatercd urandom start 55 S . start 30 0 6 . +# +# Links in runlevels other than S +# +#updatercd halt start 90 0 . +#updatercd reboot start 90 6 . +#updatercd umountroot start 60 0 6 . +#updatercd umountfs start 40 0 6 . +#updatercd umountnfs.sh start 31 0 6 . +#updatercd sendsigs start 20 0 6 . + +#updatercd killprocs start 30 1 . +#updatercd single start 90 1 . +#updatercd rc.local start 99 2 3 4 5 . +#updatercd rmnologin start 99 2 3 4 5 . +#updatercd stop-bootlogd-single start 99 S . +#updatercd stop-bootlogd start 99 2 3 4 5 . + +# +# Remove scripts that were left behind by older glibc (<< 2.3.2.ds1-12) +# versions. We have the same functionality in mount{kern,devsub}fs.sh +# +# +# In 2.86.ds1-10 the "mountvirtfs" script was replaced by +# mountkernfs.sh and mountdevsubfs.sh. It was removed completely in +# 2.86.ds1-16. +# +for F in mountkernfs devpts.sh mountvirtfs +do + rm -f /etc/init.d/$F + update-rc.d $F remove >/dev/null 2>&1 || : +done + +# +# Create /var/run and /var/lock on the root partition to make sure +# they are available when RAMRUN or RAMLOCK is enabled. +# If mount fail (like in a vserver environment), just clean up and ignore +# it. The admins enabling RAMRUN and RAMLOCK will have to create the +# directories themselves in this case. +# + +# +# When installing for the first time or upgrading from version before 2.86.ds1-27, +# a reboot is needed to make the /lib/init/rw/ tmpfs available. Flag this +# using notify-reboot-required. Not mounting it here as it creates problem +# for debootstrap, vservers, pbuilder and cowbuilder. +# + +# +# Create initial log files +# +[ "$PREV_VER" ] || chmod 755 /var/log/fsck || : +for F in /var/log/dmesg /var/log/boot /var/log/fsck/checkroot /var/log/fsck/checkfs +do + if [ ! -f "$F" ] && touch "$F" >/dev/null 2>&1 + then + echo "(Nothing has been logged yet.)" >| "$F" + chown root:adm "$F" + chmod 640 "$F" + fi +done + +# +# Set up nologin symlink so that dynamic-login-disabling will work +# (when DELAYLOGIN is set to "yes") +# +if [ ! -L /etc/nologin ] && [ ! -e /etc/nologin ] +then + rm -f /var/lib/initscripts/nologin + ln -s /var/lib/initscripts/nologin /etc/nologin +fi + +# +# Set up motd stuff, putting variable file in /var/run/ +# +if [ ! -f /etc/motd.tail ] +then + if [ -f /etc/motd ] + then + sed 1d /etc/motd > /etc/motd.tail + [ -s /etc/motd.tail ] || rm -f /etc/motd.tail + fi +fi +if [ ! -f /var/run/motd ] +then + if [ -f /etc/motd ] + then + cat /etc/motd > /var/run/motd + else + :>/var/run/motd + fi +fi +if [ ! -L /etc/motd ] +then + [ -f /etc/default/rcS ] && . /etc/default/rcS + if [ "$EDITMOTD" = no ] + then + cat /var/run/motd > /etc/motd.static + ln -sf motd.static /etc/motd + else + ln -sf /var/run/motd /etc/motd + fi +fi + +# +# Mount kernel virtual filesystems...not. +# This causes problems in pbuilder. +# +# +#if [ -x /etc/init.d/mountkernfs.sh ] +#then +# if which invoke-rc.d >/dev/null 2>&1 +# then +# invoke-rc.d mountkernfs.sh start || : +# else +# /etc/init.d/mountkernfs.sh start +# fi +#fi + +# +# Create /dev/pts, /dev/shm directories +# +if [ "$(uname -s)" = Linux ] +then + # + # Only create /dev/{pts,shm} if /dev is on the + # root file system. If some package has mounted a + # seperate /dev (ramfs from udev, devfs) it is + # responsible for the presence of those subdirs. + # + if ! mountpoint -q /dev + then + [ -d /dev/pts ] || { mkdir -m 0755 /dev/pts ; chown root:root /dev/pts ; } + [ -d /dev/shm ] || { mkdir -m 0755 /dev/shm ; chown root:root /dev/shm ; } + fi +fi + +# +# Create /etc/rc.local on first time install and when upgrading from +# versions before "2.86.ds1-16" +# +#!/bin/sh -e +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + +: