[fusioninventory-agent] initial import
Remi Collet
remi at fedoraproject.org
Thu Jul 21 15:30:22 UTC 2011
commit d98816c99cb9634622cfcc88934cc09191b24fd2
Author: remi <fedora at famillecollet.com>
Date: Thu Jul 21 17:30:07 2011 +0200
initial import
.gitignore | 1 +
fusioninventory-agent.cron | 37 +++++
fusioninventory-agent.init | 111 +++++++++++++
fusioninventory-agent.spec | 379 ++++++++++++++++++++++++++++++++++++++++++++
sources | 1 +
5 files changed, 529 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..2f433ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/FusionInventory-Agent-2.1.9.tar.gz
diff --git a/fusioninventory-agent.cron b/fusioninventory-agent.cron
new file mode 100644
index 0000000..e09c0db
--- /dev/null
+++ b/fusioninventory-agent.cron
@@ -0,0 +1,37 @@
+#!/bin/bash
+NAME=fusioninventory-agent
+LOG=/var/log/$NAME/$NAME.log
+
+exec >>$LOG 2>&1
+
+[ -f /etc/sysconfig/$NAME ] || exit 0
+source /etc/sysconfig/$NAME
+export PATH
+
+i=0
+while [ $i -lt ${#OCSMODE[*]} ]
+do
+ if [ ${OCSMODE[$i]:-none} == cron ]; then
+ OPTS=
+ if [ ! -z "${OCSPAUSE[$i]}" ]; then
+ OPTS="--wait ${OCSPAUSE[$i]}"
+ fi
+
+ if [ ! -z "${OCSTAG[$i]}" ]; then
+ OPTS="$OPTS --tag=${OCSTAG[$i]}"
+ fi
+
+ if [ "z${OCSSERVER[$i]}" = 'zlocal' ]; then
+ # Local inventory
+ OPTS="$OPTS --local=/var/lib/$NAME"
+ elif [ ! -z "${OCSSERVER[$i]}" ]; then
+ # Remote inventory
+ OPTS="$OPTS --lazy --server=${OCSSERVER[$i]}"
+ fi
+ echo "[$(date '+%c')] Running $NAME $OPTS"
+ /usr/bin/$NAME $FUSINVOPT --logfile=$LOG $OPTS
+ fi
+ ((i++))
+done
+echo "[$(date '+%c')] End of cron job ($PATH)"
+
diff --git a/fusioninventory-agent.init b/fusioninventory-agent.init
new file mode 100755
index 0000000..4a488f2
--- /dev/null
+++ b/fusioninventory-agent.init
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# chkconfig: - 88 12
+# description: FusionInventory Agent
+# processname: fusioninventory-agent
+# config: /etc/sysconfig/fusioninventory-agent.pid
+# pidfile: /var/run/fusioninventory-agent.pid
+### BEGIN INIT INFO
+# Provides: fusioninventory-agent
+# Required-Start: $local_fs $remote_fs $network $named $syslog $time
+# Required-Stop: $local_fs $remote_fs $network $named $syslog $time
+# Default-Start:
+# Default-Stop: 0 1 6
+# Short-Description: FusionInventory agent
+# Description: FusionInventory agent
+### END INIT INFO
+
+# source function library
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+desc="FusionInventory Agent"
+prog=fusioninventory-agent
+lockfile=/var/lock/subsys/$prog
+pidfile=/var/run/$prog.pid
+logfile=/var/log/$prog/$prog.log
+
+# pull in sysconfig settings
+[ -r /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Read configuration
+ i=0
+ OPTS=
+ SERVERS=
+ while [ $i -lt ${#OCSMODE[*]} ]
+ do
+ if [ ${OCSMODE[$i]:-none} == daemon ]; then
+ if [ ! -z "${OCSTAG[$i]}" ]; then
+ OPTS="$OPTS --tag=${OCSTAG[$i]}"
+ fi
+ if [ "z${OCSSERVER[$i]}" = 'zlocal' ]; then
+ # Local inventory
+ OPTS="$OPTS --local=/var/lib/$prog"
+ elif [ ! -z "${OCSSERVER[$i]}" ]; then
+ # Remote inventory
+ if [ -z "$SERVERS" ]; then
+ SERVERS=${OCSSERVER[$i]}
+ else
+ SERVERS="$SERVERS,${OCSSERVER[$i]}"
+ fi
+ fi
+ fi
+ ((i++))
+ done
+ if [ -n "$SERVERS" ]; then
+ OPTS="$OPTS --server=$SERVERS"
+ fi
+ if [ -n "$OPTS" ]; then
+ echo -n $"Starting $prog: "
+ daemon $prog --logfile-maxsize=999 --logfile=$logfile $FUSINVOPT --daemon $OPTS 2>/dev/null
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch $lockfile
+ else
+ RETVAL=0
+ fi
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $prog
+ RETVAL=$?
+ echo
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockfile $pidfile
+ fi
+}
+
+case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop
+ ;;
+ status)
+ status $prog
+ ;;
+ restart|reload|force-reload)
+ do_stop
+ do_start
+ ;;
+ condrestart)
+ [ -f $lockfile ] && do_stop && do_start || :
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
+
diff --git a/fusioninventory-agent.spec b/fusioninventory-agent.spec
new file mode 100644
index 0000000..17d2552
--- /dev/null
+++ b/fusioninventory-agent.spec
@@ -0,0 +1,379 @@
+#global gitver 9bd1238
+#global prever _beta1
+
+Name: fusioninventory-agent
+Summary: FusionInventory agent
+Summary(fr): Agent FusionInventory
+Group: Applications/System
+License: GPLv2+
+URL: http://fusioninventory.org/
+
+Version: 2.1.9
+
+%if 0%{?gitver:1}
+Release: 0.1.git%{gitver}%{?dist}
+# From http://github.com/fusinv/fusioninventory-agent/tarball/master
+Source0: fusinv-fusioninventory-agent-2.1.8-95-g9bd1238.tar.gz
+%else
+Release: 1%{?dist}
+Source0: http://search.cpan.org/CPAN/authors/id/F/FU/FUSINV/FusionInventory-Agent-%{version}%{?prever}.tar.gz
+%endif
+
+Source1: %{name}.cron
+Source2: %{name}.init
+
+BuildArch: noarch
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires: perl(Module::Install)
+# For tests
+BuildRequires: perl(Time::HiRes) perl(XML::Simple) perl(UNIVERSAL::require) perl(Test::More)
+%if 0%{?fedora}>= 12 || 0%{?rhel} >= 5
+BuildRequires: perl(XML::TreePP)
+%endif
+%if 0%{?fedora}>= 10 || 0%{?rhel} >= 5
+BuildRequires: perl(JSON)
+%endif
+%if 0%{?fedora} >= 11
+BuildRequires: perl(Test::Compile)
+%endif
+
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Requires: perl(LWP) perl(Net::IP) perl(HTTP::Status) perl(Net::SSLeay) perl(Crypt::SSLeay)
+Requires: perl(Proc::Daemon) perl(Proc::PID::File)
+%if 0%{?fedora} >= 6 || 0%{?rhel} >= 5
+Requires: perl(Archive::Extract)
+Requires: perl(Net::CUPS)
+%endif
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/chkconfig, /sbin/service
+Requires(postun): /sbin/service
+
+
+%if 0%{?fedora} >= 11 || 0%{?rhel} >= 6
+# This work only on recent fedora
+%{?filter_setup:
+%filter_from_requires /perl(Win32/d
+%?perl_default_filter
+}
+%else
+%{?perl_default_filter}
+%endif
+
+
+%description
+FusionInventory Agent is an application designed to help a network
+or system administrator to keep track of the hardware and software
+configurations of computers that are installed on the network.
+
+This agent can send information about the computer to a OCS Inventory NG
+or GLPI server with the FusionInventory for GLPI plugin.
+
+You can add additional packages for optional tasks:
+
+* perl-FusionInventory-Agent-Task-OcsDeploy
+ OCS Inventory Software deployment support
+* perl-FusionInventory-Agent-Task-NetDiscovery
+ Network Discovery support
+* perl-FusionInventory-Agent-Task-SNMPQuery
+ SNMP Query support
+* perl-FusionInventory-Agent-Task-ESX
+ vCenter/ESX/ESXi remote inventory
+
+Edit the /etc/sysconfig/%{name} file for service configuration.
+
+%description -l fr
+L'agent FusionInventory est une application destinée à aider l'administrateur
+système ou réseau à surveiller la configuration des machines du réseau
+et les logiciels qui y sont installés.
+
+Cet agent peut envoyer les informations de l'ordinateur à un serveur
+OCS Inventory NG ou à un serveur GLPI disposant de l'extension FusionInventory.
+
+Vous pouvez ajouter les paquets additionnels pour les tâches optionnelles :
+
+* perl-FusionInventory-Agent-Task-OcsDeploy
+ Gestion du déploiement logiciel OCS Inventory
+* perl-FusionInventory-Agent-Task-NetDiscovery
+ Gestion de la découverte réseau
+* perl-FusionInventory-Agent-Task-SNMPQuery
+ Gestion de l'interrogation SNMP
+* perl-FusionInventory-Agent-Task-ESX
+ Inventaire à distance des vCenter/ESX/ESXi
+
+Modifier le fichier /etc/sysconfig/%{name} pour configurer
+le service.
+
+
+%package yum-plugin
+Summary: Ask FusionInventory agent to send an inventory when yum exits
+Summary(fr): Demande à l'agent FusionInventory l'envoi d'un inventaire
+Group: System Environment/Base
+BuildRequires: python-devel
+Requires: yum >= 2.4
+Requires: %{name}
+
+%description yum-plugin
+fusioninventory-agent-yum-plugin asks the running service agent to send an
+inventory when yum exits.
+
+This requires the service to be running with the --rpc-trust-localhost option.
+
+%description -l fr yum-plugin
+fusioninventory-agent-yum-plugin demande au service de l'agent d'envoyer un
+inventaire à la fin de l'exécution de yum.
+
+Le service doit être actif et lancé avec l'option --rpc-trust-localhost.
+
+%prep
+%if 0%{?gitver:1}
+%setup -q -n fusinv-fusioninventory-agent-%{gitver}
+%else
+%setup -q -n FusionInventory-Agent-%{version}%{?prever}
+%endif
+
+# This work only on older version, and is ignored on recent
+cat <<EOF | tee %{name}-req
+#!/bin/sh
+%{__perl_requires} $* | \
+sed -e '/perl(Win32/d'
+EOF
+
+%if 0%{?gitver:1}
+%global __perl_requires %{_builddir}/fusinv-fusioninventory-agent-%{gitver}/%{name}-req
+%else
+%global __perl_requires %{_builddir}/FusionInventory-Agent-%{version}%{?prever}/%{name}-req
+%endif
+chmod +x %{__perl_requires}
+
+cat <<EOF | tee logrotate
+%{_localstatedir}/log/%{name}/*.log {
+ weekly
+ rotate 7
+ compress
+ notifempty
+ missingok
+}
+EOF
+
+cat <<EOF | tee %{name}.conf
+#
+# Fusion Inventory Agent Configuration File
+# used by hourly cron job and service launcher to override the %{name}.cfg setup.
+#
+# DONT FORGET to enable the service !
+#
+# Add tools directory if needed (tw_cli, hpacucli, ipssend, ...)
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+# Global options (debug for verbose log, rpc-trust-localhost for yum-plugin)
+FUSINVOPT='--debug --rpc-trust-localhost'
+# Mode, change to "cron" or "daemon" to activate
+# - none (default on install) no activity
+# - cron (inventory only) use the cron.hourly
+# - daemon (recommanded) use the service
+# DON'T FORGET to enable the service
+OCSMODE[0]=none
+# OCS Inventory or FusionInventory server URI
+# OCSSERVER[0]=your.ocsserver.name
+# OCSSERVER[0]=http://your.ocsserver.name/ocsinventory
+# OCSSERVER[0]=http://your.glpiserveur.name/glpi/plugins/fusioninventory/
+# corresponds with --local=%{_localstatedir}/lib/%{name}
+# OCSSERVER[0]=local
+# Wait before inventory (for cron mode)
+OCSPAUSE[0]=120
+# Administrative TAG (optional, must be filed before first inventory)
+OCSTAG[0]=
+EOF
+
+cat <<EOF | tee agent.cfg
+# This file provides global and command line settings
+# For CRON or DAEMON configuration, see %{_sysconfdir}/sysconfig/%{name}
+share-dir=%{perl_vendorlib}/auto/share/dist/FusionInventory-Agent
+basevardir=%{_localstatedir}/lib/%{name}
+logger=Stderr
+server=""
+EOF
+
+
+%build
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
+
+
+%install
+rm -rf %{buildroot}
+
+make pure_install DESTDIR=%{buildroot}
+find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
+find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';'
+
+%{_fixperms} %{buildroot}/*
+
+
+mkdir -p %{buildroot}%{_localstatedir}/{log,lib}/%{name}
+
+install -m 644 -D logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
+install -m 644 -D %{name}.conf %{buildroot}%{_sysconfdir}/sysconfig/%{name}
+install -m 644 -D agent.cfg %{buildroot}%{_sysconfdir}/fusioninventory/agent.cfg
+install -m 755 -Dp %{SOURCE1} %{buildroot}%{_sysconfdir}/cron.hourly/%{name}
+install -m 755 -Dp %{SOURCE2} %{buildroot}%{_initrddir}/%{name}
+
+# Yum plugin installation
+install -m 644 -D contrib/yum-plugin/%{name}.py %{buildroot}%{_prefix}/lib/yum-plugins/%{name}.py
+install -m 644 -D contrib/yum-plugin/%{name}.conf %{buildroot}%{_sysconfdir}/yum/pluginconf.d/%{name}.conf
+
+
+%check
+make test
+
+
+%clean
+rm -rf %{buildroot} %{buildroot}%{_datarootdir}
+
+
+%post
+/sbin/chkconfig --add %{name}
+
+
+%preun
+if [ $1 -eq 0 ] ; then
+ /sbin/service %{name} stop &>/dev/null
+ /sbin/chkconfig --del %{name}
+fi
+exit 0
+
+
+%postun
+if [ $1 -ge 1 ]; then
+ /sbin/service %{name} condrestart &>/dev/null
+fi
+exit 0
+
+
+%files
+%defattr(-, root, root, -)
+%doc AUTHORS Changes LICENSE THANKS
+%if ! 0%{?gitver:1}
+%doc README*
+%endif
+%dir %{_sysconfdir}/fusioninventory
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
+%config(noreplace) %{_sysconfdir}/fusioninventory/agent.cfg
+%{_sysconfdir}/cron.hourly/%{name}
+%{_initrddir}/%{name}
+%{perl_vendorlib}/FusionInventory
+%{perl_vendorlib}/auto
+%{_bindir}/fusioninventory-agent
+%{_bindir}/fusioninventory-injector
+%exclude %{_bindir}/%{name}-config
+%{_mandir}/man1/fusioninventory-agent*
+%{_mandir}/man1/fusioninventory-injector*
+%{_mandir}/man3/Fusion*
+%dir %{_localstatedir}/log/%{name}
+%dir %{_localstatedir}/lib/%{name}
+
+%files yum-plugin
+%defattr(-, root, root)
+%config(noreplace) %{_sysconfdir}/yum/pluginconf.d/%{name}.conf
+%{_prefix}/lib/yum-plugins/%{name}.*
+
+
+%changelog
+* Sun Jun 26 2011 Remi Collet <Fedora at famillecollet.com> 2.1.9-1
+- missing dist tag
+
+* Wed Jun 15 2011 Remi Collet <Fedora at famillecollet.com> 2.1.9-1
+- update to 2.1.9
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.9/Changes
+
+* Sat Jun 11 2011 Remi Collet <Fedora at famillecollet.com> 2.1.9-0.1.git9bd1238
+- update to 2.1.9 from git
+- improved init script for systemd
+- improved comment for use with glpi-fusioninventory
+
+* Thu Mar 31 2011 Remi Collet <Fedora at famillecollet.com> 2.1.8-2
+- revert change for issue 656 which breaks compatibility
+
+* Wed Mar 30 2011 Remi Collet <Fedora at famillecollet.com> 2.1.8-1
+- update to 2.1.8
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.8/Changes
+
+* Thu Dec 30 2010 Remi Collet <Fedora at famillecollet.com> 2.1.7-2
+- add the yum-plugin sub-package
+
+* Mon Dec 13 2010 Remi Collet <Fedora at famillecollet.com> 2.1.7-1
+- update to 2.1.7
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.7/Changes
+
+* Sun Nov 28 2010 Remi Collet <Fedora at famillecollet.com> 2.1.7-0.1.beta1
+- update to 2.1.7 beta1
+
+* Sat Nov 13 2010 Remi Collet <Fedora at famillecollet.com> 2.1.6-1.1
+- fix perl filter on EL-6
+
+* Wed Oct 06 2010 Remi Collet <Fedora at famillecollet.com> 2.1.6-1
+- update to 2.1.6
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.6/Changes
+- fix init script for multi-server in daemon mode
+- workaround for http://forge.fusioninventory.org/issues/414
+
+* Wed Sep 15 2010 Remi Collet <Fedora at famillecollet.com> 2.1.5-1
+- update to 2.1.5
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.5/Changes
+
+* Fri Sep 10 2010 Remi Collet <Fedora at famillecollet.com> 2.1.3-2
+- add %%check
+
+* Sat Sep 04 2010 Remi Collet <Fedora at famillecollet.com> 2.1.3-1
+- update to 2.1.3
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.3/Changes
+
+* Wed Aug 25 2010 Remi Collet <Fedora at famillecollet.com> 2.1.2-1
+- update to 2.1.2
+ http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.2/Changes
+
+* Wed Aug 18 2010 Remi Collet <Fedora at famillecollet.com> 2.1.1-1
+- update to 2.1.1
+
+* Wed Aug 18 2010 Remi Collet <Fedora at famillecollet.com> 2.1-2.gita7532c0
+- update to git snaphost which fix EL issues
+- fix init script
+- adapt perl filter for recent/old fedora or EL
+
+* Mon Aug 16 2010 Remi Collet <Fedora at famillecollet.com> 2.1-1
+- update to 2.1
+- switch download URL back to CPAN
+- add %%{perl_vendorlib}/auto
+- filter perl(Win32*) from Requires
+- add patch (from git) to reopen the file logger if needed
+
+* Sat May 29 2010 Remi Collet <Fedora at famillecollet.com> 2.0.6-1
+- update to 2.0.6
+- swicth download URL to forge
+
+* Wed May 12 2010 Remi Collet <Fedora at famillecollet.com> 2.0.5-1
+- update to 2.0.5
+
+* Tue May 11 2010 Remi Collet <Fedora at famillecollet.com> 2.0.4-4.gitf7c5492
+- git snapshot fix perl 5.8.8 (EL5) issue
+
+* Sat May 08 2010 Remi Collet <Fedora at famillecollet.com> 2.0.4-4.gitddfdeaf
+- git snapshot fix daemon issue
+- add FUSINVOPT for global options (p.e.--debug)
+
+* Sat May 08 2010 Remi Collet <Fedora at famillecollet.com> 2.0.4-3
+- add support for daemon mode
+
+* Fri May 07 2010 Remi Collet <Fedora at famillecollet.com> 2.0.4-2
+- info about perl-FusionInventory-Agent-Task-OcsDeploy
+- spec cleanup
+- french translation
+- set Net::CUPS and Archive::Extract optionnal on RHEL4
+
+* Fri May 07 2010 Remi Collet <Fedora at famillecollet.com> 2.0.4-1
+- update to 2.0.4 which fixes important bugs when cron is used
+
+* Sat May 01 2010 Remi Collet <Fedora at famillecollet.com> 2.0.3-1
+- initial spec
+
diff --git a/sources b/sources
index e69de29..7675b82 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+4e7f5dd004e6ca4edfcab0fc3dcbe422 FusionInventory-Agent-2.1.9.tar.gz
More information about the scm-commits
mailing list