David Meyer schreef:
> Has anyone been able to emerge both of these? If I emerge xorg-x11 
> then gnome, the gnome emerge dies with an error compiling pango:
> 
> /usr/include/pango-1.0/pango/pangoxft-render.h:95: error: parse error
>  before "XftGlyphSpec" keyboard-drawing.c: In function 
> `xkb_state_notify_event_filter': keyboard-drawing.c:1481: warning: 
> implicit declaration of function `memset' make[2]: *** 
> [keyboard-drawing.o] Error 1 make[2]: Leaving directory 
> `/var/tmp/portage/control-center-2.10.2/work/control-center-2.10.2/libkbdraw'
>  make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory 
> `/var/tmp/portage/control-center-2.10.2/work/control-center-2.10.2' 
> make: *** [all] Error 2
> 
> !!! ERROR: gnome-base/control-center-2.10.2 failed. !!! Function 
> gnome2_src_compile, Line 48, Exitcode 2 !!! compile failure
> 

Well, I have the unstable version of gnome-light installed (2.12.2), and
my Control Center installed and works just fine (even in fvwm-crystal,
which is my default WM).

Now what seems to be the problem is either pango or a dependency of
pango which is causing the control center to fail.

So let's look at pango and see how far we get.

Pango has no relevant USE flags (only "debug" and "doc") so that can't
be it (unless you're for some reason using the "debug" flag, which I
assume you are not).. Looking at the status of pango on
packages.gentoo.org, I can see that pango 1.10.2 is marked stable for
both x86 and amd64 (which Jamie said he's using, you haven't named your
arch), so it seems likely that that is the version you have installed
(but feel free to post an 'emerge -pv pango' to confirm/check that).

Looking at pango 1.10.2 on www.gentoo-portage.com, I see that that
version of pango requires:

Runtime Dependencies

pango-1.10.2

    >= dev-libs/glib - 2.5.7
    >= media-libs/fontconfig - 1.0.1
    >= media-libs/freetype - 2
    > x11-libs/cairo - 0.5.2
    x11-libs/libX11
    x11-libs/libXrender
    x11-libs/libXt
    virtual/x11
    virtual/xft

I in fact have pango-1.10.2 installed

* x11-libs/pango
     Available versions:  1.4.1-r1 1.8.1 1.8.1-r1 1.8.2 1.10.1 1.10.2
     Installed:           1.10.2
     Homepage:            http://www.pango.org/
     Description:         Text rendering and layout library

 but what's weird is that two of the stated dependencies of this package
are hard-masked (and I don't have them installed):

    x11-libs/libXrender

* x11-libs/libXrender
     Available versions:  [M]0.9.0.2
     Installed:           none
     Homepage:            http://xorg.freedesktop.org/
     Description:         X.Org Xrender library


    x11-libs/libXt

* x11-libs/libXt
     Available versions:  [M]1.0.0
     Installed:           none
     Homepage:            http://xorg.freedesktop.org/
     Description:         X.Org Xt library

So that does seem like an area in which pango might be problematic,
especially when an older version of GNOME is being compiled against it
(2.10.2 does count as an older version, since the GNOME backend has been
going through a lot of revision lately).

But this doesn't seem to be getting us anywhere, or at least nowhere
that I can go, so let's look at that XftGlyphSpec, and the
keyboard-related libs, since that is specifically where the failure is
occurring.

Again, libXft is hard-masked, and I don't have it (despite it being a
dependency of something I do have installed, fvwm):

* x11-libs/libXft
     Available versions:  [M]2.1.8.2
     Installed:           none
     Homepage:            http://xorg.freedesktop.org/
     Description:         X.Org Xft library


Runtime Dependencies
libXft-2.1.8.2

    >= media-libs/fontconfig - 2.2
    media-libs/freetype
    >= sys-apps/man - 1.6b-r2
    ! x11-base/xorg-x11 - 6.9
    x11-libs/libX11
    x11-libs/libXext
    x11-libs/libXrender
    x11-proto/xproto

Given my recent issues with Modular X and the xkb files, the fact that
you are having problems with xkb files and a program that depends on X,
and the title of this thread I have to wonder what version of X you are
running.

Are you by chance running Xorg 6.8.99 or in fact a version of the
hard-masked 7.0?

Yes, this is definitely related to how you've compiled X (whatever
version); this thread

 http://mail.nl.linux.org/xchat-discuss/2002-08/msg00015.html

indicates a similar problem if X is not compiled with XFT support, which
is the conclusion I was about to come to via this roundabout path; since
clearly I have some version of XFT libs installed, but no masked
packages installed to provide it, it must be provided by X or one of its
dependencies.

So here are my X USE flags:

 emerge -pv xorg-x11
________________________________________________________________________________

cfg-update 1.8.0 : No new packages have been emerged, checksum index OK...
________________________________________________________________________________


These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild   R   ] x11-base/xorg-x11-6.8.2-r6  -3dfx +3dnow +bitmap-fonts
-cjk -debug -dlloader -dmx -doc +font-server -insecure-drivers -ipv6
-minimal +mmx +nls -nocxx +opengl -pam -sdk +sse -static +truetype-fonts
+type1-fonts (-uclibc) +xprint +xv 0 kB

