I have just tried to compile Oracle::OCI 0.06 under DBI 1.46 and DBD::Oracle 1.16. (Using perl 5.8.5-dor under Solaris 8). The compilation failed. The first error message was:
"OCI.xs", line 6: cannot find include file: <Oracle.h>
The cause of the problem is a small change in the behaviour of DBI::DBD::dbd_dbi_arch_dir(). In DBI 1.43, this returned a string ending with '/DBI', in 1.46 the string ends with '/DBI/'. The extra '/' confuses the Makefile.PL that is created by Oracle-OCI-0.06/boot, so that it does not set the include path correctly for the compilation.
I have attached a patch. I hope this helps someone.
-- Charles Jardine - Computing Service, University of Cambridge [EMAIL PROTECTED] Tel: +44 1223 334506, Fax: +44 1223 334679
diff -u -r Oracle-OCI-0.06/boot Oracle-OCI-0.06.patched/boot --- Oracle-OCI-0.06/boot Thu Aug 30 16:49:24 2001 +++ Oracle-OCI-0.06.patched/boot Fri Nov 19 16:37:51 2004 @@ -293,7 +293,7 @@ use DBI::DBD; my $dbi_dir = dbd_dbi_dir(); my $dbi_arch_dir = dbd_dbi_arch_dir(); - (my $ora_arch_dir = $dbi_arch_dir) =~ s!DBI$!DBD/Oracle!; + (my $ora_arch_dir = $dbi_arch_dir) =~ s!DBI/?$!DBD/Oracle!; }."\n" if $. == 1; s!^\);! CONFIGURE => \\&wmf_config,\n);!; print $new_mk $_;