%define mibs_version 0.7

Name:           netdisco 
Version:        0.95 
Release:        2%{?dist}
Summary:        A web-based network management tool 
License:        BSD
Group:          Applications/Internet 
URL:            http://netdisco.org/ 
Source0:        http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}.tar.gz
Source1:        http://downloads.sourceforge.net/project/%{name}/%{name}-mibs/%{mibs_version}/%{name}-mibs-%{mibs_version}.tar.gz
Source2:        netdisco.init
Source3:        netdisco_config
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:      noarch
Requires:       httpd
Requires:       postgresql postgresql-server
Requires:       net-snmp net-snmp-perl
Requires:       mod_perl mod_ssl
Requires:       graphviz 
Requires:       perl(DBI) 
Requires:       perl(Apache::DBI)
Requires:       perl(DBD::Pg)
Requires:       perl(Apache::Session)
Requires:       perl(HTML::Parser)  
Requires:       perl(HTML::Mason)
Requires:       perl(MasonX::Request::WithApacheSession)
Requires:       perl(Graph) 
Requires:       perl(GraphViz)
Requires:       perl(Compress::Zlib) 
Requires:       perl(Net::NBName) 
Requires:       perl-libapreq2 
Requires:       perl(SNMP::Info) 
Requires:       perl(Parallel::ForkManager) 
Requires:       perl(Net::LDAP) 
Requires:       perl(Net::SSLeay) 
Requires:       perl(IO::Socket::SSL) 
Requires(pre):  /usr/sbin/useradd

%description
Netdisco is a network management application targeted at large
corporate and university networks. Data is collected into a Postgres
database using SNMP and presented with a clean web interface using Mason.

Designed for moderate to large networks, configuration information
and connection data for network devices are retrieved by SNMP.
With Netdisco you can locate the switch port of an end-user system
by IP or MAC address. Data is stored using a SQL database for scalability
and speed. Layer-2 topology protocols such as CDP (Cisco Discovery Protocol)
optionally provides automatic discovery of the network topology.


%prep
%setup -q -n %{name}-%{version} -a1
/usr/bin/iconv -f iso8859-1 -t utf-8 ChangeLog > ChangeLog.conv && /bin/mv -f ChangeLog.conv ChangeLog
%define debug_package %{nil}

cp %{SOURCE2} netdisco.init
cp %{SOURCE3} netdisco_config

# prefix fix
find -type f | xargs perl -pi -e "s|/usr/local/netdisco|/usr/share/netdisco|g"
# perl path fix 
find -type f | xargs perl -pi -e "s|/usr/local/bin/perl|/usr/bin/perl|g"
# shebang fix
find -type f | xargs perl -pi -e "s|#/bin/sh|#!/bin/sh|g"

# config file path fix
perl -pi -e "s|\"\\\$Dir/netdisco\.conf\"\;|\'%{_sysconfdir}/netdisco\.conf\'\;|" sql/pg


%build


# make some man pages too :)
pod2man netdisco > netdisco.1
pod2man netdisco.pm > netdisco.pm.1

%install
rm -rf %{buildroot}

install -d %{buildroot}%{_initrddir}
install -d %{buildroot}%{_sysconfdir}/httpd/conf.d
install -d %{buildroot}%{_sysconfdir}/logrotate.d
install -d %{buildroot}%{_sysconfdir}/sysconfig
install -d %{buildroot}%{_sbindir}
install -d %{buildroot}%{_mandir}/man1
install -d %{buildroot}%_datadir/%{name}/switch
install -d %{buildroot}%_datadir/%{name}/data/logs
install -d %{buildroot}/var/run/netdisco
install -d %{buildroot}%perl_vendorlib

install -m0644 netdisco.conf %{buildroot}%{_sysconfdir}/
install -m0644 netdisco_apache.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/
install -m0644 netdisco_apache_dir.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/
install -m0755 netdisco %{buildroot}%{_sbindir}/

install -m0644 netdisco.1 %{buildroot}%{_mandir}/man1/
install -m0644 netdisco.pm.1 %{buildroot}%{_mandir}/man1/

install -m0755 netdisco.init %{buildroot}%{_initrddir}/netdisco
install -m0755 netdisco_config %{buildroot}%{_sbindir}/netdisco_config
install -m0644 netdisco.pm %{buildroot}/%perl_vendorlib/ 

%__cp -aRf * %{buildroot}%_datadir/%{name}/
%__mv %{buildroot}%_datadir/%{name}/%{name}-mibs-%{mibs_version} %{buildroot}%_datadir/%{name}/mibs/
%__rm -rf %{buildroot}%_datadir/%{name}/netdisco.conf
%__ln_s %{_sysconfdir}/netdisco.conf %{buildroot}%_datadir/%{name}/netdisco.conf

%__chmod 0644 %{buildroot}%_datadir/%{name}/mibs/cisco/CISCO-VSAN-MIB.my


%pre
%__mkdir %_datadir/%{name}
/usr/sbin/useradd %{name} -d %_datadir/%{name}/ -s /bin/sh  1>&2 > /dev/null
# apache needs to read /etc/netdisco.conf, but it contains a plain
# text password to the postgresql netdisco database, so the file
# requires stricter file permissions...
/usr/bin/gpasswd -a apache netdisco 1>&2 > /dev/null


%post
if [ "$1" = "0" ]; then
   /sbin/chkconfig --add %{name}
fi


%preun
if [ "$1" = "0" ]; then
   /sbin/service netdisco stop > /dev/null 2>&1
   /sbin/chkconfig --del %{name}
fi


%clean
%__rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc ChangeLog INSTALL README* UPGRADE
%{_initrddir}/netdisco
%config(noreplace) %{_sysconfdir}/netdisco.conf
%config(noreplace) %{_sysconfdir}/httpd/conf.d/netdisco_apache.conf
%config(noreplace) %{_sysconfdir}/httpd/conf.d/netdisco_apache_dir.conf
%{_sbindir}/netdisco
%{_sbindir}/netdisco_config
%dir /var/run/netdisco
%perl_vendorlib/netdisco.pm
%dir %_datadir/netdisco
%_datadir/netdisco/*
%{_mandir}/man1/*
 

%changelog
* Sun Jul 26 2009 <gouldwp@fedoraproject.org> 0.95-2
- Netdisco network management software.
- Changed %%defattr(-,root,root) to %%defattr(-,root,root,-) in files section
- Changed /usr/share/ to %%_datadir in the %%files section
- Removed patches, substituted with find/perl/xargs replace lines 
- Removed explicit %%attr lines in %%files