wallpaper-engine-kde-plugin icon indicating copy to clipboard operation
wallpaper-engine-kde-plugin copied to clipboard

No longer compiles, and cmake version is outdated

Open queenbiscuit311 opened this issue 7 months ago • 20 comments

Describe the bug
When trying to compile, running the command cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON throws the following error:

Make Error at src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.

Trying to circumvent this by adding the mentioned flag throws the error shown in the additional context section.

System Information

  • Kde: 6.3.4
  • Qt: 6.9.0
  • OS: Arch Linux
  • Installation Source: git
  • Wallpaper Engine version: latest

Additional context
The log is huge so it's included in this pastebin to prevent this issue from being very long.

queenbiscuit311 avatar May 04 '25 08:05 queenbiscuit311

Same here on CachyOS KDE 6.3.4, Qt 6.9.0 as well.

Trying to copy the make installation commands, getting the same error.

CMake Error at src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 has been removed from CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.

  Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.


-- Configuring incomplete, errors occurred!
ninja: error: loading 'build.ninja': No such file or directory
CMake Error: Not a file: /home/veprovina/wallpaper-engine-kde-plugin/build/cmake_install.cmake
CMake Error: Error processing file: /home/veprovina/wallpaper-engine-kde-plugin/build/cmake_install.cmake
ninja: error: loading 'build.ninja': No such file or directory

Veprovina avatar May 05 '25 22:05 Veprovina

you can just edit the first line in src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt to require version 4.0 and it compiles that part. If you get a cstdint error in the next step you can try the solution I posted in #492.

InHUM44n avatar May 06 '25 11:05 InHUM44n

you can just edit the first line in src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt to require version 4.0 and it compiles that part. If you get a cstdint error in the next step you can try the solution I posted in #492.

This is the first line: set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)

What do i edit it to?

Veprovina avatar May 06 '25 14:05 Veprovina

Are you sure you're in the right file? (src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt) not (src/backend_scene/third_party/CMakeLists.txt)! the first line should look something like this: cmake_minimum_required(VERSION <number you have to change>)

Make sure to check your cmake version with cmake --version and set the number to something between 3.5 and your version.

InHUM44n avatar May 06 '25 16:05 InHUM44n

you can just edit the first line in src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt to require version 4.0 and it compiles that part. If you get a cstdint error in the next step you can try the solution I posted in #492.

Worked for me. Thanks! You should probably try opening a pull request with these two line changes if you can, then I could close this issue if merged.

queenbiscuit311 avatar May 07 '25 07:05 queenbiscuit311

This is my first time submitting a PR for submodules and I'm not sure I did everything correctly. Since I can't just push to the main repos I had to fork them and update the submodule commit source to use the fixed branch of my repo. I submitted my pr to catsout/wallpaper-scene-renderer here

Until the PR is merged, you are able to build and install as follows:

Download source from my fork

git clone https://github.com/InHUM44n/wallpaper-engine-kde-plugin.git
cd wallpaper-engine-kde-plugin

Download the updated submodules

git submodule update --init --force --recursive

Configure, build and install 'USE_PLASMAPKG=ON': using kpackagetool tool to install plugin I'm not sure if '-DUSE_PLASMAPKG' is a typo, but I left it in here since it's like this in the original instructions and I don't want to touch anything unnecessarily

cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON
cmake --build build
cmake --install build

Install package (ignore if USE_PLASMAPKG=OFF for system-wide installation)

cmake --build build --target install_pkg

InHUM44n avatar May 07 '25 09:05 InHUM44n

Just tried it, works perfectly!

I'm not sure if '-DUSE_PLASMAPKG' is a typo, but I left it in here since it's like this in the original instructions and I don't want to touch anything unnecessarily

I believe that's just cmake's weird way of specifying variables/flags, it usually starts with a D and then your flag as one string. Not entirely sure why that's how they have it.

I'll close this issue if it gets merged

queenbiscuit311 avatar May 07 '25 12:05 queenbiscuit311

Can someone help? What am i doing wrong?

CMake Error at build/src/cmake_install.cmake:62 (file):
  file INSTALL cannot copy file
  "/home/veprovina/wallpaper-engine-kde-plugin/build/src/libWallpaperEngineKde.so"
  to
  "/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so":
  Permission denied.
Call Stack (most recent call first):
  build/cmake_install.cmake:47 (include)



~/wallpaper-engine-kde-plugin main 55s
❯ sudo cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON
  sudo cmake --build build
  sudo cmake --install build
[sudo] password for veprovina: 
-- Using the multi-header code from /home/veprovina/wallpaper-engine-kde-plugin/src/backend_scene/third_party/nlohmann/include/
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/veprovina/wallpaper-engine-kde-plugin/build
ninja: no work to do.
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so
-- Installing: /usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/qmldir

