Bug 310221 - [smokekde] cannot build okular bindings
Summary: [smokekde] cannot build okular bindings
Status: RESOLVED FIXED
Alias: None
Product: bindings
Classification: Developer tools
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR major
Target Milestone: ---
Assignee: kde-bindings
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-16 17:47 UTC by Andrea Scarpino
Modified: 2012-11-18 00:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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. :)