Bug 246582 - Bad : can't compile php with oci8
Bad : can't compile php with oci8
Status: CLOSED WONTFIX
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: php (Show other bugs)
4.5
All Linux
low Severity medium
: ---
: ---
Assigned To: Joe Orton
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-07-03 04:14 EDT by Charles Castelain
Modified: 2012-05-22 07:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-05-22 07:37:19 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Charles Castelain 2007-07-03 04:14:05 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Description of problem:
Hello,

There is no way to rebuild php 4.3.9-3.22.5 including oci8 support.
On i386 or x86_64.

Regards,

Charles Castelain

Version-Release number of selected component (if applicable):
php-4.3.9-3.22.5

How reproducible:
Always


Steps to Reproduce:
1. Download srpm for php-4.3.9-3.22.5
2. Install that srpm
3. Modify the spec file to use --with-oci8=shared,<ORACLE_HOME> and eliminate the need for the instant-client since I am using the heavy client.
4. rpmbuild -bb --define '_with_oci8 1' php.spec
4. wait a long time for compilation
6. tests failed.
7. rpm are not created.

Actual Results:
Here is the output :

FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #26938 (exec does not read consecutive long lines correctly) [ext/standard/tests/file/bug26938.phpt]
proc_open() regression test 1 (proc_open() leak) [ext/standard/tests/file/proc_open01.phpt]
=====================================================================
make: *** [test] Error 1
+ set +x
>> TEST FAILURE: ../ext/standard/tests/file/bug26938.diff --
001- md5(line 0)= e86410fa2d6e2634fd8ac5f4b3afe7f3 (length 10)
001+ PHP Notice:  Constant OCI_DEFAULT already defined in Unknown on line 0
002- md5(line 1)= e84debf3a1d132871d7fe45c1c04c566 (length 20000)
002+ PHP Notice:  Constant OCI_DESCRIBE_ONLY already defined in Unknown on line 0
003- md5(line 2)= c33b4d2f86908eea5d75ee5a61fd81f4 (length 10000)
003+ PHP Notice:  Constant OCI_COMMIT_ON_SUCCESS already defined in Unknown on line 0
004- md5(line 3)= 2ecdde3959051d913f61b14579ea136d (length 5)
004+ PHP Notice:  Constant OCI_EXACT_FETCH already defined in Unknown on line 0
005- md5(line 4)= c33b4d2f86908eea5d75ee5a61fd81f4 (length 10000)
005+ PHP Notice:  Constant SQLT_BFILEE already defined in Unknown on line 0
006- md5(line 5)= 902fbdd2b1df0c4f70b4a5d23525e932 (length 3)
006+ PHP Notice:  Constant SQLT_CFILEE already defined in Unknown on line 0
007+ PHP Notice:  Constant SQLT_CLOB already defined in Unknown on line 0
008+ PHP Notice:  Constant SQLT_BLOB already defined in Unknown on line 0
009+ PHP Notice:  Constant SQLT_RDD already defined in Unknown on line 0
010+ PHP Notice:  Constant OCI_B_SQLT_NTY already defined in Unknown on line 0
011+ PHP Notice:  Constant oci_sysdate already defined in Unknown on line 0
012+ PHP Notice:  Constant OCI_B_BFILE already defined in Unknown on line 0
013+ PHP Notice:  Constant OCI_B_CFILEE already defined in Unknown on line 0
014+ PHP Notice:  Constant OCI_B_CLOB already defined in Unknown on line 0
015+ PHP Notice:  Constant OCI_B_BLOB already defined in Unknown on line 0
016+ PHP Notice:  Constant OCI_B_ROWID already defined in Unknown on line 0
017+ PHP Notice:  Constant OCI_B_CURSOR already defined in Unknown on line 0
018+ PHP Notice:  Constant OCI_B_BIN already defined in Unknown on line 0
019+ PHP Notice:  Constant OCI_FETCHSTATEMENT_BY_COLUMN already defined in Unknown on line 0
020+ PHP Notice:  Constant OCI_FETCHSTATEMENT_BY_ROW already defined in Unknown on line 0
021+ PHP Notice:  Constant OCI_ASSOC already defined in Unknown on line 0
022+ PHP Notice:  Constant OCI_NUM already defined in Unknown on line 0
023+ PHP Notice:  Constant OCI_BOTH already defined in Unknown on line 0
024+ PHP Notice:  Constant OCI_RETURN_NULLS already defined in Unknown on line 0
025+ PHP Notice:  Constant OCI_RETURN_LOBS already defined in Unknown on line 0
026+ PHP Notice:  Constant OCI_DTYPE_FILE already defined in Unknown on line 0
027+ PHP Notice:  Constant OCI_DTYPE_LOB already defined in Unknown on line 0
028+ PHP Notice:  Constant OCI_DTYPE_ROWID already defined in Unknown on line 0
029+ PHP Notice:  Constant OCI_D_FILE already defined in Unknown on line 0
030+ PHP Notice:  Constant OCI_D_LOB already defined in Unknown on line 0
031+ PHP Notice:  Constant OCI_D_ROWID already defined in Unknown on line 0
032+ PHP Warning:  Function registration failed - duplicate name - ocidefinebyname in Unknown on line 0
033+ PHP Warning:  Function registration failed - duplicate name - ocibindbyname in Unknown on line 0
034+ PHP Warning:  Function registration failed - duplicate name - ocicolumnisnull in Unknown on line 0
035+ PHP Warning:  Function registration failed - duplicate name - ocicolumnname in Unknown on line 0
036+ PHP Warning:  Function registration failed - duplicate name - ocicolumnsize in Unknown on line 0
037+ PHP Warning:  Function registration failed - duplicate name - ocicolumnscale in Unknown on line 0
038+ PHP Warning:  Function registration failed - duplicate name - ocicolumnprecision in Unknown on line 0
039+ PHP Warning:  Function registration failed - duplicate name - ocicolumntype in Unknown on line 0
040+ PHP Warning:  Function registration failed - duplicate name - ocicolumntyperaw in Unknown on line 0
041+ PHP Warning:  Function registration failed - duplicate name - ociexecute in Unknown on line 0
042+ PHP Warning:  Function registration failed - duplicate name - ocicancel in Unknown on line 0
043+ PHP Warning:  Function registration failed - duplicate name - ocifetch in Unknown on line 0
044+ PHP Warning:  Function registration failed - duplicate name - ocifetchinto in Unknown on line 0
045+ PHP Warning:  Function registration failed - duplicate name - ocifetchstatement in Unknown on line 0
046+ PHP Warning:  Function registration failed - duplicate name - ocifreestatement in Unknown on line 0
047+ PHP Warning:  Function registration failed - duplicate name - ociinternaldebug in Unknown on line 0
048+ PHP Warning:  Function registration failed - duplicate name - ocinumcols in Unknown on line 0
049+ PHP Warning:  Function registration failed - duplicate name - ociparse in Unknown on line 0
050+ PHP Warning:  Function registration failed - duplicate name - ocinewcursor in Unknown on line 0
051+ PHP Warning:  Function registration failed - duplicate name - ociresult in Unknown on line 0
052+ PHP Warning:  Function registration failed - duplicate name - ociserverversion in Unknown on line 0
053+ PHP Warning:  Function registration failed - duplicate name - ocistatementtype in Unknown on line 0
054+ PHP Warning:  Function registration failed - duplicate name - ocirowcount in Unknown on line 0
055+ PHP Warning:  Function registration failed - duplicate name - ocilogoff in Unknown on line 0
056+ PHP Warning:  Function registration failed - duplicate name - ocilogon in Unknown on line 0
057+ PHP Warning:  Function registration failed - duplicate name - ocinlogon in Unknown on line 0
058+ PHP Warning:  Function registration failed - duplicate name - ociplogon in Unknown on line 0
059+ PHP Warning:  Function registration failed - duplicate name - ocierror in Unknown on line 0
060+ PHP Warning:  Function registration failed - duplicate name - ocifreedesc in Unknown on line 0
061+ PHP Warning:  Function registration failed - duplicate name - ocisavelob in Unknown on line 0
062+ PHP Warning:  Function registration failed - duplicate name - ocisavelobfile in Unknown on line 0
063+ PHP Warning:  Function registration failed - duplicate name - ociloadlob in Unknown on line 0
064+ PHP Warning:  Function registration failed - duplicate name - ociwritelobtofile in Unknown on line 0
065+ PHP Warning:  Function registration failed - duplicate name - ocicommit in Unknown on line 0
066+ PHP Warning:  Function registration failed - duplicate name - ocirollback in Unknown on line 0
067+ PHP Warning:  Function registration failed - duplicate name - ocinewdescriptor in Unknown on line 0
068+ PHP Warning:  Function registration failed - duplicate name - ocisetprefetch in Unknown on line 0
069+ PHP Warning:  Function registration failed - duplicate name - ocipasswordchange in Unknown on line 0
070+ PHP Warning:  Function registration failed - duplicate name - ocifreecollection in Unknown on line 0
071+ PHP Warning:  Function registration failed - duplicate name - ocicollappend in Unknown on line 0
072+ PHP Warning:  Function registration failed - duplicate name - ocicollgetelem in Unknown on line 0
073+ PHP Warning:  Function registration failed - duplicate name - ocicollassignelem in Unknown on line 0
074+ PHP Warning:  Function registration failed - duplicate name - ocicollassign in Unknown on line 0
075+ PHP Warning:  Function registration failed - duplicate name - ocicollsize in Unknown on line 0
076+ PHP Warning:  Function registration failed - duplicate name - ocicollmax in Unknown on line 0
077+ PHP Warning:  Function registration failed - duplicate name - ocicolltrim in Unknown on line 0
078+ PHP Warning:  Function registration failed - duplicate name - ocinewcollection in Unknown on line 0
079+ PHP Warning:  Function registration failed - duplicate name - ocifreecursor in Unknown on line 0
080+ PHP Warning:  oci8:  Unable to register functions, unable to load in Unknown on line 0
081+ md5(line 0)= e86410fa2d6e2634fd8ac5f4b3afe7f3 (length 10)
082+ md5(line 1)= e84debf3a1d132871d7fe45c1c04c566 (length 20000)
083+ md5(line 2)= c33b4d2f86908eea5d75ee5a61fd81f4 (length 10000)
084+ md5(line 3)= 2ecdde3959051d913f61b14579ea136d (length 5)
085+ md5(line 4)= c33b4d2f86908eea5d75ee5a61fd81f4 (length 10000)
086+ md5(line 5)= 902fbdd2b1df0c4f70b4a5d23525e932 (length 3)
<< ../ext/standard/tests/file/bug26938.diff result ends.
>> TEST FAILURE: ../ext/standard/tests/file/proc_open01.diff --
003-   resource(%d) of type (stream)
003+   resource(4) of type (stream)
005-   resource(%d) of type (stream)
005+   resource(5) of type (stream)
007- string(5) "yay!
007+ PHP Notice:  Constant OCI_DEFAULT already defined in Unknown on line 0
008- "
008+ PHP Notice:  Constant OCI_DESCRIBE_ONLY already defined in Unknown on line 0
009- array(3) {
009+ PHP Notice:  Constant OCI_COMMIT_ON_SUCCESS already defined in Unknown on line 0
010-   [0]=>
010+ PHP Notice:  Constant OCI_EXACT_FETCH already defined in Unknown on line 0
011-   int(1)
011+ PHP Notice:  Constant SQLT_BFILEE already defined in Unknown on line 0
012-   [1]=>
012+ PHP Notice:  Constant SQLT_CFILEE already defined in Unknown on line 0
013-   int(2)
013+ PHP Notice:  Constant SQLT_CLOB already defined in Unknown on line 0
014-   [2]=>
014+ PHP Notice:  Constant SQLT_BLOB already defined in Unknown on line 0
015-   int(3)
015+ PHP Notice:  Constant SQLT_RDD already defined in Unknown on line 0
016- }
016+ PHP Notice:  Constant OCI_B_SQLT_NTY already defined in Unknown on line 0
017+ PHP Notice:  Constant oci_sysdate already defined in Unknown on line 0
018+ PHP Notice:  Constant OCI_B_BFILE already defined in Unknown on line 0
019+ PHP Notice:  Constant OCI_B_CFILEE already defined in Unknown on line 0
020+ PHP Notice:  Constant OCI_B_CLOB already defined in Unknown on line 0
021+ PHP Notice:  Constant OCI_B_BLOB already defined in Unknown on line 0
022+ PHP Notice:  Constant OCI_B_ROWID already defined in Unknown on line 0
023+ PHP Notice:  Constant OCI_B_CURSOR already defined in Unknown on line 0
024+ PHP Notice:  Constant OCI_B_BIN already defined in Unknown on line 0
025+ PHP Notice:  Constant OCI_FETCHSTATEMENT_BY_COLUMN already defined in Unknown on line 0
026+ PHP Notice:  Constant OCI_FETCHSTATEMENT_BY_ROW already defined in Unknown on line 0
027+ PHP Notice:  Constant OCI_ASSOC already defined in Unknown on line 0
028+ PHP Notice:  Constant OCI_NUM already defined in Unknown on line 0
029+ PHP Notice:  Constant OCI_BOTH already defined in Unknown on line 0
030+ PHP Notice:  Constant OCI_RETURN_NULLS already defined in Unknown on line 0
031+ PHP Notice:  Constant OCI_RETURN_LOBS already defined in Unknown on line 0
032+ PHP Notice:  Constant OCI_DTYPE_FILE already defined in Unknown on line 0
033+ PHP Notice:  Constant OCI_DTYPE_LOB already defined in Unknown on line 0
034+ PHP Notice:  Constant OCI_DTYPE_ROWID already defined in Unknown on line 0
035+ PHP Notice:  Constant OCI_D_FILE already defined in Unknown on line 0
036+ PHP Notice:  Constant OCI_D_LOB already defined in Unknown on line 0
037+ PHP Notice:  Constant OCI_D_ROWID already defined in Unknown on line 0
038+ PHP Warning:  Function registration failed - duplicate name - ocidefinebyname in Unknown on line 0
039+ PHP Warning:  Function registration failed - duplicate name - ocibindbyname in Unknown on line 0
040+ PHP Warning:  Function registration failed - duplicate name - ocicolumnisnull in Unknown on line 0
041+ PHP Warning:  Function registration failed - duplicate name - ocicolumnname in Unknown on line 0
042+ PHP Warning:  Function registration failed - duplicate name - ocicolumnsize in Unknown on line 0
043+ PHP Warning:  Function registration failed - duplicate name - ocicolumnscale in Unknown on line 0
044+ PHP Warning:  Function registration failed - duplicate name - ocicolumnprecision in Unknown on line 0
045+ PHP Warning:  Function registration failed - duplicate name - ocicolumntype in Unknown on line 0
046+ PHP Warning:  Function registration failed - duplicate name - ocicolumntyperaw in Unknown on line 0
047+ PHP Warning:  Function registration failed - duplicate name - ociexecute in Unknown on line 0
048+ PHP Warning:  Function registration failed - duplicate name - ocicancel in Unknown on line 0
049+ PHP Warning:  Function registration failed - duplicate name - ocifetch in Unknown on line 0
050+ PHP Warning:  Function registration failed - duplicate name - ocifetchinto in Unknown on line 0
051+ PHP Warning:  Function registration failed - duplicate name - ocifetchstatement in Unknown on line 0
052+ PHP Warning:  Function registration failed - duplicate name - ocifreestatement in Unknown on line 0
053+ PHP Warning:  Function registration failed - duplicate name - ociinternaldebug in Unknown on line 0
054+ PHP Warning:  Function registration failed - duplicate name - ocinumcols in Unknown on line 0
055+ PHP Warning:  Function registration failed - duplicate name - ociparse in Unknown on line 0
056+ PHP Warning:  Function registration failed - duplicate name - ocinewcursor in Unknown on line 0
057+ PHP Warning:  Function registration failed - duplicate name - ociresult in Unknown on line 0
058+ PHP Warning:  Function registration failed - duplicate name - ociserverversion in Unknown on line 0
059+ PHP Warning:  Function registration failed - duplicate name - ocistatementtype in Unknown on line 0
060+ PHP Warning:  Function registration failed - duplicate name - ocirowcount in Unknown on line 0
061+ PHP Warning:  Function registration failed - duplicate name - ocilogoff in Unknown on line 0
062+ PHP Warning:  Function registration failed - duplicate name - ocilogon in Unknown on line 0
063+ PHP Warning:  Function registration failed - duplicate name - ocinlogon in Unknown on line 0
064+ PHP Warning:  Function registration failed - duplicate name - ociplogon in Unknown on line 0
065+ PHP Warning:  Function registration failed - duplicate name - ocierror in Unknown on line 0
066+ PHP Warning:  Function registration failed - duplicate name - ocifreedesc in Unknown on line 0
067+ PHP Warning:  Function registration failed - duplicate name - ocisavelob in Unknown on line 0
068+ PHP Warning:  Function registration failed - duplicate name - ocisavelobfile in Unknown on line 0
069+ PHP Warning:  Function registration failed - duplicate name - ociloadlob in Unknown on line 0
070+ PHP Warning:  Function registration failed - duplicate name - ociwritelobtofile in Unknown on line 0
071+ PHP Warning:  Function registration failed - duplicate name - ocicommit in Unknown on line 0
072+ PHP Warning:  Function registration failed - duplicate name - ocirollback in Unknown on line 0
073+ PHP Warning:  Function registration failed - duplicate name - ocinewdescriptor in Unknown on line 0
074+ PHP Warning:  Function registration failed - duplicate name - ocisetprefetch in Unknown on line 0
075+ PHP Warning:  Function registration failed - duplicate name - ocipasswordchange in Unknown on line 0
076+ PHP Warning:  Function registration failed - duplicate name - ocifreecollection in Unknown on line 0
077+ PHP Warning:  Function registration failed - duplicate name - ocicollappend in Unknown on line 0
078+ PHP Warning:  Function registration failed - duplicate name - ocicollgetelem in Unknown on line 0
079+ PHP Warning:  Function registration failed - duplicate name - ocicollassignelem in Unknown on line 0
080+ PHP Warning:  Function registration failed - duplicate name - ocicollassign in Unknown on line 0
081+ PHP Warning:  Function registration failed - duplicate name - ocicollsize in Unknown on line 0
082+ PHP Warning:  Function registration failed - duplicate name - ocicollmax in Unknown on line 0
083+ PHP Warning:  Function registration failed - duplicate name - ocicolltrim in Unknown on line 0
084+ PHP Warning:  Function registration failed - duplicate name - ocinewcollection in Unknown on line 0
085+ PHP Warning:  Function registration failed - duplicate name - ocifreecursor in Unknown on line 0
086+ PHP Warning:  oci8:  Unable to register functions, unable to load in Unknown on line 0
087+ string(5) "yay!
088+ "
089+ array(3) {
090+   [0]=>
091+   int(1)
092+   [1]=>
093+   int(2)
094+   [2]=>
095+   int(3)
096+ }
<< ../ext/standard/tests/file/proc_open01.diff result ends.
error: Bad exit status from /var/tmp/rpm-tmp.39519 (%check)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.39519 (%check)

