Bug 1446163

Summary: /usr/lib64/cmake/KF5KIO/KF5KIOConfig.cmake requires nonexistent CMakeFindDependencyMacro
Product: [Fedora] Fedora EPEL Reporter: Paolo Bonzini <pbonzini>
Component: kf5-kioAssignee: Daniel Vrátil <me>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel7CC: me, pbonzini
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-27 11:27:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1422666    

Description Paolo Bonzini 2017-04-27 11:15:08 UTC
Including KF5KIOConfig from CMakeLists.txt fails as follows:

+ /usr/bin/cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Warning at /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:622 (message):
  KDE_INSTALL_BINDIR, KDE_INSTALL_LIBDIR and KDE_INSTALL_INCLUDEDIR should
  either all be absolute paths or all be relative paths.
Call Stack (most recent call first):
  CMakeLists.txt:17 (include)
-- Could not set up the appstream test. appstreamcli is missing.
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - found
-- Performing Test _OFFT_IS_64BIT
-- Performing Test _OFFT_IS_64BIT - Success
CMake Error at /usr/lib64/cmake/KF5KIO/KF5KIOConfig.cmake:42 (include):
  include could not find load file:
    CMakeFindDependencyMacro



$ cat KF5KIOConfig.cmake.in 
@PACKAGE_INIT@

# Any changes in this ".cmake" file will be overwritten by CMake, the source is the ".cmake.in" file.

set(KCookieServer_DBUS_INTERFACE "@PACKAGE_KDE_INSTALL_DBUSINTERFACEDIR@/kf5_org.kde.KCookieServer.xml")
set(KSlaveLauncher_DBUS_INTERFACE "@PACKAGE_KDE_INSTALL_DBUSINTERFACEDIR@/kf5_org.kde.KSlaveLauncher.xml")

include(CMakeFindDependencyMacro)

Comment 1 Daniel Vrátil 2017-04-27 11:27:47 UTC
CMakeFindDependencyMacro is a built-in CMake macro introduced in cmake 3.0. The default cmake in EPEL7 is too old (2.8.x), you must use cmake3 (from cmake3 package) on EPEL7 to build apps against Frameworks packages.

To an extent, the bug lies in the project you are compiling which requires KIO - the project should have cmake_minimum_required(VERSION 3.0).