Compiling the applet on Plasma 5.27.6 on Nobara 38 fails. I installed all dependencies (according to INSTALLATION.md) and ran the script using sh install.sh. Here is its output:
[lenni@nobara-ideapad applet-window-buttons]$ sh install.sh
CMake Warning (dev) at CMakeLists.txt:1 (project):
cmake_minimum_required() should be called prior to this top-level project()
call. Please see the cmake-commands(7) manual for usage documentation of
both commands.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at /usr/share/ECM/modules/ECMFindModuleHelpers.cmake:113 (message):
Your project should require at least CMake 3.16.0 to use FindKF5.cmake
Call Stack (most recent call first):
/usr/share/ECM/find-modules/FindKF5.cmake:30 (ecm_find_package_version_check)
CMakeLists.txt:19 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found KF5: success (found suitable version "5.107.0", minimum required is "5.81.0") found components: CoreAddons Declarative Plasma PlasmaQuick
-- KDECORATION2 VERSION MINOR : 27
-- Could not set up the appstream test. appstreamcli is missing.
CMake Warning (dev) at /usr/share/ECM/modules/ECMFindModuleHelpers.cmake:113 (message):
Your project should require at least CMake 3.16.0 to use FindKF5.cmake
Call Stack (most recent call first):
/usr/share/ECM/find-modules/FindKF5.cmake:30 (ecm_find_package_version_check)
libappletdecoration/CMakeLists.txt:37 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found KF5: success (found suitable version "5.107.0", minimum required is "5.26.0") found components: Plasma WindowSystem I18n Service ConfigWidgets
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/lenni/Desktop/applet-window-buttons/build
[ 13%] Automatic MOC for target appletdecorationplugin
[ 13%] Built target appletdecorationplugin_autogen
[ 13%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecoratedClientPrivate> Decoration::Applet::PreviewBridge::createClient(KDecoration2::DecoratedClient*, KDecoration2::Decoration*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:75:83: error: invalid new-expression of abstract class type ‘Decoration::Applet::PreviewClient’
75 | auto ptr = std::unique_ptr<PreviewClient>(new PreviewClient(client, decoration));
| ^
In file included from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:27:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewclient.h:40:7: note: because the following virtual functions are pure within ‘Decoration::Applet::PreviewClient’:
40 | class PreviewClient : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
| ^~~~~~~~~~~~~
In file included from /usr/include/KDecoration2/KDecoration2/Private/DecoratedClientPrivate:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewclient.h:31:
/usr/include/KDecoration2/kdecoration2/private/decoratedclientprivate.h:80:21: note: ‘virtual QString KDecoration2::DecoratedClientPrivate::windowClass() const’
80 | virtual QString windowClass() const = 0;
| ^~~~~~~~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecorationSettingsPrivate> Decoration::Applet::PreviewBridge::settings(KDecoration2::DecorationSettings*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:84:21: warning: redundant move in return statement [-Wredundant-move]
84 | return std::move(ptr);
| ~~~~~~~~~^~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:84:21: note: remove ‘std::move’ call
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘void Decoration::Applet::PreviewBridge::createFactory()’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:138:44: warning: ‘static KPluginTrader* KPluginTrader::self()’ is deprecated: Since 5.82. Use KPluginMetaData and KPluginFactory [-Wdeprecated-declarations]
138 | const auto offers = KPluginTrader::self()->query(s_pluginName,
| ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KService/KPluginTrader:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:37:
/usr/include/KF5/KService/kplugintrader.h:163:27: note: declared here
163 | static KPluginTrader *self();
| ^~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:138:53: warning: ‘KPluginInfo::List KPluginTrader::query(const QString&, const QString&, const QString&)’ is deprecated: Since 5.82. Use KPluginMetaData::findPlugins [-Wdeprecated-declarations]
138 | const auto offers = KPluginTrader::self()->query(s_pluginName,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
139 | s_pluginName,
| ~~~~~~~~~~~~~
140 | QStringLiteral("[X-KDE-PluginInfo-Name] == '%1'").arg(m_plugin));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/KF5/KService/kplugintrader.h:150:23: note: declared here
150 | KPluginInfo::List query(const QString &subDirectory, const QString &serviceType = QString(), const QString &constraint = QString());
| ^~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:149:31: warning: ‘KPluginFactory* KPluginLoader::factory()’ is deprecated: Since 5.86. Use KPluginFactory::loadFactory or KPluginFactory::instantiatePlugin instead [-Wdeprecated-declarations]
149 | m_factory = loader.factory();
| ~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KCoreAddons/KPluginLoader:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:35:
/usr/include/KF5/KCoreAddons/kpluginloader.h:126:21: note: declared here
126 | KPluginFactory *factory();
| ^~~~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘KDecoration2::DecorationButton* Decoration::Applet::PreviewBridge::createButton(KDecoration2::Decoration*, KDecoration2::DecorationButtonType, QObject*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:195:67: warning: ‘T* KPluginFactory::create(const QString&, QObject*, const QVariantList&) [with T = KDecoration2::DecorationButton; QVariantList = QList<QVariant>]’ is deprecated: Since 5.89. Use overload without keyword instead [-Wdeprecated-declarations]
195 | button = m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)}));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF5/KCoreAddons/KPluginFactory:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:36:
/usr/include/KF5/KCoreAddons/kpluginfactory.h:950:11: note: declared here
950 | inline T *KPluginFactory::create(const QString &keyword, QObject *parent, const QVariantList &args)
| ^~~~~~~~~~~~~~
make[2]: *** [libappletdecoration/CMakeFiles/appletdecorationplugin.dir/build.make:216: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:153: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
[ 4%] Automatic MOC for target appletdecorationplugin
[ 4%] Built target appletdecorationplugin_autogen
[ 9%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecoratedClientPrivate> Decoration::Applet::PreviewBridge::createClient(KDecoration2::DecoratedClient*, KDecoration2::Decoration*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:75:83: error: invalid new-expression of abstract class type ‘Decoration::Applet::PreviewClient’
75 | auto ptr = std::unique_ptr<PreviewClient>(new PreviewClient(client, decoration));
| ^
In file included from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:27:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewclient.h:40:7: note: because the following virtual functions are pure within ‘Decoration::Applet::PreviewClient’:
40 | class PreviewClient : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
| ^~~~~~~~~~~~~
In file included from /usr/include/KDecoration2/KDecoration2/Private/DecoratedClientPrivate:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewclient.h:31:
/usr/include/KDecoration2/kdecoration2/private/decoratedclientprivate.h:80:21: note: ‘virtual QString KDecoration2::DecoratedClientPrivate::windowClass() const’
80 | virtual QString windowClass() const = 0;
| ^~~~~~~~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecorationSettingsPrivate> Decoration::Applet::PreviewBridge::settings(KDecoration2::DecorationSettings*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:84:21: warning: redundant move in return statement [-Wredundant-move]
84 | return std::move(ptr);
| ~~~~~~~~~^~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:84:21: note: remove ‘std::move’ call
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘void Decoration::Applet::PreviewBridge::createFactory()’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:138:44: warning: ‘static KPluginTrader* KPluginTrader::self()’ is deprecated: Since 5.82. Use KPluginMetaData and KPluginFactory [-Wdeprecated-declarations]
138 | const auto offers = KPluginTrader::self()->query(s_pluginName,
| ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KService/KPluginTrader:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:37:
/usr/include/KF5/KService/kplugintrader.h:163:27: note: declared here
163 | static KPluginTrader *self();
| ^~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:138:53: warning: ‘KPluginInfo::List KPluginTrader::query(const QString&, const QString&, const QString&)’ is deprecated: Since 5.82. Use KPluginMetaData::findPlugins [-Wdeprecated-declarations]
138 | const auto offers = KPluginTrader::self()->query(s_pluginName,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
139 | s_pluginName,
| ~~~~~~~~~~~~~
140 | QStringLiteral("[X-KDE-PluginInfo-Name] == '%1'").arg(m_plugin));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/KF5/KService/kplugintrader.h:150:23: note: declared here
150 | KPluginInfo::List query(const QString &subDirectory, const QString &serviceType = QString(), const QString &constraint = QString());
| ^~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:149:31: warning: ‘KPluginFactory* KPluginLoader::factory()’ is deprecated: Since 5.86. Use KPluginFactory::loadFactory or KPluginFactory::instantiatePlugin instead [-Wdeprecated-declarations]
149 | m_factory = loader.factory();
| ~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KCoreAddons/KPluginLoader:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:35:
/usr/include/KF5/KCoreAddons/kpluginloader.h:126:21: note: declared here
126 | KPluginFactory *factory();
| ^~~~~~~
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp: In member function ‘KDecoration2::DecorationButton* Decoration::Applet::PreviewBridge::createButton(KDecoration2::Decoration*, KDecoration2::DecorationButtonType, QObject*)’:
/home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:195:67: warning: ‘T* KPluginFactory::create(const QString&, QObject*, const QVariantList&) [with T = KDecoration2::DecorationButton; QVariantList = QList<QVariant>]’ is deprecated: Since 5.89. Use overload without keyword instead [-Wdeprecated-declarations]
195 | button = m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)}));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF5/KCoreAddons/KPluginFactory:1,
from /home/lenni/Desktop/applet-window-buttons/libappletdecoration/previewbridge.cpp:36:
/usr/include/KF5/KCoreAddons/kpluginfactory.h:950:11: note: declared here
950 | inline T *KPluginFactory::create(const QString &keyword, QObject *parent, const QVariantList &args)
| ^~~~~~~~~~~~~~
make[2]: *** [libappletdecoration/CMakeFiles/appletdecorationplugin.dir/build.make:216: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:153: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
Compiling the applet on Plasma 5.27.6 on Nobara 38 fails. I installed all dependencies (according to INSTALLATION.md) and ran the script using
sh install.sh
. Here is its output: