Summary: | dev-lang/php 5.3.8 USE="pdo oci8-instant-client" - checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Victor <v.simankin> |
Component: | New packages | Assignee: | PHP Bugs <php-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | eugene.nikolaev, gmiramir, patrickallaert |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | php-5.3-pdo_oci.patch |
Description
Victor
2011-08-25 02:11:39 UTC
How can you tell it's the same problem ? Full build log and config.log, please. *** Bug 381007 has been marked as a duplicate of this bug. *** More info on duplicate bug #381007. This has been introduced in rev 309818 which happened between 5.3.6 and 5.3.7: $ svn diff -c 309818 https://svn.php.net/repository/php/php-src/trunk/ Index: ext/pdo_oci/config.m4 =================================================================== --- ext/pdo_oci/config.m4 (revision 309817) +++ ext/pdo_oci/config.m4 (revision 309818) @@ -71,28 +71,34 @@ fi if test "instantclient" = "`echo $PDO_OCI_DIR | cut -d, -f1`" ; then + AC_CHECK_SIZEOF(long int, 4) + if test "$ac_cv_sizeof_long_int" = "4" ; then + PDO_OCI_CLIENT_DIR="client" + else + PDO_OCI_CLIENT_DIR="client64" + fi PDO_OCI_IC_PREFIX="`echo $PDO_OCI_DIR | cut -d, -f2`" PDO_OCI_IC_VERS="`echo $PDO_OCI_DIR | cut -d, -f3`" AC_MSG_CHECKING([for oci.h]) - if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client/oci.h ; then - PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client) - AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client) - elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include/oci.h ; then - PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include) - AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include) + if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/oci.h ; then + PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR) + AC_MSG_RESULT($PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR) + elif test -f $PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include/oci.h ; then + PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include) + AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/include) elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/sdk/include) AC_MSG_RESULT($PDO_OCI_IC_PREFIX/sdk/include) - elif test -f $PDO_OCI_IC_PREFIX/client/include/oci.h ; then - PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/client/include) - AC_MSG_RESULT($PDO_OCI_IC_PREFIX/client/include) + elif test -f $PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include/oci.h ; then + PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include) + AC_MSG_RESULT($PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/include) else AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your Instant Client install]) fi - if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib/libclntsh.so" ; then - PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/lib" - elif test -f "$PDO_OCI_IC_PREFIX/client/lib/libclntsh.so" ; then - PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/client/lib" + if test -f "$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/lib/libclntsh.so" ; then + PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/$PDO_OCI_CLIENT_DIR/lib" + elif test -f "$PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/lib/libclntsh.so" ; then + PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX/$PDO_OCI_CLIENT_DIR/lib" elif test -f "$PDO_OCI_IC_PREFIX/libclntsh.so" ; then PDO_OCI_LIB_DIR="$PDO_OCI_IC_PREFIX" else The real question is now: is oracle-instantclient-basic supposed to be installed with a "client64" path? I mentioned this error in PHP bug http://bugs.php.net/44989 which is the related bug report. In my case oracle-instant-client instal into /usr/lib64/oracle/11.2.0.2/client (In reply to comment #5) > In my case oracle-instant-client instal into /usr/lib64/oracle/11.2.0.2/client Same here (with 11.2.0.3), hence why /usr/lib64/oracle/11.2.0.2/client64 doesn't match it. like in https://bugs.gentoo.org/show_bug.cgi?id=381007 ln -s /usr/lib64/oracle/10.2.0.3/client/include /usr/include/oracle/10.2.0.3/client64 ln -s /usr/lib/oracle/10.2.0.3/client/ /usr/lib/oracle/10.2.0.3/client64 use static path: PDO_OCI_IC_PREFIX='/usr/lib/oracle/10.2.0.3' PDO_OCI_IC_PREFIX='/usr/lib/oracle/11.2.0.2' The version must be set for your oracle client. And add own patch: mkdir -p /etc/portage/patches/dev-lang/php-5.3.8 cp php-5.3-pdo_oci.patch /etc/portage/patches/dev-lang/php-5.3.8 This works for me. Created attachment 289659 [details, diff]
php-5.3-pdo_oci.patch
I used USE='oci8' for a workaround, but since version 5.3.9_r3 this flag is removed. I think it's wrong. My variant ebuild with patch to resolve this problem: http://code.google.com/p/miramir-layman/ Simply letting php figure it out itself worked for me: http://paste.pocoo.org/show/555195/ This relies on the fact that oracle-instantclient-basic supplies an /etc/env.d file with ORACLE_HOME pointing to the correct directory. If that turns out to work for somebody beside me, I'll commit it this week. Applied my patch. |