See contrib/lsb-v3/ChangeLog

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8555 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
DJ Lucas 2008-08-31 06:24:27 +00:00
parent 59dc6e14ec
commit 010d1082d8
21 changed files with 123 additions and 90 deletions

View File

@ -1,6 +1,10 @@
ChangeLog
20080831 - [dj] * Corrected more, and minimized dependencies in scripts.
* Don't try to write to bootlog in 0 and 6.
* Use /etc/rcS.d instead of /etc/rcsysinit.d - added
replacement /etc/inittab file
20080830 - [dj] * Corrected remaining dependency errors in scrpt headers.
20080830 - [dj] * Corrected remaining dependency errors in script headers.
20080531 - [dj] * Synced with LFS-Bootscrpts-20080531 (use udevadm)
* Added additional functions to manage_functions script.

View File

@ -14,7 +14,7 @@ create-dirs:
install -d -m ${DIRMODE} ${EXTDIR}/rc4.d
install -d -m ${DIRMODE} ${EXTDIR}/rc5.d
install -d -m ${DIRMODE} ${EXTDIR}/rc6.d
install -d -m ${DIRMODE} ${EXTDIR}/rcsysinit.d
install -d -m ${DIRMODE} ${EXTDIR}/rcS.d
install -d -m ${DIRMODE} ${EXTDIR}/init.d
install -d -m ${DIRMODE} ${EXTDIR}/sysconfig
install -d -m ${DIRMODE} ${DESTDIR}/lib/lsb
@ -74,22 +74,24 @@ install: create-dirs create-service-dir create-boottemp-dir
ln -sf ../init.d/swap ${EXTDIR}/rc6.d/S80swap
ln -sf ../init.d/localnet ${EXTDIR}/rc6.d/S90localnet
ln -sf ../init.d/reboot ${EXTDIR}/rc6.d/S99reboot
ln -sf ../init.d/mountkernfs ${EXTDIR}/rcsysinit.d/S00mountkernfs
ln -sf ../init.d/sysctl ${EXTDIR}/rcsysinit.d/S05sysctl
ln -sf ../init.d/modules ${EXTDIR}/rcsysinit.d/S10modules
ln -sf ../init.d/udev ${EXTDIR}/rcsysinit.d/S15udev
ln -sf ../init.d/swap ${EXTDIR}/rcsysinit.d/S20swap
ln -sf ../init.d/setclock ${EXTDIR}/rcsysinit.d/S25setclock
ln -sf ../init.d/checkfs ${EXTDIR}/rcsysinit.d/S30checkfs
ln -sf ../init.d/mountfs ${EXTDIR}/rcsysinit.d/S40mountfs
ln -sf ../init.d/udev_retry ${EXTDIR}/rcsysinit.d/S45udev_retry
ln -sf ../init.d/cleanfs ${EXTDIR}/rcsysinit.d/S50cleanfs
ln -sf ../init.d/console ${EXTDIR}/rcsysinit.d/S70console
ln -sf ../init.d/localnet ${EXTDIR}/rcsysinit.d/S80localnet
ln -sf ../init.d/mountkernfs ${EXTDIR}/rcS.d/S00mountkernfs
ln -sf ../init.d/sysctl ${EXTDIR}/rcS.d/S05sysctl
ln -sf ../init.d/modules ${EXTDIR}/rcS.d/S10modules
ln -sf ../init.d/udev ${EXTDIR}/rcS.d/S15udev
ln -sf ../init.d/swap ${EXTDIR}/rcS.d/S20swap
ln -sf ../init.d/setclock ${EXTDIR}/rcS.d/S25setclock
ln -sf ../init.d/checkfs ${EXTDIR}/rcS.d/S30checkfs
ln -sf ../init.d/mountfs ${EXTDIR}/rcS.d/S40mountfs
ln -sf ../init.d/udev_retry ${EXTDIR}/rcS.d/S45udev_retry
ln -sf ../init.d/cleanfs ${EXTDIR}/rcS.d/S50cleanfs
ln -sf ../init.d/console ${EXTDIR}/rcS.d/S70console
ln -sf ../init.d/localnet ${EXTDIR}/rcS.d/S80localnet
if [ ! -f ${EXTDIR}/sysconfig/createfiles ]; then install -m ${CONFMODE} sysconfig/createfiles ${EXTDIR}/sysconfig/; fi
if [ ! -f ${EXTDIR}/sysconfig/modules ]; then install -m ${CONFMODE} sysconfig/modules ${EXTDIR}/sysconfig/; fi
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then install -m ${CONFMODE} sysconfig/rc ${EXTDIR}/sysconfig/; fi
if [ ! -f ${EXTDIR}/sysconfig/rc.site ]; then install -m ${CONFMODE} sysconfig/rc.site ${EXTDIR}/sysconfig/; fi
if [ -f ${EXTDIR}/inittab ]; then install -m ${CONFMODE} ${EXTDIR}/inittab ${EXTDIR}/inittab.bak;
install -m ${CONFMODE} etc/inittab ${EXTDIR}/
install -m ${MODE} sysconfig/network-devices/ifup ${EXTDIR}/sysconfig/network-devices/
install -m ${MODE} sysconfig/network-devices/ifdown ${EXTDIR}/sysconfig/network-devices/
install -m ${MODE} sysconfig/network-devices/services/ipv4-static ${EXTDIR}/sysconfig/network-devices/services/
@ -120,13 +122,13 @@ minimal: create-dirs create-service-dir create-boottemp-dir
ln -sf ../init.d/mountfs ${EXTDIR}/rc6.d/S70mountfs
ln -sf ../init.d/swap ${EXTDIR}/rc6.d/S80swap
ln -sf ../init.d/reboot ${EXTDIR}/rc6.d/S99reboot
ln -sf ../init.d/mountkernfs ${EXTDIR}/rcsysinit.d/S00mountkernfs
ln -sf ../init.d/udev ${EXTDIR}/rcsysinit.d/S10udev
ln -sf ../init.d/swap ${EXTDIR}/rcsysinit.d/S20swap
ln -sf ../init.d/setclock ${EXTDIR}/rcsysinit.d/S25setclock
ln -sf ../init.d/checkfs ${EXTDIR}/rcsysinit.d/S30checkfs
ln -sf ../init.d/mountfs ${EXTDIR}/rcsysinit.d/S40mountfs
ln -sf ../init.d/cleanfs ${EXTDIR}/rcsysinit.d/S50cleanfs
ln -sf ../init.d/mountkernfs ${EXTDIR}/rcS.d/S00mountkernfs
ln -sf ../init.d/udev ${EXTDIR}/rcS.d/S10udev
ln -sf ../init.d/swap ${EXTDIR}/rcS.d/S20swap
ln -sf ../init.d/setclock ${EXTDIR}/rcS.d/S25setclock
ln -sf ../init.d/checkfs ${EXTDIR}/rcS.d/S30checkfs
ln -sf ../init.d/mountfs ${EXTDIR}/rcS.d/S40mountfs
ln -sf ../init.d/cleanfs ${EXTDIR}/rcS.d/S50cleanfs
if [ ! -f ${EXTDIR}/sysconfig/rc ]; then install -m ${CONFMODE} sysconfig/rc ${EXTDIR}/sysconfig/; fi
.PHONY: all create-dirs create-service-dir create-boottemp-dir \

