oweals/dinit.git
4 years agoBUILD: explain the USE_UTMPX option a little better
Davin McCall [Mon, 23 Dec 2019 05:19:29 +0000 (15:19 +1000)]
BUILD: explain the USE_UTMPX option a little better

4 years agoquery_name: always return with NAK if service handle invalid
Davin McCall [Mon, 23 Dec 2019 03:44:22 +0000 (13:44 +1000)]
query_name: always return with NAK if service handle invalid

Existing code looks like a copy-pasto: returns ACK (not NAK?) and falls
through to a potential null-pointer dereference if the service handle
can't be found.

4 years agoAdd SHUTDOWN_PREFIX build variable, controls name of shutdown executable
Davin McCall [Mon, 23 Dec 2019 02:57:49 +0000 (12:57 +1000)]
Add SHUTDOWN_PREFIX build variable, controls name of shutdown executable

Useful for installing Dinit alongside eg Sys V init.

4 years agoAvoid building constant strings on the stack
Davin McCall [Mon, 23 Dec 2019 01:03:12 +0000 (11:03 +1000)]
Avoid building constant strings on the stack

In a few places cts::literal was used locally within a function,
resulting in the (constexpr) result string object being allocated on the
stack. Move these to namespace scope.

4 years agoAdd dinitcheck(8) to dinit.8 "see also" section
Davin McCall [Sun, 22 Dec 2019 12:59:35 +0000 (22:59 +1000)]
Add dinitcheck(8) to dinit.8 "see also" section

4 years agoUpdated bundled Dasynq to 1.1.7
Davin McCall [Sun, 22 Dec 2019 10:28:42 +0000 (20:28 +1000)]
Updated bundled Dasynq to 1.1.7

This fixes a slow memory leak.

4 years agoFix --help option in dinitcheck
Davin McCall [Sun, 22 Dec 2019 10:25:05 +0000 (20:25 +1000)]
Fix --help option in dinitcheck

4 years agoUpdate COMPARISON; give more details of Dinit up-front
Davin McCall [Sat, 14 Dec 2019 08:49:52 +0000 (18:49 +1000)]
Update COMPARISON; give more details of Dinit up-front

4 years agoAvoid copying string arguments to log functions (always pass by ref)
Davin McCall [Fri, 13 Dec 2019 10:05:47 +0000 (20:05 +1000)]
Avoid copying string arguments to log functions (always pass by ref)

4 years agoBump version. v0.8.0
Davin McCall [Sun, 8 Dec 2019 09:09:48 +0000 (19:09 +1000)]
Bump version.

4 years agodinitctl: make unload/reload respect --quiet
Davin McCall [Sun, 8 Dec 2019 08:52:12 +0000 (18:52 +1000)]
dinitctl: make unload/reload respect --quiet

4 years agodinitcheck: output overall result after checks complete
Davin McCall [Sun, 8 Dec 2019 08:47:44 +0000 (18:47 +1000)]
dinitcheck: output overall result after checks complete

4 years agoPush some TODO items back to 0.9+
Davin McCall [Sun, 8 Dec 2019 08:23:00 +0000 (18:23 +1000)]
Push some TODO items back to 0.9+

We already have two major features in 0.8: dinitcheck, and dinitctl
reload; that's enough for a new version.

4 years agodinitctl man: note that can't add non-running dep to started service
Davin McCall [Sun, 8 Dec 2019 07:45:30 +0000 (17:45 +1000)]
dinitctl man: note that can't add non-running dep to started service

4 years agoClean up clang warnings
Davin McCall [Sun, 8 Dec 2019 07:29:36 +0000 (17:29 +1000)]
Clean up clang warnings

4 years agoUpdate default build configs
Davin McCall [Sun, 8 Dec 2019 07:26:08 +0000 (17:26 +1000)]
Update default build configs

4 years agoRefactoring: load new / reload existing service in single function
Davin McCall [Sun, 8 Dec 2019 03:43:59 +0000 (03:43 +0000)]
Refactoring: load new / reload existing service in single function

Loading a new service and reloading a service share a lot of common
code, so refactor them into a single function.

4 years agoFix IGR makefile (spaces to tab)
Davin McCall [Sun, 8 Dec 2019 00:42:26 +0000 (00:42 +0000)]
Fix IGR makefile (spaces to tab)

4 years agoUpdate TODO, minor updates to COMPARISON/DESIGN
Davin McCall [Thu, 5 Dec 2019 13:47:03 +0000 (23:47 +1000)]
Update TODO, minor updates to COMPARISON/DESIGN

