Bug #80926 [ReO->Csd]: Unable to compile PDO_OCI and LDAP

From: Date: Wed, 24 Jul 2024 00:26:21 +0000
Subject: Bug #80926 [ReO->Csd]: Unable to compile PDO_OCI and LDAP
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-247354@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80926&edit=1

 ID:                 80926
 Updated by:         petk@php.net
 Reported by:        tmp6 at turnov dot org
 Summary:            Unable to compile PDO_OCI and LDAP
-Status:             Re-Opened
+Status:             Closed
 Type:               Bug
 Package:            Compile Failure
 Operating System:   Ubuntu 18.04.5 LTS
 PHP Version:        8.0.3
 Assigned To:        mcmic
 Block user comment: N
 Private report:     N

 New Comment:

Hello, thanks for reporting. This issue is now being tracked at https://github.com/php/php-src/issues/15051


Previous Comments:
------------------------------------------------------------------------
[2022-08-19 20:01:28] hammesmatthias0 at yahoo dot com

The following pull request has been associated:

Patch Name: change php version and copyright year
On GitHub:  https://github.com/php/pecl-encryption-mcrypt/pull/10
Patch:      https://github.com/php/pecl-encryption-mcrypt/pull/10.patch

------------------------------------------------------------------------
[2021-04-20 01:46:17] sixd@php.net

Try building in two stages: build without PDO_OCI, and then do a separate build to create
pdo_oci.so.

------------------------------------------------------------------------
[2021-04-08 08:13:16] mcmic@php.net

If I understand correctly Oracle LDAP libraries have no ldap_destroy function.

This function is called since commit 80958d0f90dfa9a48e92e81e027121ec091c9d03

Can you try replacing ldap_destroy by ldap_unbind_ext and see if this fixes compilation? If so we
may add an ifdef block to do this for oracle lib.

But building php-ldap with another lib than openldap will remove some features and is not thoroughly
tested.

In your case it seems an other solution would be to use openldap lib anyway but the problem is the
ldap.h from oracle gets pulled into path and is selected. I’m not sure how you can force the
openldap one instead.

------------------------------------------------------------------------
[2021-04-06 16:12:08] cmb@php.net

> Not possible to use current ldap libraries from Oracle

Oh!  Côme might be interested in this.

At least as workaround, you can likely build PHP without PDO_OCI
first, and then do a phpize build of PDO_OCI.

------------------------------------------------------------------------
[2021-04-06 15:25:56] tmp6 at turnov dot org

Not possible to use current ldap libraries from Oracle

/bin/bash /usr/local/src/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile cc
-Iext/ldap/ -I/usr/local/src/php-8.0.3/ext/ldap/ -I/usr/local/src/php-8.0.3/include
-I/usr/local/src/php-8.0.3/main -I/usr/local/src/php-8.0.3 -I/usr/local/src/php-8.0.3/ext/date/lib
-I/usr/include/libxml2 -I/usr/include/x86_64-linux-gnu -I/usr/local/lib/oracle/21.1/client64/include
-I/usr/local/include -I/usr/local/src/php-8.0.3/ext/mbstring/libmbfl
-I/usr/local/src/php-8.0.3/ext/mbstring/libmbfl/mbfl -I/usr/local/include/oracle/21.1/client64
-I/usr/lib/x86_64-linux-gnu/libzip/include -I/usr/local/src/php-8.0.3/TSRM
-I/usr/local/src/php-8.0.3/Zend    -Wno-clobbered -Wall -Wextra -Wno-strict-aliasing
-Wno-implicit-fallthrough -Wno-unused-parameter -Wno-sign-compare -g -O2 -fvisibility=hidden
-DZEND_SIGNALS   -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c /usr/local/src/php-8.0.3/ext/ldap/ldap.c -o
ext/ldap/ldap.lo 
/usr/local/src/php-8.0.3/ext/ldap/ldap.c: In function ‘_close_ldap_link’:
/usr/local/src/php-8.0.3/ext/ldap/ldap.c:104:2: warning: implicit declaration of function
‘ldap_destroy’; did you mean ‘ldap_perror’? [-Wimplicit-function-declaration]
  ldap_destroy(ld->link);
  ^~~~~~~~~~~~
  ldap_perror
/usr/local/src/php-8.0.3/ext/ldap/ldap.c: In function ‘_php_ldap_control_to_array’:
/usr/local/src/php-8.0.3/ext/ldap/ldap.c:147:30: error:
‘LDAP_CONTROL_PASSWORDPOLICYRESPONSE’ undeclared (first use in this function); did you
mean ‘LDAP_CONTROL_PWDEXPIRING’?
  if (strcmp(ctrl->ldctl_oid, LDAP_CONTROL_PASSWORDPOLICYRESPONSE) == 0) {
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              LDAP_CONTROL_PWDEXPIRING

....

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=80926


--
Edit this bug report at https://bugs.php.net/bug.php?id=80926&edit=1


Thread (8 messages)

« previous php.bugs (#247354) next »