View File

@ -1,7 +1,7 @@
LSB-V3 README
The scripts contianed in this directory are a complete rewrite of the
boot scripts from LFS-6.1 (updated for LFS-SVN about 2008-04-13). As is
boot scripts from LFS-6.1 (updated for LFS-SVN about 2008-05-31). As is
usually the case with a rewrite, there have been many changes:
LSB Version 3.1 Compliant Scripts - Immediately noticable are the LSB headers
@ -16,21 +16,21 @@ the messages are created from parts and only written to the screen in a
single command, so maybe no help at all WRT translated boot messages.
LSB 3.1 Omissions - Unfortunately, this package is not completely LSB
compliant as it lacks install-initd and remove-initd programs. The current
compliant as it lacks install_initd and remove_initd programs. The current
popular flavor of these programs is written in Python, which, as you should
know, is not installed until BLFS. I began work on a bash implementation,
and have provided the needed functions to parse the LSB headers in the
manage-functions script (insalled by default into /lib/lsb). Unfortunately,
I have yet to complete the actual install-initd and remove-initd scripts,
however, I do have an almost complete install-initd kept locally. I am
currently working on a separate script to completely rewrite the symlinks
should LFS default values not prove sufficient when working with scripts in
the wild. I have not included either here because they are not yet complete
or thoroughly tested, and due to the development process of lfs-bootscritps,
would be included in a release tarball. If you would like to assist with the
development of these scripts, or would even just like to see what I have so
far, please email me privately. Of course, feel free to write your own if you
do not like the manage-fucntions script (or bash).
I have yet to complete the actual install_initd and remove_initd scripts,
and have found bash to an unsuitable language to write a complete reorder
due to the ammount of time for recursive funtions and loops to complete.
Dan Nicholson has began work on initd-tools, a C implementaion of
install_initd and remove_initd. At the time of writing (20080830) the
programs themselves are not yet functional, however, the libraries used
to parse the scripts and provide the dependency order are working as
expected. I would expect a completely standards compliant set of programs,
written in C very soon. Dans work can be viewed via git-web at
http://gitweb.dwcab.com/?p=initd-tools.git;a=summary .
Distribution Independent - this original goal for the LFS scripts has been
stretched even further by providing both a global rc config file that
@ -62,25 +62,25 @@ second delay in the boot process (so that you have time to press a button
to select interactive mode). This time value, and the option prompt itself,
is configurable in the /etc/sysconfig/rc.site file.
RC_BASE - The base directory for the bootscripts is now /etc, not
Path changes - The base directory for the bootscripts is now /etc, not
/etc/rc.d. This is mostly to conform with mainstream distros, but other
boot methods do expect that /etc/init.d is the location of bootscripts.
Some distros provide a rc.d direcorty with symlinks to the rc*.d and init.d
directories, I have not done that. /etc is the location now, get your
flying fingers accustomed to it! Of course, this is still configurable in
/etc/sysconfig/rc.site, and if the change is too great, I'll put it back.
I've also removed the rcsysinit.d and replaced it with rcS.d.
LSB Functions - The previous lfs-bootscripts sourced a functions file
located at /etc/rc.d/init.d/functions. This file has been renamed
$distro-functions to segregate it from the old. The name is configurable
by the rc.site configuration file. Both old and new bootscripts can be
used simultaneously in a SYS-V setup (with proper symlinks in place).
LSB defined functions are used where possible, but the $distro-functions file
provides, easy to use wraper functions that
start/stop/reload/force-reload/restart programs, evaluate the numerical
LSB return values, and print status messages to the screen. Both LFS
functions and LSB functions are documented directly in the scritps located
at /etc/init.d/$distro-functions and /lib/lsb/init-functions respectively.
by the rc.site configuration file. LSB defined functions are used where
possible, but the $distro-functions file provides, easy to use wraper
functions that start/stop/reload/force-reload/restart programs, evaluate
the numerical LSB return values, and print status messages to the screen.
Both LFS functions and LSB functions are documented directly in the scritps
located at /etc/init.d/$distro-functions and /lib/lsb/init-functions
respectively.
Pretier - Yeah, I just couldn't handle all the grey text... By default,
successful boot messages are prefixed with a single green astrik character,