4 years agoFix reload of stopped service
Davin McCall [Thu, 5 Dec 2019 13:45:45 +0000 (23:45 +1000)]
Fix reload of stopped service

4 years agoAdd 2nd reload test
Davin McCall [Thu, 5 Dec 2019 13:45:16 +0000 (23:45 +1000)]
Add 2nd reload test

4 years agoSet target state to STOPPED when stop is issued
Davin McCall [Wed, 4 Dec 2019 12:19:19 +0000 (22:19 +1000)]
Set target state to STOPPED when stop is issued

4 years agoAdd integration test for reload
Davin McCall [Tue, 3 Dec 2019 11:40:18 +0000 (21:40 +1000)]
Add integration test for reload

4 years agoImplement additional checks for reload
Davin McCall [Mon, 2 Dec 2019 11:13:32 +0000 (21:13 +1000)]
Implement additional checks for reload

The settings/flags inittab-id, inittab-line, shares-console,
runs-on-console, and pid-file cannot be changed for a running service.

4 years agoImprove some dinitctl error messages
Davin McCall [Sun, 1 Dec 2019 05:55:10 +0000 (15:55 +1000)]
Improve some dinitctl error messages

4 years agoRemove unneeded release
Davin McCall [Sun, 1 Dec 2019 05:07:44 +0000 (15:07 +1000)]
Remove unneeded release

4 years agoImplement reload command for dinitctl
Davin McCall [Sun, 1 Dec 2019 04:46:27 +0000 (14:46 +1000)]
Implement reload command for dinitctl

4 years agoImplement control protocol for reloading services
Davin McCall [Sun, 1 Dec 2019 02:44:45 +0000 (12:44 +1000)]
Implement control protocol for reloading services

4 years agoInitial implementation of service reloading
Davin McCall [Sun, 1 Dec 2019 01:27:12 +0000 (11:27 +1000)]
Initial implementation of service reloading

4 years agodinitcheck: return EXIT_FAILURE if problem found
Davin McCall [Fri, 22 Nov 2019 14:40:32 +0000 (14:40 +0000)]
dinitcheck: return EXIT_FAILURE if problem found

4 years agoIntegration test for dinitcheck dependency cycles detection
Davin McCall [Fri, 22 Nov 2019 13:29:57 +0000 (13:29 +0000)]
Integration test for dinitcheck dependency cycles detection

4 years agodinitcheck: check for and report dependency cycles
Davin McCall [Fri, 22 Nov 2019 13:19:42 +0000 (13:19 +0000)]
dinitcheck: check for and report dependency cycles

4 years agoFix inconsistencies/typos in help text, man pages
Davin McCall [Thu, 21 Nov 2019 18:44:14 +0000 (18:44 +0000)]
Fix inconsistencies/typos in help text, man pages

4 years agodinitcheck: support specifying services to check on command line
Davin McCall [Thu, 21 Nov 2019 18:43:48 +0000 (18:43 +0000)]
dinitcheck: support specifying services to check on command line

4 years agoInitial manpage for dinitcheck
Davin McCall [Thu, 21 Nov 2019 16:51:37 +0000 (16:51 +0000)]
Initial manpage for dinitcheck

4 years agoUpdate TODO
Davin McCall [Thu, 21 Nov 2019 16:28:28 +0000 (16:28 +0000)]
Update TODO

4 years agoInstall dinitcheck on install, clean binary on clean
Davin McCall [Thu, 21 Nov 2019 16:28:12 +0000 (16:28 +0000)]
Install dinitcheck on install, clean binary on clean

4 years agoRemove accidental marker comment
Davin McCall [Thu, 21 Nov 2019 16:24:21 +0000 (16:24 +0000)]
Remove accidental marker comment

4 years agoAdd integration test for basic dinitcheck functionality
Davin McCall [Thu, 21 Nov 2019 12:09:43 +0000 (12:09 +0000)]
Add integration test for basic dinitcheck functionality

4 years agodinitcheck: use previously factored-out parameter processing
Davin McCall [Thu, 21 Nov 2019 12:06:15 +0000 (12:06 +0000)]
dinitcheck: use previously factored-out parameter processing

dinitcheck now shares parameter processing with dinit, providing
consistent error messages and parsing.

4 years agoFactor out service parameter processing
Davin McCall [Thu, 21 Nov 2019 10:41:34 +0000 (10:41 +0000)]
Factor out service parameter processing

