Search
j0ke.net Open Build Service
>
Projects
>
home:netmax
>
nagios
> nagios.spec
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File nagios.spec of Package nagios (Revision 16)
Currently displaying revision
16
,
show latest
%define name nagios %define version 2.11 %define release 1 %define nsusr nagios %define nsgrp nagios %define cmdgrp nagiocmd %define wwwusr wwwrun %define wwwgrp www # Performance data handling method to use. By default we will use # the file-based one (as existed in NetSaint). # You can select the external command based method (the defaut for # Nagios) by specifying # --define 'PERF_EXTERNAL 1' # in the rpm command-line %{!?PERF_EXTERNAL: %define PERF_EXTERNAL 0} # Embedded Perl stuff, specify # --define 'EMBPERL 1' # in the rpm command-line to enable it %{!?EMBPERL: %define EMBPERL 0} # Macro that print mesages to syslog at package (un)install time %define nnmmsg logger -t %{name}/rpm Summary: Host/service/network monitoring program Name: %{name} Version: %{version} Release: %{release} License: GPL Group: Application/System Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-buildroot Prefix: %{_prefix} Prefix: /etc/init.d Prefix: /etc/nagios Prefix: /var/log/nagios Prefix: /var/spool/nagios Requires: gd > 1.8 zlib libpng libjpeg bash grep PreReq: /bin/logger, sed, mktemp BuildRequires: gd-devel > 1.8 zlib-devel libpng-devel libjpeg-devel glibc-devel libgcc gcc gcc-c++ perl %if 0%{?fedora_version} >= 7 BuildRequires: perl-ExtUtils-MakeMaker BuildRequires: perl-ExtUtils-Embed %endif %description Nagios is a program that will monitor hosts and services on your network. It has the ability to email or page you when a problem arises and when a problem is resolved. Nagios is written in C and is designed to run under Linux (and some other *NIX variants) as a background process, intermittently running checks on various services that you specify. The actual service checks are performed by separate "plugin" programs which return the status of the checks to Nagios. The plugins are available at http://sourceforge.net/projects/nagiosplug This package provide core programs for nagios. The web interface, documentation, and development files are built as separate packages %package www Group: Application/System Summary: Provides the HTML and CGI files for the Nagios web interface. Requires: %{name} = %{version} Requires: http_daemon %description www Nagios is a program that will monitor hosts and services on your network. It has the ability to email or page you when a problem arises and when a problem is resolved. Nagios is written in C and is designed to run under Linux (and some other *NIX variants) as a background process, intermittently running checks on various services that you specify. Several CGI programs are included with Nagios in order to allow you to view the current service status, problem history, notification history, and log file via the web. This package provides the HTML and CGI files for the Nagios web interface. In addition, HTML documentation is included in this package %package devel Group: Application/System Summary: Provides include files that Nagios-related applications may compile against. Requires: %{name} = %{version} %description devel Nagios is a program that will monitor hosts and services on your network. It has the ability to email or page you when a problem arises and when a problem is resolved. Nagios is written in C and is designed to run under Linux (and some other *NIX variants) as a background process, intermittently running checks on various services that you specify. This package provides include files that Nagios-related applications may compile against. %prep %setup -q %pre # Create `nagios' user on the system if necessary if /usr/bin/id %{nsusr} > /dev/null 2>&1 ; then : # user already exists else /usr/sbin/useradd -r -d /var/log/nagios -s /bin/sh -c "%{nsusr}" %{nsusr} || \ %nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process. fi # id cannot tell us if the group already exists # so just try to create it and assume it works /usr/sbin/groupadd %{nsgrp} > /dev/null 2>&1 /usr/sbin/groupadd %{cmdgrp} > /dev/null 2>&1 # if LSB standard /etc/init.d does not exist, # create it as a symlink to the first match we find if [ -d /etc/init.d -o -L /etc/init.d ]; then : # we're done elif [ -d /etc/rc.d/init.d ]; then ln -s /etc/rc.d/init.d /etc/init.d elif [ -d /usr/local/etc/rc.d ]; then ln -s /usr/local/etc/rc.d /etc/init.d elif [ -d /sbin/init.d ]; then ln -s /sbin/init.d /etc/init.d fi %preun if [ "$1" = 0 ]; then /sbin/service nagios stop > /dev/null 2>&1 /sbin/chkconfig --del nagios fi %postun if [ "$1" -ge "1" ]; then /sbin/service nagios condrestart >/dev/null 2>&1 || : fi # Delete nagios user and group # (if grep doesn't find a match, then it is NIS or LDAP served and cannot be deleted) if [ $1 = 0 ]; then /bin/grep '^%{nsusr}:' /etc/passwd > /dev/null 2>&1 && /usr/sbin/userdel %{nsusr} || %nnmmsg "User %{nsusr} could not be deleted." /bin/grep '^%{nsgrp}:' /etc/group > /dev/null 2>&1 && /usr/sbin/groupdel %{nsgrp} || %nnmmsg "Group %{nsgrp} could not be deleted." /bin/grep '^%{cmdgrp}:' /etc/group > /dev/null 2>&1 && /usr/sbin/groupdel %{cmdgrp} || %nnmmsg "Group %{cmdgrp} could not be deleted." fi %post www # If apache is installed, and we can find the apache user, set a shell var wwwusr=`awk '/^[ \t]*User[ \t]+[a-zA-Z0-9]+/ {print $2}' /etc/apache2/*.conf` if [ "z" == "z$wwwusr" ]; then # otherwise, use the default wwwusr=%{wwwusr} fi # if apache user is not in cmdgrp, add it if /usr/bin/id -Gn $wwwusr 2>/dev/null | /bin/grep -q %{cmdgrp} > /dev/null 2>&1 ; then : # $wwwusr (default: apache) is already in nagiocmd group else # first find apache primary group pgrp=`/usr/bin/id -gn $wwwusr 2>/dev/null` # filter apache primary group from secondary groups sgrps=`/usr/bin/id -Gn $wwwusr 2>/dev/null | /bin/sed "s/^$pgrp //;s/ $pgrp //;s/^$pgrp$//;s/ /,/g;"` if [ "z" == "z$sgrps" ] ; then sgrps=%{nsgrp} else sgrps=$sgrps,%{cmdgrp} fi # modify apache user, adding it to cmdgrp /usr/sbin/usermod -G $sgrps $wwwusr >/dev/null 2>&1 %nnmmsg "User $wwwusr added to group %{cmdgrp} so sending commands to Nagios from the command CGI is possible." fi %preun www if [ $1 = 0 ]; then if test -f /etc/apache2/httpd.conf; then TEMPFILE=`mktemp /etc/apache2/httpd.conf.tmp.XXXXXX` if grep "^ *Include /etc/apache2/conf.d/nagios.conf" /etc/apache2/httpd.conf > /dev/null; then grep -v "^ *Include /etc/apache2/conf.d/nagios.conf" /etc/apache2/httpd.conf > $TEMPFILE mv $TEMPFILE /etc/apache2/httpd.conf chmod 644 /etc/apache2/httpd.conf /etc/init.d/apache2 restart fi fi fi %build export PATH=$PATH:/usr/sbin CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ ./configure \ --with-init-dir=/etc/init.d \ --with-cgiurl=/nagios/cgi-bin \ --with-htmurl=/nagios \ --with-lockfile=/var/run/nagios.pid \ --with-nagios-user=%{nsusr} \ --with-nagios-group=%{nsgrp} \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix}/sbin \ --bindir=%{_prefix}/sbin \ --sbindir=%{_prefix}/lib/nagios/cgi \ --libexecdir=%{_prefix}/lib/nagios/plugins \ --datadir=%{_prefix}/share/nagios \ --sysconfdir=/etc/nagios \ --localstatedir=/var/log/nagios \ %if ! %{PERF_EXTERNAL} --with-file-perfdata \ %endif %if %{EMBPERL} --enable-embedded-perl \ %endif --with-gd-lib=/usr/lib \ --with-gd-inc=/usr/include \ --with-template-objects \ --with-template-extinfo make all # make sample configs ###cd sample-config ###F=`mktemp temp.XXXXXX` ###sed -e 's=/var/log/nagios/rw/=/var/spool/nagios/=;s=@sysconfdir@/resource.cfg=@sysconfdir@/private/resource.cfg=' nagios.cfg > ${F} ###mv ${F} nagios.cfg ###cd .. # make daemonchk.cgi and event handlers cd contrib make cd eventhandlers for f in `find . -type f` ; do F=`mktemp temp.XXXXXX` sed "s=/usr/local/nagios/var/rw/=/var/spool/nagios/=; \ s=/usr/local/nagios/libexec/eventhandlers/=%{_prefix}/lib/nagios/plugins/eventhandlers=; \ s=/usr/local/nagios/test/var=/var/log/nagios=" ${f} > ${F} mv ${F} ${f} done cd ../.. %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT install -d -m 0775 ${RPM_BUILD_ROOT}/var/spool/nagios install -d -m 0755 ${RPM_BUILD_ROOT}%{_prefix}/include/nagios install -d -m 0755 ${RPM_BUILD_ROOT}/etc/init.d install -d -m 0755 ${RPM_BUILD_ROOT}/etc/logrotate.d install -d -m 0755 ${RPM_BUILD_ROOT}/etc/apache2/conf.d install -d -m 0755 ${RPM_BUILD_ROOT}/etc/nagios ### install -d -m 0755 ${RPM_BUILD_ROOT}/etc/nagios/private make DESTDIR=${RPM_BUILD_ROOT} INSTALL_OPTS="" COMMAND_OPTS="" install make DESTDIR=${RPM_BUILD_ROOT} INSTALL_OPTS="" COMMAND_OPTS="" INIT_OPTS="" install-daemoninit # install templated configuration files cd sample-config for f in {nagios,cgi}.cfg ; do [ -f $f ] && install -c -m 664 $f ${RPM_BUILD_ROOT}/etc/nagios/${f} done ###mkdir -p ${RPM_BUILD_ROOT}/etc/nagios/private for f in resource.cfg ; do [ -f $f ] && install -c -m 664 $f ${RPM_BUILD_ROOT}/etc/nagios/${f} done cd template-object for f in {hosts,hostgroups,services,contacts,contactgroups,dependencies,escalations,timeperiods,checkcommands,misccommands,minimal}.cfg do [ -f $f ] && install -c -m 664 $f ${RPM_BUILD_ROOT}/etc/nagios/${f} done cd .. cd .. # install headers for development package install -m 0644 include/locations.h ${RPM_BUILD_ROOT}%{_prefix}/include/nagios # install httpd configuration in RH80-style httpd config subdir cp sample-config/httpd.conf ${RPM_BUILD_ROOT}/etc/apache2/conf.d/nagios.conf # install CGIs cd contrib make INSTALL=install DESTDIR=${RPM_BUILD_ROOT} INSTALL_OPTS="" COMMAND_OPTS="" CGIDIR=%{_prefix}/lib/nagios/cgi install #mv ${RPM_BUILD_ROOT}%{_prefix}/lib/nagios/cgi/convertcfg ${RPM_BUILD_ROOT}%{_prefix}/lib/nagios/ #mv ${RPM_BUILD_ROOT}%{_prefix}/lib/nagios/cgi/mini_epn ${RPM_BUILD_ROOT}%{_prefix}/sbin/ cd .. # install event handlers cd contrib/eventhandlers install -d -m 0755 ${RPM_BUILD_ROOT}%{_prefix}/lib/nagios/eventhandlers for file in * ; do test -f $file && install -m 0755 $file ${RPM_BUILD_ROOT}%{_prefix}/lib/nagios/eventhandlers && rm -f $file done cd ../.. %clean rm -rf $RPM_BUILD_ROOT %files %defattr(755,root,root) /etc/init.d/nagios %{_prefix}/sbin/nagios %{_prefix}/sbin/nagiostats %if %{EMBPERL} %{_prefix}/sbin/p1.pl %endif %{_prefix}/sbin/mini_epn %{_prefix}/sbin/new_mini_epn %dir %{_prefix}/lib/nagios/eventhandlers %{_prefix}/lib/nagios/eventhandlers/* %{_sbindir}/convertcfg %dir /etc/nagios %defattr(644,root,root) %config(noreplace) /etc/nagios/*.cfg %defattr(750,root,%{nsgrp}) ###%dir /etc/nagios/private %defattr(640,root,%{nsgrp}) ### %config(noreplace) /etc/nagios/private/resource.cfg %defattr(755,%{nsusr},%{nsgrp}) %dir /var/log/nagios %dir /var/log/nagios/archives %defattr(2775,%{nsusr},%{nsgrp}) %dir /var/spool/nagios %doc Changelog INSTALLING LICENSE README UPGRADING %files www %defattr(755,root,root) %dir %{_prefix}/lib/nagios/cgi %{_prefix}/lib/nagios/cgi/* %dir %{_prefix}/share/nagios %defattr(-,root,root) %{_prefix}/share/nagios/* %config(noreplace) /etc/apache2/conf.d/nagios.conf %files devel %defattr(-,root,root) %dir %{_prefix}/include/nagios %{_prefix}/include/nagios/locations.h %changelog * Wed Mar 03 2008 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.11 - Better error logging when failing to rename/move files - Possible fix for Unicode html encoding errors in CGIs - Fix for encoding HTML characters in CGIs - Fix for a potential cross site scripting vulnerability in the CGIs - Fix for a bug with processing service dependency templates with null master host(group) names - Fix for a possible memory leak in situations where overflow occurs in check result buffer - Fix for segfault in event broker module code - Fix for cfg_dir directive not working on Solaris - Fix for flap detection information not be retained across restarts - Patch to allow non-ASCII characters in notifications, etc. * Sun Oct 21 2007 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.10 * Sat Apr 14 2007 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.9 * Mon Mar 19 2007 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.8 * Tue Feb 06 2007 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.7 * Tue Nov 28 2006 Carsten Schoene <cs@linux-administrator.com> - version bump to 2.6 * Thu Nov 23 2006 Carsten Schoene <cs@linux-administrator.com> - ported this specfile to SuSE 10.1 * Tue Nov 22 2005 Andreas Kasenides <ank {at} cs.ucy.ac.cy> - packaged %{_prefix}/sbin/new_mini_epn - moved resource.cfg in /etc/nagios * Thu Dec 30 2004 Rui Miguel Silva Seabra <rms@sibs.pt> - FIX spec (wrong tag for License, and update to current state of compile) * Sat May 31 2003 Karl DeBisschop <kdebisschop@users.sourceforge.net> (1.1-1) - Merge with CVS for 1.1 release * Fri May 30 2003 Karl DeBisschop <kdebisschop@users.sourceforge.net> (1.0-4) - cmdgrp was not always getting created - patches for cmd.cgi and history.cgi * Sat May 24 2003 Karl DeBisschop <kdebisschop@users.sourceforge.net> (1.0-3) - patches for doco and PostgreSQL timestamp - make sure all files are packaged (otherwise, will not build on RH9) * Sat May 17 2003 Karl DeBisschop <kdebisschop@users.sourceforge.net> (1.0-2) - patch for file descriptor leak * Fri Oct 04 2002 Karl DeBisschop <kdebisschop@users.sourceforge.net> - merge many improvements from Ramiro Morales <rm-rpms@gmx.net> (macros for PERF_EXTERNAL and EMBPERL, cleanup pre/post scripts, nnmmsg logger macro, include eventhandlers, convertcfg, mini_epn) - use LSB-standard /etc/init.d/nagios startup location * Tue Aug 13 2002 Karl DeBisschop <kdebisschop@users.sourceforge.net> - INSTALL was renamed INSTALLING - p1.pl script included in package - web server restarted because Red Hat 7.3 init does not do 'reload' * Fri Jun 14 2002 Ethan Galstad <nagios@nagios.org) (1.0b4) - Modified requirements to work when installed using KickStart (Jeff Frost) - Changed method used for checking for user/group existence (Jeff Frost) * Tue May 15 2002 Ethan Galstad <nagios@nagios.org) (1.0b1) - Updated to work with new sample template-based config files (Darren Gamble) * Sun Feb 17 2002 Ole Gjerde <gjerde@ignus.com> (1.0a4) - Fixed spec file to work with Nagios * Wed Jan 17 2001 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.7a5-1) - switch from /usr/libexec to /usr/lib because linux FHS has no libexec - use global macro to set location of init script - fold htaccess.sample into contrib directory of tarball * Fri Nov 03 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6-1) - Rebuild with final sources * Wed Sep 06 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b5-1) - Create separate cgi, html, and devel packages - Include commands.cfg * Sun Aug 27 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b5-1) - beta 5 * Sun Jul 23 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b3-2) - fixes for daemon-init, multi-OS RPM building * Wed Jul 12 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b3-1) - beta 3 * Sun Jun 25 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b2-3) - true beta2 sources * Sat Jun 24 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b2-2) - cleanup spec, still using pre-beta2 sources * Sat Jun 24 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b2-1) - mandrake merge using pre-beta2 sources (many thanks to Stefan van der Eijk <s.vandereijk@chello.nl>) * Wed Jun 14 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b1-1) - add stylesheet diffs * Mon Jun 12 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.6b1-1) - adapt for 0.0.6b1 * Mon Jun 05 2000 Karl DeBisschop <kdebisschop@users.sourceforge.net> (0.0.5-4) - add traceroute.cgi and htaccess.sample - move placement of docs (in files) to avoid group warnings - change www user and group to nobody and add warning * Mon Jun 05 2000 Karsten Weiss <knweiss@gmx.de> (0.0.5-3) - official group name - improved user detection * Tue Oct 19 1999 Mike McHenry <mmchen@minn.net) (0.0.4-2) - Fixed init.d scripts to better fit new Redhat init.d script formats * Fri Sep 03 1999 Mike McHenry <mmchen@minn.net> (0.0.4-1) - Upgraded package from 0.0.4b4 to 0.0.4 * Mon Aug 16 1999 Mike McHenry <mmchen@minn.net> - First RPM build (0.0.4b4)