View File

@ -0,0 +1,26 @@
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/init.d/rc S
l0:0:wait:/etc/init.d/rc 0
l1:S1: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
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# End /etc/inittab

View File

@ -7,7 +7,7 @@
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Checks local filesystems before mounting.
# Description: Checks local filesystmes before mounting.

View File

@ -7,7 +7,7 @@
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Cleans temporary directories early in the boot process.
# Description: Cleans temporary directories /var/run, /var/lock, and

View File

@ -7,7 +7,7 @@
# Should-Start: $local_fs
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Sets up a localised console.
# Description: Sets up fonts and language settings for the user's

View File

@ -80,7 +80,6 @@ statusproc()
if [ "${STATUS}" = "0" ]; then
log_success_msg "Running with PID(s) ${pidlist}"
else
log_warning_msg "Not running!"
fi

View File

@ -6,9 +6,9 @@
# Required-Start: $local_fs
# Should-Start:
# Required-Stop:
# Should-Stop: halt reboot
# Default-Start: sysinit 0 6
# Default-Stop:
# Should-Stop:
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Starts the local network.
# Description: Sets the hostname of the machine and starts the
# loopback interface.

View File

@ -3,11 +3,11 @@
### BEGIN INIT INFO
# Provides: modules
# Required-Start: mountkernfs
# Should-Start: sysctl
# Required-Start: mountkernfs sysctl
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Loads required modules.
# Description: Loads modules listed in /etc/sysconfig/modules.

