Bug 243971

Summary: smoke/qtgui build failure against qt-4.7
Product: [Unmaintained] bindings Reporter: Rex Dieter <rdieter>
Component: generalAssignee: kde-bindings
Status: RESOLVED FIXED    
Severity: normal CC: kevin.kofler
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Rex Dieter 2010-07-08 20:24:39 UTC
Version:           unspecified (using Devel) 
OS:                Linux

Have tried both beta1, and just beta2 today, with the same error.

[ 13%] Building CXX object smoke/qtgui/CMakeFiles/smokeqtgui.dir/x_20.o
cd /builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui && /usr/bin/c++   -Dsmokeqtgui_EXPORTS -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -DQT3_SUPPORT -DSMOKE_BUILDING -DGCC_VISIBILITY -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -fPIC -I/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui -I/builddir/build/BUILD/kdebindings-4.4.92/smoke/qtgui -I/builddir/build/BUILD/kdebindings-4.4.92 -I/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/kdebindings-4.4.92/smoke -I/usr/include/kde4 -I/usr/include/kde4/KDE -I/usr/include/KDE -I/usr/include/phonon -I/usr/include/QtXmlPatterns -I/usr/include/QtXml -I/usr/include/QtWebKit -I/usr/include/QtUiTools -I/usr/include/QtTest -I/usr/include/QtSvg -I/usr/include/QtSql -I/usr/include/QtScriptTools -I/usr/include/QtScript -I/usr/include/QtOpenGL -I/usr/include/QtNetwork -I/usr/include/QtMultimedia -I/usr/include/QtHelp -I/usr/include/QtDesigner -I/usr/include/QtDeclarative -I/usr/include/QtDBus -I/usr/include/Qt3Support -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/Qt -I/usr/lib64/qt4/mkspecs/default   -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o CMakeFiles/smokeqtgui.dir/x_20.o -c /builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp: In static member function 'static void __smokeqtgui::x_QGlobalSpace::x_776(Smoke::StackItem*)':
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp:20978:29: error: 'PM_FrameCornerWidth' was not declared in this scope
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp: In static member function 'static void __smokeqtgui::x_QGlobalSpace::x_777(Smoke::StackItem*)':
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp:20981:29: error: 'PM_FrameCornerHeight' was not declared in this scope
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp: In static member function 'static void __smokeqtgui::x_QGlobalSpace::x_778(Smoke::StackItem*)':
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp:20984:29: error: 'PM_BoldLineWidth' was not declared in this scope
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp: In static member function 'static void __smokeqtgui::x_QGlobalSpace::x_779(Smoke::StackItem*)':
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp:20987:29: error: 'PM_ThinLineWidth' was not declared in this scope
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp: In static member function 'static void __smokeqtgui::x_QGlobalSpace::x_780(Smoke::StackItem*)':
/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu/smoke/qtgui/x_20.cpp:20990:29: error: 'PM_MessageBoxHeight' was not declared in this scope
make[2]: Leaving directory `/builddir/build/BUILD/kdebindings-4.4.92/x86_64-redhat-linux-gnu'


Reproducible: Always

Steps to Reproduce:
Try building kdebindings-4.4.90 or kdebindings-4.4.92 against qt-4.7 betas

Actual Results:  
build failure

Expected Results:  
build succeeds
Comment 1 Arno Rehn 2010-07-08 20:30:06 UTC
could you post that failing x_20.cpp file?
Comment 2 Rex Dieter 2010-07-08 20:59:09 UTC
ok,
http://rdieter.fedorapeople.org/x_20.cpp.gz
Comment 3 Rex Dieter 2010-07-08 21:21:51 UTC
I can attach it here too if you want (it's quite large though)
Comment 4 Kevin Kofler 2010-07-09 03:30:03 UTC
These entries come from qs60style.h, which is used by the extractor, but not included. I think that header should be blacklisted.
Comment 5 Kevin Kofler 2010-07-09 04:50:22 UTC
Hmmm, how do I blacklist that stuff? I tried this:
http://cvs.fedoraproject.org/viewvc/rpms/kdebindings/devel/kdebindings-4.4.92-qt47.patch?revision=1.2&view=markup
but it doesn't work. :-(
Comment 6 Kevin Kofler 2010-07-09 07:50:34 UTC
This patch works:
http://cvs.fedoraproject.org/viewvc/rpms/kdebindings/devel/kdebindings-4.4.92-qt47.patch?revision=1.6&view=markup

I had to fix the generator to honor the blacklists also for global enums.

I'm not sure all the modules I added the blacklist to need it: after adding it to qtgui and qtsvg and having the build fail on qtopengl, I got fed up of adding the stuff to every module one by one and just added it to everything inheriting qtgui. And then I also had to add it to qtmultimedia which doesn't inherit qtgui in the Smoke configuration, but still picks the stuff up somehow.
Comment 7 Arno Rehn 2010-07-09 09:46:02 UTC
Blacklisting isn't the way to go in this case. There's probably a QT_NO_S60STYLE define somewhere that we don't test for.
Could someone check what this #define is called? Then I can add it to the QtGuess script.
Comment 8 Kevin Kofler 2010-07-09 09:58:35 UTC
Looks like it's QT_NO_STYLE_S60.

But interestingly, this commit from July 1:
http://qt.gitorious.org/qt/qt/commit/8c14529abdbbaa32c7d4f9d84b97515ab759223e
makes the style always compiled (possibly as a stub) and the enum always defined, which is why I haven't figured that out already. This means the next (after beta2) Qt is probably going to work without workarounds.

But adding QT_NO_STYLE_S60 to QtGuess.txt looks like the way to go.
Comment 9 Arno Rehn 2010-07-09 10:49:04 UTC
SVN commit 1147833 by arnorehn:

Test for QT_NO_STYLE_S60.

BUG: 243971

 M  +2 -1      QtGuess.txt  
 M  +10 -0     tests/test.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1147833
Comment 10 Arno Rehn 2010-07-09 10:49:22 UTC
SVN commit 1147834 by arnorehn:

Test for QT_NO_STYLE_S60.

BUG: 243971

 M  +2 -1      QtGuess.txt  
 M  +10 -0     tests/test.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1147834
Comment 11 Kevin Kofler 2010-07-09 11:58:35 UTC
I can confirm that your fix works: http://koji.fedoraproject.org/koji/buildinfo?buildID=182717 Thanks!