Now, of course I want to know which one of these is responsible for
providing XFT, so I have to know what XFT is in the first place:

xft(3) - Linux man page
NAME
Xft - X FreeType interface library

DESCRIPTION
Xft is a simple library designed to interface the FreeType rasterizer
with the X Rendering Extension. This manual page barely scratches the
surface of this library.

DATATYPES

XftPattern holds a set of names with associated value lists; each name
refers to a property of a font. XftPatterns are used as inputs to the
matching code as well as holding information about specific fonts.

XftFont contains general font metrics and a pointer to either the core
XFontStruct data or a structure holding FreeType and X Render Extension
data.

XftFontStruct contains information about FreeType fonts used with the X
Render Extension.

XftFontSet contains a list of XftPatterns. Internally Xft uses this data
structure to hold sets of fonts. Externally, Xft returns the results of
listing fonts in this format.

XftObjectSet holds a set of names and is used to specify which fields
from fonts are placed in the the list of returned patterns when listing
fonts.

XftDraw is an opaque object which holds information used to render to an
X drawable using either core protocol or the X Rendering extension.

And looking at the ebuild, we see

 !virtual/xft"
# x11-libs/xft -- blocked because of interference with xorg's

So indeed, Xorg provides xft in some way.

but how it does so is very much unclear:

Use Flags

    3dfx - Adds support for 3dfx video cards to XFree86. See: voodoo3
    xprint - Support for xprint, http://www.mozilla.org/projects/xprint/
    bitmap-fonts -
    cjk - Adds support for Multi-byte character languages (Chinese,
Japanese, Korean)
    debug - Tells configure and the makefiles to build for debugging.
Effects vary across packages, but generally it will at least add -g to
CFLAGS. Remember to set FEATURES=nostrip too
    doc - Adds extra documentation (API, Javadoc, etc)
    font-server -
    insecure-drivers -
    ipv6 - Adds support for IP version 6
    minimal - Install a very minimal build (disables, for example,
plugins, fonts, most drivers, non-critical features)
    nls - Adds Native Language Support (using gettext - GNU locale
utilities)
    nocxx - Disable support for C++ (DON'T USE THIS UNLESS YOU KNOW WHAT
YOU'RE DOING)
    opengl - Adds support for OpenGL
    pam - Adds support PAM (Pluggable Authentication Modules) -
DANGEROUS to arbitrarily flip
    sdk - Builds the software development kit
    static - !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
    truetype-fonts -
    type1-fonts -
    uclibc - Enable uclibc specific patches and build or link uclibc
    xv - Adds in optional support for the Xvideo extension (an X API for
video playback)
    3dnow - Adds support for 3dnow multimedia processor instructions
    dlloader - Enable dynamic module loader instead of ELF loader
    dmx - Build Distributed Multiheaded X
    mmx - Adds support for optimizations for Pentium MMX and Athlon
class processors
    sse - fast floating point optimization for PentiumIII+ class chips
    hardened - activate default security enhancements for toolchain
(gcc, glibc, binutils)
    pie -


Oh, wait! Back to the ebuild:

                # The definitions for fontconfig
                echo "#define UseFontconfig YES" >> ${HOSTCONF}
                echo "#define HasFontconfig YES" >> ${HOSTCONF}

                # Use the xorg Xft2 lib
==>         echo "#define SharedLibXft YES" >> ${HOSTCONF}

fontconfig!!! OK, let's have a look at that.... ok fontconfig is a
dependency of Xorg (which provides XFT), and pango (which is apparently
not finding XFT) and gnome-control-center (which is failing to compile
due to pango not finding XFT, it would seem). And freetype is obviously
a dependency of fontconfig-- and Xorg, pango , and gnome-control-center
depend on that as well, which suggests that either fontconfig or
freetype or both are broken. I don't so much see fontconfig as
breakable, but freetype is another story in my experience, so I'm
checking that...

Ooh, this is interesting.... in the freetype-2.1.10 ebuild, we find this
little gem:

        # fix internal header cast which gets used by pango (bad)
        epatch ${FILESDIR}/${P}-internal_header.patch

        gnuconfig_update ${S}
        elibtoolize
        epunt_cxx

}


OK, that would be about all the confirmation I would need (if this was
happening to me) to say the first thing to try would be to run either

revdep-rebuild -p to see if either or both fontconfig and freetype are
known broken, and rebuild if so

or

emerge --oneshot freetype

and see if you get any further.

If not, I would probably then

run another revdep-rebuild -p to see if X was in any way broken

and/or

emerge --oneshot xorg-x11 (as much as I hate to say that, since X takes
such a long time to compile).

Sorry not to be more definitive, but 1) no one else has answered anyway,
and 2) this doesn't seem to be an easily-searchable problem either due
to it being uncommon or simply because it's clearly hard to identify
what the exact problem is in order to target the search.

In any case, I hope this is helpful, even if only to stimulate someone
who knows wtf is going on here to answer :-)  .

Holly
-- 
gentoo-user@gentoo.org mailing list

Reply via email to