View File

@ -5,14 +5,14 @@
# Provides: $local_fs
# Required-Start: udev checkfs
# Should-Start:
# Required-Stop: swap
# Required-Stop: localnet
# Should-Stop:
# Default-Start: sysinit 0 6
# Default-Stop:
# Short-Description: Mounts and unmounts all local filesystems.
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Mounts/unmounts local filesystems defined in /etc/fstab.
# Description: Remounts root filesystem read/write and mounts all
# remaining local filesystems defined in /etc/fstab on
# start. Rmounts root filesystem read-only and unmounts
# start. Remounts root filesystem read-only and unmounts
# remaining filesystems on stop.
# X-LFS-Default-Start: S40
# X-LFS-Default-Stop: S70

View File

@ -7,7 +7,7 @@
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Mounts /sys and /proc virtual (kernel) filesystems.
# Description: Mounts /sys and /proc virtual (kernel) filesystems.

View File

@ -6,7 +6,7 @@
# Required-Start: $syslog
# Should-Start:
# Required-Stop: $syslog $local_fs swap localnet
# Should-Stop: halt reboot
# Should-Stop:
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Starts and configures network interfaces.
@ -31,7 +31,6 @@ case "${1}" in
then
continue
fi
IN_BOOT=1 ${NETWORK_DEVICES}/ifup ${interface}
done
;;

View File

