The compiler reports the error "field has incomplete type 'Attica::Content' whenever it compiles entryinternal.cpp. I tried three versions of gcc (4.9.3, 5.3.0, and 6.1.0) and clang 3.9 and got the same error. Reproducible: Always Steps to Reproduce: 1. build kde-frameworks/knewstuff-9999 2. 3. Actual Results: [ 36%] Building CXX object src/CMakeFiles/KF5NewStuff.dir/core/entryinternal.cpp.o cd /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999_build/src && /usr/bin/clang++ -DKCOREADDONS_LIB -DKDE_DEFAULT_DEBUG_AREA=550 -DKF5NewStuff_EXPORTS -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"knewstuff5\" -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999_build/src -I/var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src -isystem /usr/include/KF5/Attica -isystem /usr/include/KF5 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/KF5/KXmlGui -isystem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtXml -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/KF5/KConfigWidgets -isystem /usr/include/KF5/KCodecs -isystem /usr/include/KF5/KWidgetsAddons -isystem /usr/include/KF5/KConfigGui -isystem /usr/include/KF5/KAuth -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5/KService -isystem /usr/include/KF5/KIOCore -isystem /usr/include/KF5/KIOWidgets -isystem /usr/include/KF5/KJobWidgets -isystem /usr/include/KF5/KCompletion -isystem /usr/include/KF5/KArchive -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5/KItemViews -isystem /usr/include/KF5/KIconThemes -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -DQT_NO_DEBUG -DNDEBUG -march=sandybridge -g -Ofast -pipe -fstack-protector-strong -std=c++0x -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -pedantic -Wno-gnu-zero-variadic-macro-arguments -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -std=gnu++11 -o CMakeFiles/KF5NewStuff.dir/core/entryinternal.cpp.o -c /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/entryinternal.cpp In file included from /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine.cpp:22: In file included from /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine_p.h:27: In file included from /usr/include/qt5/QtCore/QSharedPointer:1: In file included from /usr/include/qt5/QtCore/qsharedpointer.h:45: In file included from /usr/include/qt5/QtCore/qshareddata.h:46: /usr/include/qt5/QtCore/qhash.h:152:7: error: field has incomplete type 'Attica::Content' T value; ^ /usr/include/qt5/QtCore/qhash.h:533:19: note: in instantiation of template class 'QHashNode<QString, Attica::Content>' requested here concrete(node)->~Node(); ^ /usr/include/qt5/QtCore/qhash.h:573:20: note: in instantiation of member function 'QHash<QString, Attica::Content>::deleteNode2' requested here x->free_helper(deleteNode2); ^ /usr/include/qt5/QtCore/qhash.h:252:37: note: in instantiation of member function 'QHash<QString, Attica::Content>::freeData' requested here ~QHash() { if (!d->ref.deref()) freeData(d); } ^ /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/attica/atticaprovider_p.h:47:7: note: in instantiation of member function 'QHash<QString, Attica::Content>::~QHash' requested here class AtticaProvider: public Provider ^ /usr/include/qt5/QtCore/qsharedpointer_impl.h:217:29: note: in instantiation of member function 'QtSharedPointer::CustomDeleter<KNS3::AtticaProvider, QtSharedPointer::NormalDeleter>::execute' requested here realself->extra.execute(); ^ /usr/include/qt5/QtCore/qsharedpointer_impl.h:532:65: note: in instantiation of member function 'QtSharedPointer::ExternalRefCountWithCustomDeleter<KNS3::AtticaProvider, QtSharedPointer::NormalDeleter>::deleter' requested here typename Private::DestroyerFn actualDeleter = &Private::deleter; ^ /usr/include/qt5/QtCore/qsharedpointer_impl.h:322:7: note: in instantiation of function template specialization 'QSharedPointer<KNS3::Provider>::internalConstruct<KNS3::AtticaProvider, QtSharedPointer::NormalDeleter>' requested here { internalConstruct(ptr, QtSharedPointer::NormalDeleter()); } ^ /var/tmp/portage/kde-frameworks/knewstuff-9999/work/knewstuff-9999/src/core/engine.cpp:193:24: note: in instantiation of function template specialization 'QSharedPointer<KNS3::Provider>::QSharedPointer<KNS3::AtticaProvider>' requested here provider = QSharedPointer<KNS3::Provider> (new AtticaProvider(m_categories)); ^ /usr/include/KF5/Attica/attica/provider.h:62:7: note: forward declaration of 'Attica::Content' class Content; ^ 1 error generated.
Hello myopetz, I assume that knewstuff-9999 was the current master version from when you attempted to compile it on Gentoo. Please retest with the current version from upstream, and if you find any compilation issues, please make a new report. Build issues are very noticeable and quick to fix and this report is from 4 years ago. With the redesign of knewstuff the code probably differs significantly too. If you still experience the exact same issue somehow you can reopen this report.