* initial commit to migrate contents of Options->Paths to zm.conf
* remove paths items from configdata.pm
* remove paths tab from options
* update deb packaging scripts with new cmake vars
* remove extraneous file
* save custom paths variables to config file before dB is freshened
* don't check configs if the dB version is >= 1.31.0
* cmake changes to support conf.d
* php changes to support conf.d
* perl changes to support conf.d
* C changes to support conf.d
* add conf.d support to rpmspecfile
* fix typo
* specify ZM_CONFIG_SUBDIR in relevant target distros
* put back my config_file perl definition
* remove quotes from ZM macros
* fix snprintf
* add README to conf.d folder
* adjust rpm specfile
* remove custom permissions from README in rpmspecfile
* modify rpm README documentation to reflect conf.d support
* set ZM_CONFIG_SUBDIR in debian rules file
The tests in the script General.pm that determine the format for superuser calls on the target environment may leak debug messages to STDOUT. This can be replicated on a Docker installation of Zoneminder lacking sudo. Starting the Zoneminder process will display an intimidating series of error messages that can safely be ignored by the user:
e.g.
'''
root@2bfdd23cc27a:~# service zoneminder start
Starting ZoneMinder: Can't exec "sudo": No such file or directory at /usr/share/perl5/ZoneMinder/General.pm line 1 10.
Use of uninitialized value $output in scalar chomp at /usr/share/perl5/ZoneMinder/General.pm line 119.
Use of uninitialized value $output in concatenation (.) or string at /usr/share/perl5/ZoneMinder/General.pm line 1 20.
success
'''
This patch redirects STDERR from the qx(...) calls to the debug message., And if the output of qx(...) is undefined, replaces it with any error in $! resulting from the qx(...) call.