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 2007-02-16).  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
in the rc.d scripts themselves.  Each script contains a usable header to
allow for automating both the installation of, and determining proper
execution order for the startup scripts.  These values can also be used
directly in parallel boot setups.  Additionally, messages are displayed in
one single write to the screen, after exit status is determined, so that
they can be used in parallel setups.  I am not sure if this was the only
barrier to auto language translation in the previous bootscripts.  Further,
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
popular flavor of these programs is written in Python, which, as you should
know, is not installed until BLFS.  I gave up on a bash version of these
scripts when I lost scope about three bash arrays deep (hint: you only want
to read from and write to disk one time at program start and end repectively).
But do feel free to write a perl or bash implementation if you have the
ability and patience to do so.  You might see a contrib directory appear in
BLFS-Bootscripts someday in the future if there is any demand for the already
writen Python version of these programs.

Distribution Independent - this original goal for the LFS scripts has been
stretched even further by providing both a global rc config file that
contains (generally) static values, and a new rc.site config file to allow
customization of messages as diplayed to the end user during the boot
process.  The format of messages printed to the screen is adjustable
here.  As well, the other options that were available in the previous
versions of the lfs-bootscripts, and additional options as discussed below,
are configurable by the /etc/sysconfig/rc.site file.

Single Environment - The rc script has been rewritten completely to allow a
single source of the boot configuration per runlevel change.  This config
is inherited from rc's environment as opposed to being sourced everytime a
script is run.  This results in a negledgable decrease in boot time, but
it is just better in principle, assuming I didn't break anything.  For those
familiar with the previous versions, the 'stty sane' bit comes to mind, but
I haven't witnessed any dispaly amomolies, nor do I remember how to reproduce
the situation that caused us to move that into the functions file before.

Boot Logging - The previous incarnation of the boot log didn't begin
recording events until the root filesystem was mounted read/write.  This has
been corrected by providing a tempfs mount immediately after init hands
control to the rc script.  The bootlog is generated on the tempfs and then
passed to the log file before login.  Additionally, shutdown events are no
longer recorded in the bootlog.  They were pretty much useless and it really
wasn't what I'd call a *boot* log.  Boot logging is on by default and is
configurable in the /etc/sysconfig/rc.site file.

Interactive Boot - This feature has been included by default, and is a
little more polished than my previous attempt.  It does introduce a two
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
/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.

LSB Functions - The previous lfs-bootscripts sourced a functions file
located at /etc/rc.d/init.d/functions.  This file has been renamed
lfs-functions to segregate it from the old.  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 lfs-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/lfs-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,
warning messages with two yellow astirks, and failures are prefixed with
three red astriks.  This just provides a second 'quick glance' status when
watching the boot messages fly by.  Again, the prefixes are configurable (or
completely removable) in the /etc/sysconfig/rc.site file.

Complete Rewrite - Yep.  That doesn't mean that code wasn't reused when
possible, so Alexander, Bryan, Dan, Gerard, Jeremy, Jim, Mathias, Matthew,
Nathan, and countless other contributors (whose names I've forgotten and will
promptly be reminded of (please)) are owed credit for these as well.  That
said, at very least, this is a complete reorganisation that I've tested to
the best of my ability, but there probably are some hidden bugs that will
come to lite when used more frequently.  Please give me a shout _when_ you
find them.

Thanks.

-- DJ Lucas
dj@linuxfromscratch.org

