Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64

2011-06-13 17-51:

See later:

# OpenSSL:
# 1) copy libeay32.a libcrypto.dll.a
# 2) copy libssl32.a libssl.dll.a
# 3) copy libcrypto.dll.a libcrypto.a
# 4) copy libssl.dll.a libssl.a
# 5) Unpack lib\engines\*.dll from package/kmx/tmp-for-victor/out_openssl-1.0.0d(64bit-5.12).zip

2011-06-08 17-58:

See later:
Update strawberry-perl-5.12.3.0-64bit.zip library to kmx/64_libs/5.12/*.zip:

2011-05-31 18-24:

See later:
Upgrade OpenSSL

2011-05-25 18-16:

See later:
==
cpanp i http://strawberryperl.com/package/kmx/perl-modules-patched/
==

2011-05-25 18-07:

Replace:
===
perl Makefile.PL
dmake
dmake test
dmake install
==
to
==
cpanp i .
==

2011-05-25 16-47:

See later:
Win32_IPHelper_64bit.diff

i.e. this fixed
===
!!! Need set DNS Server in assp.cfg
{
# uncheck Use Local DNS (UseLocalDNS)
UseLocalDNS:=
# Use OpenDNS
DNSServers:=208.67.222.222|208.67.220.220
# Or change to Youre local DNS server
}
===

2011-05-25 15-22:

Replace:
cpanplus\5.12.2\build\
to
cpanplus\5.12.3\build\

2011-05-25 15-19:

See later:
==
Install ASSP as service by run:
perl assp.pl c:\assp -i
==

2011-05-23 17-53:
Test by send 1 e-mail -- Ok

2011-05-23:
Strawberry Perl v5.12.3 x64

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip

----- Original Message -----
From: "Victor Miasnikov"
To: "Shabalin, Alexander"; "ASSP development mailing list"
Sent: Thursday, May 19, 2011 4:31 PM
Subject: Fixed, see: Mini How-To: practically method to install ASSP v2.X on Windows x64 by Strawberry Perl v5.12.2 x64 Re: [Assp-test] ASSP as a service (service did not respond) 1053

Hi!

----- Original Message -----
From: "Shabalin, Alexander"
To: "ASSP development mailing list"
Sent: Friday, September 11, 2009 9:31 AM
Subject: Re: [Assp-test] ASSP as a service (service did not respond) 1053

> It can be some sort of incompatibility in:
> 1. Windows Server 2008 x64.
> 2. Perl 5.10 x64
> 3. Win32::Daemon

--

Fixed, see:

Mini How-To: practically method to install ASSP v2.X on Windows x64 by Strawberry Perl v5.12.2 x64

. . .

At this moment this is _very_ experimental environment! Be carefully!

==
!!! Need set DNS Server in assp.cfg

need ToDo: Socket6 and SNMP
==

> Has anyone x64 testing environment to check this?

At this moment I simply do not have time to create a complete lab environment:

==
SMTP not tested ( may be yet/at this moment )
==

Who can test it?

Best regards, Victor Miasnikov
--

----------------------

Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64

SMTP not tested ( may be yet/at this moment )
need ToDo: Socket6 and SNMP

----

A-la #ifdef:

# {
# Start part of command related only to ASSP_OCR
#

If you not use ASSP_OCR , then you not need this text

#
# End part of command related only to ASSP_OCR
# }

#{
# Upgrade OpenSSL
#

Strawberry Perl v5.12.3 x64 contain "OpenSSL 1.0.0-beta4":
==
C:\strawberry\c\bin>openssl.exe version
WARNING: can't open config file: c:/compile/build/_wrk_libs64__.out/ssl/openssl.cnf
OpenSSL 1.0.0-beta4 10 Nov 2009
==

Current version OpenSSL:
==
C:\openssl\bin>openssl.exe version
OpenSSL 1.0.0d 8 Feb 2011
==

#{
# Upgrade Strawberry Perl v5.12.3.0 x64 library:
#

Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.12/*.zip:

Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip

unpack it to
c:\sb\

Save to c:\sb\portableshell.bat :
==
@echo off
set drive=%~dp0
set drivep=%drive%
If $#\#$==$#%drive:~-1%#$ set drivep=%drive:~0,-1%
set PATH=%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c\bin;%PATH%
set TERM=dumb
echo ----------------------------------------------
echo Welcome to Strawberry Perl Portable Edition!
echo * URL - http://www.strawberryperl.com/
echo * see README.portable.TXT for more info
echo ----------------------------------------------
perl -e "printf("""Perl executable: %%s\nPerl version : %%vd\n""", $^X, $^V)" 2>nul
if ERRORLEVEL==1 echo.&echo FATAL ERROR: 'perl' does not work; check if your strawberry pack is complete!
echo.
cmd
==

#{
# Old:
#
Download:

http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-portable.zip

unpack only portableshell.bat from it to
c:\sb\
#
#
#}

Run:
portableshell.bat

In portableshell.bat shell:

set PERL_MM_USE_DEFAULT=1

cpanp s save system
===
C:\sb>cpanp s save system
Configuration successfully saved to CPANPLUS::Config::System
(C:\sb\perl\lib\CPANPLUS\Config\System.pm)
===

cpanp s edit system

Replace
strawberryperl to sb
==
$conf->set_conf( base => 'C:\\sb\\cpanplus' );
==

If found:
==
$conf->set_conf( signature => 1 );
==
replace to
==
$conf->set_conf( signature => 0 );
==

Save file.

cpanp i IPC::Run

cpanp i Perl::Dist::Strawberry

cpanp i Perl::Dist::WiX::BuildPerl::5123
cpanp i Perl::Dist::Strawberry::BuildPerl::5123

GoTo:
C:\sb\perl\site\lib\Perl\Dist\Strawberry\

rename
Libraries.pm
to
Libraries.pm.Orig

apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Tue Jun 07 15:50:35 2011
+++ Libraries.pm Tue Jun 07 16:35:51 2011
@@ -127,6 +127,9 @@
'freeglut' => '32bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
'libssh2' => '32bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
},
+#{ VVM 2011-06-07 16-35
+#
+#
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
'mysql589' => undef,
@@ -146,29 +149,34 @@
'pari5121' => undef,
'pari5122' => undef,
'pari5123' => undef,
- 'zlib' => '64bit-gcc4/zlib-1.2.3-bin_20100110.zip',
- 'libiconv' => '64bit-gcc4/libiconv-1.13.1-bin_20100110.zip',
- 'libxml2' => '64bit-gcc4/libxml2-2.7.3-bin_20100110.zip',
- 'libexpat' => '64bit-gcc4/expat-2.0.1-bin_20100110.zip',
- 'gmp' => '64bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20100306.zip',
- 'libxslt' => '64bit-gcc4/libxslt-1.1.26-bin_20100111.zip',
- 'libjpeg' => '64bit-gcc4/jpeg-6b-gnuwin32-bin_20100110.zip',
- 'libgif' => '64bit-gcc4/giflib-4.1.6-bin_20100110.zip',
- 'libpng' => '64bit-gcc4/libpng-1.2.40-bin_20100110.zip',
- 'libtiff' => '64bit-gcc4/tiff-3.9.1-bin_20100110.zip',
- 'libgd' => '64bit-gcc4/gd-2.0.35-bin_20100110.zip',
- 'libfreetype' => '64bit-gcc4/freetype-2.3.11-bin_20100110.zip',
- 'libopenssl' => '64bit-gcc4/openssl-1.0.0-beta4-bin_20100110.zip',
- 'libpostgresql' => '64bit-gcc4/postgresql-8.4.1-bin_20100110.zip',
- 'libdb' => '64bit-gcc4/db-4.8.24-bin_20100110.zip',
- 'libgdbm' => '64bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '64bit-gcc4/libXpm-3.5.8-bin_20100110.zip',
- 'libxz' => '64bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '64bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '64bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '64bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '64bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '64bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+ 'zlib' => 'kmx/64_libs/5.12/64bit_zlib-1.2.5-bin_20110507.zip',
+ 'libiconv' => 'kmx/64_libs/5.12/64bit_libiconv-1.13.1-sezero20110428-bin_20110507.zip',
+ 'libxml2' => 'kmx/64_libs/5.12/64bit_libxml2-2.7.8-bin_20110507.zip',
+ 'libexpat' => 'kmx/64_libs/5.12/64bit_expat-2.0.1-sezero20110428-bin_20110507.zip',
+ 'gmp' => 'kmx/64_libs/5.12/64bit_gmp-5.0.1-bin_20110507.zip',
+ 'libxslt' => 'kmx/64_libs/5.12/64bit_libxslt-1.1.26-bin_20110507.zip',
+ 'libjpeg' => 'kmx/64_libs/5.12/64bit_jpeg-8c-bin_20110507.zip',
+ 'libgif' => 'kmx/64_libs/5.12/64bit_giflib-4.1.6-bin_20110507.zip',
+ 'libpng' => 'kmx/64_libs/5.12/64bit_libpng-1.5.2-bin_20110507.zip',
+ 'libtiff' => 'kmx/64_libs/5.12/64bit_tiff-3.9.5-bin_20110507.zip',
+ 'libgd' => 'kmx/64_libs/5.12/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110507.zip',
+ 'libfreetype' => 'kmx/64_libs/5.12/64bit_freetype-2.4.4-bin_20110507.zip',
+ 'libopenssl' => 'kmx/64_libs/5.12/64bit_openssl-1.0.0d-bin_20110507.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.12/64bit_postgresql-9.0.4-bin_20110507.zip',
+ 'libdb' => 'kmx/64_libs/5.12/64bit_db-5.1.25-bin_20110507.zip',
+ 'libgdbm' => 'kmx/64_libs/5.12/64bit_gdbm-1.8.3-bin_20110507.zip',
+ 'libxpm' => 'kmx/64_libs/5.12/64bit_libXpm-3.5.9-bin_20110507.zip',
+ 'libxz' => 'kmx/64_libs/5.12/64bit_xz-5.0.2-bin_20110507.zip',
+ 'mpc' => 'kmx/64_libs/5.12/64bit_mpc-0.9-bin_20110507.zip',
+ 'mpfr' => 'kmx/64_libs/5.12/64bit_mpfr-3.0.1-bin_20110507.zip',
+ 'libmysql' => 'kmx/64_libs/5.12/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.12/64bit_freeglut-2.6.0-bin_20110507.zip',
+ 'libssh2' => 'kmx/64_libs/5.12/64bit_libssh2-1.2.8-bin_20110507.zip',
+#
+#
+#}
+
},
};
===

GoTo:
C:\sb\perl\site\lib\Perl\Dist\

rename
WiX.pm
to
WiX.pm.Orig

apply patch to WiX.pm:

===
>diff -u WiX.pm.Orig WiX.pm
--- WiX.pm.Orig Sun Jun 05 15:17:58 2011
+++ WiX.pm Tue Jun 07 17:23:36 2011
@@ -725,16 +725,16 @@
isa => subtype(
'Int' => where {
if ( not defined $_ ) {
- $_ = 32;
+ $_ = 64;
}

- $_ == 32 or $_ == 64;
+ $_ == 64 or $_ == 64;
},
message {
'Not 32 or 64-bit';
},
),
- default => 32,
+ default => 64,
);
===

Run

%SystemRoot%\system32\cmd.exe /c C:\sb\perl\site\bin\perldist_strawberry.bat --output C:\strawberry --skip 1 --skip 2 --skip 3

# { Or
#%SystemRoot%\system32\cmd.exe /c C:\sb\perl\bin\perl.exe -x -S perldist_strawberry.pl --output C:\strawberry --skip 1 --skip 2 --skip 3
# }

Go to directory:
C:\tmp\output\

rename strawberry-perl-5.12.3.0-64bit.msi strawberry-perl-5.12.3.0-64bit-build-2011-06-07.msi
rename strawberry-perl-5.12.3.0-64bit.zip strawberry-perl-5.12.3.0-64bit-build-2011-06-07.zip

Copy this files from C:\tmp\

#
#
#}

At this moment Berkeley DB 5.1.25 is installed:
===
Jun-08-11 12:12:34 [init] DB_File module version 1.822 installed - DB_File (Berkeley V1) database usage available
Jun-08-11 12:12:34 [init] BerkeleyDB module version 0.43 installed - Berkeley database usage available
Jun-08-11 12:12:34 [init] BerkeleyDB DB-version 5.1 / Berkeley DB 5.1.25: (January 28, 2011) is installed
===

#
#
#}

Unpack strawberry-perl-5.12.3.0-64bit-build-2011-06-07.zip to
C:\strawberry\

( If you use another directory,
in the near future you will need to reconfigure CPAN ( and CPANPlus ) )

Run "update_env.pl.bat" for:
{
1) Add to %Path%
Path=%Path%;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin
2) Configure enviroment variable TERM:
TERM=dumb
}

Configure enviroment variable:

INCLUDE=C:\BIN\ImageMagick\include\magick;C:\strawberry\perl\lib\CORE;C:\strawberry\c\x86_64-w64-mingw32\include;C:\strawberry\c\include
LIB=C:\BIN\ImageMagick\lib;C:\strawberry\perl\bin;C:\strawberry\c\lib

#{
# OpenSSL:
# 1) copy libeay32.a libcrypto.dll.a
# 2) copy libssl32.a libssl.dll.a
# 3) copy libcrypto.dll.a libcrypto.a
# 4) copy libssl.dll.a libssl.a
# 5) Unpack lib\engines\*.dll from package/kmx/tmp-for-victor/out_openssl-1.0.0d(64bit-5.12).zip
#

Go to directory:
C:\strawberry\c\lib\

copy libeay32.a libcrypto.dll.a
copy libssl32.a libssl.dll.a

# {
# Not need: "copy libssleay32.a libssl32.a"
#
Screenshot:
===
C:\strawberry\c\lib>fc libssleay32.a libssl32.a
Comparing files libssleay32.a and LIBSSL32.A
FC: no differences encountered
===

#
#
# }

copy libcrypto.dll.a libcrypto.a
copy libssl.dll.a libssl.a

Download:

http://strawberryperl.com/package/kmx/tmp-for-victor/out_openssl-1.0.0d(64bit-5.12).zip

Unpack to temporary folder

Copy
lib\engines\*.dll
(
i.e.
4758ccaeay32.dll
aepeay32.dll
atallaeay32.dll
capieay32.dll
chileay32.dll
cswifteay32.dll
gmpeay32.dll
gosteay32.dll
nuroneay32.dll
padlockeay32.dll
surewareeay32.dll
ubseceay32.dll
)
to
C:\strawberry\c\lib\engines\

#
#
# }

#
#
#}

# {
# Start part of command related only to ASSP_OCR
#

About ImageMagick on Strawberry Perl:
"Win32 binaries & strawberry perl"

http://www.imagemagick.org/discourse-server/viewtopic.php?f=7&t=14814

ImageMagick prerequisites:
==
# Please check the following prerequisites:
#
# 1) You need to have installed ImageMagick Windows binaries from
# http://www.imagemagick.org/script/binary-releases.php#windows
#
# 2) We only support dynamic (DLL) ImageMagick binaries
# note: it is not possible to mix 32/64-bit binaries of perl and ImageMagick
==

Download ImageMagick "Win64 dynamic" binary installer:

http://www.imagemagick.org/download/binaries/ImageMagick-6.6.9-9-Q16-windows-x64-dll.exe

Or look latest version on:

http://www.imagemagick.org/script/binary-releases.php

( but if you use nevest version of installer, you need use related source code see later about "ImageMagick-6.6.9-9.7z")

Install it to directory:
C:\BIN\ImageMagick

Do not forget:
==
# 3) During installation select that you want to install ImageMagick's
# development files (libraries+headers)
==

But not install Perl modules for ActivePerl ( see later about "ImageMagick-6.6.9-9.7z")

Check for correct install by run:
identify -list Configure 2>nul || convert -list Configure 2>nul

Screenshot:
==
C:\Program Files\Far>identify -list Configure 2>null || convert -list Configure 2>null

Path: [built-in]

Name Value
-------------------------------------------------------------------------------
NAME ImageMagick

Path: C:\BIN\ImageMagick\config\configure.xml

Name Value
-------------------------------------------------------------------------------
. . .
==

If you not see:
===
Path: C:\BIN\ImageMagick\config\configure.xml
===
ImageMagick not correct installed and you can't install Image::Magick ( PerlMagick)

#
# Not need: Copy "C:\BIN\ImageMagick\include\magick\" to "C:\strawberry\perl\lib\CORE\magick\*.*"
#

Download
ftp://ftp.imagemagick.org/pub/ImageMagick/pub/ImageMagick/ImageMagick-6.6.9-9.7z

If exits directory
C:\BIN\ImageMagick\PerlMagick
rename ( or move) it to
C:\BIN\ImageMagick\PerlMagick-0

UnPack from ImageMagick-6.6.9-9.7z subdirectory \ImageMagick-6.6.9-9\PerlMagick\*.* to
C:\BIN\ImageMagick\PerlMagick

#
# End part of command related only to ASSP_OCR
# }

For installation of modules we will use CPANPlus ( cpanp)

User guide for CPANPlus:

http://perldoc.perl.org/CPANPLUS/Shell/Default.html

Run:
cpanp x

Download and extract by run:
cpanp i IPC::Run --skiptest
cpanp i Win32::Console

#{
# Fix by Win32_IPHelper_64bit.diff : "Need set DNS Server in assp.cfg"
#

For fix this issue:
===
Apr-15-11 16:42:17 [Worker_10000] Warning: Name Server p�: does not respond or timed out
Apr-15-11 16:42:17 [Worker_10000] ERROR: !!!! no answering DNS-SERVER found !!!!
===

Run:
cpanp i enum

Download and extract Win32-IPHelper-0.06 by run:

cpanp z Win32::IPHelper

See about Win32_IPHelper_64bit.diff :

https://rt.cpan.org/Public/Bug/Display.html?id=59790

Go to directory:
C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06\

Save to file Win32_IPHelper_64bit.diff this text:
===
--- IPHelper.pm.1 2008-07-23 19:35:36.000000000 -0400
+++ IPHelper.pm 2011-02-09 22:05:58.000000000 -0500
@@ -9,6 +9,7 @@
use Win32;
use Win32::API;
use enum;
+use Config ();

require Exporter;

@@ -60,6 +61,7 @@
my $GetExtendedTcpTable = new Win32::API ('Iphlpapi', 'GetExtendedTcpTable', ['P', 'P', 'N', 'N', 'N', 'N'], 'N');
my $GetExtendedUdpTable = new Win32::API ('Iphlpapi', 'GetExtendedUdpTable', ['P', 'P', 'N', 'N', 'N', 'N'], 'N');

+my $PTR_SIZE = $Config::Config{ptrsize};

# Preloaded methods go here.

@@ -1451,12 +1453,12 @@
sub _IP_ADAPTER_INFO
{
my ($buffer, $pos) = @_;
- my $size = 640;
+ my $size = $PTR_SIZE + 636;
my %hash;
my @array;
my $next;

- ($pos, $next) =_shiftunpack($buffer, $pos, 4, "P".$size);
+ ($pos, $next) =_shiftunpack($buffer, $pos, $PTR_SIZE, "P".$size);

($pos, $hash{'ComboIndex'}) = _shiftunpack($buffer, $pos, 4, "L");
($pos, $hash{'AdapterName'}) = _shiftunpack($buffer, $pos, (MAX_ADAPTER_NAME_LENGTH + 4), "Z" . (MAX_ADAPTER_NAME_LENGTH + 4));
@@ -1499,6 +1501,29 @@
}

#######################################################################
+# _ADDR_STRING_STRUCT_SIZE
+#
+# Constant for the size of a IP_ADDR_STRING/PIP_ADDR_STRING struct.
+# This varies depending on whether it is running in 32bit or 64bit perl
+#
+#######################################################################
+# Usage:
+# $size = _ADDR_STRING_STRUCT_SIZE;
+#
+# Output:
+# $size - size of the structs
+#
+# Input:
+# None
+#######################################################################
+sub _ADDR_STRING_STRUCT_SIZE() {
+ return $PTR_SIZE # struct *
+ + 16 # char[16]
+ + 16 # char[16]
+ + 4; # DWORD
+}
+
+#######################################################################
# _IP_ADDR_STRING()
#
# Decodes an _IP_ADDR_STRING data structure and returns data
@@ -1533,12 +1558,12 @@
sub _IP_ADDR_STRING
{
my ($buffer, $pos) = @_;
- my $size = 40;
+ my $size = _ADDR_STRING_STRUCT_SIZE;
my %hash;
my @array;
my $next;

- ($pos, $next) = _shiftunpack($buffer, $pos, 4, "P".$size);
+ ($pos, $next) = _shiftunpack($buffer, $pos, $PTR_SIZE, "P".$size);

($pos, $hash{'IpAddress'}) = _shiftunpack($buffer, $pos, 16, "Z16");
($pos, $hash{'IpMask'}) = _shiftunpack($buffer, $pos, 16, "Z16");
@@ -1695,7 +1720,8 @@
($pos, $hash{'DomainName'}) = _shiftunpack($buffer, $pos, MAX_DOMAIN_NAME_LEN + 4, "Z".(MAX_DOMAIN_NAME_LEN + 4));

my $CurrentDnsServer;
- ($pos, $CurrentDnsServer) = _shiftunpack($buffer, $pos, 4, "P40");
+ my $size = _ADDR_STRING_STRUCT_SIZE;
+ ($pos, $CurrentDnsServer) = _shiftunpack($buffer, $pos, $PTR_SIZE, "P".$size);
if ($CurrentDnsServer)
{
@{ $hash{'CurrentDnsServer'} } = _IP_ADDR_STRING(\$CurrentDnsServer, 0);
===

#
# De-facto this is Win32_IPHelper_64bit.diff from https://rt.cpan.org/Ticket/Attachment/895196/464097/Win32_IPHelper_64bit.diff
# but with fixed "Halt with "patch.c, Line 354" if "file has CRs and CR-LFs." => convert the line endings to CR-LF" problem.
#

Rename "IPHelper.pm" to "IPHelper.pm.Orig" :
rename "IPHelper.pm" "IPHelper.pm.Orig"

Apply .diff :
patch "IPHelper.pm.Orig" -i Win32_IPHelper_64bit.diff -o "IPHelper.pm"

Swith to cpanp process ( if need) and run:
cpanp i .

Exit from cpan shell by run:
Exit

#
#
#}

#{
# OpenSSL related:
#

#{
# Not need ( need may be only for test purpose):
#cpanp i Crypt::OpenSSL::AES
#
#
#}

Download and extract Crypt-OpenSSL-Random-0.04_patched.tar.gz by run:
cpanp i http://strawberryperl.com/package/kmx/perl-modules-patched/Crypt-OpenSSL-Random-0.04_patched.tar.gz

# {
# Old Var
#

Download and extract Crypt-OpenSSL-Random-0.04.tar.gz by run:

cpanp z Crypt::OpenSSL::Random

Not close command line, but run editor as another process

Open C:\strawberry\cpanplus\5.12.3\build\Crypt-OpenSSL-Random-0.04\Makefile.PL in editor
replace
==
'LIBS' => ['-lssl -lcrypto'], # e.g., '-lm'
==
to
==
'LIBS' => ($^O eq 'MSWin32') ? ['-lssl32 -leay32'] : ['-lssl -lcrypto'],
==

as described in

http://www.nntp.perl.org/group/perl.win32.vanilla/2010/04/msg219.html

===
...
you need to patch Makefile.PL (for both Crypt-OpenSSL-Random and Crypt-OpenSSL-RSA) in this way:

- 'LIBS' => ['-lssl -lcrypto'],
+ 'LIBS' => ($^O eq 'MSWin32') ? ['-lssl32 -leay32'] : ['-lssl -lcrypto'],
...
===

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i .

Exit from cpan shell by run:
Exit

#
#
# }

Download and extract Crypt-OpenSSL-RSA-0.26_patched.tar.gz by run:
cpanp i http://strawberryperl.com/package/kmx/perl-modules-patched/Crypt-OpenSSL-RSA-0.26_patched.tar.gz

# {
# Old Var
#

Download and extract Crypt-OpenSSL-RSA-0.26.tar.gz by run:

cpanp z Crypt::OpenSSL::RSA

Not close command line, but run editor as another process

Open C:\strawberry\cpanplus\5.12.3\build\Crypt-OpenSSL-RSA-0.26\Makefile.PL in editor
replace
==
'LIBS' => ['-lssl -lcrypto'], # e.g., '-lm'
==
to
==
'LIBS' => ($^O eq 'MSWin32') ? ['-lssl32 -leay32'] : ['-lssl -lcrypto'],
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i .

Exit from cpan shell by run:
Exit

#
#
# }
===

#{
# Not need ( need may be only for test purpose):
#cpanp i Net::SSLeay
#
#
#}

#
#
#}

Download and extract Net-DNS-0.66_patched.tar.gz by run:
cpanp i http://strawberryperl.com/package/kmx/perl-modules-patched/Net-DNS-0.66_patched.tar.gz

#{
# De-facto:
#
rename netdns.h netdns.h.Orig

Apply "netdns.h.Orig.kmx--perl-modules-patched.Diff" :
==
--- netdns.h.Orig Wed Dec 30 13:01:39 2009
+++ netdns.h Thu Apr 29 16:03:44 2010
@@ -1,5 +1,5 @@
#include
-#if defined(_MSC_VER) || defined(__MINGW32_VERSION)
+#if defined(_MSC_VER) || defined(__MINGW32__)
typedef unsigned char u_char;
#endif
#define TESTVAL 4
==

#
#
#}

# {
# Old Var
#

Download and extract this module:
cpanp z Net::DNS

Not close command line, but run editor as another process

Open C:\strawberry\cpanplus\5.12.3\build\Net-DNS-0.66\netdns.h in editor
replace
==
#if defined(_MSC_VER) || defined(__MINGW32_VERSION)
==
to
==
#if defined(_MSC_VER) || defined(__MINGW32_VERSION) || defined(__MINGW32__)
==

as described in

http://rt.cpan.org/Public/Bug/Display.html?id=57039

For install Net-DNS run:
cpanp i C:\strawberry\cpanplus\5.12.3\build\Net-DNS-0.66

Answer 2 times "y" to continue

#
#
# }

Run:
cpanp i Win32::Daemon

Force install:

cpanp i Time::ParseDate --skiptest
cpanp i File::Scan::ClamAV --skiptest

#{ 2011-05-25 18-32:
# Not need ( need may be only for test purpose):
#cpanp i Mail::DKIM
#
#
#}

# {
# Start part of command related only to ASSP_OCR
#

Save to "ASSP_OCR_prerequisites.cmd"

==
rem # { Need for LEOCHARRE::CLI
cmd /c cpanp i LEOCHARRE::Debug
cmd /c cpanp i Linux::usermod
rem # }

rem # { Need for File::PathInfo
cmd /c cpanp i LEOCHARRE::Class2
cmd /c cpanp i Time::Format --skiptest
cmd /c cpanp i Smart::Comments
rem # }

rem # { Need for File::PathInfo::Ext
cmd /c cpanp i File::Type
rem # }

rem # { Need for LEOCHARRE::CLI2
cmd /c cpanp i Devel::Symdump
cmd /c cpanp i Getopt::Std::Strict
cmd /c cpanp i String::ShellQuote
cmd /c cpanp i LEOCHARRE::Dir --skiptest
rem # }

rem # { Need for PDF::OCR2
cmd /c cpanp i CAM::PDF
cmd /c cpanp i PDF::API2
cmd /c cpanp i PDF::Burst --skiptest
rem # }
==

Run:
ASSP_OCR_prerequisites.cmd

Download and extract LEOCHARRE-CLI-1.19.tar.gz by run:

cpanp z LEOCHARRE::CLI

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\LEOCHARRE-CLI-1.19\Makefile.PL
in editor
replace
==
if( $^O=~/mswin32/i ) { print("OS unsupported") and exit; }
==
to
==
# Skip Win Os check # if( $^O=~/mswin32/i ) { print("OS unsupported") and exit; }
==

Save file Makefile.PL

Create directory c:\tmp
md c:\tmp
or run not "cpanp i ." but "cpanp i . --skiptest"

Swith to cpanp process and run:
cpanp i .

Exit from cpan shell by run:
Exit

Run:
cpanp z File::PathInfo

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\File-PathInfo-1.27\Makefile.PL
in editor

replace
==
if( $^O=~/mswin32|cygwin/i ){ die("Unsupported OS."); }
==
to
==
# Skip Win Os check # if( $^O=~/mswin32|cygwin/i ){ die("Unsupported OS."); }
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i .

Exit from cpan shell by run:
Exit

Run:
cpanp z File::PathInfo::Ext

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\File-PathInfo-Ext-1.30\Makefile.PL
in editor

replace
==
if( $^O=~/mswin32/i ){ print "Operating System Unsupported." and exit; }
==
to
==
# Skip Win Os check # if( $^O=~/mswin32/i ){ print "Operating System Unsupported." and exit; }
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i . --skiptest

Exit from cpan shell by run:
Exit

Run:
cpanp z LEOCHARRE::CLI2

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\LEOCHARRE-CLI2-1.16\Makefile.PL
in editor

replace
==
$^O=~/win32|mswin/i and die("OS not supported.\n");
==
to
==
# Skip Win Os check # $^O=~/win32|mswin/i and die("OS not supported.\n");
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i .

Exit from cpan shell by run:
Exit

Run:
cpanp z PDF::GetImages

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\PDF-GetImages-1.17\Makefile.PL
in editor

replace
==
use lib './inc';
use Devel::AssertOS qw/Unix/;
use Devel::AssertEXE qw/pdfimages/;
==
to
==
# Skip Win Os check # use lib './inc';
# Skip Win Os check # use Devel::AssertOS qw/Unix/;
# Skip Win Os check # use Devel::AssertEXE qw/pdfimages/;
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i . --skiptest

Exit from cpan shell by run:
Exit

Run:
cpanp z Image::OCR::Tesseract

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\Image-OCR-Tesseract-1.24\Makefile.PL
in editor

replace
==
use lib inc; #__assertexe__#
use Devel::AssertOS qw(Unix Linux);
use Devel::AssertEXE qw(tesseract convert); #__assertexe__#
==
to
==
# Skip Win Os check # use lib inc; #__assertexe__#
# Skip Win Os check # use Devel::AssertOS qw(Unix Linux);
# Skip Win Os check # use Devel::AssertEXE qw(tesseract convert); #__assertexe__#
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i .

Download and extract PDF-OCR2-1.20.tar.gz by run:

cpanp z PDF::OCR2

Not close command line, but run editor as another process

Open
C:\strawberry\cpanplus\5.12.3\build\PDF-OCR2-1.20\Makefile.PL
in editor
replace
==
$^O=~/win32|mswin/i and die("OS not supported.\n");
==
to
==
# Skip Win Os check # $^O=~/win32|mswin/i and die("OS not supported.\n");
==

Save file Makefile.PL

Swith to cpanp process and run:
cpanp i . --skiptest

Exit from cpan shell by run:
Exit

Run for install Image::Magick :

cpanp i C:\BIN\ImageMagick\PerlMagick

#
# End part of command related only to ASSP_OCR
# }

Create C:\assp
md C:\assp

Extract to it from ASSP_2.0.1_3.0.14_install.zip subdir \assp\

Upgrade assp.pl to latest version

Extract mod_inst.pl from assp.mod.zip to C:\assp\

Open by editor mod_inst.pl
replace
==
"MSWin32"
==
to
==
"SkipCheckOfMSWin32"
==

replace
==
$cmd = "cpan
==
to
==
$cmd = "cpanp i
==

Save file

cd C:\assp\

Run
perl mod_inst.pl

Answer "y" to all ask a-la "Continue anyway?"

Install ASSP as service by run:
perl assp.pl c:\assp -i

Screenshot:
==
C:\assp>perl assp.pl c:\assp -i
ASSP 2.0.2(3.0.19) is starting in directory c:/assp
on host YoureComputerName
using Perl C:\strawberry\perl\bin\perl.exe version 5.012003 (5.12.3)
compiling code please wait .....ASSP service successfully added.

. . .
==

3 комментария to “Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64”

Leave a Reply

*
Для того, чтобы убедиться что Вы человек, а не спам-бот, введите пожалуйста ответ.
Анти-спам выражение.

Copyright © 2013 Виктор Мясников ( Victor Miasnikov). Search Engine Optimization by Star Nine. Distributed by Wordpress Themes
Хостинг hoster.by   Сервис белорусских блогов: BLOGS.TUT.BY