Problem building an application & question about OBS

Hi, I’m having an issue building zzag’s Dynamic Wallpaper Engine for Plasma. There is no clear list of dependencies for the build on OpenSUSE, but I’m pretty sure I’ve gotten the ones I need. During the build, I get this:


CMake Error at /usr/share/ECM/modules/ECMQueryQmake.cmake:31 (message):
  No qmake Qt5 binary found.  Can't check QT_HOST_BINS as required
Call Stack (most recent call first):
  build/FindQtQuick-QMLModule.cmake:12 (query_qmake)
  /usr/share/ECM/modules/ECMFindQmlModule.cmake:41 (find_package)
  CMakeLists.txt:32 (ecm_find_qmlmodule)

I’ve done some browsing and seen that others on OpenSUSE had similar issues with qmake due to what appears to be naming convention. That is, qmake for Qt5 on OpenSUSE is handled by qmake-qt5. I have that installed, but I don’t know what I am supposed to do to make the build work now.

The second thing I was curious about involves the public OBS. I found a package for the built application here, but if I’m understanding what I’m looking at correctly, this appears to be a private repository hosted on the OBS site. If it wasn’t clear by my confusion with the build situation, I’m not a software developer and I don’t know well how to vet software on my own. For that reason I tend to stick to sources I can trust, but in the case of this being my second day using OpenSUSE, it’s not clear to me how “safe” it is to use a package from somewhere like the place I linked on the OBS. Any help or info is appreciated. :slight_smile:

Development - Open Build Service would probably be more appropriate place for this question.

In this case compilation would not have failed.

this appears to be a private repository hosted on the OBS site.

I do not know what you call “private repository”. The only difference is that this repository is maintained by different user(s) than openSUSE distribution itself. It is no more “private” than source repository on github.

I’m not a software developer and I don’t know well how to vet software on my own. For that reason I tend to stick to sources I can trust

How exactly do you trust sources? Have you audited every line of source code to be sure there are no unintentional side effects (to put it mildly)? Is source archive signed by key that you personally verified as belonging to the source author? If not, there is no more “trust” in sources than in package built by another user.

it’s not clear to me how “safe” it is to use a package from somewhere like the place I linked on the OBS.

Users are under no obligation to maintain these repositories, often someone build packages ones and no more maintains them. So you cannot be sure there will be updates, in particular security updates.

Anyway, as this package still builds successfully on Tumbleweed, you can start with installing the same BuildRequire’d packages. You can simply use

zypper install 'cmake(KF5KIO)'

for every BuildRequires line in the spec file - this will install necessary packages.

You can also branch this project and build it yourself if you do not trust other user.

Or you can simply use already built binary package.

Hi, thanks for the reply!

I do not know what you call “private repository”. The only difference is that this repository is maintained by different user(s) than openSUSE distribution itself. It is no more “private” than source repository on github.

Right, I had read some of the info on the site and didn’t see anything about auditing for a repo such as that one. But being new to OpenSUSE and all, I figured maybe someone knew something I didn’t.

How exactly do you trust sources? Have you audited every line of source code to be sure there are no unintentional side effects (to put it mildly)? Is source archive signed by key that you personally verified as belonging to the source author? If not, there is no more “trust” in sources than in package built by another user.

Usually by a combination of factors such as track record of reliability, hashes, and number of eyes focused on integrity. So a high level of trust for something like a tried-and-true distribution repo by Debian or OpenSUSE, or a project like Whonix for example, and about no trust for random repos.

I’ve run the zypper install ‘cmake(KF5KIO)’ as well as installs for the rest of the requirements listed in the spec and some packages were pulled. However, the same error:


CMake Error at /usr/share/ECM/modules/ECMQueryQmake.cmake:31 (message):
  No qmake Qt5 binary found.  Can't check QT_HOST_BINS as required
Call Stack (most recent call first):
  build/FindQtQuick-QMLModule.cmake:12 (query_qmake)
  /usr/share/ECM/modules/ECMFindQmlModule.cmake:41 (find_package)
  CMakeLists.txt:32 (ecm_find_qmlmodule)

Looking at compilation instructions for a problem that appears analogous regarding qmake on OpenSUSE, seems the solution might be to modify the compilation instructions. Noting the call stack, build/FindQtQuick-QMLModule.cmake:12 (query_qmake) seems to be the culprit? I just don’t know how to go about potentially passing the query to qmake-qt5 because I don’t know much about compilation (i.e. do I need to use a flag, or edit a file? etc.). Perhaps a somewhat technical problem for the scope here.

Questions about OBS better go to the Development > OBS sub-forums. That is where OBS people lurk.

ECMQueryQmake.cmake:

if (Qt5Core_FOUND)
    set(_qmake_executable_default "qmake-qt5")
endif ()

You need to provide full log starting with command used to build your software.

You need to provide full log starting with command used to build your software.

Sure. Following the instructions for building in the Github repo, I’m running this:

cmake .. -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DBUILD_TESTING=OFF


I’m pretty out of my depth here, so I’m assuming providing a full log means running cmake with --log-level=trace. I threw that as a final argument and got this output:


cmake .. -DCMAKE_BUILD_TYPE=Release     -DCMAKE_INSTALL_PREFIX=/usr     -DCMAKE_INSTALL_LIBDIR=lib     -DBUILD_TESTING=OFF --log-level=trace
Installing in /usr. Run /home/username/Downloads/plasma5/plasma5-wallpapers-dynamic/build/prefix.sh to set the environment for plasma5-wallpapers-dynamic.
-- Git upstream inferred as origin, upstream ref was refs/remotes/origin/main


-- Git URL inferred as https://github.com/zzag/plasma5-wallpapers-dynamic.git


-- Repository inferred as 
CMake Error at /usr/share/ECM/modules/ECMQueryQmake.cmake:31 (message):
  No qmake Qt5 binary found.  Can't check QT_HOST_BINS as required
Call Stack (most recent call first):
  build/FindQtQuick-QMLModule.cmake:12 (query_qmake)
  /usr/share/ECM/modules/ECMFindQmlModule.cmake:41 (find_package)
  CMakeLists.txt:32 (ecm_find_qmlmodule)




-- Configuring incomplete, errors occurred!
See also "/home/username/Downloads/plasma5/plasma5-wallpapers-dynamic/build/CMakeFiles/CMakeOutput.log".
See also "/home/username/Downloads/plasma5/plasma5-wallpapers-dynamic/build/CMakeFiles/CMakeError.log".

I’ve pasted CMakeOutput.log here, and CMakeError.log here.

I’m not worrying about this problem anymore for now, thanks for the comments.