Hi I've modified PHP eclass to enable Oracle Instantclient with PHP It supports PHP 4/5 on x86, x86_64 and ia64 Here's the documentation from Oracle : http://www.oracle.com/technology/pub/notes/technote_php_instant.html The "dev-db/oracle-instantclient-basic" is required to build PHP.
Created attachment 71324 [details, diff] Diff file Here's the diff for /usr/portage/eclass/php-sapi.eclass
I've tested with dev-php/mod_php-4.4.0-r3 and dev-db/oracle-instantclient-basic-10.1.0.4, phpsysinfo() returns this : Oracle Version = 10.1 Compile-time ORACLE_HOME = /usr/lib/oracle/10.1.0.4/client/lib
I'd like to note that we won't be adding enhancements to old dev-php/{mod_}php ebuilds, so if this gets into portage, I will go to dev-lang/php instead.
To generate patches, please do 'diff oldone newone' and not the reverse, it makes them much easier to understand and apply! As Jakub said we won't add new features to dev-php/{php,php-cgi,mod_php} but only to dev-lang/php, and in dev-lang/php we already have Oracle support with the 'oci8' USE flag, is this one much different from that? I can't test since I don't use and don't have any Oracle installations, it would be easy to add to dev-lang/php, but is it really needed? Isn't the 'oci8' USE flag enough to support Oracle, I've heard it works quite well... So if you feel this is really needed and have a solid reason for the use of oracle-instantclient, please reopen the bug and state why, thanks. :) Best regards, CHTEKK.
CHTEKK: USE=oci8 requires a full install of Oracle (which is huge). Until now, it wasn't possible to build the PHP oracle extension with the oracle instantclient. I think we're probably best off changing oci8 to require instantclient, and dropping the direct oracle usage, as that also improves QA (since we should have an DEPEND+RDEPEND on the full oracle, but we don't).
(In reply to comment #5) > CHTEKK: USE=oci8 requires a full install of Oracle (which is huge). Until now, > it wasn't possible to build the PHP oracle extension with the oracle > instantclient. I think we're probably best off changing oci8 to require > instantclient, and dropping the direct oracle usage, as that also improves QA > (since we should have an DEPEND+RDEPEND on the full oracle, but we don't). Ok thanks for the clarification! We should (R)DEPEND on many packages wich we support in USE flags, but that's not possible since they're all commercial and not in Portage, so we warn the user about that if the uses one of them, but leave him the possibility to compile the PHP he needs. For Oracle, I'd say to keep the actual 'oci8' USE flag since some users use it successfully and then add like the original poster said, a new 'oci8-instant-client' USE flag to dev-lang/php, wich DEPENDs on the dev-db/oracle-instantclient-basic package and is setup to work out-of-the-box, the USE flag will then be added to the use.mask of some architectures who don't support the oracle-instantclient-basic package (I'll need to do that too for java-internal/java-external USE flags). Reopening this till I change it around, wich should be tomorrow. Best regards, CHTEKK.
The "oci8-instant-client" USE flag was added to the latest dev-lang/php releases, please use those to have Oracle Instantclient support. On dev-lang/php you can now choose either to use the Oracle Instantclient ("oci8-instant-client" USE flag) or the full Oracle Server installation ("oci8" USE flag) as your Oracle provider. Best regards, CHTEKK.