LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File munin.spec of Package munin (Project home:jschanz:systemsmanagement)

# norootforbuild

%define         confdir /etc/munin
%define         libdir  /usr/share/munin
%define         htmldir /srv/www/htdocs/munin
%define         cgidir  /srv/www/cgi-bin
%define         dbdir   /var/lib/munin
%define         logdir  /var/log/munin
%define         statedir /var/run/munin

Name:      	munin
Version:   	1.2.5
Release:	0

Summary:	Network-wide graphing framework (grapher/gatherer)
License: 	GPL
Group:		System Environment/Daemons
URL:		http://munin.sourceforge.net

Source0:	prdownloads.sourceforge.net/munin/%{name}_%{version}.tar.gz
Source1:	Makefile.config
Source2:	munin-node.rc
Source3:	munin.cron.d
Source4:	munin.logrotate
Source5:	munin-node.logrotate
Source6:	munin-node.cron.d
Source7:	plugins.conf

Requires:	perl-HTML-Template rrdtool
PreReq:     pwdutils perl-Net-Server

BuildArch:	noarch

BuildRoot:	%{_tmppath}/%{name}-%{version}-root

BuildRequires:	html2text


%description
Munin is a highly flexible and powerful solution used to create graphs of
virtually everything imaginable throughout your network, while still
maintaining a rattling ease of installation and configuration.

This package contains the grapher/gatherer. You will only need one instance of
it in your network. It will periodically poll all the nodes in your network
it's aware of for data, which it in turn will use to create graphs and HTML
pages, suitable for viewing with your graphical web browser of choice.

Munin is written in Perl, and relies heavily on Tobi Oetiker's excellent
RRDtool. To see a real example of Munin in action, take a peek at
<http://www.linpro.no/projects/munin/example/>.


%package node

Group:		System Environment/Daemons
Summary:	Network-wide graphing framework (node)
BuildArch: 	noarch

Requires: 	perl-Net-Server ps sysstat
PreReq:		pwdutils

%description node
Munin is a highly flexible and powerful solution used to create graphs of
virtually everything imaginable throughout your network, while still
maintaining a rattling ease of installation and configuration.

This package contains node software. You should install it on all the nodes
in your network. It will know how to extract all sorts of data from the
node it runs on, and will wait for the gatherer to request this data for
further processing.

It includes a range of plugins capable of extracting common values such as
cpu usage, network usage, load average, and so on. Creating your own plugins
which are capable of extracting other system-specific values is very easy,
and is often done in a matter of minutes. You can also create plugins which
relay information from other devices in your network that can't run Munin,
such as a switch or a server running another operating system, by using
SNMP or similar technology.

Munin is written in Perl, and relies heavily on Tobi Oetiker's excellent
RRDtool. To see a real example of Munin in action, take a peek at
<http://www.linpro.no/projects/munin/example/>.

%prep
%setup -q


%build

make    CONFIG=%{SOURCE1} \
        DOCDIR=%{_docdir}/munin \
        MANDIR=%{_mandir} \
	HTMLDIR=%{htmldir} \
	CGIDIR=%{cgidir} \
	LIBDIR=%{libdir} \
	CONFDIR=%{confdir} \
        DESTDIR=%{buildroot} \
        DBDIR=%{dbdir} \
        SBINDIR=%{_sbindir} \
        LOGDIR=%{logdir} \
        STATEDIR=%{statedir} \
        build

mkdir -p %{buildroot}%{dbdir}/plugin-state
mkdir -p %{buildroot}%{logdir}
mkdir -p %{buildroot}%{statedir}
mkdir -p %{buildroot}/etc/init.d
mkdir -p %{buildroot}/etc/cron.d
mkdir -p %{buildroot}/etc/logrotate.d
mkdir -p %{buildroot}%{htmldir}

%install

make    CONFIG=%{SOURCE1} \
        DOCDIR=%{buildroot}%{_docdir}/munin \
        MANDIR=%{buildroot}%{_mandir} \
	HTMLDIR=%{buildroot}%{htmldir} \
	LIBDIR=%{buildroot}%{libdir} \
	CGIDIR=%{buildroot}%{cgidir} \
	CONFDIR=%{buildroot}%{confdir} \
        DESTDIR=%{buildroot} \
        DBDIR=%{buildroot}%{dbdir} \
        SBINDIR=%{buildroot}%{_sbindir} \
        LOGDIR=%{buildroot}%{logdir} \
        STATEDIR=%{buildroot}%{statedir} \
        install-main install-node install-node-plugins install-doc install-man 
								
install -m0755 %{SOURCE2} %{buildroot}/etc/init.d/munin-node
install -m0644 %{SOURCE3} %{buildroot}/etc/cron.d/munin
install -m0644 %{SOURCE4} %{buildroot}/etc/logrotate.d/munin
install -m0644 %{SOURCE5} %{buildroot}/etc/logrotate.d/munin-node
install -m0644 %{SOURCE6} %{buildroot}/etc/cron.d/munin-node
install -m0644 %{SOURCE7} %{buildroot}%{confdir}/plugin-conf.d/munin-node
install -m0644 ChangeLog %{buildroot}%{_docdir}/munin/ChangeLog

