Le Fri, 16 Sep 2011 22:34:12 +0200, François ANDRIOT francois.andriot@free.fr a écrit :
Hello, I'm trying to build kdelibs 3.5.12 on RHEL 5 (which is getting a bit old, but still supported by RH, and widely used in companies).
When compiling krandr, it fails with the following output:
make[2]: entrant dans le répertoire « /home/albator/rpmbuild/BUILD/kdelibs/krandr » /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../dcop -I../kdecore -I../kio/kssl -I../kjs -I./.. -I../dcop -I../libltdl -I../kdefx -I../kdecore -I../kdecore -I../kdecore/network -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/lib64/qt-3.3/include -include tqt.h -I. -I/opt/trinity/include -I/opt/trinity/include/tqt -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -O2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c -o lowlevel_randr.lo lowlevel_randr.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../dcop -I../kdecore -I../kio/kssl -I../kjs -I./.. -I../dcop -I../libltdl -I../kdefx -I../kdecore -I../kdecore -I../kdecore/network -I../kdeui -I../kio -I../kio/kio -I../kio/kfile -I.. -I/usr/lib64/qt-3.3/include -include tqt.h -I. -I/opt/trinity/include -I/opt/trinity/include/tqt -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -O2 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -c lowlevel_randr.c -fPIC -DPIC -o .libs/lowlevel_randr.o In file included from lowlevel_randr.c:23: lowlevel_randr.h:102:7: warning: no newline at end of file In file included from lowlevel_randr.c:24: lowlevel_randr.h:29: error: expected specifier-qualifier-list before 'RRCrtc' lowlevel_randr.h:44: error: expected specifier-qualifier-list before 'RROutput' lowlevel_randr.h:55: error: expected specifier-qualifier-list before 'XRRScreenResources' lowlevel_randr.h:90: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token lowlevel_randr.h:91: error: expected ')' before '*' token lowlevel_randr.h:92: error: expected ')' before '*' token lowlevel_randr.h:93: error: expected declaration specifiers or '...' before 'RROutput' [...] and so on ... (the full log is attached to this mail)
It seems that RHEL5 Xrandr version (1.1.1) is too old for krandr.
XRandR 1.1.1 doesn't support multiple monitors, which is the cause for the failed compilation of lowlevel_randr.{h,c} which uses multi-monitor support from XRandR 1.2+.
I have no idea of what is the most reasonable way to go: Should I try to compile a newer version of Xrandr ? Is that even possible without compiling a lot of other stuff ?
XRandR is a protocol extension of the X11 protocol, so using XRandR 1.2 would require to update the X server (and also, according to Phoronix the NVIDIA drivers just don't support XrandR 1.2 as of July 2011). Did anyone try to use the new Trinity XRandR functionality with the proprietary NVIDIA drivers ?
Should I disable krandr in kdelibs makefile ? What will be the consequences on further compiled packages ?
You will probably have some problems to compile KRandRTray :)
Should I revert all krandr-related patches to recover older KDE3 functionalities ?
This is perhaps the simplest way to build a working Trinity on RHEL5, but the problem is the resulting kdelibs you will get will be incompatible with standard Trinity kdelibs. IMHO the right thing to do would be to enable conditional compilation of XRandR 1.2+ multi-monitor capabilities and to support it with kconfig.h.
Thanks in advance for your enlightenment :-) Francois Andriot