[Fusioninventory-devel] Building the FusionInventory Agent Windows package...

Tomás Abad tabadgp at gmail.com
Wed Jul 18 12:15:34 UTC 2012


   Hello Góneri,

On Wed, Jul 18, 2012 at 12:39 PM, Gonéri Le Bouder <goneri at rulezlan.org>
wrote:
> Hi Tomás Abad,
>
> First, thank you for the great helpful work you do. We are lucky to
> have someone like you in the team.

   It's a pleasure for me Goneri. I hope you like the new installer.

>> Whether I'm not wrong, the Perl modules required for FusionInventory
> The is some more if we include the Task::* distributions, for example Net::SNMP,
> POE::Component::Client::PING.
>
> LibXML and XML::Simple are not required, we use XML::TreePP especially
> to avoid them.

   I have read all Makefile.PL files from FusionInventory-Agent-2.2.3
and FusionInventory-Agent-Task-* (see http://search.cpan.org/~fusinv/)
and this is the definitive list of Perl modules that the package that
I'm building will take into account (unless you tell me otherwise).


   Perl modules for FusionInventory-Agent-2.2.3
   -----------------------------------------------------------------
      .- Digest-MD5-2.52 (Digest::MD5)
            (The last version in CPAN)

      .- File-Which-1.09 (File::Which)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- HTTP-Daemon-6.01 (HTTP::Daemon)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- IO-Compress-2.052 (Compress::Zlib)
            (The last version in CPAN)

      .- IO-Socket-SSL-1.76 (IO::Socket::SSL)
            (The last version in CPAN)

      .- libwww-perl-6.04 (LWP)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- LWP-Protocol-https-6.03 (LWP::Protocol::https)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- Net-IP-1.25 (Net::IP)
            (The last version in CPAN)

      .- Text-Template-1.45 (Text::Template)
            (The last version in CPAN)

      .- UNIVERSAL-require-0.13 (UNIVERSAL::require)
            (The last version in CPAN)

      .- Win32-OLE-0.1709 (Win32::OLE)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- Win32-TieRegistry-0.26 (Win32::TieRegistry)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- XML-TreePP-0.41 (XML:TreePP)
            (The last version in CPAN)


   Perl modules for FusionInventory-Agent-Task-Deploy-2.0.2
   --------------------------------------------------------
      .- Archive-Extract-0.60 (Archive::Extract)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- Digest-SHA-5.71 (Digest::SHA)
            (The last version in CPAN)

      .- File-Copy-Recursive-0.38 (File::Copy::Recursive)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- JSON-2.53 (JSON)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

      .- POE-Component-Client-Ping-1.171 (POE::Component::Client::Ping)
            (The last version in CPAN)

      .- UNIVERSAL-require-0.13 (UNIVERSAL::require)
            (The last version in CPAN)

      .- URI-1.60 (URI::Escape)
            (The last version in CPAN)

   Perl modules for FusionInventory-Agent-Task-ESX-2.1.0
   -----------------------------------------------------
      .- JSON-2.53 (JSON)
            (The last version in CPAN)
            (Included into Strawberry Perl v5.16.0.1 - 32 & 64 bits)

   Perl modules for FusionInventory-Agent-Task-NetDiscovery-2.1
   ------------------------------------------------------------
      .- Net-IP-1.25 (Net::IP)
            (The last version in CPAN)

      .- Net-NBName-0.26 (Net::NBName)
            (The last version in CPAN)

      .- Net-SNMP-v6.0.1 (Net::SNMP)
            (The last version in CPAN)

      .-  threads-1.86 (threads)
            (The last version in CPAN)

      .- XML-TreePP-0.41 (XML:TreePP)
            (The last version in CPAN)

   Perl modules for FusionInventory-Agent-Task-NetInventory-2.1
   ------------------------------------------------------------
      .- Net-IP-1.25 (Net::IP)
            (The last version in CPAN)

      .- Net-SNMP-v6.0.1 (Net::SNMP)
            (The last version in CPAN)

      .-  threads-1.86 (threads)
            (The last version in CPAN)

      .- XML-TreePP-0.41 (XML:TreePP)
            (The last version in CPAN)


>> c) Is there any problem if I make use of these Perl modules
>>    included in Strawberry Perl or it's better whether I make use
>>    the last Perl modules releases?
> So far, I worked this way:
>
> 1) I did a tarball of Perl and the requirement:
>  a) I took the very last Strawberry Perl (5.12 at this time).
>  b) Built all the dependency
>  c) Dropped the useless stuff like database drivers
>  d) Create an tarball from that.
> 2) And now, everytime I generate an installer, I extract this tarball,
> add FusionInventory
> sources and recompress the result.

   I have done some like you did. I have build this tree

      Perl/
      |-- Modules
      |   |-- Digest-MD5-2.52
      |   |-- IO-Compress-2.052
      |   |-- IO-Socket-SSL-1.76
      |   |-- Net-IP-1.25
      |   |-- Text-Template-1.45
      |   |-- UNIVERSAL-require-0.13
      |   `-- XML-TreePP-0.41
      `-- Strawberry
          `-- 5.16.0.1
              |-- 32bits
              |   |-- c
              |   |-- cpan
              |   |-- data
              |   |-- licenses
              |   |-- perl
              |   `-- win32
              `-- 64bits
                  |-- c
                  |-- cpan
                  |-- data
                  |-- licenses
                  |-- perl
                  `-- win32

   Then the NSIS script will install only the needed files, but
without modify the tree content.

> Today, this solution has some limitation. First it's hard to follow
> the changes or to upgrade to a new Perl version. For example, I had a hard time to
> upgrade from Crypt::SSLeay to IO::Socket::SSL. I think a more sensible solution would be:
> 1) A script fetch the last strawberry Perl, call the "cpan" command to
> install the FusionInventory distribution. The dependencies will be pulled from the "cpan".
> 2) I clean he unwanter stuff
> 3) call NSIS to generate the installer from that

   I like your idea. I'll think about that.

   Best regards.



More information about the Fusioninventory-devel mailing list