ID: 31101 Updated by: [EMAIL PROTECTED] Reported By: phpbr at ecartz dot com -Status: Open +Status: Closed Bug Type: OpenSSL related Operating System: * PHP Version: 4CVS, 5CVS (2004-12-23) Assigned To: sniper New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2004-12-30 08:12:22] phpbr at ecartz dot com # pkg-config --cflags-only-I openssl pkg-config: command not found Installing pkg-config does in fact fix this and allows compile. Comparing the old config.cache file with the current config.cache file, I see that it did in fact note that pkg-config was not there. However, it did not throw an error on not having pkg-config, just a comment "pkg-config: no." I see three things that I would call workarounds: 1. Install pkg-config, which handles the openssl requirements for you. 2. Manually exporting CPPFLAGS with the appropriate -I (or manually edit the makefile, but the export is probably better). 3. Configure with --with-imap --with-kerberos, which will add the appropriate -I for you. I see two ways (there may be more) to implement solutions that avoid the workarounds above: 1. In the configure script, move the code that handles --with-kerberos outside of the code that handles --with-imap. Currently, combining the two will produce the required -I, so moving the code outside --with-imap should make it work. 2. Throw an error when --with-openssl is used and pkg-config is not available. If pkg-config is required to properly compile --with-openssl, then it should say so rather than waiting to throw an obscure compile error during make. Ideally, the error should be overrideable, since pkg-config can be bypassed (see the three workarounds above). 2 might be needed to handle other situations where openssl relies on pkg-config to produce the correct library and header flags. Further, 1 won't work with just --with-openssl but 2 will (tested). Note that two still requires workaround #1 (install pkg-config) when encountered. The difference is that it tells the user that. Note: as I have finished the install, I will no longer have access to this server (which won't throw the error now anyway) and will be unable to follow up with more testing. You should be able to duplicate my previous situation with a cd PKG_CONFIG_DIR; mv pkg-config pkg-config-unavailable for any followups you might need to do. ------------------------------------------------------------------------ [2004-12-30 04:50:48] [EMAIL PROTECTED] If you have openssl properly installed (if via some rpm, also the -devel rpm installed!) you should have it in pkg-config. What do these commands output for you: # pkg-config --libs openssl and pkg-config --cflags-only-I openssl ------------------------------------------------------------------------ [2004-12-23 08:38:28] phpbr at ecartz dot com Red Hat has suggested configure.in (may need to be ext/openssl/config0.m4 in your case) script changes for this at https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=82369 Note: if you want to duplicate this, you would first need to compile OpenSSL with Kerberos support. In the meantime, for anyone else who might encounter this problem, the indicated work around seems to be to run export CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" before running make (at least the first time; if you run make multiple times, it should still be there; you can check with echo $CPPFLAGS ; it should return something that contains -I/usr/kerberos/include). ------------------------------------------------------------------------ [2004-12-23 08:37:48] phpbr at ecartz dot com I took it another step down to ./configure --with-openssl make clean && make and still get the same error (even without the --with-kerberos). I read http://us4.php.net/function.fsockopen to indicate that --with-openssl is needed for full functionality of fsockopen in PHP 4.3. At least that's what I'm guessing "if you have compiled in OpenSSL support" means. It seems to me that the current configure script only checks kerberos in relation to IMAP (the kerberos checking code is inside the IMAP checking code). However, OpenSSL also seems to require kerberos, at least in my install. For this reason, I would like it if the --with-kerberos added the necessary -I/usr/kerberos/include regardless of whether --with-imap is included. I am not sure how many others would be affected by this. ------------------------------------------------------------------------ [2004-12-15 19:41:23] phpbr at ecartz dot com Description: ------------ I ran configure with --with-kerberos=/usr/kerberos which correctly added the proper -L switch (see bug 6211) but failed to add -I/usr/kerberos/include to the INCLUDES assignment. I originally saw this in 4.3.9 and upgraded to 4.3.10 to see if it was fixed. Note that this is a different bug from 6211 (albeit similar). Note further that this would only happen if /usr/kerberos/include is not in the default include path for the compiler. Not sure how common this is. Reproduce code: --------------- ./configure --with-kerberos=/usr/kerberos # I had more --with-*, but I don't think that they matter here # I will try to verify this later make Expected result: ---------------- The configure script should append -I/usr/kerberos/include to the INCLUDES assignment (around line 85 of my Makefile) when it produces Makefile, e.g. INCLUDES = -I$(top_builddir)/Zend -I/usr/kerberos/include Manually adding -I/usr/kerberos/include to the EXTRA_INCLUDES = line in Makefile allows the compile to proceed. Actual result: -------------- make throws an error about not being able to find krb5.h ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31101&edit=1