@ -15,7 +15,7 @@ if [ "${#}" -ne 1 ]; then
fi
# Do not use the RUNLEVEL and PREVLEVEL variables provided by init so
# that they can be modified and alternate directories (sysinit) can
# that they can be modified and alternate directories (S) can
# be used without affecting init
runlevel="${1}"
prevlevel="${PREVLEVEL}"
@ -26,12 +26,12 @@ if [ "${prevlevel}" = "" ]; then
fi
# Mount a tmpfs to store boot accounting information
if [ "${runlevel}" = "sysinit" -a "${TEMPFS_MOUNT}" != "" ]; then
if [ "${runlevel}" = "S" -a "${TEMPFS_MOUNT}" != "" ]; then
mount -n -t tmpfs tmpfs "${TEMPFS_MOUNT}" -o mode=600
fi
# Provide an interactive prompt (if requested)
if [ "${runlevel}" = "sysinit" -a "${iprompt}" = "yes" ]; then
if [ "${runlevel}" = "S" -a "${iprompt}" = "yes" ]; then
# ash does not accept t and n flags for read
ls -l /bin/sh | grep "/ash"
if [ "${?}" -eq "0" ]; then
@ -66,12 +66,12 @@ if [ ! -d "${RC_BASE}/rc${runlevel}.d" ]; then
fi
# Source the interactive state file if it exists
if [ "${runlevel}" != "sysinit" -a -f "${TEMPFS_MOUNT}/.interactive-start" ]; then
if [ "${runlevel}" != "S" -a -f "${TEMPFS_MOUNT}/.interactive-start" ]; then
. "${TEMPFS_MOUNT}/.interactive-start"
fi
# Prompt for interactive startup after completing sysinit
if [ "${interactive}" = "I" -a "${runlevel}" != "sysinit" -a \
# Prompt for interactive startup after completing S
if [ "${interactive}" = "I" -a "${runlevel}" != "S" -a \
"${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
echo -n -e "Proceed with interactive starup of runlevel "
echo -n -e "${INFO}${runlevel}${NORMAL}?"
@ -104,10 +104,10 @@ if [ "${prevlevel}" != "N" ]; then
script=${link#$RC_BASE/rc$runlevel.d/K[0-9][0-9]}
prev_start=$RC_BASE/rc$prevlevel.d/S[0-9][0-9]$script
sysinit_start=$RC_BASE/rcsysinit.d/S[0-9][0-9]$script
S_start=$RC_BASE/rcS.d/S[0-9][0-9]$script
if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
if [ ! -f ${prev_start} ] && [ ! -f ${sysinit_start} ]; then
if [ ! -f ${prev_start} ] && [ ! -f ${S_start} ]; then
echo -e -n "${WARNING}WARNING:\n\n${link} can't be"
echo -e "${WARNING} executed because it was not"
echo -e -n "${WARNING} not started in the previous"
@ -180,14 +180,17 @@ done
# Strip apply time to the logs, strip out any color codes and dump
# the log to /var/log/boot.log
if [ -f "${TEMPFS_MOUNT}/.bootlog" -a "${runlevel}" != "sysinit" ]; then
if [ -f "${TEMPFS_MOUNT}/.bootlog" -a "${runlevel}" != "S" ]; then
# Remove any color codes from the temp log file
sed -i 's@\\033\[[0-9];[0-9][0-9]m@@g' "${TEMPFS_MOUNT}/.bootlog"
#Fix the time and hostname
BTIMESPEC=$(echo `date +"%b %d %T"` `hostname`)
sed -i "s@^bootlog:@${BTIMESPEC} bootlog:@" "${TEMPFS_MOUNT}/.bootlog"
cat "${TEMPFS_MOUNT}/.bootlog" >> /var/log/boot.log
rm -f "${TEMPFS_MOUNT}/.bootlog"
# Don't try and write in 0 and 6, this is a 'boot' log
if [ "${runlevel}" != "0" -a "${runlevel}" != "6" ]; then
cat "${TEMPFS_MOUNT}/.bootlog" >> /var/log/boot.log
rm -f "${TEMPFS_MOUNT}/.bootlog"
fi
fi
# End $RC_BASE/init.d/rc

View File

@ -6,9 +6,9 @@
# Required-Start:
# Should-Start:
# Required-Stop: $local_fs swap localnet
# Should-Stop: halt reboot
# Default-Start: 0 6
# Default-Stop:
# Should-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Attempts to kill remaining processes.
# Description: Attempts to kill remaining processes.
# X-LFS-Default-Start:

View File

@ -3,12 +3,12 @@
### BEGIN INIT INFO
# Provides: $time
# Required-Start: udev swap
# Required-Start: modules
# Should-Start:
# Required-Stop: $network $syslog $local_fs
# Should-Stop: halt reboot
# Default-Start: sysinit
# Default-Stop:
# Required-Stop: $syslog
# Should-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Stores and restores time from the hardware clock
# Description: On boot, system time is obtained from hwclock. The
# hardware clock can also be set on shutdown.

View File

@ -3,12 +3,12 @@
### BEGIN INIT INFO
# Provides: swap
# Required-Start: udev
# Required-Start: modules
# Should-Start:
# Required-Stop: localnet
# Should-Stop: halt reboot
# Default-Start: sysinit 0 6
# Default-Stop:
# Should-Stop:
# Default-Start: S
# Default-Stop: 0 6
# Short-Description: Mounts and unmounts swap partitions.
# Description: Mounts and unmounts swap partitions defined in
# /etc/fstab.

View File

@ -3,11 +3,11 @@
### BEGIN INIT INFO
# Provides: sysctl
# Required-Start: udev
# Required-Start: mountkernfs
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Makes changes to the proc filesystem
# Description: Makes changes to the proc filesystem as defined in

View File

@ -5,8 +5,8 @@
# Provides: $syslog
# Required-Start: localnet
# Should-Start:
# Required-Stop: sendsignals $local_fs swap
# Should-Stop: halt reboot
# Required-Stop: $local_fs
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts kernel and system log daemons.

View File

@ -3,11 +3,11 @@
### BEGIN INIT INFO
# Provides: udev
# Required-Start: mountkernfs
# Required-Start: modules
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Populated /dev with device nodes.
# Description: Mounts a tempfs on /dev and starts the udevd daemon.

View File

@ -7,7 +7,7 @@
# Should-Start: $local_fs
# Required-Stop:
# Should-Stop:
# Default-Start: sysinit
# Default-Start: S
# Default-Stop:
# Short-Description: Replays failed uevents and creates additonal devices.
# Description: Replays any failed uevents that were skipped due to