Skip to content

v0.21.0: Beta release #10

Pre-release
Pre-release

Choose a tag to compare

@davmac314 davmac314 released this 09 Mar 12:58
· 9 commits to master since this release

This is an interim release to fix a few serious (but rarely encountered) bugs that have been discovered since (but originating prior to) the 0.20.0 release. A small number of other changes have also been included.

Thanks to sponsors: Paweł Zmarzły (pzmarzly), Wesley Moore (wezm), M. Herdiansyah (konimex), Coleman McFarland (dontlaugh), q66, saolof, and private sponsors. Thanks also to one-time sponsor leejm516.

Changes:

  • "dinitctl start" and "dinitctl restart" will now issue a warning if the service description file for the specified service is out-of-date (i.e. if it has changed since it was loaded by dinit). (The warning includes a hint to use "dinitctl reload").
  • The dependency graph now has a limit of 32 levels of dependency. This limit is designed to prevent problems that could otherwise occur with an excessive dependency depth, which normally only occurs if there is a mistake in the service descriptions. The limit is enforced when dependencies are loaded or altered, and is checked by dinit-check.
  • Service names are now validated, with only a specific set of punctuation characters now being allowed in service names; '.', '_' and '-' are allowed ('.' is not allowed as a first character). '@' remains valid to separate a service name from service arguments. Control characters are not allowed.

Build changes:

  • Added the CPPFLAGS_LIBCAP build variable, which can be used to supply any additional preprocessor arguments (such as to specify include directories) required for use of libcap.
  • Fix detection of libcap ('-lcap') by configure in some cases.

Fixes:

  • Fix an issue causing a segfault if the console was issued a hangup (via vhangup(2) or similar).
  • Fix a problem where the service command became corrupted if an attempt to reload a service was rejected due to introducing a dependency cycle.
  • Fix enabling (via "dinitctl enable") services with an argument; this was incorrectly issuing an error.
  • Fix a use-after-free on some error paths, which theoretically could have displayed garbled setting names (but in practice apparently had no effect).

Extra contributions:

  • iacore, Wateir, and Aicaya Maro have contributed/updated shell completions and other utilities, as found in the "contrib" directory in the source tree.