Posts Tagged ‘ASSP’

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

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

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 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

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.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
. . .
===

#
#
#}

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.

. . .
==

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