trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: January 2011

Re: [trinity-devel] kdelibs FTBFS (tqtinterface/qt3)

From: "Timothy Pearson" <kb9vqf@...>
Date: Fri, 7 Jan 2011 13:18:38 -0600
> On Friday 07 January 2011 19:51:09 Serghei Amelian wrote:
>> Hi Tim,
>>
>> I try compile kdelibs and it stopping with this error (tqtinterface is
>> built with Qt3):
>>
>> [  2%] Building CXX object
>> dcop/CMakeFiles/DCOP-shared.dir/dcopclient.cpp.o
>> cd /home/serghei/kdelibs.build/dcop
>> && /usr/bin/c++   -DDCOP_shared_EXPORTS -DHAVE_CONFIG_H -DUSE_QT3
>> -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT
>> -DQT_NO_TRANSLATION -include tqt.h -fPIC -I/usr/qt/3/include
>> -I/usr/include/tqt -I/home/serghei/kdelibs.build/dcop
>
> [...]
>
> I forgot to checkout. After checkout, the error is this:
>
> [  1%] Building CXX object
> dcop/CMakeFiles/DCOP-shared.dir/dcopclient.cpp.o
> cd /home/serghei/kdelibs.build/dcop
> && /usr/bin/c++   -DDCOP_shared_EXPORTS -DHAVE_CONFIG_H -DUSE_QT3
> -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT
> -DQT_NO_TRANSLATION -include
> tqt.h -fPIC -I/usr/qt/3/include -I/usr/include/tqt
> -I/home/serghei/kdelibs.build/dcop -I/home/serghei/kdelibs.build
> -I/usr/src/trinity/kdelibs/dcop -I/home/serghei/kdelibs.build/kdecore
> -I/usr/src/trinity/kdelibs/kdecore   -o
> CMakeFiles/DCOP-shared.dir/dcopclient.cpp.o -c
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp: In function 'void
> fillQtObjects(QCStringList&, QObject*, QCString)':
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp:1334: error: 'class QObject'
> has
> no member named 'tqchildren'
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp:1348: error: 'class QObject'
> has
> no member named 'tqchildren'
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp: In function 'void
> fillQtObjectsEx(QValueList<<unnamed>::O>&, QObject*, QCString)':
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp:1371: error: 'class QObject'
> has
> no member named 'tqchildren'
> /usr/src/trinity/kdelibs/dcop/dcopclient.cpp:1385: error: 'class QObject'
> has
> no member named 'tqchildren'
> make[2]: *** [dcop/CMakeFiles/DCOP-shared.dir/dcopclient.cpp.o] Error 1
>
> --
> Serghei
>

Ah, OK, I know what that is...

I recently made a change to Qt3 itself to add the ability to retrieve a
(copied) TQObjectList of children instead of a pointer to an internal
object.  The patch is attached.

Some of the reasoning for this change is up on the TQt interface page, but
it boils down to:
1. Qt3 is not maintained upstream (obviously)
2. I am very nervous about pointers to static objects that may be deleted
at any time from any other thread/process/etc., causing nasty crashes
3. This is the only change needed to allow TQt to handle both Qt3 and Qt4
4. The Qt3 ABI and API are unaffected as the change merely adds two
methods that will be utilized in the future

You will need to recompile Qt3 with the patch applied before TQt will
build properly.  Alternatively you may utilize the TQt source from before
SVN revision 1210400, but that will cause problems in the future as final
TQt porting is completed.

Tim

Attachments: