Summary: | Mozilla configure error about missing xft | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Hanno Böck <hanno> |
Component: | Current packages | Assignee: | Martin Schlemmer (RETIRED) <azarah> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | bugzilla-gentoo, pasi.valminen, zealot |
Priority: | High | ||
Version: | 1.4_rc1 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Output of mozilla-merge |
Description
Hanno Böck
![]() cvs update and try again .. just check that its: mozilla-1.2.ebuild,v 1.6 2002/12/04 you have gtk2 enabled in your USE without xft being installed (all versions are masked as well) which is causing this error. if you change gtk2 to -gtk2 then the ebuild will build the Xft support it needs statically and your error will disappear. Not 100%, no. It checked if xft or pango-1.1 was installed. Guess he had pango-1.1, but not Xft. Confirmed for mozilla 1.2.1 Aren't both pango 1.1 and xft masked? So what is the legal way to do it? I get the same xft-error. Confirmed for 1.2.1 ? This is from the 1.2.1 ebuild. If "gtk2" is in USE, it do not enable if pkg-config do not detect Xft2.0. If "gtk2" is NOT in USE, then we compile and install our own. ------------------------------------------------- if [ -n "`use gtk2`" ] then # Only enable Xft if we have Xft2.0 installed ... if pkg-config xft 2> /dev/null then einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" else myconf="${myconf} --disable-xft" fi else einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" fi ------------------------------------------------------ > Confirmed for mozilla 1.2.1 If you cp'd the 1.2 ebuild over to 1.2.1, its possible. If you used the 1.2.1 I commited, Its been fixed (except maybe in some wierd instance if you say dont have pkg-config installed .. but that is a DEPEND and NOT masked ... ) > Aren't both pango 1.1 and xft masked? So what is the legal way to do it? I get > the same xft-error. Yes, that is why I used pkg-config to detect their presence, and did NOT put them in DEPEND. If pkg-config did not detect them, it disables Xft ... Azarah, I use your mozilla ebuild. pkg-config is installed. gtk2 is in my useflags. When I emerge mozilla 1.2.1, I get exactly the same error as described in comment #1. pkg-config xft doesn't yield any form of output. ..sorry, in stead of comment #1 I ment the original error created with this bug. ------------------------------------------------------------------ workshop mozilla # pkg-config xft && echo yes workshop mozilla # ebuild /usr/portage/x11-libs/xft/xft-2.0-r1.ebuild merge >>> md5 ;-) fcpackage.2_0.tar.gz >>> Unpacking source... ... >>> /usr/X11R6/lib/libXft.so -> ../../lib/libXft.so.2.0 * Your old Xft includes have been saved to /root/.Xft >>> Regenerating /etc/ld.so.cache... >>> x11-libs/xft-2.0-r1 merged. workshop mozilla # pkg-config xft && echo yes yes workshop mozilla # ------------------------------------------------------------------ Anything more I need to say ? Not untill my re-emerge of mozilla 1.2.1 is complete ;) What I meant, was that pkg-config should fail if xft is not installed, disabling xft support because of that if statement .... Hanno, where are you ? You cant file a bug and expect if to be resolved if you do not give feedback. Azarah, after a bit pondering, ofcourse the syntax of this if-statement is incorrect. "if pkg-config xft 2> /dev/null" will always be 1 unless pkg-config errors out. In another way, this means "If pkg-config xft exits without an error code". Not whether or not xft is actually installed. Mark if pkg-config xft 2> /dev/null could be replaced by: if [ "`pkg-config xft && echo yes`" == "yes" ] So does it in its current form fail for you ? It works fine on my Xft2 enabled AND my other box that do not have Xft2 installed ... It failed before I issued `ebuild /usr/portage/x11-libs/xft/xft-2.0-r1.ebuild merge': it acted like xft was installed. Maybe it worked for you because you had the file "xft.pc" somewhere. I hadn't such a file thus the emerge failed. No, you do not understand ... look at the following bit if "gtk2" in USE ... -------------------------------- # Only enable Xft if we have Xft2.0 installed ... if pkg-config xft 2> /dev/null then einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" else myconf="${myconf} --disable-xft" fi -------------------------------- Basicaly, 'pkg-config xft' will return true if Xft2.0 is installed. Thus, if 'pkg-config xft' returns 0, then pass '--enable-xft' to ./configure, else if 'pkg-config xft' returns 1 (fail), pass '--disable-xft' to ./configure So, if you have Xft2 present in your system, build mozilla with Xft support, else disable it. And it does work fine here like that .... Ok, then I was wrong with comment #12 and #13. I am out of options, but I merged xft now and am compiling mozilla. What fronzes my eyebrows are that my mozilla ebuild wanted to merge with Xft-support no matter what the if-statement returns. Not here .. notice it does not print the Xft stuff, and it do not
fail on configure.
---------------------------------------------------------------
workshop mozilla # USE=gtk2 ebuild mozilla-1.2.1.ebuild compile
>>> md5 ;-) mozilla-source-1.2.1.tar.bz2
>>> md5 ;-) enigmail-0.71.0.tar.gz
>>> md5 ;-) ipc-1.0.1.tar.gz
>>> md5 ;-) fcpackage.2_0.tar.gz
* Configuring Mozilla...
loading cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc -mcpu=i686 -march=i686 -O3 -pipe ) works... yes
checking whether the C compiler (gcc -mcpu=i686 -march=i686 -O3 -pipe ) is a
cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for c++... gcc
checking whether the C++ compiler (gcc -mcpu=i686 -march=i686 -O3 -pipe
-Wno-deprecated ) works... yes
checking whether the C++ compiler (gcc -mcpu=i686 -march=i686 -O3 -pipe
-Wno-deprecated ) is a cross-compiler... no
checking whether we are using GNU C++... yes
checking whether gcc accepts -g... yes
checking for ranlib... ranlib
checking for as... /usr/bin/as
checking for ar... /usr/bin/ar
checking for ld... /usr/bin/ld
checking for strip... /usr/bin/strip
checking for dlltool... no
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... gcc -E
checking for a BSD compatible install... /bin/install -c
checking whether ln -s works... yes
checking for mawk... no
checking for gawk... gawk
checking for perl5... no
checking for perl... /usr/bin/perl
checking for minimum required perl version >= 5.004... 5.006001
checking for full perl installation... yes
checking for doxygen... :
checking for whoami... /usr/bin/whoami
checking for autoconf... /usr/bin/autoconf
checking for unzip... /usr/bin/unzip
checking for zip... /usr/bin/zip
checking for makedepend... /usr/X11R6/bin/makedepend
checking for xargs... /usr/bin/xargs
checking for gmake... /usr/bin/gmake
checking whether /usr/bin/gmake sets ${MAKE}... yes
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for dnet_ntoa in -ldnet... no
checking for dnet_ntoa in -ldnet_stub... no
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking whether ld has archive extraction flags... yes
checking for ANSI C header files... yes
checking for working const... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for st_blksize in struct stat... yes
checking for siginfo_t... yes
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int64... no
checking for uint... yes
checking for uint_t... no
checking for uint16_t... no
checking for uname.domainname... no
checking for uname.__domainname... yes
checking for 64-bit OS... no
checking for usable wchar_t (2 bytes, unsigned)... no
checking for compiler -fshort-wchar option... no
checking for wcrtomb... yes
checking for mbrtowc... yes
checking for dirent.h that defines DIR... yes
checking for opendir in -ldir... no
checking for sys/byteorder.h... no
checking for compat.h... no
checking for getopt.h... yes
checking for sys/bitypes.h... yes
checking for memory.h... yes
checking for unistd.h... yes
checking for gnu/libc-version.h... yes
checking for nl_types.h... yes
checking for X11/XKBlib.h... yes
checking for sys/statvfs.h... yes
checking for sys/statfs.h... yes
checking for sys/vfs.h... yes
checking for sys/mount.h... yes
checking for mmintrin.h... no
checking for new... yes
checking for sys/cdefs.h... yes
checking for gethostbyname_r in -lc_r... no
checking for atan in -lm... yes
checking for dlopen in -ldl... yes
checking for socket in -lsocket... no
checking for XDrawLines in -lX11... yes
checking for XextAddDisplay in -lXext... yes
checking for XtFree in -lXt... yes
checking for XineramaIsActive in -lXinerama... yes
checking for X11/extensions/Xinerama.h... yes
checking for XShmCreateImage in -lXext... yes
checking for X11/extensions/XShm.h... yes
checking for XieFloGeometry in -lXIE... no
checking for X11/extensions/XIElib.h... no
checking for pthread_create in -lpthreads... no
checking for pthread_create in -lpthread... yes
checking whether gcc accepts -pthread... yes
checking whether mmap() sees write()s... yes
checking whether gcc needs -traditional... no
checking for 8-bit clean memcmp... yes
checking for random... yes
checking for strerror... yes
checking for lchown... yes
checking for fchmod... yes
checking for snprintf... yes
checking for statvfs... yes
checking for memmove... yes
checking for rint... yes
checking for nl_langinfo... yes
checking for flockfile... yes
checking for localtime_r... yes
checking for strtok_r... yes
checking for res_ninit()... yes
checking for gnu_get_libc_version()... yes
checking for iconv in -liconv... no
checking for libiconv in -liconv... no
checking for iconv()... yes
checking for iconv() with const input... no
checking whether va_list assignments need array notation... no
checking for C++ exceptions flag... -fno-exceptions
checking for gcc 3.0 ABI... no
checking for ios::binary... yes
checking for ios::bin... yes
checking for C++ "explicit" keyword... yes
checking for C++ template specialization support... yes
checking for modern C++ template specialization syntax support... yes
checking whether partial template specialization works... yes
checking whether operators must be re-defined for templates derived from
templates... no
checking whether we need to cast a derived template to pass as its base class... no
checking whether the compiler can resolve const ambiguities for templates... yes
checking whether the C++ "using" keyword can change access... no
checking whether the C++ "using" keyword resolves ambiguity... no
checking for "std::" namespace... yes
checking whether standard template operator!=() is ambiguous... unambiguous
checking for C++ reinterpret_cast... yes
checking for C++ dynamic_cast to void*... yes
checking whether C++ requires implementation of unused virtual methods... yes
checking for trouble comparing to zero near std::operator!=()... no
checking for LC_MESSAGES... yes
checking for zlib.h... yes
checking for gzread in -lz... yes
checking for pkg-config... /usr/bin/pkg-config
checking for gtk+-2.0 >= 1.3.7... yes
checking MOZ_GTK2_CFLAGS... -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
-I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/X11R6/include
-I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
checking MOZ_GTK2_LIBS... -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0
-latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0
-lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
checking for freetype-config... /usr/bin/freetype-config
checking for FreeType - version >= 6.1.0... yes
checking for XpGetPrinterList in -lXp... yes
configure: warning: Cannot build venkman without JavaScript debug library.
Removing venkman from MOZ_EXTENSIONS.
checking for __builtin_vec_new... yes
checking for __builtin_vec_delete... yes
checking for __builtin_new... yes
checking for __builtin_delete... yes
checking for __pure_virtual... yes
checking for cplus_demangle in -liberty... yes
checking for gcc -pipe support... yes
checking for correct overload resolution with const and templates... no
checking whether compiler supports -Wno-long-long... yes
checking for libIDL-2.0 >= 0.8.0... yes
checking LIBIDL_CFLAGS... -I/usr/include/libIDL-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include
checking LIBIDL_LIBS... -lIDL-2 -lglib-2.0
creating mozilla-config.h
==== mozilla-config.h =================================
/* List of defines generated by configure. Included with preprocessor flag,
* -include, to avoid long list of -D defines on the compile command-line.
* Do not edit.
*/
#ifndef _MOZILLA_CONFIG_H_
#define _MOZILLA_CONFIG_H_
#define ACCESSIBILITY 1
#define CPP_THROW_NEW throw()
#define D_INO d_ino
#define FUNCPROTO 15
#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
#define HAVE_CPP_EXPLICIT 1
#define HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX 1
#define HAVE_CPP_NAMESPACE_STD 1
#define HAVE_CPP_NEW_CASTS 1
#define HAVE_CPP_PARTIAL_SPECIALIZATION 1
#define HAVE_CPP_SPECIALIZATION 1
#define HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL 1
#define HAVE_DIRENT_H 1
#define HAVE_FCHMOD 1
#define HAVE_FLOCKFILE 1
#define HAVE_GETOPT_H 1
#define HAVE_GNU_GET_LIBC_VERSION 1
#define HAVE_GNU_LIBC_VERSION_H 1
#define HAVE_I18N_LC_MESSAGES 1
#define HAVE_ICONV 1
#define HAVE_INT16_T 1
#define HAVE_INT32_T 1
#define HAVE_INT64_T 1
#define HAVE_IOS_BIN 1
#define HAVE_IOS_BINARY 1
#define HAVE_LCHOWN 1
#define HAVE_LIBDL 1
#define HAVE_LIBM 1
#define HAVE_LOCALTIME_R 1
#define HAVE_MBRTOWC 1
#define HAVE_MEMMOVE 1
#define HAVE_MEMORY_H 1
#define HAVE_NL_LANGINFO 1
#define HAVE_NL_TYPES_H 1
#define HAVE_RANDOM 1
#define HAVE_RES_NINIT 1
#define HAVE_RINT 1
#define HAVE_SIGINFO_T 1
#define HAVE_SNPRINTF 1
#define HAVE_STATVFS 1
#define HAVE_STRERROR 1
#define HAVE_STRTOK_R 1
#define HAVE_ST_BLKSIZE 1
#define HAVE_SYS_BITYPES_H 1
#define HAVE_SYS_CDEFS_H 1
#define HAVE_SYS_MOUNT_H 1
#define HAVE_SYS_STATFS_H 1
#define HAVE_SYS_STATVFS_H 1
#define HAVE_SYS_VFS_H 1
#define HAVE_UINT 1
#define HAVE_UNAME_US_DOMAINNAME_FIELD 1
#define HAVE_UNISTD_H 1
#define HAVE_WCRTOMB 1
#define HAVE_X11_XKBLIB_H 1
#define HAVE_XSHM 1
#define HAVE___BUILTIN_DELETE 1
#define HAVE___BUILTIN_NEW 1
#define HAVE___BUILTIN_VEC_DELETE 1
#define HAVE___BUILTIN_VEC_NEW 1
#define HAVE___PURE_VIRTUAL 1
#define IBMBIDI 1
#define INCLUDE_XUL 1
#define JS_THREADSAFE 1
#define MOZ_ACCESSIBILITY_ATK 1
#define MOZ_DEFAULT_MOZILLA_FIVE_HOME "/usr/lib/mozilla"
#define MOZ_DEFAULT_TOOLKIT "gtk2"
#define MOZ_DISABLE_DTD_DEBUG 1
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_ENABLE_COREXFONTS 1
#define MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS 1
#define MOZ_ENABLE_XREMOTE 1
#define MOZ_LOGGING 1
#define MOZ_MATHML 1
#define MOZ_USER_DIR ".mozilla"
#define MOZ_WIDGET_GTK2 1
#define MOZ_X11 1
#define MOZ_XUL 1
#define NEED_CPP_UNUSED_IMPLEMENTATIONS 1
#define NEW_H <new>
#define NS_MT_SUPPORTED 1
#define NS_PRINTING 1
#define NS_PRINT_PREVIEW 1
#define STDC_HEADERS 1
#define UNIX_ASYNC_DNS 1
#define USE_IMG2 1
#define XP_UNIX 1
#define _POSIX_SOURCE 1
#define _REENTRANT 1
#define _SVID_SOURCE 1
#endif /* _MOZILLA_CONFIG_H_ */
The 1.2.1 ebuild currently has a wrong digest. The problem is not on my pc, but on the pc of a friend. He now disabled gtk2. Dont tell me they went and changed the tarball again ? Created attachment 6223 [details]
Output of mozilla-merge
This is the output of an `emerge mozilla'. gtk and gtk2 are both in my
make.conf (does that make the difference?) and xft is unmerged. Notice the
configure-process errors out.
When I put -gtk2 in my useflags, mozilla will build again.
Ok, fixed the digest, and tweaked the detection code a bit. Still test fine this side, just check that you have: mozilla-1.2.1.ebuild,v 1.2 2002/12/05 14:16:44 and let me know. > Just check that you have:
> mozilla-1.2.1.ebuild,v 1.2 2002/12/05 14:16:44
> and let me know.
It has no trouble compiling anymore. Did you change anything?
For as far as I'm concerned this bug may be closed. Let's wait for Hanno's input
though. Thanks for the help, Azarah :)
Mark
*** Bug 11623 has been marked as a duplicate of this bug. *** Yep, ripped out the if '[ -n "${MOZ_ENABLE_XFT}" ]', and changed ------------------- if [ -n "`use gtk2`" ] then # Only enable Xft if we have Xft2.0 installed ... if pkg-config xft 2> /dev/null then einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" else myconf="${myconf} --disable-xft" fi else einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" fi ------------------------------ To: ------------------------------- if [ -n "`use gtk2`" ] then # Only enable Xft if we have Xft2.0 installed ... if (test -x /usr/bin/pkg-config) && (pkg-config xft) then einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" else ewarn "Building without Xft2.0 support!" myconf="${myconf} --disable-xft" fi else einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" fi ------------------------ You still had 'gtk2' in USE, and x11-libs/xft NOT installed ? Indeed, and that works perfectly now :) It's not compiled yet but as soon as it has I'll tell you the results. Great work so far :) Ok Azarah, it's compiled without a problem. Just one minor question: does gtk2 stop antialiasing for fonts? Nothing is antialiased anymore. (I'm not fully updated on Xft and freetype and so) Question if I may ... why do you compile with gtk2 ? For galeon-cvs ? And why if for galeon-cvs ? Why I ask, is because without 'gtk2', mozilla will do AA with Xft2.0 which is really nice, and if you merge galeon-1.2.7 against it, its a real stable combination with pages rendered AA as well :) See: http://cvs.gentoo.org/~azarah/galeon-1.2.7.png Ok, was a commit collide there. Well, problem with 1.2, is that for AA fonts, you need Xft2.0. Thus, if you do not have 'gtk2' in USE, the moz ebuild build and install it in /usr/lib/mozilla. If 'gtk2' is in USE, we cannot build with Xft2.0 support if you do not have pango-1.1, as it then links to Xft1.1 *and* Xft2.0 and cause it to segfault (reminds me now why I had the pango check). Ah, explains the segfault ;) Well it was basically just to see the differences as I use the browser mozilla, no galeon or whatever (fluxbox all the way ;). I have to say there are some nice things in Mozilla+gtk2 but these are minor things. I had random crashes too and lockups when I compiled it against gtk, I want to see if gtk2 will prevent this. Anyway, it's good these small bug-kinda-things are found, better now than when mozilla+gtk2 would be a standard. Ok, added the pango check back again: ------------------------------- if [ -n "`use gtk2`" ] then local pango_version="" # We need Xft2.0 localy installed if (test -x /usr/bin/pkg-config) && (pkg-config xft) then pango_version="`pkg-config --modversion pango | cut -d. -f1,2`" pango_version="`echo ${pango_version} | sed -e 's:\.::g'`" # We also need pango-1.1, else Mozilla links to both # Xft1.1 *and* Xft2.0, and segfault... if [ "${pango_version}" -gt "10" ] then einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" else ewarn "Building without Xft2.0 support!" myconf="${myconf} --disable-xft" fi else ewarn "Building without Xft2.0 support!" myconf="${myconf} --disable-xft" fi else einfo "Building with Xft2.0 support!" myconf="${myconf} --enable-xft" fi ----------------------------------- If you want to help the Xft2.0 testing, check: bug #10834 This should be fixed now. |