There were some mails about trouble building
DBI a couple of months back.  My problems
were similar, but the suggested fixes did
not work for me.

I had several issues trying to build DBI:
 - Missing directory [.BLIB.ARCH.AUTO.DBI]
 - Misplaced files: driver.xst driver_xst.h
 - Needed to add a line to descrip.mms
 - Test case failures

Are these issues likely the result of some
misconfiguration of my system?

The gory details follow.

OS/Tool Version Info...

  perlsrc:/dbi-1_32/ perl -v
  This is perl, v5.6.1 built for VMS_AXP
  
  perlsrc:/dbi-1_32/ cc /ver
  Compaq C V6.5-001 on OpenVMS Alpha V7.3-1
  
  perlsrc:/dbi-1_32/ mms/id
  %MMS-I-IDENT, MMS V3.4-3 � Compaq Computer Corporation 2000. � Electronic
Data Systems Limited 1995, 2000

Build Log...

First generate the make file...

  perlsrc:/dbi-1_32/ perl Makefile.PL
  *** 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://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 extra DBI::PurePerl test: t/zz_01basics_pp.t
  Creating extra DBI::PurePerl test: t/zz_02dbidrv_pp.t
  Creating extra DBI::PurePerl test: t/zz_03hleak_pp.t
  Creating extra DBI::PurePerl test: t/zz_04mods_pp.t
  Creating extra DBI::PurePerl test: t/zz_05thrclone_pp.t
  Creating extra DBI::PurePerl test: t/zz_06attrs_pp.t
  Creating extra DBI::PurePerl test: t/zz_07kids_pp.t
  Creating extra DBI::PurePerl test: t/zz_10examp_pp.t
  Creating extra DBI::PurePerl test: t/zz_15array_pp.t
  Creating extra DBI::PurePerl test: t/zz_20meta_pp.t
  Creating extra DBI::PurePerl test: t/zz_30subclass_pp.t
  Creating extra DBI::PurePerl test: t/zz_40profile_pp.t
  Creating extra DBI::PurePerl test: t/zz_41prof_dump_pp.t
  Creating extra DBI::PurePerl test: t/zz_42prof_data_pp.t
  Creating extra DBI::PurePerl test: t/zz_60preparse_pp.t
  Creating extra DBI::PurePerl test: t/zz_70shell_pp.t
  Creating extra DBI::PurePerl test: t/zz_80proxy_pp.t
  Checking if your kit is complete...
  Looks good
  
  Warning: I could not locate your pod2man program.  As a last choice,
           I will look for the file to which the logical name POD2MAN
           points when MMK is invoked.
  
  Writing Descrip.MMS for DBI
  
      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.
  
  perlsrc:/dbi-1_32/

Next create a directory and copy some files that the
generated makefile will miss...

  perlsrc:/dbi-1_32/ creat/dir [.BLIB.ARCH.AUTO.DBI]
  perlsrc:/dbi-1_32/ copy driver.xst [.BLIB.ARCH.AUTO.DBI]
  perlsrc:/dbi-1_32/ copy driver_xst.h [.BLIB.ARCH.AUTO.DBI]
  perlsrc:/dbi-1_32/

Next edit descrip.mms and add the following line below
the line "config :: $(changes_pm)":
    $(NOECHO) $(NOOP)

Then invoke mms...

  perlsrc:/dbi-1_32/ mms
  
  perl -p -e "s/~DRIVER~/Perl/g" < [.blib.arch.auto.DBI]Driver.xst >
Perl.xsi
  perl "-Iperl_root:[lib.VMS_AXP.5_6_1]" "-Iperl_root:[lib]"
