freebsd-ports/net-mgmt/nagios-plugins/files/patch-configure.in
Sergey Matveychuk ba6931050a - Fix check_procs plugin
PR:		ports/81548
Submitted by:	Martin Matuska <martin@matuska.org>
Approved by:	maintainer
2005-06-05 11:39:43 +00:00

388 lines
15 KiB
Text

--- configure.in.orig Fri Feb 4 01:44:27 2005
+++ configure.in Sun Feb 27 15:17:24 2005
@@ -10,7 +10,7 @@
RELEASE=1
AC_SUBST(RELEASE)
-AC_PREFIX_DEFAULT(/usr/local/nagios)
+dnl AC_PREFIX_DEFAULT(/usr/local/nagios)
dnl Figure out how to invoke "install" and what install options to use.
AC_PROG_INSTALL
@@ -71,8 +71,6 @@
with_nagios_group=nagios)
AC_SUBST(with_nagios_user)
AC_SUBST(with_nagios_group)
-INSTALL_OPTS="-o $with_nagios_user -g $with_nagios_group"
-AC_SUBST(INSTALL_OPTS)
AC_ARG_WITH(trusted_path,
ACX_HELP_STRING([--with-trusted-path=PATH],
@@ -181,27 +179,35 @@
LIBS="$_SAVEDLIBS"
CPPFLAGS="$_SAVEDCPPFLAGS"
+AC_ARG_ENABLE(radius,--enable-radius compile check_radius)
+if test x$enable_radius = xyes; then
dnl Check for radius libraries
_SAVEDLIBS="$LIBS"
-AC_CHECK_LIB(radiusclient,rc_read_config)
+AC_CHECK_LIB(radiusclient,rc_read_config,,,-L${LOCALBASE}/lib)
if test "$ac_cv_lib_radiusclient_rc_read_config" = "yes"; then
EXTRAS="$EXTRAS check_radius"
- RADIUSLIBS="-lradiusclient"
+ RADIUSLIBS="-L${LOCALBASE}/lib -lradiusclient"\
+ RADIUSINCLUDE="-I${LOCALBASE}/include"
AC_SUBST(RADIUSLIBS)
+ AC_SUBST(RADIUSINCLUDE)
else
AC_MSG_WARN([Skipping radius plugin])
AC_MSG_WARN([install radius libs to compile this plugin (see REQUIREMENTS).])
fi
LIBS="$_SAVEDLIBS"
+fi
+AC_ARG_ENABLE(ldap,--enable-ldap compile check_ldap)
+if test x$enable_ldap = xyes; then
dnl Check for LDAP libraries
_SAVEDLIBS="$LIBS"
-AC_CHECK_LIB(ldap,main,,,-llber)
-if test "$ac_cv_lib_ldap_main" = "yes"; then
- LDAPLIBS="-lldap -llber"\
- LDAPINCLUDE="-I/usr/include/ldap"
+AC_CHECK_LIB(ldap,ldap_simple_bind,,,-L${LOCALBASE}/lib -llber)
+if test "$ac_cv_lib_ldap_ldap_simple_bind" = "yes"; then
+ LDAPLIBS="-L${LOCALBASE}/lib -lldap -llber"\
+ LDAPINCLUDE="-I${LOCALBASE}/include"
AC_SUBST(LDAPLIBS)
AC_SUBST(LDAPINCLUDE)
+ LIBS="-L${LOCALBASE}/lib $LIBS"
AC_CHECK_FUNCS(ldap_set_option)
EXTRAS="$EXTRAS check_ldap"
AC_CHECK_FUNCS(ldap_init ldap_set_option ldap_get_option ldap_start_tls_s)
@@ -210,6 +216,7 @@
AC_MSG_WARN([install LDAP libs to compile this plugin (see REQUIREMENTS).])
fi
LIBS="$_SAVEDLIBS"
+fi
dnl Check for mysql libraries
@@ -585,234 +592,11 @@
AC_PATH_PROG(PATH_TO_PS,ps)
-AC_MSG_CHECKING(for ps syntax)
-dnl For OpenBSD 3.2 & 3.3. Must come before ps -weo
-dnl Should also work for FreeBSD 5.2.1 and 5.3
-dnl STAT UCOMM VSZ RSS USER PPID COMMAND
-if ps -axwo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *STAT +[UCOMAND]+ +VSZ +RSS +USER +UID +PPID +COMMAND"] > /dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl Some *BSDs have different format for ps. This is mainly to catch FreeBSD 4.
-dnl Limitation: Only first 16 chars returned for ucomm field
-dnl Must come before ps -weo
-elif ps -axwo 'stat uid ppid vsz rss pcpu ucomm command' 2>/dev/null | \
- egrep -i ["^ *STAT +UID +PPID +VSZ +RSS +%CPU +UCOMM +COMMAND"] > /dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu ucomm command'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
-elif ps -weo 'stat comm vsz rss user uid ppid etime args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[ELAPSD]+ +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu etime comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %s %n"
- ac_cv_ps_cols=9
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl FreeBSD
-elif ps waxco 'state command vsz rss uid user ppid' 2>/dev/null | \
- egrep -i ["^STAT +COMMAND +VSZ +RSS +UID +USER +PPID"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl BSD-like mode in RH 6.1
-elif ps waxno 'state comm vsz rss uid user ppid args' 2>/dev/null | \
- egrep -i ["^S +COMMAND +VSZ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl SunOS 4.1.3:
-dnl F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
-dnl Need the head -1 otherwise test will work because arguments are found
-elif ps -laxnwww 2>/dev/null | head -1 | \
- egrep -i ["^ *F(LAGS)? +UID +PID +PPID +CP +PRI +NI +(SZ)|(VSZ)|(SIZE) +RSS +WCHAN +STAT? +TTY? +TIME +COMMAND"] >/dev/null
-then
- ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS -laxnwww"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl Debian Linux / procps v1.2.9:
-dnl FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
-dnl 100 0 1 0 0 0 776 76 c0131c8c S ffff 0:11 init [2]
-dnl
-elif ps laxnwww 2>/dev/null | \
- egrep -i ["^ *F(LAGS)? +UID +PID +PPID +PRI +NI +(VSZ)|(SIZE) +RSS +WCHAN +STAT? TTY +TIME +COMMAND"] >/dev/null
-then
- ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS laxnwww"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
-elif ps -axo 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl Tru64 - needs %*[ +] in PS_FORMAT
-elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +[VSIZE]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl AIX 4.3.3 and 5.1 do not have an rss field
-elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
- egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %f %s %n"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
-
-dnl Solaris 2.6
-elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
- # There must be no space between the %s and %n due to a wierd problem in sscanf where
- # it will return %n as longer than the line length
- ac_cv_ps_format="%s %d %d %d %d %f %s%n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=8
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl wonder who takes state instead of stat
-elif ps -ao 'state command vsz rss user ppid args' 2>/dev/null | \
- egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
- ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid vsz rss pcpu command args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl IRIX 53
-elif ps -el 2>/dev/null | \
- egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS -el (IRIX 53)"
- ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl IRIX 63
-elif ps -el 2>/dev/null | \
- egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +P +ADDR +SZ +RSS +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS -el (IRIX 63)"
- ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
- ac_cv_ps_cols=5
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl AIX 4.1:
-dnl F S UID PID PPID C PRI NI ADDR SZ RSS WCHAN TTY TIME CMD
-dnl 303 A 0 0 0 120 16 -- 1c07 20 24 - 0:45 swapper
-elif ps -el 2>/dev/null | \
- egrep -i ["^ *F +S +UID +PID +PPID +C +PRI +NI +ADDR +SZ +WCHAN +TTY +TIME +[RGSCOMDNA]+"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS -el (AIX 4.1 and HP-UX)"
- ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
- ac_cv_ps_cols=5
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl AIX?
-elif ps glaxen 2>/dev/null | \
- egrep -i ["^ *F +UID +PID +PPID +PRI +NI +VSZ +RSS +WCHAN +STAT +TTY +TIME +COMMAND"] >/dev/null
-then
- ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS glaxen"
- ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl MacOSX / Darwin
-dnl TODO: MacOSX has commands with spaces which will cause problems to PS_FORMAT
-dnl Some truncation will happen in UCOMM column
-dnl STAT VSZ RSS UID PPID %CPU UCOMM COMMAND
-dnl Ss 52756 22496 501 1 6.9 Window Manager /System/Library/CoreServices/WindowServer -daemon
-elif ps wwaxo 'state vsz rss uid ppid pcpu ucomm command' 2>/dev/null | \
- egrep -i ["^STAT +VSZ +RSS +UID +PPID +%CPU +UCOMM +COMMAND"] >/dev/null
-then
- ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
- ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-dnl UnixWare
-elif ps -Al 2>/dev/null | \
- egrep -i ["^ *F +S +UID +PID +PPID +CLS +PRI +NI +C +ADDR +SZ +WCHAN +TTY +TIME +COMD"] >/dev/null
-then
- ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
- ac_cv_ps_command="$PATH_TO_PS -Al"
- ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
- ac_cv_ps_cols=7
- AC_MSG_RESULT([$ac_cv_ps_command])
-
-else
- AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
-fi
+ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
+ac_cv_ps_command="$PATH_TO_PS axwo 'state uid ppid vsz rss pcpu ucomm command'"
+ac_cv_ps_format="%s %d %d %d %d %f %s %n"
+ac_cv_ps_cols=8
+AC_MSG_RESULT([$ac_cv_ps_command])
if test -n "$ac_cv_ps_varlist" ; then
AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
@@ -1165,6 +949,8 @@
AC_DEFINE_UNQUOTED(WHO_COMMAND,"$ac_cv_path_to_who",
[path and arguments for invoking 'who'])
+AC_ARG_ENABLE(snmp,--enable-snmp compile check_hpjd and check_snmp)
+if test x$enable_snmp = xyes; then
AC_PATH_PROG(PATH_TO_SNMPGET,snmpget)
if test -x "$PATH_TO_SNMPGET"
then
@@ -1187,7 +973,10 @@
else
AC_MSG_WARN([Tried $PERL - install Net::SNMP perl module if you want to use the perl snmp plugins])
fi
+fi
+AC_ARG_ENABLE(qstat,--enable-qstat compile check_game)
+if test x$enable_qstat = xyes; then
AC_PATH_PROG(PATH_TO_QUAKESTAT,quakestat)
AC_PATH_PROG(PATH_TO_QSTAT,qstat)
@@ -1209,7 +998,10 @@
AC_DEFINE_UNQUOTED(PATH_TO_QSTAT,"$ac_cv_path_to_qstat",
[path to qstat/quakestat])
fi
+fi
+AC_ARG_ENABLE(fping,--enable-fping compile check_fping)
+if test x$enable_fping = xyes; then
AC_PATH_PROG(PATH_TO_FPING,fping)
if test -x "$PATH_TO_FPING"
then
@@ -1218,6 +1010,7 @@
else
AC_MSG_WARN([Get fping from http://www.fping.com in order to make check_fping plugin])
fi
+fi
AC_PATH_PROG(PATH_TO_SSH,ssh)
@@ -1280,32 +1073,12 @@
dnl end if for PATH_TO_SWAP
fi
-AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
-if (test -n "$PATH_TO_SWAPINFO")
-then
-AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
-if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
-then
- ac_cv_have_swap=yes
- ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
-
- if [$PATH_TO_SWAPINFO -k 2>/dev/null | egrep -i "^Device +1K-blocks +Used +Avail" >/dev/null]
- then
- ac_cv_swap_format=["%*s %f %*d %f"]
- ac_cv_swap_conv=1024
- AC_MSG_RESULT([using FreeBSD format swapinfo])
- fi
-
-elif [$PATH_TO_SWAPINFO -dfM 2>/dev/null | egrep -i "^TYPE +AVAIL +USED +FREE" >/dev/null]
-then
- ac_cv_have_swap=yes
- ac_cv_swap_command="$PATH_TO_SWAPINFO -dfM",
- ac_cv_swap_format=["%*s %f %*d %f"]
- ac_cv_swap_conv=1024
- AC_MSG_RESULT([using HP-UX format swapinfo])
-fi
-dnl end if for PATH_TO_SWAPINFO
-fi
+PATH_TO_SWAPINFO="/usr/sbin/swapinfo"
+ac_cv_have_swap=yes
+ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
+ac_cv_swap_format=["%*s %f %*d %f"]
+ac_cv_swap_conv=1024
+AC_MSG_RESULT([using FreeBSD format swapinfo])
AC_PATH_PROG(PATH_TO_LSPS,lsps)
if (test -n "$PATH_TO_LSPS")