I have uploaded new beta packages for sysvinit, insserv and startpar. These new packages mostly fix minor bugs and address documentation changes, but there are also some key feature changes.
In particular, startpar now loads Makefile-style dependency information from /var/lib/insserv/ instead of /etc/init.d/. It is possible to override this and use the old location. Likewise, insserv now defaults to writing Makefile-sty;e dependency information to /var/lib/insserv/. Again, the location can be changed back to the old /etc/init.d directory if need be. In both programs the command line flag to use the classic location is "-l" (lower-case L). The startpar program has become more fault-tolerant when it runs into a problem in a Makefile-style dependency, returning an error instead of exiting. There were a couple of other noteworthy changes to insserv: 1. When installing, insserv's Makefile no longer overwrites the existing /etc/insserv.conf configuration file. This was dangerous on distros with custom configurations for insserv. Instead we put the default config file in /etc/insserv.conf.sample if a config file already exists. 2. The test scripts we inherited from Debian in a previous release have been cleaned up, now work with insserv's default locations for files, and no longer overwrite any system information when run as root. The scripts also exit when they encounter an error in a test and leave the test data on the disk so it can be examined. Setting up and removing test data is handled automatically by the Makefile. Tests can be run using "make check" in the top-level directory. 3. The insserv program can be taught to ignore files with certain extensions, like .git or .svn, when it scans for scripts in the /etc/init.d/ directory. The manual page has details. There were two important changes in the sysvinit package: 1. The pidof command no longer accepts "-f" to format output strings (this was introduced in the previous version and caused too many problems). Now we use "pidof -d" to separate output fields. 2. When shutting down init now checks in sub-second increments if it can proceed. It used to sleep at least a second between checks, slowing down the shutdown process. The full changelogs for all three packages are listed below. The beta packages (sysvinit-2.95-beta, insserv-1.20.0-beta, and startpar-0.63-beta) can be found here: http://download.savannah.nongnu.org/releases/sysvinit/ I am hoping to publish stable releases around mid-June, assuming no serious problems are encountered with the beta snapshots. - Jesse sysvinit changlog =========== * Fixed various typos and control codes in manual pages. Patch provided by Bjarni Ingi Gislason. * Dropped "-f" format flag for pidof command as it could be used to print information from memory or crash pidof. Replaced flag with "-d" which allows for a custom separator to be used between listed PIDs. Patch supplied by KatolaZ. * Updated manual page to describe -h and its modifiers (-H and -P) in more detail. Should close Debian bug #374039. * Use millisecond delays in init so that shutdown can happen without a near-full-second delay after all processes have terminated. Replaced do_sleep() with do_msleep(), provided by Serge Belyshev. * Replaced hardwired sleep constants in init.c with defined constants for easy updating in the future. insserv changelog =========== - The insserv command now places Makefile-style dependency files in the /var/lib/insserv/ directory. This information was previously kept in /etc/init.d/. The --legacy-path (-l) flag has been added to insserv's command line options which allows the old, /etc/init.d/ path to be used to store dependeny information. - Update insserv manual page to refer to startpar(1) instead of startpar(8). - The insserv program now warns when a script has the same runlevel specified in both the Default-Start and Default-Stop fields of its LSB header. Should close Debian bug #538304. - Added tests/run-testsuite to Makefile's "check" target for Debian bug #926547. - Fixed minor typos in output text and in man page. - Added -i flag for insserv which allows user to specify a specific directory for the Makefile-style depdnency files. - Fixed run-testsuite script to use new syntax/location of Makefile-style dependency files. - When a scripted test fails, the test script now stops without cleaning up to make sure we can look at the data that insserv provided. - Temporary script data is now cleaned up using "make distclean". - Fixed run-testsuite to fix backward Required-Stop logic test. - When an initscript contains a "$service" dependency which cannot be resolved (ie $service does not expand or does not exist) insserv will display a warning. The initscript is still added. - The insserv program now loads optional extensions from /etc/insserv/file-filters which will be ignored if found in the init.d directory. This allows admins to filter out file extensions which may be used to manage services (such as .git or .puppet). Closes Debian bug #622878 - The Makefile no longer overwrites existing /etc/insserv.conf file if it exists. This could cause errors next tme insserv was run if distro-specific/local changes were overwritten. If the /etc/insserv.conf file already exists we make a new file called /etc/insserv.conf.sample instead. startpar changelog ============ * startpar now looks for Makefile-style dependency scripts in /var/lib/insserv/ by default. If no scripts are found there it will fall back to using the legacy /etc/init.d/ location. If no scripts are found there, startpar will print an error and exit. * Added -l flag to modify -M. When -l is used, startpar skips looking in the /var/lib/insserv/ directory for Makefile-style scripts. The -l flag jumps straight to looking in the /etc/init.d/ directory. * Used constants for some strings instead of checking sizeof(). * Made makefile parsing more fault talerant so the parsing function returns an error instead of immediately calling exit(). * Updated manual page with new Makefile-style flag and location information. * Switched manual page location for startpar from section 8 (admin tools) to 1 (general system tools) since it can be used by anyone.