perl_root:[lib.ExtUtils]xsubpp  -typemap perl_root:[lib.ExtUtils]
  typemap PERL.xs >PERL.C
  Warning: long symbol DBD__Perl__db_selectall_arrayref
          trimmed to DBD_Perl_db_selectal_arayref
           at perl_root:[lib.ExtUtils]xsubpp line 1068
  Warning: long symbol DBD__Perl__db_selectrow_arrayref
          trimmed to DBD_Pl_db_ser_arayref
           at perl_root:[lib.ExtUtils]xsubpp line 1068
  Warning: long symbol DBD__Perl__st_bind_param_inout
          trimmed to DBD_Perl_st_bind_param_inout
           at perl_root:[lib.ExtUtils]xsubpp line 1068
  Warning: long symbol DBD__Perl__st_fetchrow_arrayref
          trimmed to DBD_Perl_st_fetchrow_arayref
           at perl_root:[lib.ExtUtils]xsubpp line 1068
  Warning: long symbol DBD__Perl__st_fetchall_arrayref
          trimmed to DBD_Perl_st_fetchal_arayref
           at perl_root:[lib.ExtUtils]xsubpp line 1068
  perlsrc:/dbi-1_32/

My "mms test" results were as follows after I
installed Time::HiRes...

  Failed Test       Status Wstat Total Fail  Failed  List of Failed
 
----------------------------------------------------------------------------
----
  t/06attrs.t                          125    2   1.60%  61-62
  t/10examp.t                           ??   ??       %  ??
  t/zz_06attrs_pp.t                    125    2   1.60%  61-62
  14 tests skipped.
  Failed 3/34 test scripts, 91.18% okay. 4/739 subtests failed, 99.46% okay.
  %SYSTEM-F-ABORT, abort
  %MMS-F-ABORT, For target TEST_DYNAMIC, CLI returned abort status:
%X0000002C.
  -SYSTEM-F-ABORT, abort

Those results were good enough for me.  At some point I did
some investigation on a slightly different set of test case
failures.  Below are my notes:

  t/06attrs.t                          125    2   1.60%  61-62
  
  Case sensitivity issue (No/no) @ line 101:
  Check is:
    ok( $err =~ /^DBD::ExampleP::st execute failed: opendir\(foo\): No such
file or directory/ );
  $err contains:
    DB<2> p $err
  DBD::ExampleP::st execute failed: opendir(foo): no such file or directory
at t/06attrs.t line 99.
  
  Case sensitivity issue (No/no) @ line 104:
  Check is:
    ok( $sth->errstr, 'opendir(foo): No such file or directory' );
  $sth->errstr contains:
    DB<3> p $sth->errstr
  opendir(foo): no such file or directory
  ----------
  
  t/10examp.t                           ??   ??       %  ??
  
  These all passed when invoked as follows:
    perl "-w" "-T" "-I[.blib.arch]" "-I[.blib.lib]" "-Iperl_root:[lib]"
"-Iperl_root:[lib.VMS_AXP.5_6_1]" t/10examp.t
  Leaving off the "-T" results in:
  Too late for "-T" option at t/10examp.t line 1.
  %SYSTEM-F-ABORT, abort
  ----------
  
  t/40profile.t            100  1024    56   56 100.00%  1-56
  
  Only the last test fails.  It seems the log file does
  not flush until the program exits.  Remove the
  following line from 40profile.t to demonstrate this:
    END { unlink $LOG_FILE; }
  
  From the debugger, setting a break at the line:
    ok(-s $LOG_FILE);
  
  At which point:
    perlsrc:/dbi-1_32/ directoryxyz profile.log /size=all
  
    Directory PERLSRC:[000000.DBI-1_32]
  
    PROFILE.LOG;1              0/0
  
    Total of 1 file, 0/0 blocks.
    perlsrc:/dbi-1_32/
  
  After the script finishes:
    perlsrc:/dbi-1_32/ directoryxyz profile.log /size=all
    Directory PERLSRC:[000000.DBI-1_32]
  
    PROFILE.LOG;1              4/6
  
    Total of 1 file, 4/6 blocks.
    perlsrc:/dbi-1_32/
  ----------
  
  t/zz_06attrs_pp.t                    125    2   1.60%  61-62
  
  Fails in 06attrs.t for the same reason described above.
  ----------

Reply via email to