Zren / material-decoration

Material-ish window decoration theme for KWin, with LIM, based on zzag's original design.
GNU General Public License v2.0
197 stars 17 forks source link

Build failed on Tumbleweed #66

Closed trmdi closed 1 year ago

trmdi commented 1 year ago

Build log: https://build.opensuse.org/package/live_build_log/home:trmdi/material-decoration/openSUSE_Tumbleweed/x86_64

Zren commented 1 year ago

Ah yep, can reproduce. Seems there's a new deprecation.

[ 80%] Building CXX object src/CMakeFiles/materialdecoration.dir/BoxShadowHelper.cc.o
/home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.cc: In member function ‘void Material::AppMenuModel::x11Init()’:
/home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.cc:124:121: error: ‘void KWindowSystem::windowChanged(WId, NET::Properties, NET::Properties2)’ is deprecated: Since 5.101. Use KX11Extras::windowChanged [-Werror=deprecated-declarations]
  124 |     void (KWindowSystem::*myWindowChangeSignal)(WId window, NET::Properties properties, NET::Properties2 properties2) = &KWindowSystem::windowChanged;
      |                                                                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF5/KWindowSystem/KWindowSystem:1,
                 from /home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.h:36,
                 from /home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.cc:28:
/usr/include/KF5/KWindowSystem/kwindowsystem.h:980:10: note: declared here
  980 |     void windowChanged(WId id, NET::Properties properties, NET::Properties2 properties2); // clazy:exclude=overloaded-signal
      |          ^~~~~~~~~~~~~
/home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.cc:124:121: error: ‘void KWindowSystem::windowChanged(WId, NET::Properties, NET::Properties2)’ is deprecated: Since 5.101. Use KX11Extras::windowChanged [-Werror=deprecated-declarations]
  124 |     void (KWindowSystem::*myWindowChangeSignal)(WId window, NET::Properties properties, NET::Properties2 properties2) = &KWindowSystem::windowChanged;
      |                                                                                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/KF5/KWindowSystem/kwindowsystem.h:980:10: note: declared here
  980 |     void windowChanged(WId id, NET::Properties properties, NET::Properties2 properties2); // clazy:exclude=overloaded-signal
      |          ^~~~~~~~~~~~~
/home/chris/Code/kdecommunity/material-decoration/src/AppMenuModel.cc:131:52: error: ‘void KWindowSystem::windowRemoved(WId)’ is deprecated: Since 5.101. Use KX11Extras::windowRemoved() [-Werror=deprecated-declarations]
  131 |     connect(KWindowSystem::self(), &KWindowSystem::windowRemoved,
      |                                                    ^~~~~~~~~~~~~
/usr/include/KF5/KWindowSystem/kwindowsystem.h:904:10: note: declared here
  904 |     void windowRemoved(WId id);
      |          ^~~~~~~~~~~~~
[ 83%] Building CXX object src/CMakeFiles/materialdecoration.dir/MenuOverflowButton.cc.o
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/materialdecoration.dir/build.make:99: src/CMakeFiles/materialdecoration.dir/AppMenuModel.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:295: src/CMakeFiles/materialdecoration.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Caused by this commit to KWindowSystem:

For reference, here's how libtaskmanager fixed this deprecation:

Might be a little annoying since I probably need to support both KF5 5.101+ and KF5 5.100 and below, so I'll be using #IF KF5_MINOR_VERSION <= 100 probably. Though I'll probably also need to parse the major version and check if <= 5 too.

Zren commented 1 year ago

Not sure how to trigger a rebuild, but that should fix it.

trmdi commented 1 year ago

Not sure how to trigger a rebuild, but that should fix it.

I triggered it and succeeded. Thank you !