I am happy to report, after nothing broke during testing, that I am releasing a new version of SysV init, along with its companion utilities - startpar and insserv.
For the most part, the work which went into startpar and insserv were just code clean-ups. These two related projects had not had new versions in a while and did not compile anymore with modern versions of Clang and GCC. That has been fixed and these should both now build without needing any patching downstream. SysV init had a couple of noteworthy changes. We now track runlevels on systems without utmp, so distributions using the musl c library are better supported. On systems with utmp, init continues to use it so there is no chance for conflict between the two approaches. Some clean-up was done with the console= kernel parameter code and pidof now has a quiet mode. That about covers it. packages and signatures for insserv 1.17.0, startpar 0.60, and sysvinit 2.91 can be found here: http://download.savannah.nongnu.org/releases/sysvinit/ - Jesse A detailed changelog for each project follows: insserv: - Updated insserv.c and listing.h to fix compile errors. - Fixed Makefile so that all source dependencies are found. - Allow CC to be defined outside of Makefile so we are not tied to GCC. - Fixed function definitions, moved code (map_ functions) used in multiple places out of insserv.c and into its own module called map.c Makes it easier to fix Makefile to build with modern systems/compilers. - Cleaned up the last of the compiler errors on Clang and almost all the warnings from GCC. (Different versions of GCC conflict so we end up with warnings on one version or another.) startpar: - Updated manual page with new copyright. - Updated Makefile to work with GCC or Clang. - Updated Makefile to no longer use SVN, we use git now. - Fixed package building and signing in Makefile. - Added short description of startpar to README file. - Cleaned up unused temp/defines in Makefile. sysvinit: * Adjusted order of compile flags to make it easier for downstream to adjust optimization level. Patch provided by Matias Fonzo. Can now set optimization level in CFLAGS variable. * Added --version command line flag to display current version info. Updated manual page for init.8 to match. * Version information is now fetched and defined by the Makefile. No more need to update the version manually in the init.c source. * The init process now writes the current runlevel to /var/run/runlevel. This information can be read by the "runlevel" command as well as "halt" and "reboot". Having the information logged in /var/run/runlevel as well as the utmp file means systems without utmp (like those running the musl C library) can still check the current runlevel. This is useful when running halt/reboot as these programs want to check the runlevel. * Added patch from Walter Harms which allows pidof to run without displaying output. In this mode pidof simply returns true or false without displaying PID values. Updated manual page with new -q (quiet) mode. Added -h flag for pidof, which was recognized before, but not used. The -h flag now displays brief usage information for pidof. * Added check for kernel parameter init.autocon=1. If this exists, then init will try to open its own console. If not, then any console= parameters will be ignored. This avoids conflicts with native kernel created consoles.