~/wallpaper-engine-kde-plugin main
❯ cmake --build build --target install_pkg
[1/1] cd /home/veprovina/wallpaper-engine-kde-plugin && /bin/sh -c ...dev/null || /usr/bin/kpackagetool6 -t Plasma/Wallpaper -u ./plugin"
Successfully installed /home/veprovina/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/
ninja: build stopped: Error writing to build log: Permission denied.

~/wallpaper-engine-kde-plugin main
❯ sudo cmake --build build --target install_pkg
[1/1] cd /home/veprovina/wallpaper-engine-kde-plugin && /bin/sh -c ...dev/null || /usr/bin/kpackagetool6 -t Plasma/Wallpaper -u ./plugin"
Successfully installed /root/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/

I end up with Wallpaper Engine in desktop wallpaper, but it looks like this, with no wallpapers to choose from, and i have Wallpaper engine installed, with wallpapers downloaded already.

Image

I copied and pasted the commands from @InHUM44n . The error comes after the build process of this:

cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON
cmake --build build
cmake --install build

It builds for a while, then errors out.

Veprovina avatar May 07 '25 14:05 Veprovina

Can someone help? What am i doing wrong?

CMake Error at build/src/cmake_install.cmake:62 (file):
  file INSTALL cannot copy file
  "/home/veprovina/wallpaper-engine-kde-plugin/build/src/libWallpaperEngineKde.so"
  to
  "/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so":
  Permission denied.
Call Stack (most recent call first):
  build/cmake_install.cmake:47 (include)



~/wallpaper-engine-kde-plugin main 55s
❯ sudo cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON
  sudo cmake --build build
  sudo cmake --install build
[sudo] password for veprovina: 
-- Using the multi-header code from /home/veprovina/wallpaper-engine-kde-plugin/src/backend_scene/third_party/nlohmann/include/
-- Configuring done (0.4s)
-- Generating done (0.0s)
-- Build files have been written to: /home/veprovina/wallpaper-engine-kde-plugin/build
ninja: no work to do.
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so
-- Installing: /usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/qmldir

~/wallpaper-engine-kde-plugin main
❯ cmake --build build --target install_pkg
[1/1] cd /home/veprovina/wallpaper-engine-kde-plugin && /bin/sh -c ...dev/null || /usr/bin/kpackagetool6 -t Plasma/Wallpaper -u ./plugin"
Successfully installed /home/veprovina/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/
ninja: build stopped: Error writing to build log: Permission denied.

~/wallpaper-engine-kde-plugin main
❯ sudo cmake --build build --target install_pkg
[1/1] cd /home/veprovina/wallpaper-engine-kde-plugin && /bin/sh -c ...dev/null || /usr/bin/kpackagetool6 -t Plasma/Wallpaper -u ./plugin"
Successfully installed /root/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/

I end up with Wallpaper Engine in desktop wallpaper, but it looks like this, with no wallpapers to choose from, and i have Wallpaper engine installed, with wallpapers downloaded already.

Image

I copied and pasted the commands from @InHUM44n . The error comes after the build process of this:

cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON
cmake --build build
cmake --install build

It builds for a while, then errors out.

Did you run cmake install with sudo? its giving you a permission error.

queenbiscuit311 avatar May 07 '25 14:05 queenbiscuit311

nvm i see the commands you ran now. i think running all of the commands as root may have broken something. try only running the first install command (--install build) as root. You may have to manually delete the files it installed in your home directory that are owned by root. also delete the entire git repo, its definitely all kinds of messed up because you sudo'd it.

Edit: read it some more and yeah you just installed the effect to the root user by accident. delete the whole folder and try again, only run the --install build command as root.

queenbiscuit311 avatar May 07 '25 14:05 queenbiscuit311

nvm i see the commands you ran now. i think running all of the commands as root may have broken something. try only running the first install command (--install build) as root. You may have to manually delete the files it installed in your home directory that are owned by root. also delete the entire git repo, its definitely all kinds of messed up because you sudo'd it.

The first one that i deleted was my error, i was installing it inside the wallpaper-engine directory, that i deleted, but the terminal still kept me in it lol. Once i figured that out, i ran the git command from the home directory and that's why i deleted the first one lol.

But the second one, yeah, i'll delete everything, including the files from the install manifest if it made any.

I'll do what you suggest.

EDIT:

Are there any other files that i need to delete except the wallpaper-engine folder in the /home direcotry, and these files?

/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so
/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/qmldir

I also uninstalled the plugin with kpackagekit.

Just this or something else since i ran some commands with sudo?

Uninstall