Also :
ldd php
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x06bb4000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00d9e000)
        libexpat.so.0 => /usr/oracle/product/10.2.0/cli_1/lib/libexpat.so.0 (0x00321000)
        libpspell.so.15 => /usr/lib/libpspell.so.15 (0x00745000)
        libpcre.so.0 => /lib/libpcre.so.0 (0x0084c000)
        libgmp.so.3 => /usr/lib/sse2/libgmp.so.3 (0x00b76000)
        libdb-4.2.so => /lib/tls/i686/libdb-4.2.so (0x0074a000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00826000)
        libcurl.so.3 => /usr/lib/libcurl.so.3 (0x0094a000)
        libbz2.so.1 => /usr/lib/libbz2.so.1 (0x06dc8000)
        libz.so.1 => /usr/lib/libz.so.1 (0x0083a000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00881000)
        libm.so.6 => /lib/tls/libm.so.6 (0x005e9000)
        libdl.so.2 => /lib/libdl.so.2 (0x0073f000)
        libssl.so.4 => /lib/libssl.so.4 (0x009b8000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x009ee000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00902000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0089b000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00896000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00995000)
        libidn.so.11 => /usr/lib/libidn.so.11 (0x00918000)
        libclntsh.so.10.1 => /usr/oracle/product/10.2.0/cli_1/lib/libclntsh.so.10.1 (0x00db4000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00611000)
        libaspell.so.15 => /usr/lib/libaspell.so.15 (0x00ad9000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00ba7000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00d6b000)
        /lib/ld-linux.so.2 (0x005cf000)
        libnnz10.so => /usr/oracle/product/10.2.0/cli_1/lib/libnnz10.so (0x00111000)