Factor service parameter processing into a template method, to enable
sharing (later) between load_service in dinit and dinitcheck.

4 years agoService description loading: improve error messages
Davin McCall [Tue, 19 Nov 2019 18:10:27 +0000 (18:10 +0000)]
Service description loading: improve error messages

Include parameter name and improve consistency in error messages when
parsing service descriptions.

4 years agodinitcheck: fix checking of dependencies
Davin McCall [Sun, 17 Nov 2019 18:39:20 +0000 (18:39 +0000)]
dinitcheck: fix checking of dependencies

4 years agoUse common option processing for dinit/dinitcheck service dir
Davin McCall [Fri, 15 Nov 2019 19:39:27 +0000 (19:39 +0000)]
Use common option processing for dinit/dinitcheck service dir

4 years agoFactor out service directory option processing
Davin McCall [Sat, 9 Nov 2019 07:03:15 +0000 (17:03 +1000)]
Factor out service directory option processing

Service directory options need to be processed/handled by dinit and by
dinitcheck, so factor out the processing into a separate module.

4 years agoFix typo in comment
Davin McCall [Sun, 6 Oct 2019 01:58:55 +0000 (02:58 +0100)]
Fix typo in comment

4 years agodinitcheck: process all dependencies
Davin McCall [Sun, 6 Oct 2019 01:58:38 +0000 (02:58 +0100)]
dinitcheck: process all dependencies

4 years agoDon't enable reporting exceptions on failbit (only to then disable).
Davin McCall [Sat, 21 Sep 2019 01:35:25 +0000 (02:35 +0100)]
Don't enable reporting exceptions on failbit (only to then disable).

4 years agoBeginnings of "dinitcheck" utility
Davin McCall [Sat, 10 Aug 2019 04:20:40 +0000 (14:20 +1000)]
Beginnings of "dinitcheck" utility

This will be a utility to check service configuration for errors/lint.

4 years agoConvert system_error to service_load_exc in load_service.
Davin McCall [Mon, 16 Sep 2019 09:02:57 +0000 (19:02 +1000)]
Convert system_error to service_load_exc in load_service.

4 years agoMore re-wording of "dinit as init" Linux documentation
Davin McCall [Sat, 10 Aug 2019 04:09:31 +0000 (14:09 +1000)]
More re-wording of "dinit as init" Linux documentation

4 years agoRestore -s option to dinitctl
Davin McCall [Tue, 10 Sep 2019 21:57:39 +0000 (07:57 +1000)]
Restore -s option to dinitctl

This is hardly needed since it is the default if run as root now, but is
nice to have for backwards compatibility / overriding -u option.

4 years agoUpdate gitignore
Davin McCall [Tue, 10 Sep 2019 21:30:14 +0000 (07:30 +1000)]
Update gitignore

4 years agoRemove integration test output
Davin McCall [Tue, 10 Sep 2019 21:28:27 +0000 (07:28 +1000)]
Remove integration test output

4 years agoMerge pull request #22 from travankor/makefile
Davin McCall [Mon, 9 Sep 2019 21:21:09 +0000 (07:21 +1000)]
Merge pull request #22 from travankor/makefile

Fix missing dependencies on mconfig.h in Makefile.

4 years agoFix makefile. 22/head
travankor [Mon, 9 Sep 2019 06:22:29 +0000 (23:22 -0700)]
Fix makefile.

4 years agoMerge pull request #23 from travankor/doc-fixes
Davin McCall [Mon, 9 Sep 2019 12:05:05 +0000 (22:05 +1000)]
Merge pull request #23 from travankor/doc-fixes

Fix typo in dinitctl man page. Document restart for help option.

4 years agoFix typo in dinitctl man page. Document restart for help option. 23/head
travankor [Sat, 7 Sep 2019 11:28:01 +0000 (04:28 -0700)]
Fix typo in dinitctl man page. Document restart for help option.

4 years agoMerge pull request #21 from fpoussin/contrib
Davin McCall [Tue, 3 Sep 2019 12:15:04 +0000 (22:15 +1000)]
Merge pull request #21 from fpoussin/contrib

Adding fpoussin to contributors

4 years agoAdding myself to contributors 21/head
Fabien Poussin [Tue, 3 Sep 2019 11:19:36 +0000 (13:19 +0200)]
Adding myself to contributors

