summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTon Voon <tonvoon@users.sourceforge.net>2006-03-17 14:07:34 (GMT)
committerTon Voon <tonvoon@users.sourceforge.net>2006-03-17 14:07:34 (GMT)
commit2db2f402a3bb0c948667c1401b733014fe90a718 (patch)
treed389192fa3385893f2c4492a98db6ef4790efd32
parent2b10c19323e2415433db55ac4bfa0604294fa43d (diff)
downloadmonitoring-plugins-2db2f402a3bb0c948667c1401b733014fe90a718.tar.gz
mysql detection cleanup: fixes runtime linking, autodetection of main
locations, detection of lib64 and different layouts git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1327 f882894a-f735-0410-b71e-b25c423dba1c
-rw-r--r--REQUIREMENTS5
-rw-r--r--configure.in87
-rw-r--r--plugins/Makefile.am2
-rw-r--r--plugins/check_mysql.c4
-rw-r--r--plugins/check_mysql_query.c4
-rw-r--r--plugins/t/check_mysql.t2
6 files changed, 63 insertions, 41 deletions
diff --git a/REQUIREMENTS b/REQUIREMENTS
index 12552df..f16de93 100644
--- a/REQUIREMENTS
+++ b/REQUIREMENTS
@@ -40,11 +40,6 @@ check_mysql, check_mysql_query:
40 Redhat Powertools Source: mysql-3.20.32a-3.i386.rpm, mysql-devel-3.20.32a-3.i386.rpm (these seem to be broken, however) 40 Redhat Powertools Source: mysql-3.20.32a-3.i386.rpm, mysql-devel-3.20.32a-3.i386.rpm (these seem to be broken, however)
41 RPMS from www.mysql.org work better 41 RPMS from www.mysql.org work better
42 42
43 If you use the Mac OS X package from mysql.org, you need to add two soft links for ./configure
44 to find the mysql libraries correctly:
45 cd /usr/local/mysql/lib && ln -s . mysql
46 cd /usr/local/mysql/include && ln -s . mysql
47
48check_pqsql: 43check_pqsql:
49 - Requires the PostgreSQL libraries available from 44 - Requires the PostgreSQL libraries available from
50 http://www.postgresql.org 45 http://www.postgresql.org
diff --git a/configure.in b/configure.in
index d1ef954..e02dc89 100644
--- a/configure.in
+++ b/configure.in
@@ -253,49 +253,72 @@ else
253fi 253fi
254LIBS="$_SAVEDLIBS" 254LIBS="$_SAVEDLIBS"
255 255
256
257dnl Check for mysql libraries 256dnl Check for mysql libraries
258_SAVEDLIBS="$LIBS" 257_SAVEDLIBS="$LIBS"
259_SAVEDCPPFLAGS="$CPPFLAGS" 258_SAVEDCPPFLAGS="$CPPFLAGS"
259FOUNDMYSQL="no"
260AC_ARG_WITH(mysql, 260AC_ARG_WITH(mysql,
261 ACX_HELP_STRING([--with-mysql=DIR], 261 ACX_HELP_STRING([--with-mysql=DIR],
262 [sets path to mysql installation (assumes lib/mysql and include subdirs]), 262 [sets path to mysql installation (assumes lib/lib64 and include subdirs)]),
263 MYSQL=$withval,) 263 MYSQL=$withval,)
264# Find the mysql client libs
264if test -n "$MYSQL"; then 265if test -n "$MYSQL"; then
266 MYSQLLIBDIR=$MYSQL/lib
267 MYSQLLIB64DIR=$MYSQL/lib64
268elif test -f /usr/lib/libmysqlclient.so -o -f /usr/lib/libmysqlclient.a ; then
269 MYSQL="/usr"
270 MYSQLLIBDIR=$MYSQL/lib
271 MYSQLLIB64DIR=$MYSQL/lib64
272elif test -f /usr/lib/mysql/libmysqlclient.so -o -f /usr/lib/mysql/libmysqlclient.a ; then
273 MYSQL="/usr"
265 MYSQLLIBDIR=$MYSQL/lib/mysql 274 MYSQLLIBDIR=$MYSQL/lib/mysql
266 CPPFLAGS="-I$MYSQL/include" 275 MYSQLLIB64DIR=$MYSQL/lib64/mysql
267 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L$MYSQLLIBDIR " check_mysql_query_LDFLAGS="-L$MYSQLLIBDIR ",,-L$MYSQLLIBDIR -lz) 276elif test -f /usr/local/lib/libmysqlclient.so -o -f /usr/local/lib/libmysqlclient.a ; then
268 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient") 277 MYSQL="/usr/local"
269elif test -f /usr/lib/libmysqlclient.so; then 278 MYSQLLIBDIR=$MYSQL/lib
270 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz) 279 MYSQLLIB64DIR=$MYSQL/lib64
271 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient") 280elif test -f /usr/local/lib/mysql/libmysqlclient.so -o -f /usr/local/lib/mysql/libmysqlclient.a ; then
272elif test -f /usr/lib/libmysqlclient.a; then 281 MYSQL="/usr/local"
282 MYSQLLIBDIR=$MYSQL/lib/mysql
283 MYSQLLIB64DIR=$MYSQL/lib64/mysql
284elif test -f /usr/local/mysql/lib/libmysqlclient.so -o -f /usr/local/mysql/lib/libmysqlclient.a ; then
285 MYSQL="/usr/local/mysql"
286 MYSQLLIBDIR=$MYSQL/lib
287 MYSQLLIB64DIR=$MYSQL/lib64
288fi
289
290# Check libs okay
291if test -n "$MYSQL" ; then
292 CPPFLAGS="-L$MYSQLLIBDIR -L$MYSQLLIB64DIR"
273 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz) 293 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz",,-lz)
274 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient") 294 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient")
275elif test -f /usr/lib/mysql/libmysqlclient.so; then
276 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql" check_mysql_query_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
277 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql" check_mysql_query_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
278elif test -f /usr/lib/mysql/libmysqlclient.a; then
279 AC_CHECK_LIB(mysqlclient,mysql_init,MYSQLLIBS="-lmysqlclient -lz" check_mysql_LDFLAGS="-L/usr/lib/mysql" check_mysql_query_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql -lz)
280 AC_CHECK_LIB(mysqlclient,mysql_close,MYSQLLIBS="-lmysqlclient" check_mysql_LDFLAGS="-L/usr/lib/mysql" check_mysql_query_LDFLAGS="-L/usr/lib/mysql",,-L/usr/lib/mysql)
281fi 295fi
296
297# Check headers okay
282if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then 298if test "$ac_cv_lib_mysqlclient_mysql_init" = "yes" -o "$ac_cv_lib_mysqlclient_mysql_close" = "yes"; then
283 AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, MYSQLINCLUDE="-I$MYSQL/include" ) 299 CPPFLAGS="-I$MYSQL/include"
284 if test "$ac_cv_header_mysql_mysql_h" = "yes" -a "$ac_cv_header_mysql_errmsg_h" = "yes"; then 300 AC_CHECK_HEADERS(mysql.h errmsg.h, FOUNDMYSQL="yes" MYSQLINCLUDE="-I$MYSQL/include")
285 EXTRAS="$EXTRAS check_mysql check_mysql_query" 301 if test x"$FOUNDMYSQL" != x"yes" ; then
286 AC_SUBST(MYSQLINCLUDE) 302 AC_CHECK_HEADERS(mysql/mysql.h mysql/errmsg.h, FOUNDMYSQL="yes" MYSQLINCLUDE="-I$MYSQL/include/mysql")
287 AC_SUBST(MYSQLLIBS) 303 fi
288 AC_SUBST(check_mysql_LDFLAGS) 304fi
289 AC_SUBST(check_mysql_query_LDFLAGS) 305
290 else 306# Setup mysql plugins
291 AC_MSG_WARN([Skipping mysql plugin]) 307if test $FOUNDMYSQL = "yes" ; then
292 AC_MSG_WARN([install mysql client headers to compile this plugin (see REQUIREMENTS).]) 308 EXTRAS="$EXTRAS check_mysql check_mysql_query"
309 if test -d $MYSQLLIB64DIR ; then
310 MYSQLLIBS="-L$MYSQLLIB64DIR -rpath $MYSQLLIB64DIR $MYSQLLIBS"
311 fi
312 if test -d $MYSQLLIBDIR ; then
313 MYSQLLIBS="-L$MYSQLLIBDIR -rpath $MYSQLLIBDIR $MYSQLLIBS"
293 fi 314 fi
315 AC_SUBST(MYSQLINCLUDE)
316 AC_SUBST(MYSQLLIBS)
294else 317else
295 AC_MSG_WARN([Skipping mysql plugin]) 318 AC_MSG_WARN([Skipping mysql plugin])
296 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).]) 319 AC_MSG_WARN([install mysql client libs to compile this plugin (see REQUIREMENTS).])
297fi 320fi
298CPPFLAGS="$_SAVEDCPPFLAGS $MYSQLINCLUDE" 321CPPFLAGS="$_SAVEDCPPFLAGS"
299LIBS="$_SAVEDLIBS" 322LIBS="$_SAVEDLIBS"
300 323
301AC_CHECK_HEADERS(unistd.h) 324AC_CHECK_HEADERS(unistd.h)
@@ -442,7 +465,7 @@ fi
442 465
443 466
444dnl openssl detection/configuration 467dnl openssl detection/configuration
445if ! test "$with_openssl" = "no"; then 468if ! test x"$with_openssl" = x"no"; then
446 dnl Check for OpenSSL location if it wasn't already specified 469 dnl Check for OpenSSL location if it wasn't already specified
447 if ! test -d "$with_openssl"; then 470 if ! test -d "$with_openssl"; then
448 for d in $OPENSSL_DIRS; do 471 for d in $OPENSSL_DIRS; do
@@ -456,18 +479,20 @@ if ! test "$with_openssl" = "no"; then
456 _SAVEDLDFLAGS="$LDFLAGS" 479 _SAVEDLDFLAGS="$LDFLAGS"
457 dnl Check for OpenSSL header files 480 dnl Check for OpenSSL header files
458 unset FOUNDINCLUDE 481 unset FOUNDINCLUDE
459 CPPFLAGS="$CPPFLAGS -I$OPENSSL/include" 482 if test x"$with_openssl" != x"/usr" ; then
460 LDFLAGS="$LDFLAGS -R$OPENSSL/lib" 483 CPPFLAGS="$CPPFLAGS -I$with_openssl/include"
484 LDFLAGS="$LDFLAGS -R$with_openssl/lib"
485 fi
461 486
462 dnl check for openssl in $dir/include/openssl 487 dnl check for openssl in $dir/include/openssl
463 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h, 488 AC_CHECK_HEADERS(openssl/ssl.h openssl/x509.h openssl/rsa.h openssl/pem.h openssl/crypto.h openssl/err.h,
464 SSLINCLUDE="-I$OPENSSL/include" 489 SSLINCLUDE="-I$with_openssl/include"
465 FOUNDINCLUDE=yes, 490 FOUNDINCLUDE=yes,
466 FOUNDINCLUDE=no) 491 FOUNDINCLUDE=no)
467 dnl else check to see if $dir/include has it 492 dnl else check to see if $dir/include has it
468 if test "$FOUNDINCLUDE" = "no"; then 493 if test "$FOUNDINCLUDE" = "no"; then
469 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h, 494 AC_CHECK_HEADERS(ssl.h x509.h rsa.h pem.h crypto.h err.h,
470 SSLINCLUDE="-I$OPENSSL/include" 495 SSLINCLUDE="-I$with_openssl/include"
471 FOUNDINCLUDE=yes, 496 FOUNDINCLUDE=yes,
472 FOUNDINCLUDE=no) 497 FOUNDINCLUDE=no)
473 fi 498 fi
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 7f9d745..9a1f6d0 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -63,7 +63,9 @@ check_ldap_LDADD = $(NETLIBS) $(LDAPLIBS)
63check_load_LDADD = $(BASEOBJS) popen.o 63check_load_LDADD = $(BASEOBJS) popen.o
64check_mrtg_LDADD = $(BASEOBJS) 64check_mrtg_LDADD = $(BASEOBJS)
65check_mrtgtraf_LDADD = $(BASEOBJS) 65check_mrtgtraf_LDADD = $(BASEOBJS)
66check_mysql_CPPFLAGS = $(MYSQLINCLUDE)
66check_mysql_LDADD = $(NETLIBS) $(MYSQLLIBS) 67check_mysql_LDADD = $(NETLIBS) $(MYSQLLIBS)
68check_mysql_query_CPPFLAGS = $(MYSQLINCLUDE)
67check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS) 69check_mysql_query_LDADD = $(NETLIBS) $(MYSQLLIBS)
68check_nagios_LDADD = $(BASEOBJS) runcmd.o 70check_nagios_LDADD = $(BASEOBJS) runcmd.o
69check_nt_LDADD = $(NETLIBS) 71check_nt_LDADD = $(NETLIBS)
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index 92ac7ff..9d547dd 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -25,8 +25,8 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
25#include "utils.h" 25#include "utils.h"
26#include "netutils.h" 26#include "netutils.h"
27 27
28#include <mysql/mysql.h> 28#include <mysql.h>
29#include <mysql/errmsg.h> 29#include <errmsg.h>
30 30
31char *db_user = NULL; 31char *db_user = NULL;
32char *db_host = NULL; 32char *db_host = NULL;
diff --git a/plugins/check_mysql_query.c b/plugins/check_mysql_query.c
index 321af7a..b542fb4 100644
--- a/plugins/check_mysql_query.c
+++ b/plugins/check_mysql_query.c
@@ -22,8 +22,8 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net";
22#include "utils.h" 22#include "utils.h"
23#include "netutils.h" 23#include "netutils.h"
24 24
25#include <mysql/mysql.h> 25#include <mysql.h>
26#include <mysql/errmsg.h> 26#include <errmsg.h>
27 27
28char *db_user = NULL; 28char *db_user = NULL;
29char *db_host = NULL; 29char *db_host = NULL;
diff --git a/plugins/t/check_mysql.t b/plugins/t/check_mysql.t
index 78413c6..852926a 100644
--- a/plugins/t/check_mysql.t
+++ b/plugins/t/check_mysql.t
@@ -48,7 +48,7 @@ SKIP: {
48 $result = NPTest->testCmd("./check_mysql -H $mysqlserver $mysql_login_details"); 48 $result = NPTest->testCmd("./check_mysql -H $mysqlserver $mysql_login_details");
49 cmp_ok( $result->return_code, '==', 0, "Login okay"); 49 cmp_ok( $result->return_code, '==', 0, "Login okay");
50 50
51 $result = NPTest->testCmd("./check_mysql -H $mysqlserver -u dummy"); 51 $result = NPTest->testCmd("./check_mysql -H $mysqlserver -u dummy -pdummy");
52 cmp_ok( $result->return_code, '==', 2, "Login failure"); 52 cmp_ok( $result->return_code, '==', 2, "Login failure");
53 like( $result->output, $bad_login_output, "Expected login failure message"); 53 like( $result->output, $bad_login_output, "Expected login failure message");
54 54