When I try to emerge -u mod_php, I get the following error during the configure stage of the ebuild: <snip> checking for Sablotron version... configure: error: Sablotron version 0.96 or greater required. !!! ERROR: dev-php/mod_php-4.3.2 failed. !!! Function econf, Line 304, Exitcode 1 !!! econf failed </snip> This error can usually be fixed with USE="-java" emerge -u mod_php, but it doesn't seem fix the problem in the 4.3.2 ebuild. Please note that USE="-xml" is not an option for us. Our products require the XSLT processing. * app-text/sablotron Latest version installed: 0.97 * dev-java/sun-jdk Latest version installed: 1.4.1.02-r1 * dev-php/mod_php Latest version installed: 4.3.1 Reproducible: Always Steps to Reproduce: 1. emerge -u mod_php Actual Results: checking for Sablotron version... configure: error: Sablotron version 0.96 or greater required. !!! ERROR: dev-php/mod_php-4.3.2 failed. !!! Function econf, Line 304, Exitcode 1 !!! econf failed Expected Results: Upgrade mod_php from 4.3.1 to 4.3.2 emerge info Portage 2.0.48-r1 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.20 i686 Pentium III (Cascades) GENTOO_MIRRORS="ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="oss 3dnow apm arts avi cups encode imlib mikmod mmx motif mpeg nls oggvorbis opengl quicktime sdl spell svga truetype xv zlib gdbm berkdb slang gpm -X -gtk -gnome -alsa -kde -qt -xmms -esd curl crypt gif imap im-lib java jpeg kerberos ldap libg++ libwww maildir mbox mysql ncurses odbc pam pdflib perl png postgres python readline snmp ssl tcpd tiff xml xml2 zilb x86" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-O2 -mcpu=i686 -pipe" CXXFLAGS="" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://littlejohn.blueridgedigital.net/gentoo-portage" FEATURES="sandbox ccache fixpackages"
PHP no longer responds to the 'xml' USE flag, as it hard requires those libs for PEAR. Please attach /var/tmp/portage/mod_php-4.3.2*/work/php-4.3.2/config.log Then try: emerge XML-Parser mod_php if that fails, emerge XML-Sablot mod_php
Created attachment 13136 [details] config.log from /var/tmp/portage/mod_php-4.3.2/work/php-4.3.2 Per robbat2's request, config.log attached.
Neither emerge XML-Parser mod_php nor emerge XML-Sablot mod_php worked. They still produce the same error. It's odd that PHP thinks Sablotron version 0.96 is installed... littlejohn root # sablot-config --version 0.97 littlejohn root #
The config.log reveals the answer: configure:75358: checking for Sablotron version configure:75383: gcc -o conftest -O2 -mcpu=i686 -pipe -I/usr/include -L/usr/lib conftest.c -lcrypt -lpspell -lpq -lpdf -lz -ltiff -lpng -ljpeg -lmysqlclient -lmhash -lmcrypt -lltdl -lldap -llber -lcrypt -lpam -lxsltbreakpoint -lxml2 -lxslt -lz -lndbm -lgdbm -lcurl -lcrack -lbz2 -lz -lssl -lcrypto -lresolv -lm -ldl -lnsl -lcurl -lz -lssl -lcrypto -ldl -lz -lxml2 -lz -lm -lodbc -lnetsnmp -lcrypto -lm -lcrypt 1>&5 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.2/../../../../i686-pc-linux-gnu/bin/ld: warning: libkrb4.so.2, needed by /usr/lib/libldap.so, not found (try using -rpath or -rpath-link) configure: failed program was: #line 75365 "configure" #include "confdefs.h" #include <stdlib.h> #include <sablot.h> int main () { double version; version = atof(SAB_VERSION); if (version >= 0.96) { exit(0); } exit(255); }
It looks entirely like an upstream bug with PHP. What kerberos stuff do you have installed? I'll try to figure out a workaround for you in the meantime once I reproduce your environment better.
if you want to track the PHP item for it: http://bugs.php.net/24141 I've put a fix into the eclass that I think might work, could you please test it and report back? Just sync and try to emerge mod_php again. If it still fails, open up php.eclass, and look at line 203. Uncomment that and try it out.
Stuart, a response from the PHP people, so I need the answers from you so I can get back to them: Where is "libkrb4.so.2" on your system, and is it in the paths described in /etc/ld.so.conf ? And did you run ldconfig after installing that ldap?
No Kerberos installed... www cron.daily # locate krb4 www cron.daily # emerge -s krb Searching... [ Results for search key : krb ] [ Applications found : 3 ] * app-crypt/kth-krb Latest version available: 1.2.1 Latest version installed: [ Not Installed ] Size of downloaded files: 1,832 kB Homepage: http://www.pdc.kth.se/kth-krb/ Description: Kerberos 4 implementation from KTH * app-crypt/mit-krb5 Latest version available: 1.2.7 Latest version installed: [ Not Installed ] Size of downloaded files: 5,374 kB Homepage: http://web.mit.edu/kerberos/www/ Description: MIT Kerberos V * app-crypt/pam_krb5 Latest version available: 1.0 Latest version installed: [ Not Installed ] Size of downloaded files: 12 kB Homepage: http://www.fcusack.com/ Description: Pam module for MIT Kerberos V www cron.daily # Because.... www cron.daily # grep USE /etc/make.conf USE="-X -gtk -gnome -alsa -qt -kde -arts crypt curl -esd gd gdbm gif imap imlib java jpeg ldap libwww maildir mbox mysql ncurses odbc pam pdflib perl php png postgres python readline sasl snmp spell sse ssl tcpd tiff truetype xml xml2 zlib x86" I don't have kerberos in my use flags. I'm trying emerge sync ; emerge -u mod_php again per your instructions, and I still get the same error. It's choosing the 4.3.2 ebuild, did you want me to try the 4.3.2-r1 or r2 ebuild instead?
Now that really doesn't make sense. Could you include the output of: 'ldd /usr/lib/libldap.so' please? The only things in 4.3.2-r1 and r2 are some fixes for Apache2 people and those with BOTH Apache1 and Apache2 together.
littlejohn root # ldd /usr/lib/libldap.so liblber.so.2 => /usr/lib/liblber.so.2 (0x4002c000) libnsl.so.1 => /lib/libnsl.so.1 (0x40035000) libresolv.so.2 => /lib/libresolv.so.2 (0x4004a000) libdl.so.2 => /lib/libdl.so.2 (0x4005b000) libkrb4.so.2 => not found libdes425.so.3 => /usr/lib/libdes425.so.3 (0x4005e000) libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x40062000) libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x400c1000) libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x400d1000) libssl.so.0.9.6 => /usr/lib/libssl.so.0.9.6 (0x400d3000) libcrypto.so.0.9.6 => /usr/lib/libcrypto.so.0.9.6 (0x40102000) libc.so.6 => /lib/libc.so.6 (0x401c6000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) littlejohn root #
Looking at that result kerberos WAS installed (and possibly the kerberos USE flag default-set) when ldap was installed. Kerberos was subsequently removed without any consideration to things that linked against it. Emerge gentoolkit, and run 'revdep-rebuild', that should fix up your system.
I've never run emerge clean on anything, but it makes sense now looking at the errors and the output of the ldd command. I ran the revdep-rebuild, and here is the error I got: checking for JavaScript for Sablotron XSL support... yes checking for Sablotron libraries in the default path... found in /usr checking for sablot-config... found checking for Sablotron version... configure: error: Sablotron version 0.96 or greater required. !!! ERROR: dev-php/mod_php-4.3.1 failed. !!! Function src_compile, Line 233, Exitcode 1 !!! bad ./configure Result is not OK, you have following chances: - if emerge failed during build, fix the problems and re-run this script or - use -X or --package-names as first argument (try to rebuild package, not exact ebuild - ignores SLOT!) or - modify the above emerge command and run it manually or - compile or unmerge unsatisfied packages manually, remove temporary files and try again (you can edit package/ebuild list first) To remove temporary files, please run: rm /root/.revdep-rebuild.?_* Notice that it was trying to rebuild the mod_php 4.3.1 package and not the new 4.3.2 package.
I was able to figure out a workaround. emerge mit-krb5 # Just did this for the heck of it... not sure if it helped emerge sablotron # Same as above USE="-java -ldap" emerge -u mod_php Success! Unfortunately, this won't last for long. We're in the process of converting all of our applications to LDAP. Currently, the server this is running on is only providing XMLRPC services to other servers. Eventually it will be the big-daddy server of all our servers... LDAP, Database, XMLRPC Services, and application servers. Bug still needs to be fixed because sooner or later we're going to need LDAP support compiled in.
revdep-rebuild SHOULD have rebuild ldap and possible kerberos, not anything else. If you don't use kerberos, take it out of your USE flags, unmerge it, and 'emerge openldap mod_php'. If you DO use kerberos, then: 'emerge mit-krb5 openldap mod_php'. The PHP configure scripts are entirely horrible for spitting out CORRECT error messages. A huge amount of the time they are completely incorrect.
Any updates on this?
Since we're not using Java or LDAP with our PHP right now, I haven't had the opportunity to test the ebuild without using the USE="-java -ldap". This issue can be closed as a workaround provided us with a means of compiling PHP to suit our current requirements, however, we will more than likely need to revisit this in the future once we integrate LDAP into our infrastructure.
*** Bug 24655 has been marked as a duplicate of this bug. ***