I'm building smokekde 4.9.80, and the build fails with: [ 90%] Building CXX object okular/CMakeFiles/smokeokular.dir/x_7.o In file included from /usr/include/QtCore/QGlobalStatic:1:0, from /usr/include/okular/core/global.h:13, from /usr/include/okular/core/action.h:13, from /build/src/smokekde-4.9.80/okular/okular_includes.h:1, from /build/src/build/okular/x_7.cpp:2: /usr/include/QtCore/qglobal.h: In instantiation of ‘class QTypeInfo<Okular::Tile>’: /usr/include/QtCore/qlist.h:430:5: required from ‘void QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*) [with T = Okular::Tile]’ /usr/include/QtCore/qlist.h:757:5: required from ‘void QList<T>::free(QListData::Data*) [with T = Okular::Tile]’ /usr/include/QtCore/qlist.h:732:9: required from ‘QList<T>::~QList() [with T = Okular::Tile]’ /build/src/build/okular/x_7.cpp:694:133: required from here /usr/include/QtCore/qglobal.h:2113:10: error: invalid application of ‘sizeof’ to incomplete type ‘Okular::Tile’ In file included from /usr/include/QtCore/qvariant.h:47:0, from /usr/include/QtCore/QVariant:1, from /usr/include/okular/core/action.h:17, from /build/src/smokekde-4.9.80/okular/okular_includes.h:1, from /build/src/build/okular/x_7.cpp:2: /usr/include/QtCore/qlist.h: In instantiation of ‘void QList<T>::node_destruct(QList<T>::Node*, QList<T>::Node*) [with T = Okular::Tile]’: /usr/include/QtCore/qlist.h:757:5: required from ‘void QList<T>::free(QListData::Data*) [with T = Okular::Tile]’ /usr/include/QtCore/qlist.h:732:9: required from ‘QList<T>::~QList() [with T = Okular::Tile]’ /build/src/build/okular/x_7.cpp:694:133: required from here /usr/include/QtCore/qlist.h:433:28: error: invalid use of incomplete type ‘class Okular::Tile’ In file included from /build/src/smokekde-4.9.80/okular/okular_includes.h:10:0, from /build/src/build/okular/x_7.cpp:2: /usr/include/okular/core/page.h:34:7: error: forward declaration of ‘class Okular::Tile’ In file included from /usr/include/QtCore/qvariant.h:47:0, from /usr/include/QtCore/QVariant:1, from /usr/include/okular/core/action.h:17, from /build/src/smokekde-4.9.80/okular/okular_includes.h:1, from /build/src/build/okular/x_7.cpp:2: /usr/include/QtCore/qlist.h: In instantiation of ‘void QList<T>::node_copy(QList<T>::Node*, QList<T>::Node*, QList<T>::Node*) [with T = Okular::Tile]’: /usr/include/QtCore/qlist.h:711:9: required from ‘void QList<T>::detach_helper(int) [with T = Okular::Tile]’ /usr/include/QtCore/qlist.h:725:5: required from ‘void QList<T>::detach_helper() [with T = Okular::Tile]’ /usr/include/QtCore/qlist.h:122:80: required from ‘QList<T>::QList(const QList<T>&) [with T = Okular::Tile]’ /build/src/build/okular/x_7.cpp:694:133: required from here /usr/include/QtCore/qlist.h:399:17: error: invalid use of incomplete type ‘class Okular::Tile’ In file included from /build/src/smokekde-4.9.80/okular/okular_includes.h:10:0, from /build/src/build/okular/x_7.cpp:2: /usr/include/okular/core/page.h:34:7: error: forward declaration of ‘class Okular::Tile’ In file included from /usr/include/QtCore/qvariant.h:47:0, from /usr/include/QtCore/QVariant:1, from /usr/include/okular/core/action.h:17, from /build/src/smokekde-4.9.80/okular/okular_includes.h:1, from /build/src/build/okular/x_7.cpp:2: /usr/include/QtCore/qlist.h:412:17: error: invalid use of incomplete type ‘class Okular::Tile’ In file included from /build/src/smokekde-4.9.80/okular/okular_includes.h:10:0, from /build/src/build/okular/x_7.cpp:2: /usr/include/okular/core/page.h:34:7: error: forward declaration of ‘class Okular::Tile’ In file included from /usr/include/QtCore/qvariant.h:47:0, from /usr/include/QtCore/QVariant:1, from /usr/include/okular/core/action.h:17, from /build/src/smokekde-4.9.80/okular/okular_includes.h:1, from /build/src/build/okular/x_7.cpp:2: /usr/include/QtCore/qlist.h:418:17: error: invalid use of incomplete type ‘class Okular::Tile’ In file included from /build/src/smokekde-4.9.80/okular/okular_includes.h:10:0, from /build/src/build/okular/x_7.cpp:2: /usr/include/okular/core/page.h:34:7: error: forward declaration of ‘class Okular::Tile’ make[2]: *** [okular/CMakeFiles/smokeokular.dir/x_7.o] Error 1 make[1]: *** [okular/CMakeFiles/smokeokular.dir/all] Error 2 make: *** [all] Error 2 Reproducible: Always Steps to Reproduce: 1. clone smokekde 2. try to build it Actual Results: Build fails Expected Results: It builds KDE 4.9.80
Git commit 962907aa68e11d2a9d191a39c61247919db1afaa by Fabio D'Urso. Committed on 17/11/2012 at 00:07. Pushed by fabiod into branch 'master'. Added missing include in okular_includes.h M +5 -0 okular/okular_includes.h http://commits.kde.org/smokekde/962907aa68e11d2a9d191a39c61247919db1afaa
I've committed a quick fix so that the package can be compiled. *Note*: smokeconfig.xml (in the same dir) probably needs to be modified too (to export the new Okular::Tile class). Can someone more knowledgeable have a look please?
Correct. I currently don't have access to a recent enough Okular. Could you maybe add that line to smokeconfig.xml and if it builds without errors, commit it?
Git commit 676a80d5ff9a8a7fe7ff5bb03edaf8d63d920666 by Fabio D'Urso. Committed on 18/11/2012 at 00:08. Pushed by fabiod into branch 'master'. Added Okular::Tile class M +1 -0 okular/smokeconfig.xml http://commits.kde.org/smokekde/676a80d5ff9a8a7fe7ff5bb03edaf8d63d920666
Committed. Unlike in the previous patch, it seems that there's no need to check the version here, correct? I've successfully tested the patch against Okular from KDE 4.10 beta1, which obviously has the Tile class, and Okular from KDE 4.9.3, which hasn't.
Correct. Thanks a lot. :)