4 years agoMerge pull request #20 from fpoussin/root
Davin McCall [Tue, 3 Sep 2019 10:19:09 +0000 (20:19 +1000)]
Merge pull request #20 from fpoussin/root

Adding root check on default control socket

Closes #18

4 years agoUpdated documentation for the new user flag 20/head
Fabien Poussin [Tue, 3 Sep 2019 09:09:01 +0000 (11:09 +0200)]
Updated documentation for the new user flag

4 years agoReplaced system flag with user flag
Fabien Poussin [Tue, 3 Sep 2019 09:08:37 +0000 (11:08 +0200)]
Replaced system flag with user flag

4 years agoMerge pull request #19 from fpoussin/modules
Davin McCall [Mon, 26 Aug 2019 12:16:25 +0000 (22:16 +1000)]
Merge pull request #19 from fpoussin/modules

Kernel modules script

4 years agoAdding boot link for modules 19/head
Fabien Poussin [Mon, 26 Aug 2019 10:28:44 +0000 (12:28 +0200)]
Adding boot link for modules

4 years agoAdding kernel modules script
Fabien Poussin [Mon, 26 Aug 2019 10:25:52 +0000 (12:25 +0200)]
Adding kernel modules script

4 years agoUp version to 0.7.0. v0.7.0
Davin McCall [Fri, 9 Aug 2019 11:52:25 +0000 (21:52 +1000)]
Up version to 0.7.0.

4 years agoSome documentation updates.
Davin McCall [Thu, 8 Aug 2019 13:07:31 +0000 (23:07 +1000)]
Some documentation updates.

4 years agoAdd integration test for service "restart" function.
Davin McCall [Thu, 8 Aug 2019 12:18:26 +0000 (22:18 +1000)]
Add integration test for service "restart" function.

4 years agoUpdate man page for revised restart/wake semantics.
Davin McCall [Thu, 8 Aug 2019 11:53:32 +0000 (21:53 +1000)]
Update man page for revised restart/wake semantics.

4 years agoChange semantics of "wake" command.
Davin McCall [Thu, 8 Aug 2019 11:48:33 +0000 (21:48 +1000)]
Change semantics of "wake" command.

"Wake" now re-attaches dependencies (from the dependents of the named
service). You can no longer wake a service if it has no active
dependents.

4 years agoAvoid signed-unsigned comparison warning.
Davin McCall [Wed, 7 Aug 2019 11:53:16 +0000 (21:53 +1000)]
Avoid signed-unsigned comparison warning.

4 years agodinitctl: update restart handling.
Davin McCall [Wed, 7 Aug 2019 11:39:21 +0000 (21:39 +1000)]
dinitctl: update restart handling.

As per changes in dinit daemon/control protocol.

4 years agoRe-work restart function.
Davin McCall [Wed, 7 Aug 2019 11:04:56 +0000 (21:04 +1000)]
Re-work restart function.

Restart is now always "gentle", i.e. cannot be forced and isn't possible
when dependents (with hard dependency) exist.

4 years agoProperly issue STARTCANCELLED message if restart is cancelled
Davin McCall [Wed, 7 Aug 2019 10:09:56 +0000 (20:09 +1000)]
Properly issue STARTCANCELLED message if restart is cancelled

4 years agoRe-work state propogation/transition logic.
Davin McCall [Sun, 4 Aug 2019 04:23:15 +0000 (14:23 +1000)]
Re-work state propogation/transition logic.

This mostly keeps existing behaviour, hopefully making it more
consistent and predictable in other cases, and simplifies the code.

4 years agoImprove/refactor static_membuf.
Davin McCall [Wed, 31 Jul 2019 11:21:57 +0000 (21:21 +1000)]
Improve/refactor static_membuf.

4 years agoRefactor some packet-building for readability and safety
Davin McCall [Mon, 29 Jul 2019 10:41:23 +0000 (20:41 +1000)]
Refactor some packet-building for readability and safety

4 years agoDocument dinitctl "restart" command.
Davin McCall [Sun, 28 Jul 2019 07:09:30 +0000 (17:09 +1000)]
Document dinitctl "restart" command.

4 years agoUpdate TODO.
Davin McCall [Sun, 28 Jul 2019 05:49:23 +0000 (15:49 +1000)]
Update TODO.

4 years agoUp version, update NEWS.
Davin McCall [Sun, 28 Jul 2019 01:50:48 +0000 (11:50 +1000)]
Up version, update NEWS.

4 years agostop: if not required, treat stop as full manual stop.
Davin McCall [Sat, 27 Jul 2019 12:22:02 +0000 (22:22 +1000)]
stop: if not required, treat stop as full manual stop.

