# $Id: ocsinventory.spec,v 1.3 2009/03/18 14:37:45 slords Exp $ # Authority: vip-ire # Name: Daniel Berteaud %if %{?fedora}%{?rhel} >= 5 %define useselinux 1 %else %define useselinux 0 %endif %define tarname OCSNG_UNIX_SERVER-1.02.1 Name: ocsinventory Summary: Open Computer and Software Inventory Next Generation Version: 1.02.1 Release: 1%{?dist} Group: Applications/Internet License: GPLv2 URL: http://www.ocsinventory-ng.org/ Source0: http://downloads.sourceforge.net/%{name}/%{tarname}.tar.gz Source1: ocsinventory-reports.conf BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(Apache::DBI) BuildRequires: perl(DBD::mysql) BuildRequires: perl(Net::IP) BuildRequires: perl(XML::Simple) # Main package is a dummy package Requires: ocsinventory-server = %{version}-%{release} Requires: ocsinventory-reports = %{version}-%{release} Requires: mysql-server %description Open Computer and Software Inventory Next Generation is an application designed to help a network or system administrator keep track of the computers configuration and software that are installed on the network. OCS Inventory is also able to detect all active devices on your network, such as switch, router, network printer and unattended devices. OCS Inventory NG includes package deployment feature on client computers. ocsinventory is a metapackage that will install the communication server, the administration console and the database server (MySQL). %description -l fr Open Computer and Software Inventory Next Generation est une application destinée à aider l'administrateur système ou réseau à garder un oeil sur la configuration des machines du réseau et sur les logiciels qui y sont installés. OCS Inventory est aussi capable de détecter tout périphérique actif sur le réseau, comme les commutateurs, routeurs, imprimantes et autres matériels autonomes. OCS Inventory NG intègre des fonctionnalités de télédiffusion de paquets sur les machines clients. ocsinventory est un metapaquet qui installera le serveur de communication, la console d'administration et le serveur de base de données (MySQL). %package server Group: Applications/Internet Summary: OCS Inventory NG - Communication server Requires: mod_perl %if 0%{?rhel} != 4 # when use with mod_perl2 Requires: perl(SOAP::Transport::HTTP2) %endif Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) # Required by the original setup script, but not detected automatically : # Apache::DBI drags in DBI Requires: perl(Apache::DBI) Requires: perl(Net::IP) Requires: perl(DBD::mysql) # Optional, not detected automatically : Requires: perl(SOAP::Lite) Requires: perl(XML::Entities) %if %{useselinux} Requires: policycoreutils %endif %description server This package provides the Communication server, which will handle HTTP communications between database server and agents. %description -l fr server Ce paquet fournit le serveur de communication (Communication server), qui gère les communications HTTP entre les agents et le serveur de base de données. %package reports Group: Applications/Internet Summary: OCS Inventory NG - Communication server # From PHP_Compat : date, mysql, ereg, pcre, zip, hash, xml, gd, zlib Requires: php Requires: php-mysql php-zip php-gd %if 0%{?rhel} == 4 Requires: php-domxml %else Requires: php-xml %endif # Required by the original setup script, but not detected automatically : Requires: perl(DBD::mysql) # Required by ipdiscover-util.pl (nmap and nmblookup) Requires: nmap samba-client %if %{useselinux} Requires: policycoreutils %endif %description reports This package provides the Administration console, which will allow administrators to query the database server through their favorite browser. %description -l fr reports Ce paquet fournit la console d'administration (Administration console), qui autorise les administrateurs à interroger la base de données via leur navigateur favori. %prep %setup -q -n %{tarname} %build cd Apache %{__perl} Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install rm -rf %{buildroot} # --- ocsinventory-server --- communication server cd Apache make pure_install PERL_INSTALL_ROOT=%{buildroot} find %{buildroot} -type f -name .packlist -exec rm -f {} ';' find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';' chmod -R u+rwX,go+rX,go-w %{buildroot}/* find %{buildroot}%{perl_vendorlib}/Apache -name \*.pm -exec chmod -x {} \; %if 0%{?rhel} == 4 # To avoid bad dependency on perl(mod_perl2) rm -f %{buildroot}%{perl_vendorlib}/Apache/Ocsinventory/Server/Modperl2.pm %else # To avoid bad dependency on perl(mod_perl) : RHEL >= 5 && Fedora >= 4 rm -f %{buildroot}%{perl_vendorlib}/Apache/Ocsinventory/Server/Modperl1.pm %endif %{__mkdir_p} %{buildroot}%{_localstatedir}/log/ocsinventory-server %{__mkdir_p} %{buildroot}%{_sysconfdir}/logrotate.d %{__sed} -e 's;PATH_TO_LOG_DIRECTORY;%{_localstatedir}/log/ocsinventory-server;' \ ./etc/logrotate.d/ocsinventory-server >%{buildroot}%{_sysconfdir}/logrotate.d/ocsinventory-server # default configuration (localhost) should work on "simple" installation %{__mkdir_p} %{buildroot}%{_sysconfdir}/httpd/conf.d %{__sed} -e "s;DATABASE_SERVER;localhost;g" \ -e "s;DATABASE_PORT;3306;g" \ %if 0%{?rhel} == 4 -e "s;VERSION_MP;1;g" \ %else -e "s;VERSION_MP;2;g" \ %endif -e "s;PATH_TO_LOG_DIRECTORY;%{_localstatedir}/log/ocsinventory-server;g" \ ./etc/ocsinventory/ocsinventory-server.conf | \ grep -v IfModule >%{buildroot}%{_sysconfdir}/httpd/conf.d/ocsinventory-server.conf cd .. # --- ocsinventory-reports --- administration console %{__mkdir_p} %{buildroot}/%{_datadir}/ocsinventory-reports cp -ar ocsreports %{buildroot}/%{_datadir}/ocsinventory-reports find %{buildroot}/%{_datadir}/ocsinventory-reports \( -name \*.php -o -name \*.css \) -exec chmod -x {} \; %{__mkdir_p} %{buildroot}/%{_sysconfdir}/ocsinventory/ocsinventory-reports mv %{buildroot}/%{_datadir}/ocsinventory-reports/ocsreports/dbconfig.inc.php \ %{buildroot}/%{_sysconfdir}/ocsinventory/ocsinventory-reports/dbconfig.inc.php ln -s ../../../../%{_sysconfdir}/ocsinventory/ocsinventory-reports/dbconfig.inc.php %{buildroot}/%{_datadir}/ocsinventory-reports/ocsreports/dbconfig.inc.php %{__mkdir_p} %{buildroot}%{_localstatedir}/lib/ocsinventory-reports/{download,ipd} %{__install} -pm 755 Apache/binutils/ipdiscover-util.pl %{buildroot}/%{_datadir}/ocsinventory-reports/ocsreports/ipdiscover-util.pl %{__mkdir_p} %{buildroot}%{_sysconfdir}/httpd/conf.d %{__sed} -e "s;OCSREPORTS_ALIAS;/ocsreports;g" \ -e "s;PATH_TO_OCSREPORTS_DIR;%{_datadir}/ocsinventory-reports/ocsreports;g" \ -e "s;PACKAGES_ALIAS;/download;g" \ -e "s;PATH_TO_PACKAGES_DIR;%{_localstatedir}/lib/ocsinventory-reports/download;g" \ %{SOURCE1} >%{buildroot}%{_sysconfdir}/httpd/conf.d/ocsinventory-reports.conf %clean rm -rf %{buildroot} %post server %if %{useselinux} ( # New File context semanage fcontext -a -s system_u -t httpd_log_t -r s0 "%{_localstatedir}/log/ocsinventory-server(/.*)?" # files created by app restorecon -R %{_localstatedir}/log/ocsinventory-server ) &>/dev/null ||: %endif %post reports %if %{useselinux} ( # New File context semanage fcontext -a -s system_u -t httpd_sys_script_rw_t -r s0 "%{_sysconfdir}/ocsinventory/ocsinventory-reports(/.*)?" semanage fcontext -a -s system_u -t httpd_sys_script_rw_t -r s0 "%{_localstatedir}/lib/ocsinventory-reports(/.*)?" # files created by app restorecon -R %{_sysconfdir}/ocsinventory/ocsinventory-reports restorecon -R %{_localstatedir}/lib/ocsinventory-reports ) &>/dev/null ||: %endif %postun server %if %{useselinux} if [ "$1" -eq "0" ]; then # Remove the File Context semanage fcontext -d "%{_localstatedir}/log/ocsinventory-server(/.*)?" &>/dev/null || : fi %endif %postun reports %if %{useselinux} if [ "$1" -eq "0" ]; then # Remove the File Context semanage fcontext -d "%{_sysconfdir}/ocsinventory/ocsinventory-reports(/.*)?" &>/dev/null ||: semanage fcontext -d "%{_localstatedir}/lib/ocsinventory-reports(/.*)?" &>/dev/null ||: fi %endif %files %defattr(-, root, root, -) %files server %defattr(-, root, root, -) %doc LICENSE.txt README %config(noreplace) %{_sysconfdir}/logrotate.d/ocsinventory-server %config(noreplace) %{_sysconfdir}/httpd/conf.d/ocsinventory-server.conf %attr(755,www,root) %{_localstatedir}/log/ocsinventory-server %{perl_vendorlib}/Apache %files reports %defattr(-, root, root, -) %doc LICENSE.txt README %dir %{_sysconfdir}/ocsinventory %dir %{_sysconfdir}/ocsinventory/ocsinventory-reports %attr(640,www,root) %config(noreplace) %{_sysconfdir}/ocsinventory/ocsinventory-reports/dbconfig.inc.php %config(noreplace) %{_sysconfdir}/httpd/conf.d/ocsinventory-reports.conf %{_datadir}/ocsinventory-reports %attr(755,www,root) %dir %{_localstatedir}/lib/ocsinventory-reports %attr(755,www,root) %dir %{_localstatedir}/lib/ocsinventory-reports/ipd %attr(755,www,root) %dir %{_localstatedir}/lib/ocsinventory-reports/download %changelog * Fri Jun 12 2009 Daniel B. 1.02.1-1.el4.sme - update to OCS Inventory NG 1.02.1 * Wed Mar 13 2009 Daniel B. 1.02-0.10.rc3.el4.2 - Changes for SME Server (apache=>www) * Sun Jan 18 2009 Remi Collet 1.02-0.10.rc3.el4.1 - fix php-xml > php-domxml in EL-4 * Sun Jan 11 2009 Remi Collet 1.02-0.10.rc3 - add r1447 and r1462 patch - change log selinux context (httpd_log_t) * Fri Oct 17 2008 Remi Collet 1.02-0.9.rc3 - upstream r1423 patch - migration script * Sat Oct 11 2008 Remi Collet 1.02-0.8.rc3 - upstream r1413 patch - database schema * Sat Oct 11 2008 Remi Collet 1.02-0.7.rc3 - update to RC3 * Tue Jul 22 2008 Remi Collet 1.02-0.6.rc2 - add missing requires perl(SOAP::Transport::HTTP2) (with mod_perl2) - AddDefaultCharset ISO-8859-1 in httpd config - fix SElinux path * Sat Jun 14 2008 Remi Collet 1.02-0.5.rc2 - change dir from /var/lib/ocsinventory-server to /var/lib/ocsinventory-reports - add Requires nmap and samba-client (nmblookup) * Sun May 18 2008 Remi Collet 1.02-0.4.rc2 - remove from ocsinventory-server.conf - change perm to 755 on /var/lib/ocsinventory-server - metapackage description closer to upstream components name - add BR perl(DBD::mysql) to avoid build warning * Fri May 16 2008 Xavier Bachelot 1.02-0.3.rc2.1 - Fix BuildRequires and Requires. - Fix %%description french translations and a few typos. - Rename apache confs. * Sat May 10 2008 Remi Collet 1.02-0.3.rc2 - add missing requires for php extensions (from PHP_Compat result) - add selinux stuff * Thu May 08 2008 Remi Collet 1.02-0.2.rc2 - update to RC2 * Sun Mar 15 2008 Remi Collet 1.02-0.2.rc1 - fix download dir * Sat Mar 8 2008 Remi Collet 1.02-0.1.rc1 - Initial RPM