Posts Tagged ‘Perl’
Strawberry Perl v5.12.3 and Crypt-DSA Bug RT #49668
Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")
HowTo fix:
perl-Crypt-DSA-dsaparam.patch Sun Sep 13 05:18:33 2009 (3.6k) by paul [...] city-fan.org
http://rt.cpan.org/Public/Bug/Display.html?id=49668
== Crypt-DSA-1.16.yml ==
---
comment: |
Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")
match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|ADAMK\Crypt-DSA-1.16.tar.gz # Needs a patch to install.
)|
patches:
- "Crypt-DSA-1.16.patch"
==
== Crypt-DSA-1.16.patch ==
# Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
# See:
# http://rt.cpan.org/Public/Bug/Display.html?id=49668
#
# perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
#
# Crypt-DSA-1.16.patch by Victor Miasnikov
# See:
# http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
#
#
# 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--VVM0--Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm" "C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm"
Index: ./lib/Crypt/DSA/KeyChain.pm
*** ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 15:45:37 2009
--- ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 22:56:31 2009
***************
*** 53,59 ****
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = $1;
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
--- 53,59 ----
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Wed Jun 15 12:11:06 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 "lib/Crypt/DSA/KeyChain.pm" 6858 1252698991 0100666
#### End of ApplyPatch data ####
#### End of Patch kit [created: Wed Jun 15 12:11:06 2011] ####
#### Patch checksum: 55 2129 57221 ####
#### Checksum: 82 3101 4475 ####
==
---------
Error description:
=== debug.out ==
Loading CPAN...
Installing Crypt::DSA from CPAN...
Going to read 'C:\strawberry\cpan\sources\authors1mailrc.txt.gz'
............................................................................DONE
Going to read 'C:\strawberry\cpan\sources\modules2packages.details.txt.gz'
Database was generated on Mon, 13 Jun 2011 08:29:41 GMT
............................................................................DONE
Going to read 'C:\strawberry\cpan\sources\modules3modlist.data.gz'
............................................................................DONE
$ENV{PATH} = 'C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\sb\perl\site\bin;C:\BIN\ImageMagick;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\'
Running install for module 'Crypt::DSA'
Running make for A/AD/ADAMK/Crypt-DSA-1.16.tar.gz
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/A/AD/ADAMK/Crypt-DSA-1.16.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\A\AD\ADAMK\Crypt-DSA-1.16.tar.gz ok
CPAN.pm: Going to build A/AD/ADAMK/Crypt-DSA-1.16.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Crypt::DSA
Could not read metadata file. Falling back to other methods to determine prerequisites
cp lib/Crypt/DSA/Signature.pm blib\lib\Crypt\DSA\Signature.pm
cp lib/Crypt/DSA/Key/SSH2.pm blib\lib\Crypt\DSA\Key\SSH2.pm
cp lib/Crypt/DSA.pm blib\lib\Crypt\DSA.pm
cp lib/Crypt/DSA/Util.pm blib\lib\Crypt\DSA\Util.pm
cp lib/Crypt/DSA/KeyChain.pm blib\lib\Crypt\DSA\KeyChain.pm
cp lib/Crypt/DSA/Key.pm blib\lib\Crypt\DSA\Key.pm
cp lib/Crypt/DSA/Key/PEM.pm blib\lib\Crypt\DSA\Key\PEM.pm
ADAMK/Crypt-DSA-1.16.tar.gz
C:\strawberry\c\bin\dmake.EXE -- OK
Running make test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/00-compile.t .. ok
t/01-util.t ..... ok
t/02-sign.t .....
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 4/4 subtests
t/03-keygen.t ...
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 18/18 subtests
t/04-pem.t ...... skipped: no Crypt::DES_EDE3
t/06-fips.t ..... ok
t/07-openid.t ... skipped: no Convert::PEM
t/97_meta.t ..... skipped: Author tests not required for installation
t/98_pod.t ...... skipped: Author tests not required for installation
t/99_pmv.t ...... skipped: Author tests not required for installation
Test Summary Report
-------------------
t/02-sign.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 4 tests but ran 0.
t/03-keygen.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 18 tests but ran 0.
Files=10, Tests=23, 26 wallclock secs ( 0.08 usr + 0.09 sys = 0.17 CPU)
Result: FAIL
ADAMK/Crypt-DSA-1.16.tar.gz
C:\strawberry\c\bin\dmake.EXE test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports ADAMK/Crypt-DSA-1.16.tar.gz
Running make install
make test had returned bad status, won't install without force
Completed install of Crypt::DSA
===
=== debug.err ==
# Testing Crypt::DSA 1.16
Use of uninitialized value $parts{"p"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 68.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 70.
Can't call method "copy" without a package or object reference at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.
Use of uninitialized value $parts{"p"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 68.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/KeyChain.pm line 70.
Can't call method "copy" without a package or object reference at C:\strawberry\cpan\build\Crypt-DSA-1.16-APootp\blib\lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.
# This takes a couple of minutes on slower machines.
Failed 2/10 test programs. 0/23 subtests failed.
dmake.EXE: Error code 255, while making 'test_dynamic'
Installation of Crypt::DSA appears to have failed at C:\tmp\build\cpan_string.pl line 41.
===
perl-Crypt-DSA-dsaparam.patch Sun Sep 13 05:18:33 2009 (3.6k) by paul [...] city-fan.org
http://rt.cpan.org/Public/Bug/Display.html?id=49668
=>
[
http://rt.cpan.org/Ticket/Attachment/663526/340507/perl-Crypt-DSA-dsaparam.patch
]
===
There's a slight change of output format in the openssl dsaparam command from
current versions to the forthcoming 1.0 release:
openssl 0.9.8k:
$ openssl dsaparam -text -noout 512
Generating DSA parameters, 512 bit long prime
This could take some time
........+..+++++++++++++++++++++++++++++++++++++++++++++++++++*
..+....................+................+.+................+................................+...+..+...........+.....+.............+.......+....+..............+.......+...+.....+.................+....+.............................+.......+..........+..+...+........+...............+......+..........+..+.....+............+.+..+...+.....+....+++++++++++++++++++++++++++++++++++++++++++++++++++*
DSA-Parameters: (512 bit)
p:
00:e6:6c:38:ce:8d:9f:1d:f0:7a:12:50:1e:ef:5c:
73:fe:2e:7a:b0:ed:27:a0:96:c3:37:98:de:e9:b6:
a2:e6:3a:97:9d:d5:c1:f8:1e:f4:2d:38:29:d8:08:
ac:f1:20:28:51:54:cb:7a:a1:36:f6:e7:07:b1:cf:
23:8d:6e:a1:33
q:
00:f4:7b:0c:a8:98:d7:e0:d0:3e:92:94:95:30:f5:
21:0a:86:db:16:55
g:
00:c6:81:8d:32:72:6b:6b:a5:d2:90:fb:c2:31:c4:
73:e0:1b:05:bb:17:5c:b2:b2:09:69:17:78:41:fc:
99:a1:9b:07:ca:a7:02:5f:0e:1f:dd:35:05:90:ac:
e8:66:47:ca:9a:1a:77:a4:f4:5e:65:66:64:bf:34:
7d:fe:30:bf:5a
openssl 1.0 beta 3:
$ openssl dsaparam -text -noout 512
Generating DSA parameters, 512 bit long prime
This could take some time
.+........+++++++++++++++++++++++++++++++++++++++++++++++++++*
...+................+.....+..........+.+.+...........+.+............+............+......+...+.........................................+......+......+...............+...+....+..............+++++++++++++++++++++++++++++++++++++++++++++++++++*
P:
00:82:ab:91:c2:9e:8e:c1:cd:cb:70:68:12:c9:44:
90:20:97:e4:69:77:fc:53:ce:78:2c:3d:01:5c:69:
42:45:bc:e7:06:2f:4e:75:d4:10:3b:ae:de:43:6f:
d8:86:6d:1e:f9:1d:c5:8e:0d:92:ca:e7:23:2e:5b:
42:26:09:88:3b
Q:
00:f9:dc:55:fd:ca:48:8c:d4:e9:df:8a:25:6d:f7:
82:5d:f8:34:34:3f
G:
6b:75:a7:e5:ac:2e:3a:79:65:01:51:cb:78:a3:06:
73:47:0a:b8:9c:de:68:36:c5:5e:44:02:fe:8a:73:
73:bc:d3:1a:ec:08:40:da:b3:f6:e2:0b:14:e6:1c:
0d:f5:ef:62:0e:bf:64:18:96:ee:87:f7:13:89:42:
cc:69:6e:be
The change to labelling the parameters in upper case causes
Crypt::DSA::Keychain to fail like this (from the test suite):
Use of uninitialized value $parts{"p"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 69.
Use of uninitialized value $parts{"q"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 70.
Use of uninitialized value $parts{"g"} in concatenation (.) or string at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/KeyChain.pm line 71.
Can't locate object method "copy" via package "NaN" (perhaps you forgot to load "NaN"?) at /builddir/build/BUILD/Crypt-DSA-1.16/blib/lib/Crypt/DSA/Util.pm line 43.
# Looks like your test exited with 255 before it could output anything.
The patch changes the parameter labels to lower case, making the code
compatible with both old and new versions of openssl.
--- Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-11 13:45:37.000000000 +0100
+++ Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-12 22:56:31.000000000 +0100
@@ -53,7 +53,7 @@
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
- $cur_part = $1;
+ $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
===
Install makepatch:
cpanp i JV/makepatch-2.04.tar.gz
Run:
cpanp z Crypt::DSA
exit
Apply patch:
===
--- Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-11 13:45:37.000000000 +0100
+++ Crypt-DSA-1.16/lib/Crypt/DSA/KeyChain.pm 2009-09-12 22:56:31.000000000 +0100
@@ -53,7 +53,7 @@
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
- $cur_part = $1;
+ $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
===
Generate Crypt-DSA-1.16.patch
makepatch C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\ C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\ >Crypt-DSA-1.16.patch
Type patch description:
==
Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
See http://rt.cpan.org/Public/Bug/Display.html?id=49668
perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
Crypt-DSA-1.16.patch by Victor Miasnikov
See:
http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
==
Type single '.'
Screenshot:
===
Manifest MANIFEST for C:\strawberry\cpanplus--VVM0--Crypt-DSA-1.16\ contains 32 files.
Manifest MANIFEST for C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\ contains 32 files.
Processing the filelists ...
Enter patch description, terminated with a single '.':
>> Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
>> See:
>> http://rt.cpan.org/Public/Bug/Display.html?id=49668
>>
>> perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
>>
>> Crypt-DSA-1.16.patch by Victor Miasnikov
>> See:
>> http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
>>
>> .
Collecting patches ...
1 file need to be patched.
===
== Crypt-DSA-1.16.patch ==
# Strawberry Perl v5.14.X / v5.12.X and Crypt-DSA Bug RT #49668
# See:
# http://rt.cpan.org/Public/Bug/Display.html?id=49668
#
# perl-Crypt-DSA-dsaparam.patch 2009-09-12 22:56:31 by paul (at) city-fan.org
#
# Crypt-DSA-1.16.patch by Victor Miasnikov
# See:
# http://vvm.blog.tut.by/2011/06/14/strawberry-perl-v5-12-3-and-crypt-dsa-bug-49668/
#
#
# 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--VVM0--Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm" "C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16\lib\Crypt\DSA\KeyChain.pm"
Index: ./lib/Crypt/DSA/KeyChain.pm
*** ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 15:45:37 2009
--- ./lib/Crypt/DSA/KeyChain.pm Fri Sep 11 22:56:31 2009
***************
*** 53,59 ****
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = $1;
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
--- 53,59 ----
my $cur_part;
foreach (@res) {
if (/^\s+(\w):\s*$/) {
! $cur_part = lc($1);
next;
}
if (/^\s*((?:[0-9a-f]{2,2}:?)+)\s*$/) {
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Wed Jun 15 12:11:06 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 "lib/Crypt/DSA/KeyChain.pm" 6858 1252698991 0100666
#### End of ApplyPatch data ####
#### End of Patch kit [created: Wed Jun 15 12:11:06 2011] ####
#### Patch checksum: 55 2129 57221 ####
#### Checksum: 82 3101 4475 ####
==
== Crypt-DSA-1.16.yml ==
---
comment: |
Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")
match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|ADAMK\Crypt-DSA-1.16.tar.gz # Needs a patch to install.
)|
patches:
- "Crypt-DSA-1.16.patch"
==
Tests runs without errors:
==
C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Crypt::DSA
C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>dmake
cp lib/Crypt/DSA/Signature.pm blib\lib\Crypt\DSA\Signature.pm
cp lib/Crypt/DSA/Key/SSH2.pm blib\lib\Crypt\DSA\Key\SSH2.pm
cp lib/Crypt/DSA.pm blib\lib\Crypt\DSA.pm
cp lib/Crypt/DSA/Util.pm blib\lib\Crypt\DSA\Util.pm
cp lib/Crypt/DSA/KeyChain.pm blib\lib\Crypt\DSA\KeyChain.pm
cp lib/Crypt/DSA/Key.pm blib\lib\Crypt\DSA\Key.pm
cp lib/Crypt/DSA/Key/PEM.pm blib\lib\Crypt\DSA\Key\PEM.pm
C:\strawberry\cpanplus\5.12.3\build\Crypt-DSA-1.16>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/00-compile.t .. # Testing Crypt::DSA 1.16
t/00-compile.t .. ok
t/01-util.t ..... ok
t/02-sign.t ..... ok
t/03-keygen.t ... ok
t/04-pem.t ...... ok
t/06-fips.t ..... 1/9 # This takes a couple of minutes on slower machines.
t/06-fips.t ..... ok
t/07-openid.t ... ok
t/97_meta.t ..... skipped: Author tests not required for installation
t/98_pod.t ...... skipped: Author tests not required for installation
t/99_pmv.t ...... skipped: Author tests not required for installation
All tests successful.
Files=10, Tests=82, 31 wallclock secs ( 0.25 usr + 0.03 sys = 0.28 CPU)
Result: PASS
==
----- Original Message -----
From: "Victor Miasnikov"
To: "Curtis Jewell"
Sent: Wednesday, June 15, 2011 12:47 PM
Subject: Crypt-DSA-1.16.yml Crypt-DSA-1.16.patch Fw: Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")
. . .
== Crypt-DSA-1.16.yml ==
. . .
== Crypt-DSA-1.16.patch ==
. . .
Tests runs without errors
Best regards, Victor Miasnikov
Blog: http://vvm.blog.tut.by/
---
----- Original Message -----
From: "Curtis Jewell"
To: "Victor Miasnikov"
Sent: Wednesday, June 15, 2011 12:52 PM
Subject: Re: Crypt-DSA-1.16.yml Crypt-DSA-1.16.patch Fw: Crypt::DSA needs a patch to install with OpenSSL v1.X in Strawberry Perl v5.14.X / v5.12.X ( see RT #49668 "Crypt-DSA Bug #49668")
This was great, Victor. Thanks! Was very much appreciated.
Curtis Jewell
---
2011-03-14 17-53:
1) See later:
==
sha1.c: In function 'sha_transform':
sha1.c:146: warning: right shift count >= width of type
boot.c: In function 'main':
boot.c:123: warning: passing argument 3 of 'spawnvpe' from incompatible pointer type
==
2) See later:
cpanp i Getopt::ArgvFile
cpanp i Module::ScanDeps
---------
HowTo: Strawberry Perl v5.12.3 x64 and PAR::Packer
After run:
===
cpanp i PAR-Packer
===
===
. . .
t/resolvepathes.t .. ok
t/use1.t ........... ok
t/use2.t ........... ok
All tests successful.
Files=10, Tests=43, 1 wallclock secs ( 0.06 usr + 0.08 sys = 0.14 CPU)
Result: PASS
Running [C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\bin\cpanp-run-perl C:\strawberry\cpanplus\5.12.3\build\Module-ScanDeps-1.02\Makefile.PL]...
Checking if your kit is complete...
Looks good
Writing Makefile for Module::ScanDeps
Running [C:\STRAWB~2\c\bin\dmake.EXE test UNINST=1]...
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/*.t
t/0-pod.t ....................................... skipped: Test::Pod 1.00 required for testing POD
t/1-static_functional_interface_real.t .......... ok
t/10-case-insensitive-keys.t .................... ok
t/11-finds-shared-lib.t ......................... ok
t/12-ScanFileRE.t ............................... ok
t/13-static_prefork_test.t ...................... skipped: This test requires prefork.pm which is not installed. Skipping.
t/14-scan_chunk.t ............................... ok
0
Couldn't retrieve data from file deps_cache.dat. Building new cache.
t/14-static_functional_cached.t ................. ok
t/16-scan_line.t ................................ ok
t/17-private_methods.t .......................... ok
t/2-static_functional_interface_fake.t .......... ok
t/3-static_oo_interface_real.t .................. ok
t/4-static_functional_interface_options_fake.t .. ok
t/5-pluggable_fake.t ............................ ok
t/6-file-glob.t ................................. ok
t/7-check-dynaloader.t .......................... ok
t/8-check_duplicated_entries.t .................. ok
t/9-check_path_to_inc_name.t .................... ok
All tests successful.
Files=18, Tests=113540, 465 wallclock secs (13.75 usr + 0.59 sys = 14.34 CPU)
Result: PASS
[ERROR] MAKE failed: cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm
cp lib/PAR/Packer.pm blib\lib\PAR\Packer.pm
cp lib/PAR/Filter/Obfuscate.pm blib\lib\PAR\Filter\Obfuscate.pm
cp lib/PAR/Filter/PodStrip.pm blib\lib\PAR\Filter\PodStrip.pm
cp lib/PAR/StrippedPARL/Base.pm blib\lib\PAR\StrippedPARL\Base.pm
cp lib/PAR/Filter.pm blib\lib\PAR\Filter.pm
cp lib/PAR/Filter/PatchContent.pm blib\lib\PAR\Filter\PatchContent.pm
cp lib/PAR/Filter/Bytecode.pm blib\lib\PAR\Filter\Bytecode.pm
cp lib/pp.pm blib\lib\pp.pm
cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm
C:\strawberry\perl\bin\perl.exe sha1.c.PL
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 main.c
C:\strawberry\perl\bin\perl.exe file2c.pl -s ..\script\par.pl -l my_par_pl.c load_my_par_pl
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 my_par_pl.c
g++ main.o my_par_pl.o win32.coff -s -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" C:\strawberry\perl\lib\CORE\libperl512.a C:\strawberry\c\x86_
64-w64-mingw32\lib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32\lib\libkernel32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawberry\c\x86_64-
w64-mingw32\lib\libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinspool.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\x86_64-w64-
mingw32\lib\libadvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libshell32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86_64-w64-mingw
32\lib\liboleaut32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w64-mingw32\li
b\libws2_32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\lib\libversio
n.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomctl32.a
-o par.exe
win32.coff: file not recognized: File format not recognized
collect2: ld returned 1 exit status
dmake: Error code 129, while making 'par.exe'
dmake.EXE: Error code 255, while making 'subdirs'
[ERROR] Unable to create a new distribution object for 'PAR::Packer' -- cannot continue
*** Install log written to:
C:\strawberry\cpanplus\install-logs\PAR-Packer-1.009-1307946827.log
Error installing 'PAR::Packer'
Problem installing one or more modules
===
See:
https://rt.cpan.org/Public/Bug/Display.html?id=57273
For fix this issue:
==
win32.coff: file not recognized: File format not recognized
==
cpanp i Getopt::ArgvFile
cpanp i Module::ScanDeps
cpanp z PAR-Packer
Go to:
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009
md C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.coff C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.coff
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.obj C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.obj
move C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\win32.res C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr.Orig\win32.res
See:
http://news.tcx.org.uk/msg/4D93C148.1060301@znix.com
===
. . .
The zip
http://www.wxperl.co.uk/ppamd64_resource.zip
Contains objects that can be unzipped into the current PAR::Packer
source in the directory myldr. You want the contained win32.coff /
win32.obj to replace the originals.
Should then compile OK on Strawberry.
. . .
===
Download:
http://www.wxperl.co.uk/ppamd64_resource.zip
Unpack from "ppamd64_resource.zip"
==
win32.coff
win32.obj
win32.res
win32.manifest
win32.rc
win32.ico
==
to
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr
Run
cpanp i .
Screenshot:
===
Installing PAR::Packer (1.009) A
Running [C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\bin\cpanp-run-perl C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\Makefile.PL]...
Checking if your kit is complete...
Looks good
Prototype mismatch: sub main::prompt: none vs ($;$) at C:/strawberry/perl/lib/ExtUtils/MakeMaker.pm line 202
Writing Makefile for par.exe
Writing Makefile for PAR::Packer
Running [C:\STRAWB~2\c\bin\dmake.EXE test UNINST=1]...
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-pod.t t/10-parl-generation.t t/20-pp.t t/3
0-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.e
xe tool for more detail.
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\blib\script/pp: Cannot open hello.exe for reading: No such file or directory at C:\strawberry\cpanplus\5.12
.3\build\PAR-Packer-1.009\blib\lib/PAR/Packer.pm line 1172.
# Failed test 'pp_gui_tests
# amsg572: sub pp_gui_tests cannot system pp --gui --icon hi.ico -o hello.exe hello.pl:No such file or directory:
# '
# at automated_pp_test.pl line 8445.
# Looks like you failed 1 test of 34.
t/20-pp.t ................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/34 subtests
# Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok
Test Summary Report
-------------------
t/20-pp.t (Wstat: 256 Tests: 34 Failed: 1)
Failed test: 32
Non-zero exit status: 1
Files=6, Tests=74, 2506 wallclock secs ( 0.09 usr + 0.05 sys = 0.14 CPU)
Result: FAIL
Failed 1/6 test programs. 1/74 subtests failed.
dmake.EXE: Error code 255, while making 'test_dynamic'
The tests for 'PAR::Packer' failed. Would you like me to proceed anyway or should we abort?
Proceed anyway? [y/N]: y
*** Install log written to:
C:\strawberry\cpanplus\install-logs\PAR-Packer-1.009-1307954507.log
Module 'PAR::Packer' installed successfully
No errors installing all modules
===
P.S.
2011-03-14 17-53:
Sorry, this occured independent my patch ( i.e. before ( PAR-Packer-1.009-1307954507.log 13.06.2011 11:41) and after patch):
==
C:\strawberry\perl\bin\perl.exe file2c.pl -l -c 30000 C:\strawberry\perl\bin\libgcc_s_sjlj-1.dll my_libgcc.c load_my_libgcc
gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DWIN64 -DCONSERVATIVE -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfie
lds -DPERL_MSVCRT_READFIX -I"C:\strawberry\perl\lib\CORE" -DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 boot.c
In file included from mktmpdir.h:85,
from mktmpdir.c:1,
from boot.c:3:
sha1.c: In function 'sha_transform':
sha1.c:146: warning: right shift count >= width of type
boot.c: In function 'main':
boot.c:123: warning: passing argument 3 of 'spawnvpe' from incompatible pointer type
==
P.P.S.
> Since this patch is meant for x64 only, please make it match against the environment variable PROCESSOR_ARCHITECTURE=x64 as well as the package name.
Not only: I'm simply "Turn off use win32.coff"
== PAR-Packer.yml ==
---
comment: |
PAR::Packer needs a patch to install in gcc4 Strawberry Perl x64 ( but patch Ok and for x86)
match:
distribution: |
^(?x:
.^ # never matches, only purpose is to let things align nicely
|RSCHUPP/PAR-Packer-1.009.tar.gz # Needs a patch to install.
)|
patches:
- "PAR-Packer-1.009.patch"
==
== PAR-Packer-1.009.patch ==
# Turn off use win32.coff
#
# 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 -VVM0_--_PAR-Packer-1.009\myldr\Makefile.PL" "C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009\myldr\Makefile.PL"
Index: ./myldr/Makefile.PL
*** ./myldr/Makefile.PL Tue Mar 22 19:53:31 2011
--- ./myldr/Makefile.PL Tue Jun 14 16:49:32 2011
***************
*** 104,110 ****
$ccdebug = $debug ? '-g ' : '';
$lddebug = ($debug or $^O eq 'darwin') ? '' : '-s ';
$warn = $debug ? '-Wall -Wno-comments ' : '';
! $res = ($^O =~ /^(?:MSWin|cygwin)/) ? 'win32.coff' : '';
$long_literal = '-l';
$mt_cmd = '-$(NOOP)';
} else {
--- 104,111 ----
$ccdebug = $debug ? '-g ' : '';
$lddebug = ($debug or $^O eq 'darwin') ? '' : '-s ';
$warn = $debug ? '-Wall -Wno-comments ' : '';
! $res = ''; # VVM
! # $res = ($^O =~ /^(?:MSWin|cygwin)/) ? 'win32.coff' : '';
$long_literal = '-l';
$mt_cmd = '-$(NOOP)';
} else {
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Tue Jun 14 16:59:06 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 "myldr/Makefile.PL" 10179 1308059372 0100666
#### End of ApplyPatch data ####
#### End of Patch kit [created: Tue Jun 14 16:59:06 2011] ####
#### Patch checksum: 56 2184 611 ####
#### Checksum: 74 2829 54096 ####
==
At this moment I'm run test:
==
C:\>cd C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>dmake test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-po
d.t t/10-parl-generation.t t/20-pp.t t/30-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
t/20-pp.t ................ ok
t/30-current_exec.t ...... # Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok
All tests successful.
Files=6, Tests=74, 2560 wallclock secs ( 0.05 usr + 0.09 sys = 0.14 CPU)
Result: PASS
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>dmake.EXE test UNINST=1
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib\lib', 'blib\arch')" t/00-po
d.t t/10-parl-generation.t t/20-pp.t t/30-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t
t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD
t/10-parl-generation.t ... ok
t/20-pp.t ................ ok
t/30-current_exec.t ...... # Please wait
t/30-current_exec.t ...... ok
t/40-packer_cd_option.t .. ok
t/90-rt59710.t ........... ok
All tests successful.
Files=6, Tests=74, 2547 wallclock secs ( 0.13 usr + 0.02 sys = 0.14 CPU)
Result: PASS
C:\strawberry\cpanplus\5.12.3\build\PAR-Packer-1.009>
==
2011-06-15 11-01:
Look like ok
HowTo: Build Strawberry Perl v5.12.3 x86 with GCC toolchain mingw64-w32-gcc4.4.6_20110503-v2.zip and kmx/32_libs 20110506.zip
As result:
-- Strawberry Perl v5.12.3 x86 with GCC toolchain mingw64-w32-gcc4.4.6_20110503-v2.zip and kmx/32_libs 20110506.zip
( strawberry-perl-5.12.3.0-32bit-build-2011-06-09.zip / .msi )
Screenshot:
==
C:\strawberry>gcc -v
Using built-in specs.
Target: i686-w64-mingw32
Configured with: ../gcc44-svn/configure --host=i686-w64-mingw32 --target=i686-w64-mingw32 --disable-multilib --enable-checking=release --prefix=/mingw32 --enabl
e-languages=c,c++,fortran --enable-libgomp --with-gmp=/mingw32 --with-mpfr=/mingw32 --disable-nls --disable-win32-registry
Thread model: win32
gcc version 4.4.6 20110416 (release) [svn/rev.172578 - mingw-w64/oz] (GCC)
C:\strawberry>perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-thread
Copyright 1987-2010, Larry Wall
. . .
==
Download:
http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-64bit.zip
( VVM: Or http://strawberryperl.com/download/5.12.3.0/strawberry-perl-5.12.3.0-32bit.zip , but this not tested )
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
Screenshot:
===
Preparing Math::Pari
** GET http://strawberryperl.com/package/32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par ==> 404 Not Found
===
=>
GoTo:
C:\sb\perl\site\lib\Perl\Dist\
rename
Strawberry.pm
to
Strawberry.pm.Orig
apply patch to Strawberry.pm:
===
--- Strawberry.pm.Orig Tue May 31 04:09:10 2011
+++ Strawberry.pm Tue Jun 14 12:33:15 2011
@@ -449,10 +449,10 @@
name => 'Win32::EventLog',
force => 1, # Tests fail on only one computer, will be reported later
);
- $self->install_modules('Win32::API') if not 64 == $self->bits();
+#VVM $self->install_modules('Win32::API') if not 64 == $self->bits();
# Install additional math modules
- $self->install_pari() if not 64 == $self->bits();
+#VVM $self->install_pari() if not 64 == $self->bits();
$self->install_modules( qw{
Math::BigInt::GMP
} );
@@ -676,7 +676,7 @@
Net::SSLeay
IO::Socket::SSL
Net::SMTP::TLS
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
# The rest of the Net::SSH::Perl toolchain.
$self->install_module(
@@ -690,7 +690,7 @@
# Check why this one isn't working.
$self->install_modules( qw{
Crypt::DSA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Class::ErrorHandler
Convert::ASN1
@@ -712,7 +712,7 @@
# Requires Math::Pari.
$self->install_modules( qw{
Crypt::Random
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Convert::ASCII::Armour
Digest::MD2
@@ -722,14 +722,14 @@
$self->install_modules( qw{
Crypt::Primes
Crypt::RSA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Digest::BubbleBabble
});
# Does not build 64-bit yet.
$self->install_modules( qw{
Crypt::IDEA
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
String::CRC32
Net::SSH2
@@ -751,7 +751,7 @@
# Crypt::RSA, and Math::Pari.
$self->install_modules( qw{
Crypt::OpenPGP
- }) if 32 == $self->bits();
+ }) if 932 == $self->bits(); #VVM
$self->install_modules( qw{
Algorithm::Diff
Text::Diff
@@ -762,7 +762,7 @@
name => 'FLORA/Module-Signature-0.66.tar.gz',
mod_name => 'Module::Signature',
makefilepl_param => [ 'INSTALLDIRS=vendor', ],
- ) if 32 == $self->bits();
+ ) if 932 == $self->bits(); #VVM
# version 0.67 of Module::Signature can have serious problems on Windows
# See https://rt.cpan.org/Ticket/Display.html?id=46339
# IPC::Run is a prereq only for 0.67
===
( Install all skiped modules later ( if need) by cpan/CPANPLUS )
GoTo:
C:\sb\perl\site\lib\Perl\Dist\WiX\Mixin\
rename
Libraries.pm
to
Libraries.pm.Orig
apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Sun Jun 05 15:17:58 2011
+++ Libraries.pm Fri Jun 10 16:50:14 2011
@@ -49,19 +49,28 @@
# 'mingw-runtime' => 'mingw-runtime-3.13.tar.gz',
# 'w32api' => 'w32api-3.10.tar.gz',
},
+# VVM 2011-06-10 16-18
'32bit-gcc4' => {
'dmake' => '32bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
'mingw-make' => '32bit-gcc4/gmake-3.81-20090914-bin_20100524.zip',
'pexports' => '32bit-gcc4/pexports-0.44-bin_20100120.zip',
- 'gcc-toolchain' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2.zip',
- 'gcc-license' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-10 16-18
+ 'gcc-toolchain' => 'kmx/32_gcctoolchain/mingw64-w32-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/32_gcctoolchain/mingw64-w32-gcc4.4.6_20110503-v2-lic.zip',
+# ]
},
+# VVM 2011-06-09 09-56
'64bit-gcc4' => {
+# 'dmake' => 'kmx/64_tools/64bit_dmake-SVN20091127-bin_20100308.zip', # older? <= ( 20100308 '64bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
+# 'mingw-make' => 'kmx/64_tools/64bit_gmake-3.82-bin_20110503.zip', # Has error? VVM 2011-06-09 15-43
'mingw-make' => '64bit-gcc4/gmake-3.81.90_20100127_20100524.zip',
+# 'pexports' => 'kmx/64_tools/64bit_pexports-0.44-bin_20100110.zip', # Not need? VVM 2011-06-09 09-56
'pexports' => '64bit-gcc4/pexports-0.44-bin_20100110.zip',
- 'gcc-toolchain' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2.zip',
- 'gcc-license' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-09 09-56
+ 'gcc-toolchain' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2-lic.zip',
+#]
},
);
===
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 May 31 04:09:10 2011
+++ Libraries.pm Mon Jun 13 16:10:27 2011
@@ -93,7 +93,7 @@
'mysql5121' => undef,
'mysql5122' => undef,
'mysql5123' => undef,
- 'mysqllib' => '32bit-gcc4/mysql-5.1.44-bin_20100304.zip',
+ 'mysqllib' => 'kmx/32_libs/5.14/32bit_mysql-5.1.44-bin_20100304.zip', # VVM 2011-06-09 09-56
'pari589' => undef,
'pari5100' => undef,
'pari5101' => undef,
@@ -101,34 +101,38 @@
'pari5120' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
'pari5121' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
'pari5122' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.0.par',
- 'pari5123' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.3.par',
+ 'pari5123' => '32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par', # VVM 2011-06-09 09-56
+# 'pari5123' => '32bit-gcc4/Math-Pari-2.01080604-MSWin32-x86-multi-thread-5.12.3.par', # VVM 2011-06-09 09-56 : not shue what is Ok with GCC v4.6.6
'pari5140' => '32bit-gcc4/Math-Pari-2.01080605-MSWin32-x86-multi-thread-5.14.0.par',
- 'zlib' => '32bit-gcc4/zlib-1.2.3-bin_20091126.zip',
- 'libiconv' => '32bit-gcc4/libiconv-1.13.1-bin_20091126.zip',
- 'libxml2' => '32bit-gcc4/libxml2-2.7.3-bin_20091126.zip',
- 'libexpat' => '32bit-gcc4/expat-2.0.1-bin_20091126.zip',
- 'gmp' => '32bit-gcc4/gmp-5.0.1-419f6a4cc606-bin_20110218.zip',
- 'libxslt' => '32bit-gcc4/libxslt-1.1.26-bin_20091126.zip',
- 'libjpeg' => '32bit-gcc4/jpeg-6b-gnuwin32-bin_20091126.zip',
- 'libgif' => '32bit-gcc4/giflib-4.1.6-bin_20091126.zip',
- 'libpng' => '32bit-gcc4/libpng-1.2.40-bin_20091126.zip',
- 'libtiff' => '32bit-gcc4/tiff-3.9.1-bin_20091126.zip',
- 'libgd' => '32bit-gcc4/gd-2.0.35-bin_20091126.zip',
- 'libfreetype' => '32bit-gcc4/freetype-2.3.11-bin_20091126.zip',
- 'libopenssl' => '32bit-gcc4/openssl-0.9.8l-bin_20091126.zip',
- 'libpostgresql' => '32bit-gcc4/postgresql-8.4.1-bin_20091126.zip',
- 'libdb' => '32bit-gcc4/db-4.8.24-bin_20091126.zip',
- 'libgdbm' => '32bit-gcc4/gdbm-1.8.3-bin_20100112.zip',
- 'libxpm' => '32bit-gcc4/libXpm-3.5.8-bin_20091126.zip',
- 'libxz' => '32bit-gcc4/liblzma-xz-4.999.9beta-bin_20100308.zip',
- 'mpc' => '32bit-gcc4/mpc-0.8.1-bin_20100306.zip',
- 'mpfr' => '32bit-gcc4/mpfr-2.4.2-bin_20100306.zip',
- 'libmysql' => '32bit-gcc4/mysql-5.1.44-bin_20100304.zip',
- 'freeglut' => '32bit-gcc4/freeglut-2.6.0-bin_20100213.zip',
- 'libssh2' => '32bit-gcc4/libssh2-1.2.5-bin_20100520.zip',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/32_libs/5.14/32bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/32_libs/5.14/32bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/32_libs/5.14/32bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/32_libs/5.14/32bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/32_libs/5.14/32bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/32_libs/5.14/32bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/32_libs/5.14/32bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/32_libs/5.14/32bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/32_libs/5.14/32bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/32_libs/5.14/32bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/32_libs/5.14/32bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/32_libs/5.14/32bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/32_libs/5.14/32bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/32_libs/5.14/32bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/32_libs/5.14/32bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/32_libs/5.14/32bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/32_libs/5.14/32bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/32_libs/5.14/32bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/32_libs/5.14/32bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/32_libs/5.14/32bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/32_libs/5.14/32bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/32_libs/5.14/32bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/32_libs/5.14/32bit_libssh2-1.2.8-bin_20110506.zip',
+# ]
},
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
+# 'patch' => 'kmx/64_tools/64bit_patch-2.5.9-7-bin_20100110_UAC.zip', # VVM 2011-06-09 15-43 ToDo? # [ VVM 2011-06-09 09-56 ( kmx)
'mysql589' => undef,
'mysql5100' => undef,
'mysql5101' => undef,
@@ -146,29 +150,31 @@
'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',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/64_libs/5.14/64bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/64_libs/5.14/64bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/64_libs/5.14/64bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/64_libs/5.14/64bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/64_libs/5.14/64bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/64_libs/5.14/64bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/64_libs/5.14/64bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/64_libs/5.14/64bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/64_libs/5.14/64bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/64_libs/5.14/64bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/64_libs/5.14/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/64_libs/5.14/64bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/64_libs/5.14/64bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.14/64bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/64_libs/5.14/64bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/64_libs/5.14/64bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/64_libs/5.14/64bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/64_libs/5.14/64bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/64_libs/5.14/64bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/64_libs/5.14/64bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/64_libs/5.14/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.14/64bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/64_libs/5.14/64bit_libssh2-1.2.8-bin_20110506.zip',
+# ]
},
};
===
GoTo:
C:\sb\perl\site\lib\Perl\Dist\
rename
WiX.pm
to
WiX.pm.Orig
apply patch to WiX.pm:
===
--- WiX.pm.Orig Sun Jun 05 15:17:58 2011
+++ WiX.pm Fri Jun 10 16:18:39 2011
@@ -728,7 +728,7 @@
$_ = 32;
}
- $_ == 32 or $_ == 64;
+ $_ == 32 or $_ == 32; # VVM 2011-06-10 16-18
},
message {
'Not 32 or 64-bit';
===
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.msi strawberry-perl-5.12.3.0-32bit-build-2011-06-09.msi
rename strawberry-perl-5.12.3.0.zip strawberry-perl-5.12.3.0-32bit-build-2011-06-09.zip
Copy this files from C:\tmp\
HowTo: Upgrade Strawberry Perl v5.12.3.0 x86 ( strawberry-perl-5.12.3.0-32bit.zip) library to kmx/32_libs/5.12/*.zip
ToDo ( if possible)
2011-06-10 14-44:
See later about
nan , InF
—–
HowTo: Build Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip
Or
HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.14/*.zip and GCC toolchain to mingw64-w64-gcc4.4.6_20110503-v2.zip
As result:
-- Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip
( strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip / .msi )
Screenshot:
==
C:\strawberry>gcc -v
Using built-in specs.
Target: x86_64-w64-mingw32
Configured with: ../gcc44-svn/configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-multilib
--enable-checking=release --prefix=/mingw64 --enable-languages=c,c++,fortran --enable-libgomp --with-gmp=/mingw64
--with-mpfr=/mingw64 --disable-nls --disable-win32-registry
Thread model: win32
gcc version 4.4.6 20110416 (release) [svn/rev.172578 - mingw-w64/oz] (GCC)
C:\strawberry>perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for MSWin32-x64-multi-thread
. . .
==
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\WiX\Mixin\
rename
Libraries.pm
to
Libraries.pm.Orig
apply patch to Libraries.pm:
===
--- Libraries.pm.Orig Sun Jun 05 15:17:58 2011
+++ Libraries.pm Thu Jun 09 15:43:42 2011
@@ -56,12 +56,18 @@
'gcc-toolchain' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2.zip',
'gcc-license' => '32bit-gcc4/mingw64-w32-20100123-kmx-v2-lic.zip',
},
+# VVM 2011-06-09 09-56
'64bit-gcc4' => {
+# 'dmake' => 'kmx/64_tools/64bit_dmake-SVN20091127-bin_20100308.zip', # older? <= ( 20100308 '64bit-gcc4/dmake-SVN20091127-bin_20100524.zip',
+# 'mingw-make' => 'kmx/64_tools/64bit_gmake-3.82-bin_20110503.zip', # Has error? VVM 2011-06-09 15-43
'mingw-make' => '64bit-gcc4/gmake-3.81.90_20100127_20100524.zip',
+# 'pexports' => 'kmx/64_tools/64bit_pexports-0.44-bin_20100110.zip', # Not need? VVM 2011-06-09 09-56
'pexports' => '64bit-gcc4/pexports-0.44-bin_20100110.zip',
- 'gcc-toolchain' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2.zip',
- 'gcc-license' => '64bit-gcc4/mingw64-w64-20100123-kmx-v2-lic.zip',
+# [ VVM 2011-06-09 09-56
+ 'gcc-toolchain' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2.zip',
+ 'gcc-license' => 'kmx/64_gcctoolchain/mingw64-w64-gcc4.4.6_20110503-v2-lic.zip',
+#]
},
);
===
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 May 31 04:09:10 2011
+++ Libraries.pm Thu Jun 09 15:43:42 2011
@@ -129,6 +129,7 @@
},
'64bit-gcc4' => {
'patch' => '64bit-gcc4/patch-2.5.9-7-bin_20100110_20100303.zip',
+# 'patch' => 'kmx/64_tools/64bit_patch-2.5.9-7-bin_20100110_UAC.zip', # VVM 2011-06-09 15-43 ToDo? # [ VVM 2011-06-09 09-56 ( kmx)
'mysql589' => undef,
'mysql5100' => undef,
'mysql5101' => undef,
@@ -146,29 +147,31 @@
'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',
+# [ VVM 2011-06-09 09-56
+ 'zlib' => 'kmx/64_libs/5.14/64bit_zlib-1.2.5-bin_20110506.zip',
+ 'libiconv' => 'kmx/64_libs/5.14/64bit_libiconv-1.13.1-sezero20110428-bin_20110506.zip',
+ 'libxml2' => 'kmx/64_libs/5.14/64bit_libxml2-2.7.8-bin_20110506.zip',
+ 'libexpat' => 'kmx/64_libs/5.14/64bit_expat-2.0.1-sezero20110428-bin_20110506.zip',
+ 'gmp' => 'kmx/64_libs/5.14/64bit_gmp-5.0.1-bin_20110506.zip',
+ 'libxslt' => 'kmx/64_libs/5.14/64bit_libxslt-1.1.26-bin_20110506.zip',
+ 'libjpeg' => 'kmx/64_libs/5.14/64bit_jpeg-8c-bin_20110506.zip',
+ 'libgif' => 'kmx/64_libs/5.14/64bit_giflib-4.1.6-bin_20110506.zip',
+ 'libpng' => 'kmx/64_libs/5.14/64bit_libpng-1.5.2-bin_20110506.zip',
+ 'libtiff' => 'kmx/64_libs/5.14/64bit_tiff-3.9.5-bin_20110506.zip',
+ 'libgd' => 'kmx/64_libs/5.14/64bit_gd-2.0.35(OLD-jpg-png)-bin_20110506.zip',
+ 'libfreetype' => 'kmx/64_libs/5.14/64bit_freetype-2.4.4-bin_20110506.zip',
+ 'libopenssl' => 'kmx/64_libs/5.14/64bit_openssl-1.0.0d-bin_20110506.zip',
+ 'libpostgresql' => 'kmx/64_libs/5.14/64bit_postgresql-9.0.4-bin_20110506.zip',
+ 'libdb' => 'kmx/64_libs/5.14/64bit_db-5.1.25-bin_20110506.zip',
+ 'libgdbm' => 'kmx/64_libs/5.14/64bit_gdbm-1.8.3-bin_20110506.zip',
+ 'libxpm' => 'kmx/64_libs/5.14/64bit_libXpm-3.5.9-bin_20110506.zip',
+ 'libxz' => 'kmx/64_libs/5.14/64bit_xz-5.0.2-bin_20110506.zip',
+ 'mpc' => 'kmx/64_libs/5.14/64bit_mpc-0.9-bin_20110506.zip',
+ 'mpfr' => 'kmx/64_libs/5.14/64bit_mpfr-3.0.1-bin_20110506.zip',
+ 'libmysql' => 'kmx/64_libs/5.14/64bit_mysql-5.1.44-bin_20100304.zip',
+ 'freeglut' => 'kmx/64_libs/5.14/64bit_freeglut-2.6.0-bin_20110506.zip',
+ 'libssh2' => 'kmx/64_libs/5.14/64bit_libssh2-1.2.8-bin_20110506.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-09.msi
rename strawberry-perl-5.12.3.0-64bit.zip strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip
Copy this files from C:\tmp\
—-
As result:
Fixed nan , InF issue:
https://rt.cpan.org/Public/Bug/Display.html?id=62161
=>
=== ---
On Thu Feb 17 06:32:37 2011, KMX wrote:
> I have prepared micro-patched gcc toolchain packs
>(just changing single file stdlib.h)> 64bit:
> /kmx/64_gcctoolchain/mingw64-w64-20100123-kmx-v3.zip
With:
Strawberry Perl v5.12.3 x64 with GCC toolchain mingw64-w64-gcc4.4.6_20110503-v2.zip and kmx/64_libs 20110506.zip
( strawberry-perl-5.12.3.0-64bit-build-2011-06-09.zip / .msi )
( Instruction for build:
HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.14/*.zip and GCC toolchain to mingw64-w64-gcc4.4.6_20110503-v2.zip
http://vvm.blog.tut.by/2011/06/09/howto-upgrade-strawberry-perl-v5-12-3-0-x64-strawberry-perl-5-12-3-0-64bit-zip-library-to-kmx-64_libs-5-14-zip-and-gcc-toolchain-to-mingw64-w64-gcc4-4-6_20110503-v2-zip/
)
Screenshot:
==
C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'nan' + 0"
-1.#IND
C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'InF' + 0"
1.#INF
C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'NanN' + 0"
Argument "NanN" isn't numeric in addition (+) at -e line 1.
-1.#IND
C:\strawberry-perl-5.12.3.0-64bit-build-2011-06-09>perl -wle "print 'iNff' + 0"
Argument "iNff" isn't numeric in addition (+) at -e line 1.
1.#INF
==
=== ---
HowTo: Upgrade Strawberry Perl v5.12.3.0 x64 ( strawberry-perl-5.12.3.0-64bit.zip) library to kmx/64_libs/5.12/*.zip
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\
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\
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.
. . .
==