www.frotzware.com

Compiling DBI-1.604 on Windows against Perl 5.6.1 PDF Print E-mail
Written by Frotz   
Saturday, 03 May 2008
Use at your own risk.  Tim Bunce has de-supported DBI against Perl 5.6.1.  Use these instructions as your last gasp of using Perl 5.6.1 and DBI.

INTRODUCTION:

This article is an attempt to give people their last gasp of working with Perl 5.6.1 with DBI. You assume all risks for using these instructions. This is just here to help you avoid a forced upgrade without control over your implementation schedule. Use this to justify the upgrade beyond Perl 5.6.1..

BUILD SCRIPT:


rem
rem Load Visual Studio C++ (7.0) command line environment.
rem
call vc7.bat
cd \src
tar xf DBI-1.604.tar
cd DBI-1.604
perl Makefile.PL
nmake
nmake test
nmake install

BUILD LOG:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

c:\src>compile-dbi.bat
compile-dbi.bat

c:\src>rem

c:\src>rem Load Visual Studio C++ (7.0) command line environment.

c:\src>rem

c:\src>call vc7.bat
Environment Configuration: Visual Studio 7.0 - C++

**************************************************************************
Perl versions below 5.6.1 are no longer supported by the DBI.
Perl versions 5.6.x may fail during installation with a complaint
about the use of =head3 in the pod documentation.
**************************************************************************
Press return to continue...

*** You are using a perl configured with threading enabled.
*** You should be aware that using multiple threads is
*** not recommended for production environments.

*** Note:
The optional PlRPC-modules (RPC::PlServer etc) are not installed.
If you want to use the DBD::Proxy driver and DBI::ProxyServer
modules, then you'll need to install the RPC::PlServer, RPC::PlClient,
Storable and Net::Daemon modules. The CPAN Bundle::DBI may help you.
You can install them any time after installing the DBI.
You do *not* need these modules for typical DBI usage.

Optional modules are available from any CPAN mirror, in particular
http://search.cpan.org/
http://www.perl.com/CPAN/modules/by-module
http://www.perl.org/CPAN/modules/by-module
ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module

Creating test wrappers for PurePerl & Gofer:
t/zvxgp_01basics.t
t/zvxgp_02dbidrv.t
t/zvxgp_03handle.t
t/zvxgp_04mods.t
t/zvxgp_05thrclone.t
t/zvxgp_06attrs.t
t/zvxgp_07kids.t
t/zvxgp_08keeperr.t
t/zvxgp_09trace.t
t/zvxgp_10examp.t
t/zvxgp_11fetch.t
t/zvxgp_12quote.t
t/zvxgp_13taint.t
t/zvxgp_14utf8.t
t/zvxgp_15array.t
t/zvxgp_19fhtrace.t
t/zvxgp_20meta.t
t/zvxgp_30subclass.t
t/zvxgp_40profile.t
t/zvxgp_41prof_dump.t
t/zvxgp_42prof_data.t
t/zvxgp_43prof_env.t
t/zvxgp_50dbm.t
t/zvxgp_60preparse.t
t/zvxgp_65transact.t
t/zvxgp_70callbacks.t
t/zvxgp_72childhandles.t
t/zvxgp_80proxy.t
t/zvxgp_85gofer.t
t/zvxgp_86gofer_fail.t
t/zvxgp_87gofer_cache.t
Creating test wrappers for DBD::Gofer:
t/zvg_01basics.t
t/zvg_02dbidrv.t
t/zvg_03handle.t
t/zvg_04mods.t
t/zvg_05thrclone.t
t/zvg_06attrs.t
t/zvg_07kids.t
t/zvg_08keeperr.t
t/zvg_09trace.t
t/zvg_10examp.t
t/zvg_11fetch.t
t/zvg_12quote.t
t/zvg_13taint.t
t/zvg_14utf8.t
t/zvg_15array.t
t/zvg_19fhtrace.t
t/zvg_20meta.t
t/zvg_30subclass.t
t/zvg_40profile.t
t/zvg_41prof_dump.t
t/zvg_42prof_data.t
t/zvg_43prof_env.t
t/zvg_50dbm.t
t/zvg_60preparse.t
t/zvg_65transact.t
t/zvg_70callbacks.t
t/zvg_72childhandles.t
t/zvg_80proxy.t
t/zvg_85gofer.t
t/zvg_86gofer_fail.t
t/zvg_87gofer_cache.t
Creating test wrappers for DBI::PurePerl:
t/zvp_01basics.t
t/zvp_02dbidrv.t
t/zvp_03handle.t
t/zvp_04mods.t
t/zvp_05thrclone.t
t/zvp_06attrs.t
t/zvp_07kids.t
t/zvp_08keeperr.t
t/zvp_09trace.t
t/zvp_10examp.t
t/zvp_11fetch.t
t/zvp_12quote.t
t/zvp_13taint.t
t/zvp_14utf8.t
t/zvp_15array.t
t/zvp_19fhtrace.t
t/zvp_20meta.t
t/zvp_30subclass.t
t/zvp_40profile.t
t/zvp_41prof_dump.t
t/zvp_42prof_data.t
t/zvp_43prof_env.t
t/zvp_50dbm.t
t/zvp_60preparse.t
t/zvp_65transact.t
t/zvp_70callbacks.t
t/zvp_72childhandles.t
t/zvp_80proxy.t
t/zvp_85gofer.t
t/zvp_86gofer_fail.t
t/zvp_87gofer_cache.t

