dev-lang/php-5.3.21-r1 fails to build with multiple "undefined reference" errors Reproducible: Always Steps to Reproduce: 1. emerge -av1 dev-lang/php-5.3.21-r1 2. 3. Actual Results: Build fails Expected Results: Build succeeds # emerge --info Portage 2.1.11.50 (default/linux/amd64/13.0/no-multilib, gcc-4.6.3, glibc-2.16.0, 3.2.1-gentoo-r2 x86_64) ================================================================= System uname: Linux-3.2.1-gentoo-r2-x86_64-Intel-R-_Xeon-R-_CPU_X5650_@_2.67GHz-with-gentoo-2.2 KiB Mem: 4053996 total, 670412 free KiB Swap: 2097148 total, 2095584 free Timestamp of tree: Fri, 01 Feb 2013 08:45:01 +0000 ld GNU ld (GNU Binutils) 2.22 app-shells/bash: 4.2_p42 dev-lang/python: 2.7.3-r3, 3.2.3-r2 dev-util/cmake: 2.8.10.2-r1 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.6 sys-devel/autoconf: 2.69 sys-devel/automake: 1.12.6, 1.13.1 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.6.3 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.7 (virtual/os-headers) sys-libs/glibc: 2.16.0 Repositories: gentoo local ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=native -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind /var/www/localhost/htdocs/roundcube/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-march=native -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y --quiet-build=n" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org http://gentoo.osuosl.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/local" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="amd64 apache2 berkdb bzip2 cli cracklib crypt cxx dri fortran gdbm gpm iconv mmx modules mudflap ncurses nls nptl openmp pam readline session sse sse2 ssl tcpd unicode zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Created attachment 337618 [details] Build.log.gz
Attach the relevant (as there'll be more than one) config.log - it looks as if openssl was detected, but the lib was not added to the linking command.
These are the only config.log files that I see: # pwd /var/tmp/portage/dev-lang/php-5.3.21-r1 # find . -name 'config.log' -print ./work/sapis-build/apache2/config.log ./work/sapis-build/cli/config.log Are they the ones that you need?
While one for apache2 is likely just as broken, it's the other one that matters atm.
Created attachment 337646 [details] config.log.gz
Created attachment 337914 [details] sapis-build/cli/config.log
Created attachment 337918 [details] 2_build.log
I have the same problem. I attached the requested files, too.
I also experienced this issue. I did not find this bug report before filing my own, but over in bug 456820 I have a correction to the ebuild that fixes things right up.
(In reply to comment #9) > I also experienced this issue. I did not find this bug report before filing > my own, but over in bug 456820 I have a correction to the ebuild that fixes > things right up. Well, the catch is that this correction shouldn't be necessary. Check what following return: pkg-config --atleast-version=0.9.6 openssl pkg-config --libs openssl pkg-config --variable=includedir openssl - you'll most likely get the correct values and that would mean it's a case of a problem that happens elsewhere. I've got a bad feeling about it - could one of you attach the generated configure script ?
(In reply to comment #10) > Check what following return: > pkg-config --atleast-version=0.9.6 openssl > pkg-config --libs openssl > pkg-config --variable=includedir openssl From one of my boxes: gentoo-master ~ # pkg-config --atleast-version=0.9.6 openssl gentoo-master ~ # pkg-config --libs openssl -lssl -lcrypto gentoo-master ~ # pkg-config --variable=includedir openssl /usr/include dev-libs/openssl-1.0.1d-r1 is installed on this system. > I've got a bad feeling about it - could one of you attach the generated > configure script ? Which one? Thought every configure script was already posted. Anyway, I created an archive from /var/tmp/portage/dev-lang/php-5.3.21-r1 - please feel free to grab the files you are looking for: https://www.hidrive.strato.com/lnk/ZmMqi0WS (50MB)
OK, I might have an idea what happens: 'pkg-config --libs openssl' returns '-lsl -lcrypto' (this is OPENSSL_LIBS) 'pkg-config --cflags-only-I openssl' returns '' (this is OPENSSL_INCS) The condition for appending is 'test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCS"'. Now, obviously OPENSSL_INCS will fail the test, even though that wouldn't hurt in this case. Perhaps instead OPENSSL_INCDIR should be used in the test instead ? This problem *might* stem from openssl-1.0.0h-pkg-config.patch in dev-libs/openssl, on the other hand though even 'pkg-config --cflags libssl' returns '', so it might be something about pkg-config itself.
Can we raise the severity? This seems to be a blocker for any dev-lang/php-5.3.x version. For example, I am unable to build any dev-lang/php-5.3.x ebuild on any Gentoo system with OpenSSL v1.0.0. I always get the same error as shown in this bug report. I tried x86 and amd64. When I downgrade to OpenSSL v0.9.x everything will work. Note: The initial bug report for dev-lang/php-5.3.21 seems to be the first PHP update *after* OpenSSL v1.0.0 hit the tree (=before php-5.3.21, OpenSSL was at version 0.9.x). I think more and more people will be affected by this bug, when they need to recompile or when the next version will hit the tree.
None of my boxes have any of these issues. Is only php-5.3.x affected or does this affect 5.4.x as well?
(In reply to comment #14) > None of my boxes have any of these issues. You are really able to build dev-lang/php-5.3.x with "ssl" useflag on systems with openssl-1.0.x? If yes, it would be interesting what's the difference between our systems, causing the problem. As I said, I tried every available openssl-1.0.x ebuild without success. Only when I go back to openssl-0.9.x dev-lang/php-5.3.x will build with the ssl useflag. Without the "ssl" useflag - no surprise - I can also build dev-lang/php-5.3.x. > Is only php-5.3.x affected or does this affect 5.4.x as well? No, only php-5.3.x. php-5.4.x is working fine.
The solution from https://bugs.gentoo.org/show_bug.cgi?id=456820 seems to be a valid patch for me. If you compare the php-5.4.x ebuild with the php-5.3.x ebuild that is the only different. Here's my patch, which works for me: --- php-5.3.21-r2.ebuild 2013-02-07 14:58:17.000000000 +0100 +++ php-5.3.21-r3.ebuild 2013-02-20 13:17:01.000000000 +0100 @@ -436,7 +436,7 @@ $(use_with crypt mcrypt ) $(use_with mssql mssql ) $(use_with unicode onig /usr) - $(use_with ssl openssl ) + $(use_with ssl openssl /usr) $(use_with ssl openssl-dir /usr) $(use_enable pcntl pcntl ) $(use_enable phar phar )
Yep. On two of my boxes: openssl 1.0.1c, php5.3.18 On another: openssl 1.0.0j, php5.3.21-r2 All show something like this: % scanelf -n /usr/lib/php5.3/bin/php libresolv.so.2,libreadline.so.6,libmcrypt.so.4,libdl.so.2,libonig.so.2,libpng15.so.15,libz.so.1,libjpeg.so.8,libdb-4.8.so,libpthread.so.0,libgdbm.so.3,libcurl.so.4,libbz2.so.1,libpcre.so.0,libm.so.6,libxml2.so.2,libssl.so.1.0.0,libcrypto.so.1.0.0,libicui18n.so.49,libicuuc.so.49,libgcc_s.so.1,libc.so.6,libstdc++.so.6 /usr/lib/php5.3/bin/php ${EPREFIX}/usr was added to 5.4 for prefix support and should not be necessary for 5.3.
So what could be the reason? Can I help you with comparing our boxes to find the difference why it is working on your boxes? # pkg-config --atleast-version=0.9.6 openssl # echo $? 0 # pkg-config --libs openssl -lssl -lcrypto # echo $? 0 # pkg-config --cflags-only-I openssl # echo $? 0 # pkg-config --variable=includedir openssl /usr/include Have you seen Rafal's comment #12? BTW: I emerged openssl-1.0.1c without openssl-1.0.0h-pkg-config.patch and nothing changed. Still the same error. > ${EPREFIX}/usr was added to 5.4 for prefix support and > should not be necessary for 5.3. Sure? I mean there is already $(use_with ssl openssl-dir /usr) in 5.3, so why not also adding this for "openssl" (only openssl-dir looks wrong to me)? If this would be a "wrong" fix, I'd like to know why.
(In reply to comment #18) > So what could be the reason? Can I help you with comparing our boxes to find > the difference why it is working on your boxes? > > # pkg-config --atleast-version=0.9.6 openssl > # echo $? > 0 > # pkg-config --libs openssl > -lssl -lcrypto > # echo $? > 0 > # pkg-config --cflags-only-I openssl > > # echo $? > 0 > # pkg-config --variable=includedir openssl > /usr/include > Output of these are identical to yours. > > > > ${EPREFIX}/usr was added to 5.4 for prefix support and > > should not be necessary for 5.3. > > Sure? I mean there is already > > $(use_with ssl openssl-dir /usr) > > in 5.3, so why not also adding this for "openssl" (only openssl-dir looks > wrong to me)? If this would be a "wrong" fix, I'd like to know why. It is not exactly wrong, but it is more a workaround than a fix. The problem is something else.
@comment 19: given how php handles linking, is there a chance that something else adds the lib for you ? That is do your useflags match *exactly* ?
(In reply to comment #20) > @comment 19: given how php handles linking, is there a chance that something > else adds the lib for you ? > That is do your useflags match *exactly* ? Was looking into that. The minimal USE flag combination that works is: USE="-* cli ldap ssl" emerge -av php:5.3 So apparently ldap adds the lib. Could also explain why more people are not hit by this--ldap is enabled by default.
(In reply to comment #21) > So apparently ldap adds the lib. Could also explain why more people are not > hit by this--ldap is enabled by default. Interesting: On a "current" system with "default/linux/amd64/13.0" profile, # grep -nr ldap /etc/portage returns nothing and the default PHP 5.3 useflags are: # emerge -pv php:5.3 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-libs/oniguruma-5.9.2-r1 USE="-combination-explosion-check -crnl-as-line-terminator -static-libs" 528 kB [ebuild N ] app-admin/eselect-php-0.6.7 2 kB [ebuild N ] dev-libs/libmcrypt-2.5.8-r2 1,304 kB [ebuild N ] dev-lang/php-5.3.21-r2:5.3 USE="berkdb bzip2 cli crypt ctype fileinfo filter gdbm hash iconv ipv6 json nls phar posix readline session simplexml ssl tokenizer unicode xml zlib -apache2 -bcmath -calendar -cdb -cgi -cjk -curl -curlwrappers -debug -doc -embed -enchant -exif -firebird -flatfile -fpm (-frontbase) -ftp -gd -gmp -imap -inifile -intl -iodbc -kerberos (-kolab) -ldap -ldap-sasl -libedit -mhash -mssql -mysql -mysqli -mysqlnd -oci8-instant-client -odbc -pcntl -pdo -pic -postgres -qdbm -recode (-selinux) -sharedmem -snmp -soap -sockets -spell -sqlite -sqlite2 (-sybase-ct) -sysvipc -threads -tidy -truetype -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -zip" 11,104 kB No ldap here. emerge will fail with the undefined reference error. But yes, USE="-* cli ldap ssl" emerge -av php:5.3 will work by the way. Did I misunderstand you?
On my system, when I first installed php5.3, I was on the profile before 13.0 (I think it was 10.0). I did not experience this issue until after I changed to 13.0 and did an emptytree rebuild. That said, there could have been a change from before the profile change that caused it, but I had also performed an emerge -e about a week prior to the profile change, so it doesn't seem too likely. It would seem that it's possible that the 13.0 profile has changed something which caused this. -ChrisJ
(In reply to comment #22) > (In reply to comment #21) > > So apparently ldap adds the lib. Could also explain why more people are not > > hit by this--ldap is enabled by default. > > Interesting: > > On a "current" system with "default/linux/amd64/13.0" profile, > > # grep -nr ldap /etc/portage > > returns nothing and the default PHP 5.3 useflags are: > You are quite right. I was looking on a machine with desktop profile, which has it enabled by default. So when looking at how my servers were set up: pkgconfig-0.28: USE="-* ssl cli" emerge php:5.3 << this breaks pkgconfig-0.27-1: USE="-* ssl cli" emerge php:5.3 << this works
(In reply to comment #23) > On my system, when I first installed php5.3, I was on the profile before > 13.0 (I think it was 10.0). I did not experience this issue until after I > changed to 13.0 and did an emptytree rebuild. > > That said, there could have been a change from before the profile change > that caused it, but I had also performed an emerge -e about a week prior to > the profile change, so it doesn't seem too likely. > > It would seem that it's possible that the 13.0 profile has changed something > which caused this. > From the comment I made above: Profile change -> upgrade to EAPI5 -> upgrade pkgconfig on your emptytree rebuild.
(In reply to comment #24) > So when looking at how my servers were set up: > > pkgconfig-0.28: USE="-* ssl cli" emerge php:5.3 << this breaks > pkgconfig-0.27-1: USE="-* ssl cli" emerge php:5.3 << this works Confirmed!
(In reply to comment #24) > (In reply to comment #22) > > You are quite right. I was looking on a machine with desktop profile, which > has it enabled by default. > > So when looking at how my servers were set up: > > pkgconfig-0.28: USE="-* ssl cli" emerge php:5.3 << this breaks > pkgconfig-0.27-1: USE="-* ssl cli" emerge php:5.3 << this works This might sound bit trollish, but happy to hear that my final theory from comment 12 was right.
> > This might sound bit trollish, but happy to hear that my final theory from > comment 12 was right. Well. I would probably have been able to confirm it sooner where it not for that my initial attempt resulted in this: Yep. That is 5.3.18 and pkgconfig 0.28. So it still does not happen on all systems, but on those that do, downgrading pkgconfig helps. Now, how to fix this? Portage 2.1.11.50 (default/linux/x86/13.0, gcc-4.5.4, glibc-2.15-r3, 3.5.2-linode45 i686) ================================================================= System Settings ================================================================= System uname: Linux-3.5.2-linode45-i686-Intel-R-_Xeon-R-_CPU_L5520_@_2.27GHz-with-gentoo-2.1 KiB Mem: 508576 total, 102016 free KiB Swap: 262140 total, 79940 free Timestamp of tree: Thu, 21 Feb 2013 14:45:01 +0000 ld GNU ld (GNU Binutils) 2.22 ccache version 3.1.9 [disabled] app-shells/bash: 4.2_p37 dev-lang/python: 2.6.6-r2, 3.1.3-r1 dev-util/ccache: 3.1.9 dev-util/cmake: 2.8.1-r2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.1-r1 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.4 sys-devel/autoconf: 2.68 sys-devel/automake: 1.11.6 sys-devel/binutils: 2.22-r1 sys-devel/gcc: 4.5.4 sys-devel/gcc-config: 1.7.3 sys-devel/libtool: 2.4-r1 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.1 (virtual/os-headers) sys-libs/glibc: 2.15-r3 Repositories: gentoo x-olemarkus-overlay ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -march=i686 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch" FFLAGS="-O2 -march=i686 -pipe" GENTOO_MIRRORS="http://mirror.mcs.anl.gov/pub/gentoo/ ftp://mirror.mcs.anl.gov/pub/gentoo/ http://www.gtlib.gatech.edu/pub/gentoo ftp://ftp.gtlib.gatech.edu/pub/gentoo" LC_ALL="en_GB.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/var/lib/layman/olemarkus-overlay" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="acl berkdb bzip2 cli cracklib crypt cxx dri fortran gdbm gpm iconv ipv6 logrotate modules mudflap ncurses nls nptl openmp pam pcre readline session ssl tcpd unicode vhosts vim-syntax x86 zlib zsh-completion" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NGINX_MODULES_HTTP="access fastcgi gzip proxy rewrite memcached" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON ================================================================= Package Settings ================================================================= dev-lang/php-5.3.18 was built with the following: USE="cli ssl -apache2 -bcmath -berkdb -bzip2 -calendar -cdb -cgi -cjk -crypt -ctype -curl -curlwrappers -debug -doc -embed -enchant -exif -fileinfo -filter -firebird -flatfile -fpm -frontbase -ftp -gd -gdbm -gmp -hash -iconv -imap -inifile -intl -iodbc -ipv6 -json -kerberos (-kolab) -ldap -ldap-sasl -libedit -mhash -mssql -mysql -mysqli -mysqlnd -nls -oci8-instant-client -odbc -pcntl -pdo -phar -pic -posix -postgres -qdbm -readline -recode (-selinux) -session -sharedmem -simplexml -snmp -soap -sockets -spell -sqlite2 -sqlite3 -sybase-ct -sysvipc -threads -tidy -tokenizer -truetype -unicode -wddx -xml -xmlreader -xmlrpc -xmlwriter -xpm -xsl -zip -zlib"
(In reply to comment #28) > Now, how to fix this? (In reply to comment #17) > ${EPREFIX}/usr was added to 5.4 for prefix support and should not be > necessary for 5.3. I changed $(use_with ssl openssl "${EPREFIX}"/usr) into $(use_with ssl openssl) so that the *php-5.4* ebuild is identical with the *php-5.3* ebuild. Guess what happen: php-5.4 will now fail with the same error. => I would vote for the patch from #16. That's the same "fix", php-5.4 is using and openssl-dir has already "/usr" set... If this fix is not valid, php-5.4 has the same bug. Until we find the right fix, maybe we should port the php-5.4 fix to php-5.3... @ Comment #12: I run # USE="-* cli ssl" ebuild php-5.3.21-r2.ebuild prepare changed test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCS" into test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCDIR" and run # USE="-* cli ssl" ebuild php-5.3.21-r2.ebuild compile This didn't fix the error. But I am not sure if this is a valid test. OT: How did you create the "system settings" and "package settings" output?
OK, my little ego trip aside, there's something fishy here. pkg-config is filtering out -I/usr/include *on purpose*. Also, for some reason pkg-config by itself doesn't change the output of 'pkg-config openssl --cflags-only-I' between 0.27.1 and 0.28 (at least not if compiled outside portage). Does the output of 'pkg-config openssl --cflags-only-I --debug' change in any significant way for you between 0.27.1 and 0.28 ?
OK, it seems that I didn't read comment 29 carefully enough. With such difference between php 5.3 and 5.4 ebuilds, two questions arise: - why does php upstream use a construct that it would seem won't work on standard setups ? - how was this not detected before ? As for eprefixifing, it looks as if not for the macro not working, the macro would eprefixify nearly automatically: pkg-config on prefix adds PKG_CONFIG_PATH to environment, which would have been enough to set OPENSSL_LIBS, OPENSSL_INCS and OPENSSL_INCDIR to their correct values (at least it looks like it should). Perhaps a better condition than test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCS"; would be pkg-config --exists openssl ?
I've got to take it easy with "Save Changes" button. > I run > > # USE="-* cli ssl" ebuild php-5.3.21-r2.ebuild prepare > > changed > > test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCS" > > into > > test -n "$OPENSSL_LIBS" && test -n "$OPENSSL_INCDIR" > > and run > > # USE="-* cli ssl" ebuild php-5.3.21-r2.ebuild compile Unless you've changed that in the *generated* configure script, chances are that change wasn't propagated to its proper place.
(In reply to comment #29) > OT: How did you create the "system settings" and "package settings" output? Append the package name: emerge --info php:5.3
This is the result when it does not work (0.28): http://bpaste.net/show/79034/ This is where it does work (0.27.1): http://bpaste.net/show/79036/
Actually, that debug output doesn't really matter, cause the real problem is quite ass backwards. TEST_VAR=`pkg-config --cflags-only-I openssl`; if test -n "${TEST_VAR}"; then echo 1 x${TEST_VAR}x ; else echo 0; fi for pkg-config 0.27.1, it will print 1 x x for 0.28 0 So, simply by better string trimming the macro got broken. :roll: Well, a reasonable fix is obvious, but makes you wonder if there are more such macros in php and other packages. :sigh: Of course, there's still the question of proper eprexifing the ebuild, but that's - to a point - an independent matter.
Didn't you want to add the eprefix support to the next PHP release? dev-lang/php-5.3.23 is still affected :( When I summarize: We have *no* working PHP ebuild in Gentoo for weeks. Note that PHP 5.4 is concealing the bug, because it has eprefix support. PHP 5.3 is currently lacking of eprefix support, therefore it is affected. Does anybody disagree? I don't understand what dev-util/pkgconfig is doing here and what should have changed in =dev-util/pkgconfig-0.28 causing this, because with previous pkgconfig versions you are able to build dev-lang/php without eprefix support. To get this working: Can somebody raise this issue and maybe talk to the dev-util/pkgconfig maintainer? I would do this, but I think I am the wrong person to do that right now. If it is a serious bug within pkgconfig, pkgconfig should be fixed (note that =dev-util/pkgconfig-0.28 is stable, https://bugs.gentoo.org/show_bug.cgi?id=455578) or get a mask. If there is something wrong in PHP, maybe we should talk to upstream? ...and if nobody want to dig into this, shouldn't we just apply the same workaround (=adding the missing prefix) we are applying to PHP 5.4 also to PHP 5.3 to get it back working?
(In reply to comment #36) > Didn't you want to add the eprefix support to the next PHP release? > dev-lang/php-5.3.23 is still affected :( I do not plan to add EPREFIX to older slots, no. > > When I summarize: We have *no* working PHP ebuild in Gentoo for weeks. Note > that PHP 5.4 is concealing the bug, because it has eprefix support. PHP 5.3 > is currently lacking of eprefix support, therefore it is affected. Does > anybody disagree? PHP 5.3 is moving towards EOL anyways, so I suggest working on upgrading to 5.4 rather than relying on 5.3 being around for much longer. > If it is a serious bug within pkgconfig, pkgconfig should be fixed (note > that =dev-util/pkgconfig-0.28 is stable, > https://bugs.gentoo.org/show_bug.cgi?id=455578) or get a mask. > As far as I can tell, pkgconfig is not to blame here. > If there is something wrong in PHP, maybe we should talk to upstream? > Already done that. But core devs are busy with opcache and such. > ...and if nobody want to dig into this, shouldn't we just apply the same > workaround (=adding the missing prefix) we are applying to PHP 5.4 also to > PHP 5.3 to get it back working? No. I plan on releasing a proper fix. Should be as simple as splitting that check in two. Meanwhile you have several other ways to work around the issue. Adding some other dep that brings in ssl, upgrade to 5.4 or downgrade to pkgconfig-0.27.1
(In reply to comment #37) > I do not plan to add EPREFIX to older slots, no. Well, not sure if you have to add full EPREFIX support. I mean, you would just have to add "/usr" to the "$(use_with ssl openssl )" line like it is already in the next line ($(use_with ssl openssl-dir /usr)) - that's all. > PHP 5.3 is moving towards EOL anyways, so I suggest working on upgrading to > 5.4 rather than relying on 5.3 being around for much longer. Yeah, but that sounds like the bug is fixed in 5.4 - that's wrong. When you change $(use_with ssl openssl "${EPREFIX}"/usr) into $(use_with ssl openssl) 5.4 will fail with the same error. That's why I don't understand why we cannot just add "/usr" the 5.3 ebuild. Right, it doesn't fix the root cause, but 5.4 has the same bug (which we just don't trigger because of the /usr).
(In reply to comment #38) > (In reply to comment #37) > > I do not plan to add EPREFIX to older slots, no. > > Well, not sure if you have to add full EPREFIX support. I mean, you would > just have to add "/usr" to the "$(use_with ssl openssl )" line like it is > already in the next line ($(use_with ssl openssl-dir /usr)) - that's all. > There is no point in adding partial EPREFIX support ... > > > PHP 5.3 is moving towards EOL anyways, so I suggest working on upgrading to > > 5.4 rather than relying on 5.3 being around for much longer. > > Yeah, but that sounds like the bug is fixed in 5.4 - that's wrong. When you > change > This was just the reasoning for not adding EPREFIX. > > That's why I don't understand why we cannot just add "/usr" the 5.3 ebuild. > Right, it doesn't fix the root cause, but 5.4 has the same bug (which we > just don't trigger because of the /usr). Try dropping this in /etc/portage/patches/dev-lang/php/ http://bpaste.net/show/84708/
(In reply to comment #39) > Try dropping this in /etc/portage/patches/dev-lang/php/ > http://bpaste.net/show/84708/ This patch seems to fix the error. dev-lang/php-5.3.23:5.3 with USE="cli ssl" build without any errors.
*** Bug 462716 has been marked as a duplicate of this bug. ***
Patch added to latest PHP versions
*** Bug 456820 has been marked as a duplicate of this bug. ***