When I try to emerge php5 and mod_php5, I cannot get ttf functions to work - as far as I see in the emerge process, there are some configure flags missing, although I've added them to use flags. Reproducible: Always Steps to Reproduce: 1.ACCEPT_KEYWORDS="~x86" USE="-* gd gd-external jpeg png tiff truetype xpm zlib" emerge -v php mod_php 2. 3. Actual Results: Calculating dependencies ...done! >>> emerge (1 of 2) dev-php/php-5.0.2-r1 to / >>> md5 src_uri ;-) php-5.0.2.tar.bz2 >>> Unpacking source... >>> Unpacking php-5.0.2.tar.bz2 to /var/tmp/portage/php-5.0.2-r1/work * Applying php5_soap_persistence_session.diff ... [ ok ] * Applying uClibc/libtool patches ... * Fixing ${S}/configure... [ ok ] >>> Source unpacked. --disable-cgi --enable-cli --enable-embed --with-config-file-path=/etc/php/cli-php5 --disable-bcmath --without-bz2 --disable-calendar --without-cpdflib --disable-ctype --without-curl --without-curlwrappers --disable-dbase --disable-dio --disable-dom --disable-exif --without-fam --without-fbsql --without-fdftk --disable-filepro --disable-ftp --without-gettext --without-gmp --without-hwapi --without-iconv --without-informix --without-ingres --without-interbase --disable-libxml --disable-mbstring --without-mcrypt --without-mcve --disable-memory-limit --without-mhash --without-mime-magic --without-ming --without-mnogosearch --without-msql --without-mssql --without-ncurses --without-oci8 --without-oracle --without-openssl --without-openssl-dir --without-ovrimos --disable-pcntl --without-pcre-regx --without-pfpro --without-pgsql --disable-posix --without-pspell --without-recode --disable-simplexml --disable-shmop --without-snmp --disable-soap --disable-sockets --disable-spl --without-sybase --without-sybase-ct --disable-sysvmsg --disable-sysvsem --disable-sysvshm --without-tidy --disable-tokenizer --disable-wddx --without-xsl --without-xmlrpc --disable-yp --with-zlib --disable-debug --with-jpeg-dir=/usr --with-gd=/usr --disable-gd-jis-conf --enable-gd-native-ttf --without-mysqli --disable-session --without-sqlite --disable-dba --without-readline --without-libedit I don't see xpm and freetype configuration flags there and this leads to incorrect compilation of PHP - imagettftext, and similar functions that use ttf show up as undefined. Expected Results: I would expect the correct configure flags to appear, so I can compile php and mod_php with full ttf support and use all of ttf functions Portage 2.0.50-r11 (default-x86-2004.2, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.8-gentoo-r3) ================================================================= System uname: 2.6.8-gentoo-r3 i686 Pentium II (Klamath) Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -mcpu=i586 -fomit-frame-pointer" CHOST="i586-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/alias /var/qmail/control /var/vpopmail/domains /var/vpopmail/etc" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i586 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache apm arts avi berkdb bitmap-fonts crypt encode f77 foomaticdb gdbm gif gpm gtk2 imlib jpeg kde libg++ libwww mad mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl php png postgres python quicktime readline sdl slang spell ssl svga tcpd truetype x86 xml2 xmms xv zlib"
Quote from http://php.net/imagettftext: If you compiled PHP yourself but get an error: Fatal error: Call to undefined function imagettftext(). You need to compile PHP with more options. --with-gd --enable-gd-native-ttf --with-png --with-zlib-dir=/usr/local/lib/zlib-1.2.1 --with-ttf --with-jpeg-dir=/usr/local/lib/jpeg-6b/ --with-freetype-dir=/usr/local/lib/freetype-2.1.9/ --with-xpm-dir=/usr/X11R6/ The next set deal with setting up GD, and the appropriate options. Just enabling GD, ttf, png & jpeg is NOT enough. You also need Freetype and XPM.
The following code from the php5-sapi.eclass is probably responsible for this mess. It also breaks t1lib support. if useq gd-external ; then enable_extension_with "gd" "gd-external" 1 "/usr" enable_extension_enable "gd-jis-conf" "nls" 0 enable_extension_enable "gd-native-ttf" "truetype" 0 else enable_extension_with "freetype-dir" "truetype" 0 "/usr" enable_extension_with "t1lib" "truetype" 0 "/usr" enable_extension_with "ttf" "truetype" 0 "/usr" enable_extension_enable "gd-jis-conf" "nls" 0 enable_extension_enable "gd-native-ttf" "truetype" 0 enable_extension_with "png-dir" "png" 0 "/usr" enable_extension_with "tiff-dir" "tiff" 0 "/usr" enable_extension_with "xpm-dir" "xpm" 0 "/usr/X11R6" # enable gd last, so configure can pick up the previous settings enable_extension_with "gd" "gd" 0 fi
One Month and nothing happend and loads of statistical programs use the gd functions for rendering charts. If they also use postscript fonts, they all get broken by this bug.
If you USE=gd-external, then the following options would have NO effect on PHP. They are passed thru to the internal copy of GD. enable_extension_with "freetype-dir" "truetype" 0 "/usr" enable_extension_with "t1lib" "truetype" 0 "/usr" enable_extension_with "ttf" "truetype" 0 "/usr" enable_extension_with "png-dir" "png" 0 "/usr" enable_extension_with "tiff-dir" "tiff" 0 "/usr" enable_extension_with "xpm-dir" "xpm" 0 "/usr/X11R6" Either turn off USE=gd-external, or go and ensure that your external GD is compiled with all of the options required.