I see you're using perl 5.006001 on MSWin32-x86-multi-thread, okay.
Remember to actually *read* the README file!
Use 'make' to build the software (dmake or nmake on Windows).
Then 'make test' to execute self tests.
Then 'make install' to install the DBI and then delete this working
directory before unpacking and building any DBD::* drivers.

Windows users need to use the correct make command.
That may be nmake or dmake depending on which Perl you are using.
If using the Win32 ActiveState build then it is recommended that you
use the ppm utility to fetch and install a prebuilt DBI instead.

Writing Makefile for DBI

Microsoft (R) Program Maintenance Utility Version 7.00.9466
Copyright (C) Microsoft Corporation. All rights reserved.

cl -c -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -O1 -MD -Zi -DNDEBUG -DVERSION=\"1.604\" -DXS_VERSION=\"1.604\" "-IC:\sd\perl\lib\CORE" DBI.c
cl : Command line warning D4029 : optimization is not available in the standard edition compiler
DBI.c
Running Mkbootstrap for DBI ()
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 DBI.bs
link -out:blib\arch\auto\DBI\DBI.dll -dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"c:\sd\perl\lib\CORE" -machine:x86 DBI.obj C:\sd\perl\lib\CORE\perl56.lib oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib -def:DBI.def
Creating library blib\arch\auto\DBI\DBI.lib and object blib\arch\auto\DBI\DBI.exp
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e chmod 755 blib\arch\auto\DBI\DBI.dll
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp DBI.bs blib\arch\auto\DBI\DBI.bs
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e chmod 644 blib\arch\auto\DBI\DBI.bs
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbilogstrip blib\script\dbilogstrip
pl2bat.bat blib\script\dbilogstrip
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiproxy blib\script\dbiproxy
pl2bat.bat blib\script\dbiproxy
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiprof blib\script\dbiprof
pl2bat.bat blib\script\dbiprof

Microsoft (R) Program Maintenance Utility Version 7.00.9466
Copyright (C) Microsoft Corporation. All rights reserved.

