Archive for the ‘ASSP’ Category
HowTo: Strawberry Perl v5.12.3 x64 upgrade to OpenSSL v1.0.0d from "OpenSSL 1.0.0-beta4"
2011-06-07 17-41:
Better method
See later:
Update strawberry-perl-5.12.3.0-64bit.zip library to kmx/64_libs/5.12/*.zip:
2011-06-02 13-02:
See later:
Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way?
Full enviroment see:
Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64
———————–
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 OpenSSL:
Download
MSYS-20110526.zip
from
http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/
Unpack to
C:\msys\
Run msys postinstall script:
c:\msys\postinstall\pi.bat
===
"Do you have MinGW installed? [yn ] "
===
Answer that your mingw is "c:/strawberry/c" :
==
c:/strawberry/c
==
Download
ftp://ftp.openssl.org/source/openssl-1.0.0d.tar.gz
copy it to
C:\msys\
Run:
C:\msys\msys.bat
Swith to MSYS shell
Unpack openssl-1.0.0d.tar.gz :
tar xfhz openssl-1.0.0d.tar.gz
cd /openssl-1.0.0d
Run:
./configure mingw64 shared no-asm no-hw --openssldir=/openssl
make
make test
make install
Close MSYS shell
Copy
C:\msys\openssl
to
C:\openssl
Rename
C:\strawberry\c\include\openssl
to
C:\strawberry\c\include\openssl-Orig
Copy
C:\openssl\include\openssl
to
C:\strawberry\c\include\openssl
Create dir:
md C:\strawberry\c\bin\openssl-Orig
Move files
openssl.exe
libeay32__.dll
ssleay32__.dll
to
C:\strawberry\c\bin\openssl-Orig\
Copy
C:\openssl\bin\*.exe
C:\openssl\bin\*.dll
( i.e.
libeay32.dll
openssl.exe
ssleay32.dll
)
to
C:\strawberry\c\bin\
Create dir:
md C:\strawberry\c\lib\lib--openssl-Orig
Move files
libeay32.a
libssl32.a
libssleay32.a
to
C:\strawberry\c\lib\lib--openssl-Orig\
Copy
C:\openssl\lib\*.a
( i.e.
libcrypto.a
libcrypto.dll.a
libssl.a
libssl.dll.a
)
to
C:\strawberry\c\lib\
Copy
C:\OpenSSL\lib\pkgconfig\*.pc
( i.e.
libcrypto.pc
libssl.pc
openssl.pc
)
to
C:\strawberry\c\lib\pkgconfig\
Run:
cpanp i IPC::Run
De-install old version
cpanp u Crypt::SSLeay
Download and extract module by run:
cpanp z Crypt::SSLeay
Not close command line, but run editor as another process
Open C:\strawberry\cpanplus\5.12.3\build\Crypt-SSLeay-0.58\Makefile.PL in editor
replace
==
-lssleay32 -llibeay32
==
to
==
-lssl -lcrypto
==
Save file Makefile.PL
Swith to cpanp process and run:
cpanp i
Exit from cpan shell by run:
Exit
P.S.
Net::SSLeay fix:
Download and extract module by run:
cpanp z Net::SSLeay
Not close command line, but run editor as another process
Open C:\strawberry\cpanplus\5.12.3\build\Net-SSLeay-1.36\inc\Module\Install\PRIVATE\Net\SSLeay.pm in editor
replace
==
ssleay32 libssl32
==
to
==
ssl crypto
==
Save file.
Swith to cpanp process and run:
cpanp i
Exit from cpan shell by run:
Exit
P.P.S.
After upgrade not need fix:
Crypt::OpenSSL::AES
Crypt::OpenSSL::RSA
i.e. this not need:
===Download and extract Crypt-OpenSSL-AES-0.02.tar.gz by run:
cpanp z Crypt::OpenSSL::AES
Not close command line, but run editor as another process
Open C:\strawberry\cpanplus\5.12.3\build\Crypt-OpenSSL-AES-0.02\Makefile.PL in editor
replace
==
LIBS => ['-lcrypto'], # e.g., '-lm'
==
to
==
LIBS => ($^O eq 'MSWin32') ? ['-leay32'] : ['-lcrypto'],
==Save file Makefile.PL
Swith to cpanp process and run:
cpanp i .Exit from cpan shell by run:
ExitDownload 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:
perl Makefile.PL
dmake
dmake test
dmake installExit 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:
perl Makefile.PL
dmake
dmake test
dmake installExit from cpan shell by run:
Exit#
#
# }
===
This
==
cpanp i Crypt::OpenSSL::AES
cpanp i Crypt::OpenSSL::RSA
==
work as need.
—————————–
2011-06-02 13-02:
http://www.mail-archive.com/win32-vanilla@perl.org/msg00301.html
===
----- Original Message -----
From: "Victor Miasnikov"
To: win32-vanilla(at)perl.org
Sent: Thursday, June 02, 2011 1:02 PM
Subject: Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way? Fw: HowTo: Strawberry Perl v5.12.3 x64 upgrade to OpenSSL v1.0.0d from "OpenSSL 1.0.0-beta4"
Hi!
Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way?
--
a) "-lssleay32 -llibeay32" Way:
At this moment in strawberry-perl-5.12.3.0-64bit / 5.12.2.0 and in 64bit_openssl-1.0.0d-bin_20110507.zip :
==
libeay32__.dll
ssleay32__.dll
libeay32.a
libssl32.a
libssleay32.a
==
In Makefile.PL need use "-lssleay32 -llibeay32"
need fix in:
Crypt::OpenSSL::AES
Crypt::OpenSSL::RSA
Crypt::OpenSSL::Random
etc.
http://www.perlmonks.org/?node_id=815160
==
by syphilis (Abbot)
on Jan 01, 2010 at 08:20 UTCI certainly didn't expect Strawberry to go with *that* naming convention for their openssl libraries.
I expected they would stick with the more general '-lssl -lcrypto' nomenclature (which is what mingw builds for native win32 in the msys shell) .... but I was wrong.
I guess they have good reason(s) for doing that.
==
b) "-lssl -lcrypto" Way:
HowTo: Strawberry Perl v5.12.3 x64 upgrade to OpenSSL v1.0.0d from "OpenSSL 1.0.0-beta4"
http://vvm.blog.tut.by/2011/06/01/howto-strawberry-perl-v5-12-3-x64-upgrade-to-openssl-v1-0-0d-from-openssl-1-0-0-beta4/
==
. . .
MSYS-20110526.zip
fromhttp://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/
. . .
ftp://ftp.openssl.org/source/openssl-1.0.0d.tar.gz
. . .
tar xfhz openssl-1.0.0d.tar.gz
. . .
cd /openssl-1.0.0dRun:
./configure mingw64 shared no-asm no-hw --openssldir=/openssl
make
make test
make install
. . .
==
The result of compilation:
==
libeay32.dll
ssleay32.dll
libcrypto.a
libcrypto.dll.a
libssl.a
libssl.dll.a
==
In Makefile.PL need use "-lssl -lcrypto"
need fix in:
Crypt::SSLeay
Net::SSLeay
but not need fix in:
Crypt::OpenSSL::AES
Crypt::OpenSSL::RSA
Crypt::OpenSSL::Random
I.e. fixed
http://www.mail-archive.com/win32-vanilla@perl.org/msg00217.html
==
kmx
Sat, 10 Apr 2010 00:20:41 -0700
. . .
I have created the following bug reports:
1/ http://rt.cpan.org/Public/Bug/Display.html?id=56454
2/ http://rt.cpan.org/Public/Bug/Display.html?id=56455
feel free to post some supportive comments to those RTs
==
Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way?
Best regards, Victor Miasnikov
===
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
http://www.mail-archive.com/win32-vanilla@perl.org/msg00302.html
===
----- Original Message -----
From: "kmx"
To: win32-vanilla(at)perl.org
Sent: Thursday, June 02, 2011 1:59 PM
Subject: Re: Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way? Fw: HowTo: Strawberry Perl v5.12.3 x64 upgrade to OpenSSL v1.0.0d from "OpenSSL 1.0.0-beta4"
Hi Victor,
> a) "-lssleay32 -llibeay32" Way:
>
> At this moment in strawberry-perl-5.12.3.0-64bit / 5.12.2.0 and in 64bit_openssl-1.0.0d-bin_20110507.zip :
> ==
> libeay32__.dll
> ssleay32__.dll
> libeay32.a
> libssl32.a
> libssleay32.a
> ==
I can give an explanation as I have prepared this part of strawberry perl.
a/ libeay32.a (+libeay32__.dll) is analogy for UNIXish -lcrypto
b/ libssl32.a == libssleay32.a (+ssleay32__.dll) is analogy for UNIXish -lssl
The trouble is that openssl has 2 different way for building MSWindows/gcc
libraries - one via Configure+make; the second via mingw32.bat.
Unfortunately each way creates *.a files with different names
*/ Configure+make creates
- libcrypto.dll.a
- libcrypto.a
- libssl.dll.a
- libssl.a
*/ mingw32.bat creates
- libeay32.a (= libcrypto.dll.a)
- libcrypto.a
- libssl32.a (= libssl.dll.a)
- libssl.a
On top of that you have also MS compiler (cl/msvc) in MS Windows world
which uses also different library names: libeay32*.lib ssleay32*.lib (from
here probably comes "-lssleay32 -llibeay32" which should be fine with MS
compiler)
Things get a little bit more complicated by the fact that the more-or-less
official openssl Win32 binaries distribution (see
http://www.openssl.org/related/binaries.html) contains also mingw/gcc *.a
libraries - however named: libeay32.a + ssleay32.a (which does not
correspond to the results produced by the mingw.bat from official openssl
tarball). Please note that ssleay32.a is not libssleay32.a thus linker will
not find it when given -lssleay32 - this is IMHO the main source of
confusion about the right lib names.
What we have done in strawberry was to use naming convention
libeay32.a/libssl32.a + a little trick to copy libssl32.a to libssleay32.a
- at that time it seemed to be a way how to satisfy most of the modules on
cpan using different -lssleay32/-lssl32/-leay32 linker options
I do not feel to have an authority to say what is the best/right/correct
way but I would keep the naming convention of the original openssl
distribution and use: -lssl32 -leay32 for MSWindows+gcc compiler (which
works with openssl included in strawberry perl however not with *.a mingw
libraries that are part of the openssl Win32 binaries distribution).
--
kmx
===
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
http://www.mail-archive.com/win32-vanilla@perl.org/msg00303.html
===
----- Original Message -----
From: "Victor Miasnikov"
To: "kmx" ; win32-vanilla(at)perl.org
Sent: Thursday, June 02, 2011 4:29 PM
Subject: Re: Which way is the true way, and what not? "-lssleay32 -llibeay32" Way? Or "-lssl -lcrypto" Way? Fw: HowTo: Strawberry Perl v5.12.3 x64 upgrade to OpenSSL v1.0.0d from "OpenSSL 1.0.0-beta4"
Hi!
> The trouble is that openssl has 2 different way for building MSWindows/gcc libraries
> - one via Configure+make;
> the second via mingw32.bat.
> . . . the more-or-less official openssl Win32 binaries distribution
> (see http://www.openssl.org/related/binaries.html) contains also
>mingw/gcc *.a libraries - however named: libeay32.a + ssleay32.a . . .
Well . . .
We will go step by step:
The practical question: .dll / .lib files from 64bit_openssl-1.0.0d-bin_20110507.zip build via Configure + make?
Or with mingw32.bat? Or copy from "openssl Win32 binaries distribution"?
Question N2: where to download / get / take openssl.cnf for OpenSSL from *_20110507.zip?
Best regards, Victor Miasnikov
===
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
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\
ASSP unique combination effective features:
RBL, Bayesian filter, HELO, SPF, PTR, MX & A record checks, an advanced Penalty box, Delaying (greylisting) filter, URIBL , BombRe, automatic whitelisting, SPAM Scoring mode, ClamAV antivirus integration, SPAM reports
—– Original Message —–
From: «Victor Miasnikov»
To: «Giovanni Mancuso» ; «For Users of ASSP»
Sent: Friday, May 27, 2011 10:23 AM
Subject: ASSP is most powerful and accurate antispam available in the industry Fw: use Regex / Bombs, DNSBL, URIBL,ClamAV with additional signatures from SaneSecurity and Co Re: compare ASSP and commercial software Re: [Assp-user] antispam tester
Hi!
—– Original Message —–
From: «Giovanni Mancuso»
To: «GrayHat» ; «For Users of ASSP»
Sent: Thursday, May 26, 2011 7:37 PM
Subject: Re: [Assp-user] antispam tester
> My purpose is to compare two different software (ASSP and commercial software) to see which is the best.
commercial software? what exactly the application name? for what reason? :-0
> I would like to convince my company that ASSP is the best.
Don’t worry, be happy
ASSP is best
The main advantage of ASSP is that it works, and works as expected:
— HAM ( i.e. non-SPAM) e-mail go to recipient
— SPAM filtered
_Unique_ features:
– DoMSGIDsig / FBMTV «Forwarder(s) Bounce Message-ID Tag Validation»
Likely unique features:
– «Spam Collect Addresses» honeypot technology
– PenaltyBox
Super-effective and useful features:
– Greylisting ( a-ka «Delaying»)
– DNSBL
– Bayes
– Regex / Bombs
– URIBL
– SPF
– score by charset and ( or) country ( block mode is very radical )
– ClamAV with additional signatures from SaneSecurity and Co
– OCR plugin ( best in mode «only .PDF»)
Listed below corresponds to the true state of affairs:
_http://www.grscripts.com/
==
ASSP includes RBL, Bayesian filter, HELO, SPF, PTR, MX & A record checks, an advanced Penalty box, Delaying (greylisting) filter, URIBL , BombRe, automatic whitelisting, SPAM Scoring mode, ClamAV antivirus integration, SPAM reports, and a password protected Web Interface with countless antispam features and settings.
. . .
ASSP . . . main goals
install,use and configure ASSP on your . . . server in an easy/automated way.
Blocking more spam and virus as possible
Reducing near to zero false positives
Automate more tasks as possible. Set it and forget it.
do all this using as low cpu as possible, much less than any other spam solution.
. . .
Minimal hardware requirements , much less than any other spam solution . . . . You can install ASSP . . . on VPS and very old servers.
reducing at maximum administration work, relaying to the end user common antispam tasks (such as whitelisting, and spam/not spam reporting).
==
_http://www.hostm.com/spam-protection.m
==
A very effective . . . spam protection system called ASSP . . .
ASSP is often referred to as the most powerful and accurate spam protection system available in the industry, and for good reason.
The ASSP spam protection system includes a unique combination of numerous effective filters such as Bayesian, Penalty Box, DNSBL/RBL, URIBL, SPF, HELO, PTR, MX/A, Clam-AV virus scanning, and more.
Even so, ASSP requires very little configuration; you do not need to continually update it with details of your email accounts, mailing list memberships, etc. ASSP does this for you when you go about your daily email routines.
You can use this spam filter in conjunction with any other anti-spam tool you already use at your computer, if you wish. However, if you’re like most users, you’ll find that this entirely unnecessary. With ASSP alone, the amount of spam you receive in your inbox will be reduced by 90% or more!
==
Best regards, Victor Miasnikov
Blog: http://vvm.blog.tut.by/
P.S.
—– Original Message —–
From: «Victor» ( Victor Miasnikov )
To: «James Moe»; «For Users of ASSP»
Sent: Thursday, June 17, 2010 3:48 PM
Subject: [Assp-user] use Regex / Bombs, DNSBL, URIBL,ClamAV with additional signatures from SaneSecurity and Co Re:Nigerian Letter? Re: 419 scams
Hi!
> I see maybe 2 – 5 spams per week. Amazing results given that we are
> hit with 7000 – 10000 spams per day.
Very well . . .
But if you perfectionist
:
Use «Spam Collect Addresses» honeypot technology, candidates for this you
can look in *.log ( «user unknow» and Co)
Try ASSP v1.7.X
as wrote Fritz Borgstedt:
move Nigerian Letters *.eml to folder error/spam
use Regex / Bombs
use DNSBL
use URIBL
. . . you can
as wrote Grayhat:
use ClamAV with additional signatures from SaneSecurity and Co
Plus you can use:
– DoMSGIDsig / FBMTV «Forwarder(s) Bounce Message-ID Tag Validation»
– PenaltyBox
– SPF
– score by charset and ( or) country ( block mode is very radical )
– use OCR plugin ( best in mode «only .PDF»)
Best regards, Victor Miasnikov
–
HowTo fix: Halt with patch.c Line 354 if file has CRs and CR-LFs need convert the line endings to CR-LF
Open Win32_IPHelper_64bit.diff in editor from FAR commander and save
Screenshot:
===
C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06>C:\strawberry\c\bin\patch.exe "IPHelper.pm.Orig" -i Win32_IPHelper_64bit.diff -o "IPHelper.pm"
patching file IPHelper.pm.Orig
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Assertation failed!
Program: C:\strawberry\c\bin\patch.exe
File: .\src\patch\2.5.9\patch-2.5.9-src\patch.c, Line 354
Expression: hunk
===
See:
http://old.nabble.com/Bulit-in-patch-is-needed-when---patch-cmd-option-of-'svn-patch'-is-omitted-td19590959.html
===
. . .
Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
svn: 'patch.exe' returned error exitcode 3
I open the patch file with a text editor and find that the file has CRs and CR-LFs.
Then I convert the line endings to CR-LF and re-try 'svn patch'. I can successfully
. . .
===
For error-free operation of the module Net-Dns in Perl64 on Windows x64 You need to fix the module Win32-IPHelper using patch Win32_IPHelper_64bit.diff
See:
Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64
See about Win32_IPHelper_64bit.diff :
https://rt.cpan.org/Public/Bug/Display.html?id=59790
2011-06-16 11-34:
----- Original Message -----
From: "Victor Miasnikov"
To: "Curtis Jewell"
Sent: Thursday, June 16, 2011 10:39 AM
Subject: Win32-IPHelper-0.06.patch Win32-IPHelper-0.06.yml Fw: Win32::IPHelper needs a patch to correct work in Perl x64 ( Strawberry Perl v5.14.X / v5.12.X , Active Perl) Fw: for Ok Net-Dns in Perl64 need to fix the module Win32-IPHelper
Win32-IPHelper-0.06.patch
Win32-IPHelper-0.06.yml
. . .
---
Generate Win32-IPHelper-0.06.patch
makepatch "C:\strawberry\cpanplus -VVM\5.12.3--build00\Win32-IPHelper-0.06" C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06\ >Win32-IPHelper-0.06.patch.$$$
==
Win32::IPHelper needs a patch to correct work in Perl x64 ( Strawberry Perl v5.14.X / v5.12.X , Active Perl)
Or
For error-free operation of the module Net-Dns in Perl64 on Windows x64 You need to fix the module Win32-IPHelper using patch
( see RT #59790 "Bug #59790 for Win32-IPHelper: A few functions are not valid in a Perl64 environment."
https://rt.cpan.org/Public/Bug/Display.html?id=59790
)
Win32_IPHelper_64bit.diff 2011-02-09 22:15:59 by lwsitu (at) yahoo.com
Win32_IPHelper_64bit_fixed_CR-LF.diff 2011-06-09 10:45:40 by Victor Miasnikov
Win32-IPHelper-0.06.patch 2011-06-16 10:21:00 by Victor Miasnikov
See:
http://vvm.blog.tut.by/2011/05/25/for-ok-net-dns-in-perl64-on-windows-x64-need-to-fix-win32-iphelper-using-patch-win32_iphelper_64bit-diff/
==
== Win32-IPHelper-0.06.yml ==
comment: |
Win32::IPHelper needs a patch to correct work in Perl x64 ( Strawberry Perl v5.14.X / v5.12.X , Active Perl)
( see RT #59790 "Bug #59790 for Win32-IPHelper: A few functions are not valid in a Perl64 environment."
https://rt.cpan.org/Public/Bug/Display.html?id=59790
)
match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|LMASARA\Win32-IPHelper-0.06.tar.gz # Needs a patch to install.
)|
patches:
- "Win32-IPHelper-0.06.patch"
==
== Win32-IPHelper-0.06.patch ==
# Win32::IPHelper needs a patch to correct work in Perl x64 ( Strawberry Perl v5.14.X / v5.12.X , Active Perl)
# Or
# For error-free operation of the module Net-Dns in Perl64 on Windows x64 You need to fix the module Win32-IPHelper using patch
#
# ( see RT #59790 "Bug #59790 for Win32-IPHelper: A few functions are not valid in a Perl64 environment."
# https://rt.cpan.org/Public/Bug/Display.html?id=59790
# )
#
# Win32_IPHelper_64bit.diff 2011-02-09 22:15:59 by lwsitu (at) yahoo.com
#
# Win32_IPHelper_64bit_fixed_CR-LF.diff 2011-06-09 10:45:40 by Victor Miasnikov
# Win32-IPHelper-0.06.patch 2011-06-16 10:21:00 by Victor Miasnikov
#
# See:
# http://vvm.blog.tut.by/2011/05/25/for-ok-net-dns-in-perl64-on-windows-x64-need-to-fix-win32-iphelper-using-patch-win32_iphelper_64bit-diff/
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####
#### Patch data follows ####
diff -c "C:\strawberry\cpanplus -VVM\5.12.3--build00\Win32-IPHelper-0.06\IPHelper.pm" "C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06\IPHelper.pm"
Index: ./IPHelper.pm
*** ./IPHelper.pm Thu Jul 24 00:30:54 2008
--- ./IPHelper.pm Thu Jun 16 10:05:54 2011
***************
*** 9,14 ****
--- 9,15 ----
use Win32;
use Win32::API;
use enum;
+ use Config ();
require Exporter;
***************
*** 39,45 ****
our @EXPORT = qw();
! our $VERSION = '0.06';
my $GetProcessHeap = new Win32::API ('Kernel32', 'GetProcessHeap', [], 'N') or croak 'can\'t find GetProcessHeap() function';
my $AddIPAddress = new Win32::API ('Iphlpapi', 'AddIPAddress', ['N', 'N', 'N', 'P', 'P'], 'N') or croak 'can\'t find AddIPAddress() function';
--- 40,46 ----
our @EXPORT = qw();
! our $VERSION = '0.060000001';
my $GetProcessHeap = new Win32::API ('Kernel32', 'GetProcessHeap', [], 'N') or croak 'can\'t find GetProcessHeap() function';
my $AddIPAddress = new Win32::API ('Iphlpapi', 'AddIPAddress', ['N', 'N', 'N', 'P', 'P'], 'N') or croak 'can\'t find AddIPAddress() function';
***************
*** 60,65 ****
--- 61,67 ----
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,1462 ****
sub _IP_ADAPTER_INFO
{
my ($buffer, $pos) = @_;
! my $size = 640;
my %hash;
my @array;
my $next;
! ($pos, $next) =_shiftunpack($buffer, $pos, 4, "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));
--- 1453,1464 ----
sub _IP_ADAPTER_INFO
{
my ($buffer, $pos) = @_;
! my $size = $PTR_SIZE + 636;
my %hash;
my @array;
my $next;
! ($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,1504 ****
--- 1501,1529 ----
}
#######################################################################
+ # _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,1544 ****
sub _IP_ADDR_STRING
{
my ($buffer, $pos) = @_;
! my $size = 40;
my %hash;
my @array;
my $next;
! ($pos, $next) = _shiftunpack($buffer, $pos, 4, "P".$size);
($pos, $hash{'IpAddress'}) = _shiftunpack($buffer, $pos, 16, "Z16");
($pos, $hash{'IpMask'}) = _shiftunpack($buffer, $pos, 16, "Z16");
--- 1558,1569 ----
sub _IP_ADDR_STRING
{
my ($buffer, $pos) = @_;
! my $size = _ADDR_STRING_STRUCT_SIZE;
my %hash;
my @array;
my $next;
! ($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,1701 ****
($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");
if ($CurrentDnsServer)
{
@{ $hash{'CurrentDnsServer'} } = _IP_ADDR_STRING(\$CurrentDnsServer, 0);
--- 1720,1727 ----
($pos, $hash{'DomainName'}) = _shiftunpack($buffer, $pos, MAX_DOMAIN_NAME_LEN + 4, "Z".(MAX_DOMAIN_NAME_LEN + 4));
my $CurrentDnsServer;
! my $size = _ADDR_STRING_STRUCT_SIZE;
! ($pos, $CurrentDnsServer) = _shiftunpack($buffer, $pos, $PTR_SIZE, "P".$size);
if ($CurrentDnsServer)
{
@{ $hash{'CurrentDnsServer'} } = _IP_ADDR_STRING(\$CurrentDnsServer, 0);
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Thu Jun 16 10:22:40 2011
# Generated by : makepatch 2.04
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# p "IPHelper.pm" 78042 1308207954 0100666
#### End of ApplyPatch data ####
#### End of Patch kit [created: Thu Jun 16 10:22:40 2011] ####
#### Patch checksum: 179 6112 139 ####
#### Checksum: 211 7560 50614 ####
==
——————
2011-05-25 17-21:
See about Win32_IPHelper_64bit.diff :
https://rt.cpan.org/Public/Bug/Display.html?id=59790
Win32_IPHelper_64bit.diff
--- 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);
———
2011-05-25 17-20:
See:
Mini How-To: practical method to install ASSP v2.X on Windows x64 using Strawberry Perl v5.12.X x64
#{
#
#For error-free operation of the module Net-Dns in Perl64 on Windows x64 You need to fix the module Win32-IPHelper using patch Win32_IPHelper_64bit.diff
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 enumDownload 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
Download Win32_IPHelper_64bit.diff from
https://rt.cpan.org/Ticket/Attachment/895196/464097/Win32_IPHelper_64bit.diff
Open Win32_IPHelper_64bit.diff in editor from FAR commander and save
#{ HowTo fix:
# Halt with "patch.c, Line 354" if "file has CRs and CR-LFs." => convert the line endings to CR-LF
#Screenshot:
===
C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06>C:\strawberry\c\bin\patch.exe "IPHelper.pm.Orig" -i Win32_IPHelper_64bit.diff -o "IPHelper.pm"
patching file IPHelper.pm.OrigThis application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Assertation failed!Program: C:\strawberry\c\bin\patch.exe
File: .\src\patch\2.5.9\patch-2.5.9-src\patch.c, Line 354Expression: hunk
===See:
http://old.nabble.com/Bulit-in-patch-is-needed-when---patch-cmd-option-of-'svn-patch'-is-omitted-td19590959.html
===
. . .
Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
svn: 'patch.exe' returned error exitcode 3I open the patch file with a text editor and find that the file has CRs and CR-LFs.
Then I convert the line endings to CR-LF and re-try 'svn patch'. I can successfully
. . .
===#
#
#}Copy file Win32_IPHelper_64bit.diff to
C:\strawberry\cpanplus\5.12.3\build\Win32-IPHelper-0.06\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#
#
#}
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.
. . .
==