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 $_;

Reply via email to