NEWS 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. == Version ??? (upcoming release)
  2. * Re-worked soft dependency handling slightly. A dependency now (re-)attaches
  3. to its dependent if it starts (or starts again) while the dependent is
  4. started. This leads to overall more consistent behaviour (and is simpler
  5. to implement properly).
  6. * Re-worked pinning. A service that is pinned stopped can now prevent dependents
  7. from starting (the behaviour is the same as if the service failed to start).
  8. == Version 0.9.0
  9. This release includes some new functionality and a rework of the chain-load
  10. mechanism.
  11. * The service specified via the "chain-to" setting will now only be started
  12. if the initiating service completes successfully, i.e. if it terminates
  13. normally (with an exit code of 0) and only if it is not manually stopped.
  14. * New option "--container" (-o) inhibits system management functions (such
  15. as machine shutdown/restart) that are normally enabled when dinit runs as
  16. process ID 1. A complementary "--system-mgr" (-m) option enables system
  17. management (even when not running as PID 1).
  18. * Fixed pinned-started services stopping when released by a dependent
  19. service, instead of remaining in the started state, and some other bugs
  20. related to pinning. Some issues may remain to be fixed in a later release.
  21. == Version 0.8.2
  22. This is a bug-fix release.
  23. * Fixed group not being set correctly when "run-as" or "socket-uid" were used.
  24. * Fixed "dinitctl rm-dep" command
  25. * Fixed bug preventing shutdown when auto-restart services were configured
  26. * Fixed smooth recovery of bgprocess services
  27. == Version 0.8.1
  28. This is a bug-fix release.
  29. * Fixed crash on service load error.
  30. * Fixed an unchecked allocation leading to possible unexpected termination.
  31. * Fixed a slow memory leak (in the bundled Dasynq library).
  32. * Fixed --help option for "dinitcheck" not working.
  33. * Fixed badly formatted error message from process launch failure.
  34. * Fixed issue where log file would not always be flushed on exit.
  35. * Fixed "dinitcheck" crashing if service description could not be found.
  36. == Version 0.8.0
  37. This release includes major usability features.
  38. * New command "dinitcheck" checks service descriptions for errors (without attempting to load
  39. or start the service). Checks the named service(s) and any dependencies.
  40. * Service descriptions can now be reloaded, using "dinitctl reload <service-name>". This works
  41. for services which are started, with some restrictions, and for services which are stopped,
  42. and allows dependencies to be altered.
  43. * dinitctl now defaults to the system process socket location when run as root. This means that
  44. using '-s' is no longer necessary (it is still supported for backwards compatibility). A new
  45. '-u' option can be used to communicate with the user daemon, if there is one.
  46. == Version 0.7.0
  47. This release adds a minor feature, and includes a re-work of some base functionality
  48. (which should not affect most use cases).
  49. * dinitctl "restart" command added. Re-starts an already-running service without affecting
  50. activation or dependency links.
  51. * dinitctl "stop" command now requires a `--force` option if dependents of the specified
  52. service would also need to stop.
  53. * dinitctl "wake" command now reconnects dependency links from dependents of the specified
  54. service, and can only be used if at least one such dependent is started.
  55. == Version 0.6.1:
  56. This is a bug-fix release with several minor fixes:
  57. * Resource limits were not properly being set.
  58. * Prevent early termination when standard input is closed or set to a device which cannot
  59. be watched for input.
  60. * Control protocol fix, possibly not affecting any real usage.
  61. == Version 0.6.0:
  62. This release adds a number of minor features:
  63. * Better behaviour when boot fails. User can choose an action from reboot, resume boot process,
  64. start the "recovery" service, or power-off.
  65. * New service settings for limiting resources at the process level: "rlimit-nofile",
  66. "rlimit-core", "rlimit-data", "rlimit-addrspace". Both hard and soft limits can be set.
  67. See dinit-service(5) for details.
  68. * New "env-file" setting allows per-setting environment to be specified via a file. The file
  69. is re-read each time the service process is started.
  70. * Added a "--quiet" option to suppress console output from Dinit.
  71. * Dinit when run as a user daemon no longer logs via syslog. Logging to file can still be
  72. enabled via the "-l"/"--log-file" option.
  73. * Added a "--socket-path"/"-p" option to dinitctl, to specify the socket path for communication
  74. with the dinit daemon.
  75. A number of minor bugfixes and other improvements are also implemented. An integration test
  76. framework has been added with a small number of tests, to complement the existing unit tests.
  77. == Version 0.5.2:
  78. This is a bug-fix release for several minor issues which have been found in the preceding
  79. release (0.5.1).
  80. * Fix logging failure after log buffer becomes full.
  81. * Fix readiness-fd notification not immediately updating service states.
  82. * Fix use of old settings in sample configuration for Linux.
  83. * Re-create control socket file node if it "disappears". Should solve issues if root filesystem
  84. is mounted read-write on boot.
  85. * Fix potential issue with service launch failure for services using a fixed notification fd.
  86. == Version 0.5.1:
  87. This is a bug-fix release for several issues of varying severity which have been found in the
  88. preceding release.
  89. * Improved logging behaviour when a service runs "on console" for a very short time.
  90. * Fix for crash due to SIGALRM on OpenBSD.
  91. * Fixes for compiling with Musl C library.
  92. * Fix dinitctl "enable" and "disable" commands when path to service directory is absolute.
  93. * "termsignal" setting renamed "term-signal" and now supports "KILL" signal. "termsignal"
  94. is still supported for compatibility with existing service descriptions.
  95. * Other minor fixes.
  96. == Version 0.5.0:
  97. This version adds S6-compatible readiness notification support, and adds support for updating
  98. the "utmp" database when services start/stop (this functionality should be avoided if possible
  99. since the "utmp" database is mostly an historical artifact, and system support is often prone
  100. to issues which allow unprivileged users to prevent updates and deny or delay logins; however,
  101. utilities such as "who" may depend on the database being updated appropriately).
  102. Other changes:
  103. * Add "-u" command line option to force running dinit as a user instance.
  104. * Add a "chain-to" service property to better support recovery services.
  105. * Add a "shares-console" service option to allow running services "on the console" without having
  106. them own it exclusively.
  107. * Add "inittab-id" and "inittab-line" service settings for utmp support.
  108. * Minor bugfixes.
  109. == Version 0.4.0:
  110. This version focuses on being more "distribution friendly". It adds mechanisms to add and remove
  111. dependencies, either temporarily or persistently, between services without manual editing of
  112. service description files.
  113. Changes:
  114. * A new service description directive, "waits-for.d", allows specifying a directory for which the
  115. contents (filenames) are read as dependencies. This provides a convenient way to add and remove
  116. dependencies to service descriptions without editing the textual service description file.
  117. * dinitctl has new commands, "add-dep" and "rm-dep", to add or remove a dependency between
  118. services. The dependency is not persisted and won't survive a restart. Check the man page for
  119. details.
  120. * dinitctl has new commands, "enable" and "disable". These permanently enable/disable
  121. a service for some target ("boot" by default) by creating/destroying a symbolic link
  122. in the waits-for.d directory specified in the service description (and create/remove
  123. waits-for dependency dynamically). Check the man page for details.
  124. * A code style guide has been added (in the "doc" directory).
  125. * More tests, minor bugfixes.