Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 14060 - gnustep-back 0.8.0 finds unusable Xft
Summary: gnustep-back 0.8.0 finds unusable Xft
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Nick Hadaway
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-01-16 15:47 UTC by Frank Thieme
Modified: 2003-02-04 14:07 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
files/${PN}-${PV}.xft1.patch (gnustep-back-0.8.0.xft1.patch,566 bytes, patch)
2003-02-02 11:01 UTC, Zhen Lin
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Thieme 2003-01-16 15:47:35 UTC
Hi!

Ok, emerge gnustep-back breaks because it fails to find a suitable Xft Library. 

configure output:
checking for XftFontOpen in -lXft... yes
checking X11/Xft/Xft.h usability... no
checking X11/Xft/Xft.h presence... yes
configure: WARNING: X11/Xft/Xft.h: present but cannot be compiled
configure: WARNING: X11/Xft/Xft.h: check for missing prerequisite headers?
configure: WARNING: X11/Xft/Xft.h: proceeding with the preprocessor's result
checking for X11/Xft/Xft.h... yes
checking for XftDrawStringUtf8 in -lXft... yes

If you look in config.log you see:
configure:4186: result: yes
Xft  -lwraster -ltiff -lXpm -lHermes -lpng -lz -ljpeg -lungif -lXext -lX11 -lm  >&5
configure:4245: $? = 0
configure:4248: test -s conftest
configure:4251: $? = 0
configure:4262: result: yes
configure:4280: checking X11/Xft/Xft.h usability
configure:4289: gcc -c -march=athlon-xp -mmmx -m3dnow -msse -O3 -pipe 
-I/usr/X11R6/include  -L/usr/lib -L/usr/X11R6/lib  
-I/usr/GNUstep/System/Headers conftest.c >&5
In file included from configure:4317:
/usr/X11R6/include/X11/Xft/Xft.h:52: parse error before "_XftFTlibrary"
/usr/X11R6/include/X11/Xft/Xft.h:52: warning: data definition has no type or
storage class
/usr/X11R6/include/X11/Xft/Xft.h:86: parse error before "FT_UInt"
/usr/X11R6/include/X11/Xft/Xft.h:86: warning: no semicolon at end of struct or union
/usr/X11R6/include/X11/Xft/Xft.h:89: parse error before '}' token
/usr/X11R6/include/X11/Xft/Xft.h:89: warning: data definition has no type or
storage class
/usr/X11R6/include/X11/Xft/Xft.h:93: parse error before "FT_UInt"
/usr/X11R6/include/X11/Xft/Xft.h:93: warning: no semicolon at end of struct or union
/usr/X11R6/include/X11/Xft/Xft.h:96: parse error before '}' token
/usr/X11R6/include/X11/Xft/Xft.h:96: warning: data definition has no type or
storage class
/usr/X11R6/include/X11/Xft/Xft.h:190: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:256: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:262: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:295: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:353: parse error before "XftLockFace"
/usr/X11R6/include/X11/Xft/Xft.h:353: warning: data definition has no type or
storage class
/usr/X11R6/include/X11/Xft/Xft.h:392: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:398: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:407: parse error before "FT_UInt"
/usr/X11R6/include/X11/Xft/Xft.h:417: parse error before "XftCharIndex"
/usr/X11R6/include/X11/Xft/Xft.h:419: warning: data definition has no type or
storage class
/usr/X11R6/include/X11/Xft/Xft.h:460: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:471: parse error before '*' token
/usr/X11R6/include/X11/Xft/Xft.h:492: parse error before '*' token
configure:4292: $? = 1
configure: failed program was:
#line 4282 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
#  include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <X11/Xft/Xft.h>

I looked further and found Xft.h line 52
extern FT_Library       _XftFTlibrary;

therefor it includes freetype.h, but it doesn't find the freetype2 freetype.h
but rather includes the freetype.h from freetyp 1. FT_Library is a struct only
declared in freetype 2.

So I think we just have do pass the right include path to gnustep-back....
Comment 1 Andrew Sayman 2003-01-22 22:28:08 UTC
I have this exact same bug with gnustep-back from 0.8.0 to 0.8.3. I started
testing the sources from the gnustep.org website after the ebuild failed. 
Comment 2 Frank Thieme 2003-01-23 08:45:00 UTC
easy Solution...

just add 

26a27
>                 --with-include-flags="-I/usr/include/freetype2" \

But there are more problems, this time with the library itsself. These problems
have to be resolved from GNUstep :(
Comment 3 Zhen Lin 2003-02-02 11:01:06 UTC
Created attachment 7846 [details, diff]
files/${PN}-${PV}.xft1.patch

This is a small patch to resolve the Xft error. This will not clear up the
initial configure/autoconf warnings, but it should be sufficient to let the
program compile. I did not use the freetype2 include directory for fear of
incompatibility/inconsistency.

Here is the that has to be applied to the ebuild:
*** gnustep-back-0.8.0.ebuild	Sun Feb  2 23:58:58 2003
--- gnustep-back-0.8.0-r1.ebuild	Sun Feb  2 23:56:49 2003
***************
*** 2,7 ****
--- 2,9 ----
  # Distributed under the terms of the GNU General Public License v2
  # $Header:
/home/cvsroot/gentoo-x86/dev-util/gnustep-back/gnustep-back-0.8.0.ebuild,v 1.2
2002/12/09 04:21:15 manson Exp $
  
+ inherit base
+ 
  DESCRIPTION="GNUstep GUI backend"
  HOMEPAGE="http://www.gnustep.org"
  SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
***************
*** 13,18 ****
--- 15,21 ----
	  >=media-libs/jpeg-6b-r2
	x11-base/xfree"
  S=${WORKDIR}/${P}
+ PATCHES="${FILESDIR}/${PN}-${PV}.xft1.patch"
  
  src_compile() {

Attached is the patch to be put in the files/ directory.
Comment 4 Nick Hadaway 2003-02-04 14:07:41 UTC
gnustep-back-0.8.3 is now in portage.  Make sure /root/GNUstep doesn't exist before emerging otherwise you'll get lots of warnings.