Gentoo Archives: gentoo-user

From: Holly Bostick <motub@××××××.nl>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] xorg-x11 and gnome (long, thinking out loud)
Date: Mon, 09 Jan 2006 12:31:00
Message-Id: 43C255D6.9090903@planet.nl
In Reply to: [gentoo-user] xorg-x11 and gnome by David Meyer
1 David Meyer schreef:
2 > Has anyone been able to emerge both of these? If I emerge xorg-x11
3 > then gnome, the gnome emerge dies with an error compiling pango:
4 >
5 > /usr/include/pango-1.0/pango/pangoxft-render.h:95: error: parse error
6 > before "XftGlyphSpec" keyboard-drawing.c: In function
7 > `xkb_state_notify_event_filter': keyboard-drawing.c:1481: warning:
8 > implicit declaration of function `memset' make[2]: ***
9 > [keyboard-drawing.o] Error 1 make[2]: Leaving directory
10 > `/var/tmp/portage/control-center-2.10.2/work/control-center-2.10.2/libkbdraw'
11 > make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
12 > `/var/tmp/portage/control-center-2.10.2/work/control-center-2.10.2'
13 > make: *** [all] Error 2
14 >
15 > !!! ERROR: gnome-base/control-center-2.10.2 failed. !!! Function
16 > gnome2_src_compile, Line 48, Exitcode 2 !!! compile failure
17 >
18
19 Well, I have the unstable version of gnome-light installed (2.12.2), and
20 my Control Center installed and works just fine (even in fvwm-crystal,
21 which is my default WM).
22
23 Now what seems to be the problem is either pango or a dependency of
24 pango which is causing the control center to fail.
25
26 So let's look at pango and see how far we get.
27
28 Pango has no relevant USE flags (only "debug" and "doc") so that can't
29 be it (unless you're for some reason using the "debug" flag, which I
30 assume you are not).. Looking at the status of pango on
31 packages.gentoo.org, I can see that pango 1.10.2 is marked stable for
32 both x86 and amd64 (which Jamie said he's using, you haven't named your
33 arch), so it seems likely that that is the version you have installed
34 (but feel free to post an 'emerge -pv pango' to confirm/check that).
35
36 Looking at pango 1.10.2 on www.gentoo-portage.com, I see that that
37 version of pango requires:
38
39 Runtime Dependencies
40
41 pango-1.10.2
42
43 >= dev-libs/glib - 2.5.7
44 >= media-libs/fontconfig - 1.0.1
45 >= media-libs/freetype - 2
46 > x11-libs/cairo - 0.5.2
47 x11-libs/libX11
48 x11-libs/libXrender
49 x11-libs/libXt
50 virtual/x11
51 virtual/xft
52
53 I in fact have pango-1.10.2 installed
54
55 * x11-libs/pango
56 Available versions: 1.4.1-r1 1.8.1 1.8.1-r1 1.8.2 1.10.1 1.10.2
57 Installed: 1.10.2
58 Homepage: http://www.pango.org/
59 Description: Text rendering and layout library
60
61 but what's weird is that two of the stated dependencies of this package
62 are hard-masked (and I don't have them installed):
63
64 x11-libs/libXrender
65
66 * x11-libs/libXrender
67 Available versions: [M]0.9.0.2
68 Installed: none
69 Homepage: http://xorg.freedesktop.org/
70 Description: X.Org Xrender library
71
72
73 x11-libs/libXt
74
75 * x11-libs/libXt
76 Available versions: [M]1.0.0
77 Installed: none
78 Homepage: http://xorg.freedesktop.org/
79 Description: X.Org Xt library
80
81 So that does seem like an area in which pango might be problematic,
82 especially when an older version of GNOME is being compiled against it
83 (2.10.2 does count as an older version, since the GNOME backend has been
84 going through a lot of revision lately).
85
86 But this doesn't seem to be getting us anywhere, or at least nowhere
87 that I can go, so let's look at that XftGlyphSpec, and the
88 keyboard-related libs, since that is specifically where the failure is
89 occurring.
90
91 Again, libXft is hard-masked, and I don't have it (despite it being a
92 dependency of something I do have installed, fvwm):
93
94 * x11-libs/libXft
95 Available versions: [M]2.1.8.2
96 Installed: none
97 Homepage: http://xorg.freedesktop.org/
98 Description: X.Org Xft library
99
100
101 Runtime Dependencies
102 libXft-2.1.8.2
103
104 >= media-libs/fontconfig - 2.2
105 media-libs/freetype
106 >= sys-apps/man - 1.6b-r2
107 ! x11-base/xorg-x11 - 6.9
108 x11-libs/libX11
109 x11-libs/libXext
110 x11-libs/libXrender
111 x11-proto/xproto
112
113 Given my recent issues with Modular X and the xkb files, the fact that
114 you are having problems with xkb files and a program that depends on X,
115 and the title of this thread I have to wonder what version of X you are
116 running.
117
118 Are you by chance running Xorg 6.8.99 or in fact a version of the
119 hard-masked 7.0?
120
121 Yes, this is definitely related to how you've compiled X (whatever
122 version); this thread
123
124 http://mail.nl.linux.org/xchat-discuss/2002-08/msg00015.html
125
126 indicates a similar problem if X is not compiled with XFT support, which
127 is the conclusion I was about to come to via this roundabout path; since
128 clearly I have some version of XFT libs installed, but no masked
129 packages installed to provide it, it must be provided by X or one of its
130 dependencies.
131
132 So here are my X USE flags:
133
134 emerge -pv xorg-x11
135 ________________________________________________________________________________
136
137 cfg-update 1.8.0 : No new packages have been emerged, checksum index OK...
138 ________________________________________________________________________________
139
140
141 These are the packages that I would merge, in order:
142
143 Calculating dependencies ...done!
144 [ebuild R ] x11-base/xorg-x11-6.8.2-r6 -3dfx +3dnow +bitmap-fonts
145 -cjk -debug -dlloader -dmx -doc +font-server -insecure-drivers -ipv6
146 -minimal +mmx +nls -nocxx +opengl -pam -sdk +sse -static +truetype-fonts
147 +type1-fonts (-uclibc) +xprint +xv 0 kB
148
149 Now, of course I want to know which one of these is responsible for
150 providing XFT, so I have to know what XFT is in the first place:
151
152 xft(3) - Linux man page
153 NAME
154 Xft - X FreeType interface library
155
156 DESCRIPTION
157 Xft is a simple library designed to interface the FreeType rasterizer
158 with the X Rendering Extension. This manual page barely scratches the
159 surface of this library.
160
161 DATATYPES
162
163 XftPattern holds a set of names with associated value lists; each name
164 refers to a property of a font. XftPatterns are used as inputs to the
165 matching code as well as holding information about specific fonts.
166
167 XftFont contains general font metrics and a pointer to either the core
168 XFontStruct data or a structure holding FreeType and X Render Extension
169 data.
170
171 XftFontStruct contains information about FreeType fonts used with the X
172 Render Extension.
173
174 XftFontSet contains a list of XftPatterns. Internally Xft uses this data
175 structure to hold sets of fonts. Externally, Xft returns the results of
176 listing fonts in this format.
177
178 XftObjectSet holds a set of names and is used to specify which fields
179 from fonts are placed in the the list of returned patterns when listing
180 fonts.
181
182 XftDraw is an opaque object which holds information used to render to an
183 X drawable using either core protocol or the X Rendering extension.
184
185 And looking at the ebuild, we see
186
187 !virtual/xft"
188 # x11-libs/xft -- blocked because of interference with xorg's
189
190 So indeed, Xorg provides xft in some way.
191
192 but how it does so is very much unclear:
193
194 Use Flags
195
196 3dfx - Adds support for 3dfx video cards to XFree86. See: voodoo3
197 xprint - Support for xprint, http://www.mozilla.org/projects/xprint/
198 bitmap-fonts -
199 cjk - Adds support for Multi-byte character languages (Chinese,
200 Japanese, Korean)
201 debug - Tells configure and the makefiles to build for debugging.
202 Effects vary across packages, but generally it will at least add -g to
203 CFLAGS. Remember to set FEATURES=nostrip too
204 doc - Adds extra documentation (API, Javadoc, etc)
205 font-server -
206 insecure-drivers -
207 ipv6 - Adds support for IP version 6
208 minimal - Install a very minimal build (disables, for example,
209 plugins, fonts, most drivers, non-critical features)
210 nls - Adds Native Language Support (using gettext - GNU locale
211 utilities)
212 nocxx - Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT
213 YOU'RE DOING)
214 opengl - Adds support for OpenGL
215 pam - Adds support PAM (Pluggable Authentication Modules) -
216 DANGEROUS to arbitrarily flip
217 sdk - Builds the software development kit
218 static - !!do not set this during bootstrap!! Causes binaries to be
219 statically linked instead of dynamically
220 truetype-fonts -
221 type1-fonts -
222 uclibc - Enable uclibc specific patches and build or link uclibc
223 xv - Adds in optional support for the Xvideo extension (an X API for
224 video playback)
225 3dnow - Adds support for 3dnow multimedia processor instructions
226 dlloader - Enable dynamic module loader instead of ELF loader
227 dmx - Build Distributed Multiheaded X
228 mmx - Adds support for optimizations for Pentium MMX and Athlon
229 class processors
230 sse - fast floating point optimization for PentiumIII+ class chips
231 hardened - activate default security enhancements for toolchain
232 (gcc, glibc, binutils)
233 pie -
234
235
236 Oh, wait! Back to the ebuild:
237
238 # The definitions for fontconfig
239 echo "#define UseFontconfig YES" >> ${HOSTCONF}
240 echo "#define HasFontconfig YES" >> ${HOSTCONF}
241
242 # Use the xorg Xft2 lib
243 ==> echo "#define SharedLibXft YES" >> ${HOSTCONF}
244
245 fontconfig!!! OK, let's have a look at that.... ok fontconfig is a
246 dependency of Xorg (which provides XFT), and pango (which is apparently
247 not finding XFT) and gnome-control-center (which is failing to compile
248 due to pango not finding XFT, it would seem). And freetype is obviously
249 a dependency of fontconfig-- and Xorg, pango , and gnome-control-center
250 depend on that as well, which suggests that either fontconfig or
251 freetype or both are broken. I don't so much see fontconfig as
252 breakable, but freetype is another story in my experience, so I'm
253 checking that...
254
255 Ooh, this is interesting.... in the freetype-2.1.10 ebuild, we find this
256 little gem:
257
258 # fix internal header cast which gets used by pango (bad)
259 epatch ${FILESDIR}/${P}-internal_header.patch
260
261 gnuconfig_update ${S}
262 elibtoolize
263 epunt_cxx
264
265 }
266
267
268 OK, that would be about all the confirmation I would need (if this was
269 happening to me) to say the first thing to try would be to run either
270
271 revdep-rebuild -p to see if either or both fontconfig and freetype are
272 known broken, and rebuild if so
273
274 or
275
276 emerge --oneshot freetype
277
278 and see if you get any further.
279
280 If not, I would probably then
281
282 run another revdep-rebuild -p to see if X was in any way broken
283
284 and/or
285
286 emerge --oneshot xorg-x11 (as much as I hate to say that, since X takes
287 such a long time to compile).
288
289 Sorry not to be more definitive, but 1) no one else has answered anyway,
290 and 2) this doesn't seem to be an easily-searchable problem either due
291 to it being uncommon or simply because it's clearly hard to identify
292 what the exact problem is in order to target the search.
293
294 In any case, I hope this is helpful, even if only to stimulate someone
295 who knows wtf is going on here to answer :-) .
296
297 Holly
298 --
299 gentoo-user@g.o mailing list