Giter Club home page Giter Club logo

Comments (19)

cjbj avatar cjbj commented on August 27, 2024 2

Yes, I believe ldap/config.m4 should be updated and the Oracle references removed.

Instant Client has an older version/API of LDAP. This is almost certain to never change - you can follow up Oracle bug 14049255 I logged ages ago that isn't go to go anywhere. In summary, don't build PHP's LDAP extension with Instant Client.

If you ever need to have both PHP LDAP and OCI8 installed, the traditional technique was to add OCI8 as a shared library after PHP was built.

from php-src.

kocsismate avatar kocsismate commented on August 27, 2024 2

but I still wonder why ldap_connect_wallet() had been introduced in the first place.

It was because I thought that people needed the functionality provided by ldap_connect() when HAVE_ORALDAP is available. But to be honest I didn't know that Oracle Instant Client support is completely wrecked, since I didn't perform tests under this system. :/

from php-src.

Girgias avatar Girgias commented on August 27, 2024 1

Possibly also cc @MCMic

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024 1

I was looking for the mentioned RFC in the wrong place, but finally found it.

Anyhow, isn't there a place now where such future changes are tracked? If so, this ticket could be closed.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024 1

Maybe we should be pragmatic here: we know there is broken functionality, but so far nobody has committed to fix. Okay. If someone provides a fix, we should merge it; if "many" people complain that the functionality is broken, and offer help to fix it, we might fix it. And if the functionality gets fixed, the RFC can proceed as planned. If it doesn't get fixed, we still can consider what to do about it for PHP 9.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

/cc @cjbj

from php-src.

NattyNarwhal avatar NattyNarwhal commented on August 27, 2024

I also saw in ext/ldap/config.m4 that it seems to support Solaris LDAP too, not just OpenLDAP. Does the extension still work with non-OpenLDAP implementations, or should we just commit to OpenLDAP only? Windows version seems to be hardcoded for OpenLDAP.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

Windows version seems to be hardcoded for OpenLDAP.

Right, and I'm not aware of any requests to open this for other LDAP implementations. And regarding the official Windows builds, I don't think that there are any plans to use another implementation.

from php-src.

petk avatar petk commented on August 27, 2024

There is now initial PR created #15067

However, I'm probably missing something more here. The ldap_connect_wallet function was implemented in PHP 8.3 when HAVE_ORALDAP symbol is defined. As an alternative to the ldap_connect() with 3 arguments specific to Oracle. But I have no idea how this was meant to work without Oracle Instant Client. Does perhaps @kocsismate know about this what to do here?

Oracle Instant Client provides also 3 specific constants: GSLC_SSL_NO_AUTH, GSLC_SSL_ONEWAY_AUTH, and GSLC_SSL_TWOWAY_AUTH, which would also be removed with this... Regarding these 3 constants there was also a fix done in master (current PHP-8.4-dev) branch #14313 so I think removal of these 3 is not problematic as they were never available in PHP actually.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

I think #5177 (comment) clarifies this a bit.

from php-src.

petk avatar petk commented on August 27, 2024

I think #5177 (comment) clarifies this a bit.

Thanks. This makes sense now :) Got it. Let's wait with all of this until PHP 9 then and remove it then.

from php-src.

petk avatar petk commented on August 27, 2024

I was looking for the mentioned RFC in the wrong place, but finally found it.

Anyhow, isn't there a place now where such future changes are tracked? If so, this ticket could be closed.

I'm not sure there is any tracker for these. I'd prefer to leave this opened because this is sort of a separate issue related to the build system also. By removing the Oracle Instant Client installation feature all Oracle specific LDAP features are also removed. And by having current implementation there is no way to use this function realistically without some heavy patching of C code. Which is not good at all.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

https://wiki.php.net/rfc#pending_implementationlanding already tracks the remaining parts of https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures.

By removing the Oracle Instant Client installation feature all Oracle specific LDAP features are also removed. And by having current implementation there is no way to use this function realistically without some heavy patching of C code. Which is not good at all.

Oh now I see! I consider it quite likely that this needs to be fixed; otherwise the ldap_connect() section of the mentioned RFC would have been pretty pointless (or maybe worse). /cc @kocsismate

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

PHP 8.4 RMs might be interested in this: @ericmann, @NattyNarwhal, @SakiTakamachi.

from php-src.

NattyNarwhal avatar NattyNarwhal commented on August 27, 2024

Did we ever get any bug reports about the Oracle LDAP stuff not building before? Since it straight up didn't compile, it's arguably a BC break if we remove it for 8.4, but if a tree falls in the woods and no one hears it....

from php-src.

petk avatar petk commented on August 27, 2024

Did we ever get any bug reports about the Oracle LDAP stuff not building before? Since it straight up didn't compile, it's arguably a BC break if we remove it for 8.4, but if a tree falls in the woods and no one hears it....

Yes, sorry. I forgot to mention in the comments. I've only edited above post about the previous report, but this was reported also here:

https://bugs.php.net/80926

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

Oh, I thought this was related to unbundling oci8 and pdo_oci. If not, than this is nothing new regarding PHP 8.4, but I still wonder why ldap_connect_wallet() had been introduced in the first place.

from php-src.

cmb69 avatar cmb69 commented on August 27, 2024

At least someone should have noticed this, ideally before you had invested all the time.

from php-src.

petk avatar petk commented on August 27, 2024

Well, that's good news then so it's clear that the ldap_connect_wallet() is meant only for LDAP installation with Oracle Instant Client. So, basically these two are "breaking changes":

  • ldap_connect_wallet()
  • and PHP constants that never existed GSLC_SSL_NO_AUTH, GSLC_SSL_ONEWAY_AUTH, and GSLC_SSL_TWOWAY_AUTH

The issue is how to handle this because there was an RFC created for it and everything. I'd suggest to simply remove all of these in PHP-9. Or if someone creates a super fast RFC for PHP-8.4 to deprecate the ldap_connect_wallet and Oracle Instant Client installation. 🤔 Probably timeline before the 8.4 feature freeze is too short for all of this.

from php-src.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.