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-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 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 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, 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 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. 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. 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. 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, 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 due 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