[-]
[+]
|
Changed |
check_mk.changes
|
|
[-]
[+]
|
Changed |
check_mk.spec
^
|
|
|
Added |
check_mk-1.2.8p26.tar.gz
^
|
[-]
[+]
|
Changed |
check_mk-rpmlintrc
^
|
@@ -1,15 +1,33 @@
# ignore some small duplicate files in the webroot and avoid to
# add FollowSymlinks in the apache config instead
-addFilter("files-duplicate.*/usr/share/check_mk/web/htdocs/.*");
+#addFilter("files-duplicate.*/usr/share/check_mk/web/htdocs/.*");
+
# the mentioned README files are hints on how to check different Operating Systems
addFilter("non-linux-readme.*/usr/share/doc/packages/check_mk/agents/README.*");
+
# the mentioned files are for M$ based computers, so ignore the
# warning in this case
+addFilter("wrong-script-end-of-line-encoding.*/usr/share/doc/packages/check_mk/treasures/msexchange/win.*");
+addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/treasures/windows_msi/build_msi.bat");
+addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/treasures/msexchange/README");
+addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/agents/README.OpenVMS");
addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/windows/nslookup_local_check_example/nslookup.vbs");
addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/windows/counters.ini");
-addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/windows/nslookup_local_check_example/.*bat");
-addFilter("script-without-shebang.*/usr/share/check_mk/agents/windows/endless.bat");
-addFilter("wrong-script-end-of-line-encoding.*/usr/share/check_mk/agents/windows/endless.bat");
-# as check_mk is currently not scheduled for direct inclusion into openSUSE, just ignore the warning
+addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/windows/nslookup_local_check_example/nslookup_forward.bat");
+addFilter("wrong-file-end-of-line-encoding.*/usr/share/doc/packages/check_mk/windows/nslookup_local_check_example/nslookup_reverse.bat");
+
+# check_mk knows how to "execute" those special files in that directories - no need to execute them manually
+# so skip the warning here by intention and add a bit more security
+addFilter("non-executable-script.*/usr/share/check_mk/notifications/.*");
+addFilter("non-executable-script.*/usr/share/check_mk/inventory/.*");
+
+# As check_mk is currently not scheduled for direct inclusion into openSUSE, just ignore the warning
setBadness("permissions-unauthorized-file", 100);
addFilter("permissions-unauthorized-file.*/etc/permissions.d/mk-livestatus");
+
+#
+addFilter("devel-file-in-non-devel-package.*/usr/share/check_mk/agents/windows/*");
+addFilter("devel-file-in-non-devel-package.*/usr/share/check_mk/agents/z_os/waitmax.c");
+
+#
+addFilter("arch-dependent-file-in-usr-share.*/usr/share/doc/packages/check_mk/treasures/modbus/agent_modbus");
|
[-]
[+]
|
Changed |
permissions.check_mk
^
|
@@ -12,9 +12,12 @@
# /var/lib/check_mk/autochecks icinga:icingacmd 0755
# /var/lib/check_mk/cache icinga:icingacmd 0755
# /var/lib/check_mk/counters icinga:icingacmd 0755
+# /var/lib/check_mk/inventory icinga:icingacmd 0755
+# /var/lib/check_mk/log icinga:icingacmd 0755
# /var/lib/check_mk/packages icinga:icingacmd 0755
# /var/lib/check_mk/precompiled icinga:icingacmd 0755
# /var/lib/check_mk/snmpwalks icinga:icingacmd 0755
+# /var/log/check_mk icinga:icingacmd 0755
# /var/spool/check_mk icinga:icingacmd 2755
# /var/spool/check_mk nagios:nagcmd 2755
# /etc/nagios/htpasswd.users nagios:nagcmd 0660
|
[-]
[+]
|
Added |
waitmax.c
^
|
@@ -0,0 +1,157 @@
+// +------------------------------------------------------------------+
+// | ____ _ _ __ __ _ __ |
+// | / ___| |__ ___ ___| | __ | \/ | |/ / |
+// | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+// | | |___| | | | __/ (__| < | | | | . \ |
+// | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+// | |
+// | Copyright Mathias Kettner 2013 mk@mathias-kettner.de |
+// +------------------------------------------------------------------+
+//
+// This file is part of Check_MK.
+// The official homepage is at http://mathias-kettner.de/check_mk.
+//
+// check_mk is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation in version 2. check_mk is distributed
+// in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+// out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+// PARTICULAR PURPOSE. See the GNU General Public License for more de-
+// ails. You should have received a copy of the GNU General Public
+// License along with GNU Make; see the file COPYING. If not, write
+// to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA.
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/errno.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <signal.h>
+#include <getopt.h>
+
+/* macros for using write(2) instead of fprintf(stderr, ) */
+#define out(text) write(2, text, strlen(text));
+
+int g_pid;
+int g_timeout = 0;
+int g_signum = 15;
+
+struct option long_options[] = {
+ { "version" , no_argument, 0, 'V' },
+ { "help" , no_argument, 0, 'h' },
+ { "signal" , required_argument, 0, 's' },
+ { 0, 0, 0, 0 } };
+
+void version()
+{
+ out("waitmax version 1.1\n"
+ "Copyright Mathias Kettner 2008\n"
+ "This is free software; see the source for copying conditions. There is NO\n"
+ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
+ exit(0);
+}
+
+
+void usage()
+{
+ out("Usage: waitmax [-s SIGNUM] MAXTIME PROGRAM [ARGS...]\n"
+ "\n"
+ "Execute PROGRAM as a subprocess. If PROGRAM does not exit before MAXTIME\n"
+ "seconds, it will be killed with SIGTERM or an alternative signal.\n"
+ "\n"
+ " -s, --signal SIGNUM kill with SIGNUM on timeout\n"
+ " -h, --help this help\n"
+ " -V, --version show version an exit\n\n");
+ exit(1);
+}
+
+
+void signalhandler(int signum)
+{
+ if (0 == kill(g_pid, g_signum))
+ g_timeout = 1;
+}
+
+
+int main(int argc, char **argv)
+{
+ int indexptr=0;
+ int ret;
+ setenv("POSIXLY_CORRECT", "true", 0);
+ while (0 <= (ret = getopt_long(argc, argv, "Vhs:", long_options, &indexptr))) {
+ switch (ret)
+ {
+ case 'V':
+ version();
+
+ case 'h':
+ usage();
+
+ case 's':
+ g_signum = strtoul(optarg, 0, 10);
+ if (g_signum < 1 || g_signum > 32) {
+ out("Signalnumber must be between 1 and 32.\n");
+ exit(1);
+ }
+ break;
+
+ default:
+ usage(argv[0]);
+ exit(1);
+ break;
+ }
+ }
+
+ if (optind + 1 >= argc) usage();
+
+ int maxtime = atoi(argv[optind]);
+ if (maxtime <= 0) usage();
+
+ g_pid = fork();
+ if (g_pid == 0) {
+ signal(SIGALRM, signalhandler);
+ execvp(argv[optind + 1], argv + optind + 1);
+ out("Cannot execute ");
+ out(argv[optind + 1]);
+ out(": ");
+ out(strerror(errno));
+ out("\n");
+ exit(253);
+ }
+
+ signal(SIGALRM, signalhandler);
+ alarm(maxtime);
+ int status;
+ while (1) {
+ int pid = waitpid(g_pid, &status, 0);
+ if (pid <= 0) {
+ if (errno == EINTR) continue; // interuppted by alarm
+ else
+ out("Strange: waitpid() fails: ");
+ out(strerror(errno));
+ out("\n");
+ exit(1);
+ }
+ else break;
+ }
+
+ if (WIFEXITED(status)) {
+ int exitcode = WEXITSTATUS(status);
+ return exitcode;
+ }
+ else if (WIFSIGNALED(status)) {
+ int signum = WTERMSIG(status);
+ if (g_timeout)
+ return 255;
+ else
+ return 128 + signum;
+ }
+ else {
+ out("Strange: program did neither exit nor was signalled.\n");
+ return 254;
+ }
+}
|