mkdir -p $RPM_BUILD_ROOT/sbin
ln -s ../etc/init.d/munin-node $RPM_BUILD_ROOT/sbin/rcmunin-node

mkdir -p $RPM_BUILD_ROOT/etc/munin/plugins

%clean
%{__rm} -rf %{buildroot}

%pre
/usr/sbin/groupadd -r   munin &>/dev/null || :
/usr/sbin/useradd -o -g munin -s /bin/false -r -c "munin monitoring" -d /var/lib/munin munin &>/dev/null || :

%post
mkdir -p %{htmldir}
mkdir -p %{logdir}
mkdir -p %{dbdir}
chown -R munin:munin %{htmldir}
chown -R munin:munin %{logdir}
chown -R munin:munin %{statedir}
chown -R munin:munin %{dbdir}

## Node
%pre node
getent group munin >/dev/null || groupadd -r munin
getent passwd munin > /dev/null || useradd -r -d %{dbdir} -g munin munin

%post node
if [ $1 = 1 ]
then
        /sbin/chkconfig --add munin-node
	/usr/sbin/munin-node-configure --shell | sh
fi
%{fillup_and_insserv -n -y munin munin-node}
mkdir -p %{logdir}
mkdir -p %{dbdir}/plugin-state
chown -R munin:munin %{logdir}
chown -R munin:munin %{dbdir}
chmod g+w %{dbdir}/plugin-state
#/etc/init.d/munin-node status >/dev/null 2>&1 || /etc/init.d/munin-node start

%preun node
if [ $1 = 0 ]
then
        /sbin/service munin-node stop > /dev/null 2>&1
        /sbin/chkconfig --del munin-node
        rmdir %{logdir} 2>/dev/null || true
fi
%stop_on_removal munin-node

%postun node
%restart_on_update munin-node
%{insserv_cleanup}


%files
%defattr(-, root, root)
%doc %{_docdir}/munin/README.api
%doc %{_docdir}/munin/README.plugins
%doc %{_docdir}/munin/COPYING
%doc %{_docdir}/munin/ChangeLog
%doc %{_docdir}/munin/README-apache-cgi
%doc %{_docdir}/munin/munin-doc.pdf
%doc %{_docdir}/munin/munin-doc.txt
%doc %{_docdir}/munin/munin-faq.pdf
%doc %{_docdir}/munin/munin-faq.txt
%{_mandir}/man8/munin-graph*
%{_mandir}/man8/munin-update*
%{_mandir}/man8/munin-html*
%{_mandir}/man8/munin-cron*
%{_mandir}/man5/munin.conf*
%{_mandir}/man8/munin-limits.8.gz
%{_bindir}/munin-cron
%{_datadir}/munin/munin-graph
%{_datadir}/munin/munin-html
%{_datadir}/munin/munin-update
%{_datadir}/munin/VeraMono.ttf
%{perl_vendorlib}/Munin.pm
%{_usr}/share/munin/munin-limits
%{cgidir}/munin-cgi-graph
%config %{confdir}/templates/*
%config /etc/cron.d/munin
%config(noreplace) %{confdir}/munin.conf
%config /etc/logrotate.d/munin
%dir %{statedir}
%dir %{confdir}
%dir %{confdir}/templates
%dir %{_docdir}/munin
%dir %{_datadir}/munin
%dir %{_datadir}/munin/plugins

	    
%files node
%defattr(-, root, root)
%doc %{_docdir}/munin/COPYING
%doc %{_docdir}/munin/munin-doc.html
%doc %{_docdir}/munin/munin-faq.html
%doc %{_mandir}/man8/munin-run*
%doc %{_mandir}/man8/munin-node*
%doc %{_mandir}/man5/munin-node*
%{_sbindir}/munin-run
%{_sbindir}/munin-node
%{_sbindir}/munin-node-configure
%{_sbindir}/munin-node-configure-snmp
%{_datadir}/munin/plugins/*
/sbin/rcmunin-node
%config(noreplace) %{confdir}/munin-node.conf
%config(noreplace) %{confdir}/plugin-conf.d/munin-node
%config /etc/init.d/munin-node
%config /etc/cron.d/munin-node
%config /etc/logrotate.d/munin-node
%dir %{confdir}
%dir %{confdir}/plugin-conf.d
%dir %{confdir}/plugins
%dir %{confdir}/templates
%dir %{_docdir}/munin
%dir %{_datadir}/munin


%changelog
* Wed Aug 15 2005 Detlef Reichelt <detlef@links2linux.de>
- update to 1.2.5
- add missing /sbin/rcmunin-node
- fix pathes
- split into munin and munin-node