I wanted to emerge clanlib-0.6.5 as a dependency for the pingus game. For some testing with it, I installed directfb earlier but removed the USEflag for it. The clanlib-0.6.5 does not compile when it finds directfb installed, no matter if I set the USE flag or not. There is a configure option for this, you can switch on or off directfb. But on is the default. The ebuild uses `use_enable directfb` to set the configure-option. But this doesn't work when on is the default! If I manually add --disable-directfb, it compiles. Reproducible: Always Steps to Reproduce: USE="directfb" emerge directfb USE="-directfb" emerge clanlib Actual Results: ./configure of clanlib-0.6.5 checks for directfb which results in a compile error. Expected Results: USE="-directfb" should give "--disable-directfb" to the configure-script and it should not check for directfb itself.
what version of directfb ? could you post the error ?
It's DirectFB version 0.9.18, the newest one in portage. The error messages are as follows: ======================================================== [...] Compiling Sources/Display/Display/X11/target_ximage_dga.cpp Compiling Sources/Display/System/Unix/x11_target.cpp Compiling Sources/Display/Display/DirectFB/display_directfb.cpp Compiling Sources/Display/Display/DirectFB/target_directfb.cpp Sources/Display/Display/DirectFB/target_directfb.cpp: In member function `virtual unsigned int CL_Target_DirectFB::get_width() const': Sources/Display/Display/DirectFB/target_directfb.cpp:109: invalid conversion from `unsigned int*' to `int*' Sources/Display/Display/DirectFB/target_directfb.cpp: In member function `virtual unsigned int CL_Target_DirectFB::get_height() const': Sources/Display/Display/DirectFB/target_directfb.cpp:118: invalid conversion from `unsigned int*' to `int*' Sources/Display/Display/DirectFB/target_directfb.cpp: In member function `void CL_Target_DirectFB::Clear(float, float, float, float)': Sources/Display/Display/DirectFB/target_directfb.cpp:268: invalid conversion from `unsigned int*' to `int*' Sources/Display/Display/DirectFB/target_directfb.cpp:268: invalid conversion from `unsigned int*' to `int*' make: *** [Libs/Intermediate/target_directfb.o] Error 1 make: *** Waiting for unfinished jobs.... !!! ERROR: dev-games/clanlib-0.6.5 failed. !!! Function src_compile, Line 68, Exitcode 2 !!! (no error message) ======================================================== above that, everything seems fine. Gcc version is 3.2.3, possibly a problem with the newer error handling in gcc3?
nope, simple fix ... the functions utilize unsigned integers while the directfb prototypes are signed integers ... i made a patch and ill update the ebuild in a bit
updated the patch in cvs ... should be all set now :)