C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbilogstrip blib\script\dbilogstrip
pl2bat.bat blib\script\dbilogstrip
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiproxy blib\script\dbiproxy
pl2bat.bat blib\script\dbiproxy
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiprof blib\script\dbiprof
pl2bat.bat blib\script\dbiprof
C:\sd\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/01basics................ok
4/130 skipped: various reasons
t/02dbidrv................ok
t/03handle................ok
t/04mods..................ok
t/05thrclone..............skipped
all skipped: this MSWin32 perl 5.006001 not supported for DBI iThreads
t/06attrs.................ok
t/07kids..................ok
t/08keeperr...............ok
t/09trace.................ok
t/10examp.................ok
t/11fetch.................ok
t/12quote.................ok
t/13taint.................ok
t/14utf8..................skipped
all skipped: Requires perl 5.8
t/15array.................ok
t/19fhtrace...............
# Failed test '... regular fh: trace_msg'
# at t/19fhtrace.t line 193.
# Looks like you failed 1 test of 21.
dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 6
Failed 1/21 tests, 95.24% okay (less 13 skipped tests: 7 okay, 33.33%)
t/20meta..................ok
t/30subclass..............ok
t/40profile...............skipped
all skipped: test results assume perl >= 5.8.2
t/41prof_dump.............ok
1/15 skipped: various reasons
t/42prof_data.............ok
t/43prof_env..............ok
t/50dbm...................ok
t/60preparse..............ok
t/65transact..............ok
t/70callbacks.............ok
t/72childhandles..........ok
t/80proxy.................skipped
all skipped: modules required for proxy are probably not installed (e.g., RPC/PlClient.pm)
t/85gofer.................ok
6/78 skipped: various reasons
t/86gofer_fail............ok
t/87gofer_cache...........ok
t/pod-coverage............skipped
all skipped: Currently a developer-only test
t/pod.....................ok
t/zvg_01basics............ok
4/130 skipped: various reasons
t/zvg_02dbidrv............ok
t/zvg_03handle............ok
44/137 skipped: various reasons
t/zvg_04mods..............ok
t/zvg_05thrclone..........skipped
all skipped: this MSWin32 perl 5.006001 not supported for DBI iThreads
t/zvg_06attrs.............ok
2/145 skipped: various reasons
t/zvg_07kids..............ok
t/zvg_08keeperr...........ok
t/zvg_09trace.............ok
t/zvg_10examp.............ok
t/zvg_11fetch.............ok
t/zvg_12quote.............ok
1/10 skipped: various reasons
t/zvg_13taint.............skipped
all skipped: Taint attribute tests not functional with DBI_AUTOPROXY
t/zvg_14utf8..............skipped
all skipped: Requires perl 5.8
t/zvg_15array.............ok
t/zvg_19fhtrace...........
# Failed test '... regular fh: trace_msg'
# at ./t/19fhtrace.t line 193.
# Looks like you failed 1 test of 21.
dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 6
Failed 1/21 tests, 95.24% okay (less 13 skipped tests: 7 okay, 33.33%)
t/zvg_20meta..............ok
t/zvg_30subclass..........ok
t/zvg_40profile...........skipped
all skipped: test results assume perl >= 5.8.2
t/zvg_41prof_dump.........ok
1/15 skipped: various reasons
t/zvg_42prof_data.........ok
t/zvg_43prof_env..........ok
t/zvg_50dbm...............ok
6/36 skipped: various reasons
t/zvg_60preparse..........ok
t/zvg_65transact..........skipped
all skipped: Transactions not supported by DBD::Gofer
t/zvg_70callbacks.........ok
t/zvg_72childhandles......ok
2/14 skipped: various reasons
t/zvg_80proxy.............skipped
all skipped: modules required for proxy are probably not installed (e.g., RPC/PlClient.pm)
t/zvg_85gofer.............ok
15/78 skipped: various reasons
t/zvg_86gofer_fail........skipped
all skipped: Gofer DBI_AUTOPROXY
t/zvg_87gofer_cache.......skipped
all skipped: Gofer DBI_AUTOPROXY
t/zvp_01basics............ok
6/130 skipped: various reasons
t/zvp_02dbidrv............ok
10/51 skipped: various reasons
t/zvp_03handle............ok
57/137 skipped: various reasons
t/zvp_04mods..............ok
t/zvp_05thrclone..........skipped
all skipped: this MSWin32 perl 5.006001 not supported for DBI iThreads
t/zvp_06attrs.............ok
7/145 skipped: various reasons
t/zvp_07kids..............skipped
all skipped: $h->{Kids} attribute not supported for DBI::PurePerl
t/zvp_08keeperr...........ok
t/zvp_09trace.............ok
t/zvp_10examp.............ok
3/208 skipped: various reasons
t/zvp_11fetch.............ok
t/zvp_12quote.............ok
t/zvp_13taint.............skipped
all skipped: Taint attributes not supported with DBI::PurePerl
t/zvp_14utf8..............skipped
all skipped: Requires perl 5.8
t/zvp_15array.............ok
t/zvp_19fhtrace...........ok
13/21 skipped: various reasons
t/zvp_20meta..............ok
t/zvp_30subclass..........ok
t/zvp_40profile...........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvp_41prof_dump.........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvp_42prof_data.........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvp_43prof_env..........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvp_50dbm...............ok
t/zvp_60preparse..........skipped
all skipped: preparse not supported for DBI::PurePerl
t/zvp_65transact..........ok
t/zvp_70callbacks.........skipped
all skipped: $h->{Callbacks} attribute not supported for DBI::PurePerl
t/zvp_72childhandles......ok
t/zvp_80proxy.............skipped
all skipped: modules required for proxy are probably not installed (e.g., RPC/PlClient.pm)
t/zvp_85gofer.............ok
6/78 skipped: various reasons
t/zvp_86gofer_fail........skipped
all skipped: requires Callbacks which are not supported with PurePerl
t/zvp_87gofer_cache.......ok
t/zvxgp_01basics..........ok
6/130 skipped: various reasons
t/zvxgp_02dbidrv..........ok
10/51 skipped: various reasons
t/zvxgp_03handle..........ok
76/137 skipped: various reasons
t/zvxgp_04mods............ok
t/zvxgp_05thrclone........skipped
all skipped: this MSWin32 perl 5.006001 not supported for DBI iThreads
t/zvxgp_06attrs...........ok
9/145 skipped: various reasons
t/zvxgp_07kids............skipped
all skipped: $h->{Kids} attribute not supported for DBI::PurePerl
t/zvxgp_08keeperr.........ok
t/zvxgp_09trace...........ok
t/zvxgp_10examp...........ok
3/208 skipped: various reasons
t/zvxgp_11fetch...........ok
t/zvxgp_12quote...........ok
1/10 skipped: various reasons
t/zvxgp_13taint...........skipped
all skipped: Taint attributes not supported with DBI::PurePerl
t/zvxgp_14utf8............skipped
all skipped: Requires perl 5.8
t/zvxgp_15array...........ok
t/zvxgp_19fhtrace.........ok
13/21 skipped: various reasons
t/zvxgp_20meta............ok
t/zvxgp_30subclass........ok
t/zvxgp_40profile.........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvxgp_41prof_dump.......skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvxgp_42prof_data.......skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvxgp_43prof_env........skipped
all skipped: profiling not supported for DBI::PurePerl
t/zvxgp_50dbm.............ok
6/36 skipped: various reasons
t/zvxgp_60preparse........skipped
all skipped: preparse not supported for DBI::PurePerl
t/zvxgp_65transact........skipped
all skipped: Transactions not supported by DBD::Gofer
t/zvxgp_70callbacks.......skipped
all skipped: $h->{Callbacks} attribute not supported for DBI::PurePerl
t/zvxgp_72childhandles....ok
2/14 skipped: various reasons
t/zvxgp_80proxy...........skipped
all skipped: modules required for proxy are probably not installed (e.g., RPC/PlClient.pm)
t/zvxgp_85gofer...........ok
15/78 skipped: various reasons
t/zvxgp_86gofer_fail......skipped
all skipped: requires Callbacks which are not supported with PurePerl
t/zvxgp_87gofer_cache.....skipped
all skipped: Gofer DBI_AUTOPROXY
Failed Test Stat Wstat Total Fail List of Failed
-------------------------------------------------------------------------------
t/19fhtrace.t 1 256 21 1 6
t/zvg_19fhtrace.t 1 256 21 1 6
39 tests and 355 subtests skipped.
Failed 2/126 test scripts. 2/4970 subtests failed.
Files=126, Tests=4970, 58 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
Failed 2/126 test programs. 2/4970 subtests failed.
NMAKE : fatal error U1077: 'C:\sd\perl\bin\perl.exe' : return code '0xff'
Stop.

Microsoft (R) Program Maintenance Utility Version 7.00.9466
Copyright (C) Microsoft Corporation. All rights reserved.

C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbilogstrip blib\script\dbilogstrip
pl2bat.bat blib\script\dbilogstrip
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiproxy blib\script\dbiproxy
pl2bat.bat blib\script\dbiproxy
C:\sd\perl\bin\perl.exe -MExtUtils::Command -e cp dbiprof blib\script\dbiprof
pl2bat.bat blib\script\dbiprof
Installing C:\sd\perl\site\lib\auto\DBI\DBI.dll
Installing C:\sd\perl\site\lib\auto\DBI\DBI.exp
Installing C:\sd\perl\site\lib\auto\DBI\DBI.lib
Installing C:\sd\perl\site\lib\auto\DBI\DBI.pdb
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Writing c:\sd\perl\site\lib\auto\DBI\.packlist
Appending installation info to c:\sd\perl\lib/perllocal.pod

C:\src\DBI-1.604>

 
< Prev   Next >