Bug 310221

Summary: [smokekde] cannot build okular bindings
Product: [Developer tools] bindings Reporter: Andrea Scarpino <scarpino>
Component: generalAssignee: kde-bindings
Status: RESOLVED FIXED    
Severity: major CC: arno, fabiodurso
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Andrea Scarpino 2012-11-16 17:47:21 UTC
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
Comment 1 Fabio D'Urso 2012-11-16 23:18:47 UTC
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
Comment 2 Fabio D'Urso 2012-11-16 23:39:48 UTC
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?
Comment 3 Arno Rehn 2012-11-17 14:02:24 UTC
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?
Comment 4 Fabio D'Urso 2012-11-18 00:46:19 UTC
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
Comment 5 Fabio D'Urso 2012-11-18 00:54:17 UTC
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.
Comment 6 Arno Rehn 2012-11-18 00:57:34 UTC
Correct. Thanks a lot. :)