[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sysvinit-devel] Fresh release of SysV init, insserv and startpar

From: Jesse Smith
Subject: [sysvinit-devel] Fresh release of SysV init, insserv and startpar
Date: Sat, 15 Jun 2019 14:28:22 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0

Since everything went well during the past few weeks of testing, I am
publishing new versions of SysV init, insserv and startpar. These
packages are virtually identical to the beta snapshots from a few weeks
ago, with a new name and updated changelogs.

Here is a quick summary of key changes:

In the SysV init package, pidof no longer allows complex formatting of
output, since it caused security issues and potential memory errors
without a strong benefit. Now we allow the user to specify the output
delimiter and other tools, like tr, can be used to further format output.

Documentation has been updated and hopefully halt, and related options,
are now more clear.

We now use millisecond sleep delays when shutting down, rather than full
second sleeps, which should provide an average of around half a second
improvement to shutdown/reboot times.

We no longer link against sepol library, which was not being used
anyway. This offers no practical change, but cleans up the Makefile.

There are a couple of significant changes to insserv. The testsuite we
inherited from Debian has been cleaned up and now works with the insserv
Makefile.Running "make check" causes all the tests to be run. If a test
fails, the data it was using is left on the disk for examination rather
than being cleaned up. A failing test causes the testsuite to stop
rather than keep running tests so we can focus on the case which causes
the error.

In cleaning up test cases we found a bunch of situations where insserv
should handle situations more gracefully and/or print warnings and these
have been addressed.

Perhaps most importantly, the Makefile no longer overwrites the
insserv.conf file during installs. If the insserv.conf file already
exists, we create a fresh example config called insserv.conf.sample.
This should make testing new insserv versions much less painful.

The file /etc/insserv/file-filters, if it exists, can contain a list of
file extensions to ignore when processing scripts in /etc/init.d. The
insserv command already had an internal list of common extensions to
ignore, and this allows admins to expand that list.

The startpar command is now installed in /bin instead of /sbin since
regular users can use the utility. Also the manual page has moved from
section 8 to section 1 to reflect this change.

During testing we originally planned to move makefile-style dependency
information from /etc to either /var or /lib, but this proved
problematic when dealing with network-mounted filesystems, some existing
tools and, in the latter case, FHS. So those plans were put aside and
the dependency information has remained in /etc for now. We may revisit
this later if a good alternative location is presented and tested.

The new stable packages for sysvinit-2.95, insserv-1.20.0 and
startpar-0.63 can be found on the Savannah mirrors:

Complete SysV init changes

    * 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.
    * Accepted patch from Luc Gommans which explains why zombie and
      deep sleep processes (Z and D) may be hidden from pidof.
    * Removed link instruction against sepol library from src/Makefile.
      This has no change to the resulting binary, just makes the
      Makefile cleaner.

Complete insserv changes

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

Complete startpar changes

* 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

* Switched manual page location for startpar from
  section 8 (admin tools) to 1 (general system tools)
  since it can be used by anyone.

* Move startpar install location from /sbin to /bin since it can
be used by regular users for some tasks.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]