trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: September 2011

Re: [trinity-devel] kdelibs: krandr and older xrandr version

From: /dev/ammo42 <mickeytintincolle@...>
Date: Sun, 18 Sep 2011 22:00:59 +0200
Le Fri, 16 Sep 2011 22:34:12 +0200,
François ANDRIOT <francois.andriot@...> 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