This commit ditches gengetopt for the command line and config file
parsers in favor of the lopsub library. Hence from now on, lopsub
must be installed in order to compile dss while gengetopt is no
longer needed.
The mutually exclusive gengetopt group options --create, --prune, --ls,
--run, --kill and --reload are replaced by lopsub subcommands. However,
the --reload and --kill options have been combined to the new "kill"
subcommand which allows to send arbitrary signals to a running dss
process.
Due to the conversion, the syntax of the dss command changes
slightly. For example,
dss --run
becomes
dss run
while
dss -Rdc foo
needs to be spelled as
dss -c foo -- run -d
so that -d is regarded as an option to the "run" subcommand rather
than an option to dss.
With lopsub each subcommand has its own command line and config file
parser. Options to subcommands can be added to the configuration file
like this:
[run]
daemon
logfile=/var/log/dss.log
As for the implementation, the bulk of the changes is the conversion
of dss.ggo to the new dss.suite. The necessary adjustments to the
code are relatively simple. In particular, only dss.c needs to be
changed while all other .c files don't require any modifications.
The examples in INSTALL are adjusted to the new syntax. The commit also
drops support for Mac OS and Solaris, since lopsub is not supported
on these platforms yet.