No longer compiles, and cmake version is outdated
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.
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
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.
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?
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.
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.
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
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
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.
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.
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.
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 buildIt builds for a while, then errors out.
Did you run cmake install with sudo? its giving you a permission error.
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.
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
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/qmldirI 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?
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.
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/
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:
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.
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.
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 buildpart. I'll edit this comment to report how it went.Well, all went without errors, but there's no plugin:
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.
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.
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
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.
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. 😃