Which sounds strange because a build of a vanilla php including oci8 support does not show oracle files in its ldd.

Expected Results:
Clean build of php including oci8 support

Additional info:
My current workaround is to suppress patch 26 and manually hack the spec file to include the oci8 support.
Also the way the spec file is created is not clean because it only propose support for the oracle instant client where people could use the "heavy" oracle client.
Comment 1 Charles Castelain 2007-07-03 05:03:44 EDT
Hello,

Here the mini patch I have now for the spec file :
 diff php.spec php.spec.org
3d2
< %define with_oci8_heavy %{?_with_oci8_heavy:1}%{!?_with_oci8_heavy:0}
41c40
< # Patch26: php-4.3.9-oci8.patch
---
> Patch26: php-4.3.9-oci8.patch
232d230
< %if !%{with_oci8_heavy}
234d231
< %endif
238d234
< %if !%{!with_oci8_heavy}
240d235
< %endif
357c352
< #%patch26 -p1 -b .oci8
---
> %patch26 -p1 -b .oci8
525d519
<         %{?_with_oci8_heavy:--with-oci8=shared} \

This sounds to work good with the heavy client 10.2.
I will try to install a system with a instant client and see if it works or not.

Regards,

Charles Castelain
Comment 2 Charles Castelain 2007-07-04 07:41:33 EDT
Hello,

After further testing :
with patch26 you can build with instant client.
without patch26 you can build with the "heavy" client.

There is something wrong in that patch.

Regards,

Charles Castelain
Comment 3 Joe Orton 2007-07-18 08:44:51 EDT
The patch was added to fix some problems with the "instant client" build.

Can you find a way to make it work with both types of client library?  The
rebuild is not one we support and I can't test it here.

Note You need to log in before you can comment on or make changes to this bug.