I --oneshot emerged FBdirect libraries to see if it did any difference but no. Here are the errors: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I../pixman/src -I/usr/include/libpng12 -D_REENTRANT -D_GNU_SOURCE -I/usr/include/directfb -I/usr/include/freetype2 -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -march=k8 -pipe -O2 -finline-limit=1200 -MT cairo-directfb-surface.lo -MD -MP -MF .deps/cairo-directfb-surface.Tpo -c cairo-directfb-surface.c -fPIC -DPIC -o .libs/cairo-directfb-surface.o In file included from /usr/include/directfb/direct/debug.h:38, from cairo-directfb-surface.c:45: /usr/include/directfb/direct/system.h:33: warning: function declaration isn't a prototype /usr/include/directfb/direct/system.h:34: warning: function declaration isn't a prototype In file included from cairo-directfb-surface.c:46: /usr/include/directfb/direct/memcpy.h:35: warning: function declaration isn't a prototype /usr/include/directfb/direct/memcpy.h:36: warning: function declaration isn't a prototype cairo-directfb-surface.c: In function `cairo_directfb_surface_backend_init': cairo-directfb-surface.c:1607: error: `DFBGraphicsDeviceDescription' undeclared (first use in this function) cairo-directfb-surface.c:1607: error: (Each undeclared identifier is reported only once cairo-directfb-surface.c:1607: error: for each function it appears in.) cairo-directfb-surface.c:1607: error: syntax error before "dsc" cairo-directfb-surface.c:1613: error: structure has no member named `GetDeviceDescription' cairo-directfb-surface.c:1613: error: `dsc' undeclared (first use in this function) make[3]: *** [cairo-directfb-surface.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/cairo-1.2.0/work/cairo-1.2.0/src' make[2]: *** [all] Error 2 make[2]: Leaving directory `/var/tmp/portage/cairo-1.2.0/work/cairo-1.2.0/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/cairo-1.2.0/work/cairo-1.2.0' make: *** [all] Error 2 !!! ERROR: x11-libs/cairo-1.2.0 failed. Call stack: ebuild.sh, line 1539: Called dyn_compile ebuild.sh, line 939: Called src_compile cairo-1.2.0.ebuild, line 49: Called die !!! compile failed !!! If you need support, post the topmost build error, and the call stack if relevant.
The cairo ebuild needs to check for DirectFB version is the problem, I added DirectFB to my package keywords with ~amd64 and with the newest DirectFB the directfb use flag works fine. I didn't test with every possible version or I'd be more specific, I do know the latest works and the prior version (0.24.1 or something? ) didn't work. Either way I had the exact same error so that should get you running.
Apologies, the version I was using was 0.9.22 but anyway, the latest 0.9.25.1 works fine and it is what you will get if you add to your keywords. Of course, getting that means I am having to recompile mplayer, etc. and I will report back if any of those don't work due to the change.
You are right, and 0.9.24 is good to go too. Thanks for your help.
Yep, it appears that x11-libs/cairo-1.2.0 requires >=dev-libs/DirectFB-0.9.24 if the directfb USE flag is enabled for cairo.
fixed in 1.2.0-r1