Description of problem: To start with, I'm not sure this is qt4 bug at all, but texmaker (as currently is in Extras) built fine with qt4-4.1. Starting with the texmaker source rpm currently in FE-devel, I changed qmake4 in the rpm spec to the qmake-qt4, and the build fails as below: >>> webpublishdialog.cpp: In member function 'void WebPublishDialog::readsettings()': webpublishdialog.cpp:877: error: expected primary-expression before '/' token webpublishdialog.cpp:877: error: 'usr' was not declared in this scope webpublishdialog.cpp:877: error: expected `;' before string constant g++ -c -m64 -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing -Wall -W -D_REENTRANT -DPREFIX="/usr" -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I.moc -I.ui -o .obj/x11fontdialog.o x11fontdialog.cpp make: *** [.obj/webpublishdialog.o] Error 1 make: *** Waiting for unfinished jobs.... error: Bad exit status from /home/deji/rpmbuild/tmp/rpm-tmp.45982 (%build) <<<< The code segment causing this failure is extracted below, >>> #ifdef Q_WS_X11 PROGRAMDIR=PREFIX"/share/texmaker"; #endif <<< Please check it up and advise. Thanks Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
I'll try rebuilding it myself, and see how it goes. It may be worth asking upstream if they've tried/used qt-4.2 yet.
Here's the difference: When using qt4-4.2, Makefile gets DEFINES as: DEFINES = -DPREFIX="/usr" ... and qt4-4.1 is DEFINES = -DPREFIX=\"/usr\" ... And, only the latter works.
Thanks Rex. So who should provide the fix here, upstream or qt4-4.2? In any case I'm going to contact upstream about it.
I'd say it's (mostly) qt4's fault here, the behavior changed between 4.1 and 4.2. I'll keep digging and report this to trolltech.
Changing subject to match reality. Issue has also been reported to upstream mailing lists: qt-interest and qt4-preview-feedback.
For now, I'd suggest simply patching texmaker.pro, patch forthcoming.
Created attachment 135071 [details] fix texmaker build against qt-4.2
Confirmed that the qt-4.2.0-20060821 snapshot exibits the same (bad) behavior.
(In reply to comment #7) > Created an attachment (id=135071) [edit] > fix texmaker build against qt-4.2 > Thanks, that works.
Got the official word from upstream that this is expected behavior (marking WONTFIX). Here's an example on how to make .pro code that uses escapes work with all qt4 versions. ------------------- The "best" solution available is: contains($$list($$[QT_VERSION]), 4.2.*) { DEFINES += FOO=\\\"$(FOO)\\\" } else { DEFINES += FOO=\"$(FOO)\" } This will allow a single .pro to work with <4.2.x as well as beyond. -------------------
o.k, I'll just stick with your initial patch for now. Thanks