diff --git a/.gitignore b/.gitignore index bfb8c90..fbd85d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ *spec~ /FusionInventory-Agent-2.1.9.tar.gz /FusionInventory-Agent-2.1.12.tar.gz +/FusionInventory-Agent-2.1.14.tar.gz +/FusionInventory-Agent-2.3.18.tar.gz +/FusionInventory-Agent-2.3.19.tar.gz +/FusionInventory-Agent-2.3.20.tar.gz +/FusionInventory-Agent-2.3.21.tar.gz diff --git a/fusioninventory-agent-git.patch b/fusioninventory-agent-git.patch deleted file mode 100644 index 9b131dc..0000000 --- a/fusioninventory-agent-git.patch +++ /dev/null @@ -1,112 +0,0 @@ -commit a291e4d5d73c13fc8076211b004e7349cd4bbf7d -Author: Gonéri Le Bouder -Date: Mon Nov 28 21:37:48 2011 +0100 - - try to use ssl_opts on LWP<6 too - - previously this block was only for LWP6. For some modern - LWP5/Crypt::SSLeay also need it, I use an eval here to avoid - failure on ancient LWP::UserAgent with no ssl_opts() - - closes: #1161 - - Reported-by: Remi Collet - -diff --git a/lib/FusionInventory/Agent/Network.pm b/lib/FusionInventory/Agent/Network.pm -index b349de5..6bc6fbf 100644 ---- a/lib/FusionInventory/Agent/Network.pm -+++ b/lib/FusionInventory/Agent/Network.pm -@@ -107,8 +107,11 @@ sub createUA { - - my $ua = LWP::UserAgent->new(keep_alive => 1, requests_redirectable => ['POST', 'GET', 'HEAD']); - -- -- if ($LWP::VERSION >= 6) { -+ # previously this block was only for LWP6. -+ # For some modern LWP5/Crypt::SSLeay also need it, I use -+ # an eval here to avoid failure on ancient LWP::UserAgent with -+ # no ssl_opts() -+ eval { - # LWP6 default behavior is to check the SSL hostname - if ($config->{'no-ssl-check'}) { - $ua->ssl_opts(verify_hostname => 0); -@@ -119,7 +122,7 @@ sub createUA { - if ($config->{'ca-cert-dir'}) { - $ua->ssl_opts(SSL_ca_path => $config->{'ca-cert-dir'}); - } -- } -+ }; - - if ($noProxy) { - -commit 5001036e8eabac54a5058306c44793df325109a2 -Author: Gonéri Le Bouder -Date: Mon Nov 28 21:39:21 2011 +0100 - - improve the regex used to parse the SSL-Cert - - - Drop the port from the hostname - - Use a wildcare only if there is a domain - -diff --git a/lib/FusionInventory/Agent/Network.pm b/lib/FusionInventory/Agent/Network.pm -index 6bc6fbf..96d7513 100644 ---- a/lib/FusionInventory/Agent/Network.pm -+++ b/lib/FusionInventory/Agent/Network.pm -@@ -362,9 +362,10 @@ sub setSslRemoteHost { - # Check server name against provided SSL certificate - if ( $self->{URI} =~ /^https:\/\/([^\/]+).*$/i ) { - my $re = $1; -+ $re =~ s/:\d+//; - # Accept SSL cert will hostname with wild-card - # http://forge.fusioninventory.org/issues/542 -- $re =~ s/^([^\.]+)/($1|\\*)/; -+ $re =~ s/^([^\.]+)\.(.+)/($1|\\*)/; - # protect some characters, $re will be evaluated as a regex - $re =~ s/([\-\.])/\\$1/g; - $ua->default_header('If-SSL-Cert-Subject' => '/CN='.$re.'($|\/)'); -commit 8035bde109d9684dac5fd9369ce6a7a641c54f99 -Author: Gonéri Le Bouder -Date: Mon Nov 28 21:48:52 2011 +0100 - - SSL: skip some test on LWP<6 - - Those cases are just unsupported. - - closes: #1161 - - Reported-by: Remi Collet - -diff --git a/t/ssl.t b/t/ssl.t -index ff8c25e..d8b384f 100644 ---- a/t/ssl.t -+++ b/t/ssl.t -@@ -107,10 +107,14 @@ $server->set_dispatch({ - }); - $server->background(); - -+ -+SKIP: { -+skip "Too all LWP for alternate hostname", 1 unless $LWP::VERSION >= 6; - ok( - $secure_client->send({message => $message}), - 'trusted certificate, alternate hostname: connection success' - ); -+} - - $server->stop(); - -@@ -161,10 +165,14 @@ ok( - 'untrusted certificate, correct hostname: connection failure' - ); - -+SKIP: { -+skip "Check disabled on LWP<6", 1 unless $LWP::VERSION >= 6; -+# Unless you wan to fix this - ok( - $unsafe_client->send({message => $message}), - 'untrusted certificate, correct hostname, no check: connection success' - ); -+} - - $server->stop(); - diff --git a/fusioninventory-agent-useless-module-cleaning b/fusioninventory-agent-useless-module-cleaning new file mode 100644 index 0000000..22f6514 --- /dev/null +++ b/fusioninventory-agent-useless-module-cleaning @@ -0,0 +1,34 @@ +From 25404f038f99bd091e0fb2368879e848500f5082 Mon Sep 17 00:00:00 2001 +From: tlornet +Date: Wed, 22 Jun 2016 16:01:54 +0200 +Subject: [PATCH] useless module cleaning + +--- + Makefile.PL | 1 - + lib/FusionInventory/Agent/Config.pm | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/Makefile.PL b/Makefile.PL +index 55987d3..ea39425 100644 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -18,7 +18,6 @@ requires 'Net::IP' => '0'; + requires 'Text::Template' => '0'; + requires 'UNIVERSAL::require' => '0'; + requires 'XML::TreePP' => '0.26'; +-requires 'Data::Structure::Util' => '0'; + + if ($OSNAME eq 'MSWin32') { + requires 'Win32::OLE' => '0'; +diff --git a/lib/FusionInventory/Agent/Config.pm b/lib/FusionInventory/Agent/Config.pm +index 90d5295..8480018 100644 +--- a/lib/FusionInventory/Agent/Config.pm ++++ b/lib/FusionInventory/Agent/Config.pm +@@ -7,7 +7,6 @@ use English qw(-no_match_vars); + use File::Spec; + use Getopt::Long; + use UNIVERSAL::require; +-use Data::Structure::Util qw/unbless/; + + require FusionInventory::Agent::Tools; + diff --git a/fusioninventory-agent.spec b/fusioninventory-agent.spec index 3cc0702..6e8c29d 100644 --- a/fusioninventory-agent.spec +++ b/fusioninventory-agent.spec @@ -1,69 +1,41 @@ -#global gitver 9bd1238 -#global prever _beta1 +## Disabling debug package +## Can't build as noarch due to dmidecode requires +%global debug_package %{nil} + Name: fusioninventory-agent Summary: FusionInventory agent -Summary(fr): Agent FusionInventory Group: Applications/System License: GPLv2+ URL: http://fusioninventory.org/ -Version: 2.1.12 - -%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 - -Patch0: %{name}-git.patch - - -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) -BuildRequires: perl(Class::Accessor::Fast) perl(Class::Data::Inheritable) perl(Test::Exception) -%if 0%{?fedora} >= 14 -BuildRequires: perl(LWP::Protocol::https) perl(IO::Socket::SSL) -BuildRequires: perl(HTTP::Server::Simple::Authen) perl(CGI) -%endif -%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 +Version: 2.3.21 +Release: 4%{?dist} +Source0: https://github.com/fusioninventory/%{name}/releases/download/%{version}/FusionInventory-Agent-%{version}.tar.gz +Source1: %{name}.cron 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) +BuildRequires: perl(ExtUtils::MakeMaker) + +Requires: perl-FusionInventory-Agent = %{version}-%{release} +Requires: logrotate +Requires: cronie +%ifarch %{ix86} x86_64 +Requires: dmidecode %endif -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/chkconfig, /sbin/service -Requires(postun): /sbin/service +Requires(post): /sbin/chkconfig +Requires(preun): /sbin/chkconfig, /sbin/service +Requires(postun): /sbin/service -# RPM 4.8 -%{?filter_from_requires: %filter_from_requires /perl(Win32/d} -%{?perl_default_filter} -# RPM 4.9 -%global __requires_exclude %{?__requires_exclude:__requires_exclude|}^perl\\(Win32 - +# excluding internal requires and windows stuff +# excluding perl(setup) and windows stuff +#%{?perl_default_filter} +#%global __provides_exclude %{?__provides_exclude:%__provides_exclude|}^perl\\(setup\\)$ +#%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Win32|setup\\)$ +%filter_from_requires /perl(setup)/d; /perl(Win32.*)/d +%filter_from_provides /perl(setup)/d +%filter_setup %description FusionInventory Agent is an application designed to help a network @@ -75,46 +47,49 @@ 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 +* fusioninventory-agent-task-network + Network Discovery and Inventory support +* fusioninventory-agent-inventory + Local inventory support for FusionInventory +* fusioninventory-agent-task-deploy + Software deployment support +* fusioninventory-agent-task-esx vCenter/ESX/ESXi remote inventory +* fusioninventory-agent-task-collect + Custom information retrieval support +* fusioninventory-agent-task-wakeonlan + not included due to a licensing issue for perl-Net-Write 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. +%package -n perl-FusionInventory-Agent +Summary: Libraries for Fusioninventory agent +BuildArch: noarch +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Requires: perl(LWP) +Requires: perl(Net::CUPS) +Requires: perl(Net::SSLeay) +Requires: perl(Proc::Daemon) +Requires: perl(Proc::PID::File) +Requires: perl(Socket::GetAddrInfo) -Cet agent peut envoyer les informations de l'ordinateur à un serveur -OCS Inventory NG ou à un serveur GLPI disposant de l'extension FusionInventory. +%description -n perl-FusionInventory-Agent +Libraries for Fusioninventory agent. -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 task-esx +Summary: FusionInventory plugin to inventory vCenter/ESX/ESXi +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +%description task-esx +fusioninventory-agent-task-ESX ask the running service agent to inventory an +VMWare vCenter/ESX/ESXi server through SOAP interface %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 +BuildArch: noarch +Requires: yum Requires: %{name} %description yum-plugin @@ -123,34 +98,65 @@ 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. +%package task-network +Summary: NetDiscovery and NetInventory task for FusionInventory +Group: Applications/System +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description task-network +fusioninventory-task-netdiscovery and fusioninventory-task-netinventory + +%package task-deploy +Summary: Software deployment support for FusionInventory agent +Group: Applications/System +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: perl(Archive::Extract) + +%description task-deploy +This package provides software deployment support for FusionInventory-agent + +%if !%{defined perl_net_write} +# Excluded due to the absence of perl-Net-Write +# perl-Net-Write is licenced under Artistic Perl v1 licence, not accepted in Fedora +%package task-wakeonlan +Summary: WakeOnLan task for FusionInventory +Group: Applications/System +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description task-wakeonlan +fusioninventory-task-wakeonlan +%endif + +%package task-inventory +Summary: Inventory task for FusionInventory +Group: Applications/System +Requires: %{name} = %{version}-%{release} +Requires: perl(Net::CUPS) +#This one is not available on EL6 for now; +#and this is a "recommanded", not a required one. +#Requires: perl(Parse::EDID) + +%description task-inventory +fusioninventory-task-inventory + +%package task-collect +Summary: Custom information retrieval support for FusionInventory agent +Group: Applications/System +Requires: %{name} = %{version}-%{release} + +%description task-collect +This package provides custom information retrieval support for +FusionInventory agent -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 +%setup -q -n FusionInventory-Agent-%{version} -%patch0 -p1 - -# This work only on older version, and is ignored on recent -cat </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} +install -m 644 -D logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +install -m 644 -D %{name}.conf %{buildroot}%{_sysconfdir}/sysconfig/%{name} +install -m 755 -Dp %{SOURCE1} %{buildroot}%{_sysconfdir}/cron.hourly/%{name} +install -m 755 -D contrib/unix/%{name}.init.redhat %{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 -%if 0%{?rhel} || 0%{?fedora} < 14 -# requires perl(HTTP::Server::Simple::Authen) not yet available -rm t/ssl.t -%endif - -make test - - -%clean -rm -rf %{buildroot} %{buildroot}%{_datarootdir} - +#make test %post /sbin/chkconfig --add %{name} @@ -262,32 +251,100 @@ exit 0 %files -%defattr(-, root, root, -) -%doc AUTHORS Changes LICENSE THANKS %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} +%dir %{_datadir}/fusioninventory +%dir %{_datadir}/fusioninventory/lib +%dir %{_datadir}/fusioninventory/lib/FusionInventory +%dir %{_datadir}/fusioninventory/lib/FusionInventory/Agent +%dir %{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task +#excluding sub-packages files +#%%exclude %%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/ + + + +%files -n perl-FusionInventory-Agent +%doc Changes LICENSE THANKS +%{_datadir}/fusioninventory %files yum-plugin -%defattr(-, root, root) %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/%{name}.conf %{_prefix}/lib/yum-plugins/%{name}.* +%files task-esx +%{_bindir}/fusioninventory-esx +%{_mandir}/man1/fusioninventory-esx.1* +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/ESX.pm +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/SOAP + +%files task-network +%{_bindir}/fusioninventory-netdiscovery +%{_bindir}/fusioninventory-netinventory +%{_mandir}/man1/fusioninventory-netdiscovery.1* +%{_mandir}/man1/fusioninventory-netinventory.1* +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/NetDiscovery.pm +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/NetInventory.pm + +%files task-deploy +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/Deploy.pm +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/Deploy + +# Excluding task-wakeonlan +#%%files task-wakeonlan +%exclude %{_bindir}/fusioninventory-wakeonlan +%exclude %{_mandir}/man1/fusioninventory-wakeonlan.1* +%exclude %{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/WakeOnLan.pm + +%files task-inventory +%{_bindir}/fusioninventory-inventory +%{_mandir}/man1/fusioninventory-inventory.1* +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/Inventory.pm +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/Inventory + +%files task-collect +%{_datadir}/fusioninventory/lib/FusionInventory/Agent/Task/Collect.pm + %changelog +* Sat Nov 25 2017 Mairanne Lombard - 2.3.21-4 +- Fix perl filter issues; BZ #145919 - thanks to Jitka Plesnikova + +* Mon Oct 16 2017 Johan Cwiklinski - 2.3.21-3 +- Do not provides perl(setup); BZ #1485919 - thanks to E. Seyman + +* Thu Aug 10 2017 Johan Cwiklinski - 2.3.21-2 +- Fix missing provides issue on perl(setup) + +* Tue Aug 01 2017 Marianne Lombard - 2.3.21-1 +- Last upstream release + +* Tue Jun 06 2017 Johan Cwiklinski - 2.3.20-1 +- Last upstream release +- Drop patches, upstream has provided fixes + +* Mon Feb 20 2017 Johan Cwiklinski - 2.3.19-1 +- Last upstream release + +* Tue Jun 21 2016 Johan Cwiklinski - 2.3.18-1 +- Last upstream release +- Add task-* subpackages +- Use upstream provided initscript +- Update according to EL7 specfile + +* Sun Feb 26 2012 Remi Collet - 2.1.14-1 +- update to 2.1.14 + http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.14/Changes + * Mon Nov 28 2011 Remi Collet - 2.1.12-1 - update to 2.1.12 http://cpansearch.perl.org/src/FUSINV/FusionInventory-Agent-2.1.12/Changes @@ -296,7 +353,7 @@ exit 0 * Sat Aug 06 2011 Remi Collet - 2.1.9-3 - adapt filter -* Fri Jul 25 2011 Petr Sabata - 2.1.9-2 +* Mon Jul 25 2011 Petr Sabata - 2.1.9-2 - Perl mass rebuild * Sun Jun 26 2011 Remi Collet 2.1.9-1 diff --git a/sources b/sources index 27bbf1d..ac42af3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5ef5237d3504c0651fcbdb1a04d1cd26 FusionInventory-Agent-2.1.12.tar.gz +SHA512 (FusionInventory-Agent-2.3.21.tar.gz) = 5f5628b4851431fe0c93ebfffdc91281efaa8aed721cf79439dbb738bfc765d3d01bb5e639de7dd2fcfc06537f7b472ea8b14ae4b9e6e5c408b68039a8b2185e