remove files that list in wallpaper-engine-kde-plugin/build/install_manifest.txt
kpackagetool6 -t Plasma/Wallpaper -r com.github.catsout.wallpaperEngineKde

Veprovina avatar May 07 '25 14:05 Veprovina

nvm i see the commands you ran now. i think running all of the commands as root may have broken something. try only running the first install command (--install build) as root. You may have to manually delete the files it installed in your home directory that are owned by root. also delete the entire git repo, its definitely all kinds of messed up because you sudo'd it.

The first one that i deleted was my error, i was installing it inside the wallpaper-engine directory, that i deleted, but the terminal still kept me in it lol. Once i figured that out, i ran the git command from the home directory and that's why i deleted the first one lol.

But the second one, yeah, i'll delete everything, including the files from the install manifest if it made any.

I'll do what you suggest.

EDIT:

Are there any other files that i need to delete except the wallpaper-engine folder in the /home direcotry, and these files?

/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so
/usr/lib/qt6/qml/com/github/catsout/wallpaperEngineKde/qmldir

I also uninstalled the plugin with kpackagekit.

Looking at it again, you only actually installed anything to your root user according to the command line, and that doesn't really matter unless you want to go in there and reclaim your megabytes. It doesn't seem like anything got put in your actual user directory, so you should be fine?

queenbiscuit311 avatar May 07 '25 14:05 queenbiscuit311

Looking at it again, you only actually installed anything to your root user according to the command line, and that doesn't really matter unless you want to go in there and reclaim your megabytes. It doesn't seem like anything got put in your actual user directory, so you should be fine?

Where should i look? :) I'd rather clean everything just to be sure.

Veprovina avatar May 07 '25 14:05 Veprovina

Looking at it again, you only actually installed anything to your root user according to the command line, and that doesn't really matter unless you want to go in there and reclaim your megabytes. It doesn't seem like anything got put in your actual user directory, so you should be fine?

Where should i look? :) I'd rather clean everything just to be sure.

According to what you posted you should just be able to delete /root/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/

queenbiscuit311 avatar May 07 '25 14:05 queenbiscuit311

Looking at it again, you only actually installed anything to your root user according to the command line, and that doesn't really matter unless you want to go in there and reclaim your megabytes. It doesn't seem like anything got put in your actual user directory, so you should be fine?

Where should i look? :) I'd rather clean everything just to be sure.

According to what you posted you should just be able to delete /root/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/

Done! I removed it, now i'll try to build again, but i'll only use sudo on the -install build part. I'll edit this comment to report how it went.

Well, all went without errors, but there's no plugin:

Image

I even logged out and back in to see if it would change. And i forgot to copy the terminal output... I did enable infinite history on Konsole, but i can't find the file it uses to store it.

Veprovina avatar May 07 '25 14:05 Veprovina

maybe just use "Get New Plugins" next to wallpaper type and download the wallpaper engine plugin from there. That plugin normally doesn't support Scene wallpapers, but if the install worked it will use the installed libraries.

Image

InHUM44n avatar May 07 '25 15:05 InHUM44n

Looking at it again, you only actually installed anything to your root user according to the command line, and that doesn't really matter unless you want to go in there and reclaim your megabytes. It doesn't seem like anything got put in your actual user directory, so you should be fine?

Where should i look? :) I'd rather clean everything just to be sure.

According to what you posted you should just be able to delete /root/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/

Done! I removed it, now i'll try to build again, but i'll only use sudo on the -install build part. I'll edit this comment to report how it went.

Well, all went without errors, but there's no plugin:

Image

I even logged out and back in to see if it would change. And i forgot to copy the terminal output... I did enable infinite history on Konsole, but i can't find the file it uses to store it.

If what @InHUM44n suggested failed, do you see anything at ~/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/ ? That should be where it installed to.

queenbiscuit311 avatar May 07 '25 15:05 queenbiscuit311

If what @InHUM44n suggested failed, do you see anything at ~/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde/ ? That should be where it installed to.

No, that's empty.

Veprovina avatar May 07 '25 15:05 Veprovina

Try running cmake --build build --target install_pkg again maybe? No idea why it wouldn't install it. Try deleting the folder first in case its some permissions thing

queenbiscuit311 avatar May 07 '25 15:05 queenbiscuit311

maybe just use "Get New Plugins" next to wallpaper type and download the wallpaper engine plugin from there. That plugin normally doesn't support Scene wallpapers, but if the install worked it will use the installed libraries.

Image

Yup, that did it. Thanks! Seems everything else got installed properly, since, testing a few wallpapers, none of them showed any errors.

Idk why it didn't install it with the command, but all's well that ends well i guess. 😃

Veprovina avatar May 07 '25 17:05 Veprovina