This is needed to properly handle shutdown when a service is alive but
not marked active.

4 years agoImplement dinitctl restart, addresses #14
Davin McCall [Sat, 27 Jul 2019 10:45:29 +0000 (20:45 +1000)]
Implement dinitctl restart, addresses #14

4 years agoDon't add console watcher if not PID 1.
Davin McCall [Sat, 27 Jul 2019 07:03:41 +0000 (17:03 +1000)]
Don't add console watcher if not PID 1.

If not PID 1, we don't need to ask for console input. Adding a watcher
fails if we don't have a (suitable) stdin, eg FreeBSD shell if dinit is
run in background.

4 years agoUpdate manpage/README for new "dinitctl stop" semantics.
Davin McCall [Sat, 27 Jul 2019 06:15:09 +0000 (16:15 +1000)]
Update manpage/README for new "dinitctl stop" semantics.

"dinitctl stop" will now issue an error if dependent services would be
forced to stop. The new --force option can be used to force a service
and dependents to stop.

4 years agoAdd integration test for gentle stop/force stop.
Davin McCall [Sat, 27 Jul 2019 06:03:21 +0000 (16:03 +1000)]
Add integration test for gentle stop/force stop.

4 years agoFix a bunch of issues identified by Coverity scan
Davin McCall [Sat, 27 Jul 2019 05:01:56 +0000 (15:01 +1000)]
Fix a bunch of issues identified by Coverity scan

4 years agodinitctl: print names of dependents which are inhibiting stop
Davin McCall [Sat, 27 Jul 2019 00:16:53 +0000 (10:16 +1000)]
dinitctl: print names of dependents which are inhibiting stop

4 years agodinitctl stop: gentle by default, implement --force.
Davin McCall [Tue, 23 Jul 2019 11:09:15 +0000 (21:09 +1000)]
dinitctl stop: gentle by default, implement --force.

A "gentle" stop won't stop if dependents will be affected, i.e. it warns
and aborts. The `--force' option (or `-f') can be used to force the
service to stop, which will also cause the dependents to stop.

Also sneak in a bug fix where certain options were not recognised.

4 years agoAdd control protocol query-name test
Davin McCall [Mon, 22 Jul 2019 09:14:45 +0000 (19:14 +1000)]
Add control protocol query-name test

4 years agoUpdate gitignore
Davin McCall [Mon, 22 Jul 2019 09:02:27 +0000 (19:02 +1000)]
Update gitignore

4 years agoControl protocol: implement QUERYSERVICENAME to get name from handle
Davin McCall [Sun, 21 Jul 2019 05:08:50 +0000 (15:08 +1000)]
Control protocol: implement QUERYSERVICENAME to get name from handle

4 years agoFix gentle service stop
Davin McCall [Sun, 21 Jul 2019 04:57:19 +0000 (14:57 +1000)]
Fix gentle service stop

Fix some problems with "gentle" service stop as found by test.

4 years agoAdd test for "gentle" stop.
Davin McCall [Sun, 21 Jul 2019 05:01:37 +0000 (15:01 +1000)]
Add test for "gentle" stop.

4 years agoClean up fuzz test source
Davin McCall [Sun, 21 Jul 2019 01:58:29 +0000 (11:58 +1000)]
Clean up fuzz test source

4 years agoImplement careful/"gentle" service stop (abort if dependent would stop).
Davin McCall [Sat, 20 Jul 2019 08:50:41 +0000 (09:50 +0100)]
Implement careful/"gentle" service stop (abort if dependent would stop).

4 years agoUpdate version, NEWS, TODO. v0.6.0
Davin McCall [Sun, 14 Jul 2019 04:48:32 +0000 (05:48 +0100)]
Update version, NEWS, TODO.

4 years agoGenerate man pages with m4.
Davin McCall [Sun, 14 Jul 2019 01:53:39 +0000 (02:53 +0100)]
Generate man pages with m4.

Allows substituting current version and release date.

4 years agoLog more information on exec failure.
Davin McCall [Fri, 12 Jul 2019 13:28:23 +0000 (23:28 +1000)]
Log more information on exec failure.

Log failure stage as well as error-from-errno.

4 years agoAdd integration test for "chain-to" service parameter
Davin McCall [Thu, 11 Jul 2019 12:38:19 +0000 (22:38 +1000)]
Add integration test for "chain-to" service parameter