Hello.
I'm trying to update zeal package to the latest master because the latest released version doesn't work anymore.
My WIP specfile is here: https://src.fedoraproject.org/fork/lbalhar/rpms/zeal/blob/rawhide/f/zeal.spe...
When I try to build it in mock for rawhide or f34, I get this error:
CMake Deprecation Error at /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:337 (message): LIB_INSTALL_DIR is deprecated, use KDE_INSTALL_LIBDIR instead. Call Stack (most recent call first): /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:432 (_define_relative) assets/freedesktop/CMakeLists.txt:5 (include)
-- Configuring incomplete, errors occurred! See also "/builddir/build/BUILD/zeal-dbb8eb29db1476a7b117d96e047867577ff73261/x86_64-redhat-linux-gnu/CMakeFiles/CMakeOutput.log".
The error is raised by this piece of code from extra-cmake-modules:
https://github.com/KDE/extra-cmake-modules/blob/3a75f891f5a914280a2a23194d1a...
but the LIB_INSTALL_DIR is defined in the %cmake macro:
rpm --eval "%cmake" …
/usr/bin/cmake \ -S "." \ -B "x86_64-redhat-linux-gnu" \ -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_DO_STRIP:BOOL=OFF \ -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 \ %if "lib64" == "lib64" -DLIB_SUFFIX=64 \ %endif -DBUILD_SHARED_LIBS:BOOL=ON
How can I fix this? Is this a bug?
Thanks a lot and have a nice day.
Lumír
Thank you. It works!
Could you please briefly explain the difference?
Thanks a lot.
Lumír
On 8/23/21 3:33 PM, Vitaly Zaitsev via devel wrote:
On 23/08/2021 11:37, Lumír Balhar wrote:
but the LIB_INSTALL_DIR is defined in the %cmake macro:
You should use %cmake_kf5 macro instead.
Don't forget to add BuildRequires: kf5-rpm-macros.
On 25/08/2021 09:11, Lumír Balhar wrote:
Could you please briefly explain the difference?
If you package uses KDE Frameworks, you should use a special cmake macro - %cmake_kf5.
It will automatically export the required build settings like KDE_INSTALL_BINDIR, KDE_INSTALL_LIBDIR, etc.
$ rpm -E %cmake_kf5 ... /usr/bin/cmake \ -S "." \ -B "x86_64-redhat-linux-gnu" \ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DBUILD_TESTING:BOOL=FALSE \ -DCMAKE_BUILD_TYPE=release \ -DCMAKE_INSTALL_INCLUDEDIR_KF5:PATH=/usr/include/KF5 \ -DCMAKE_INSTALL_LIBEXECDIR_KF5:PATH=/usr/libexec/kf5 \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DECM_MKSPECS_INSTALL_DIR:PATH=/usr/lib64/qt5/mkspecs/modules \ -DKDE_INSTALL_BINDIR:PATH=/usr/bin \ -DKDE_INSTALL_INCLUDEDIR:PATH=/usr/include \ -DKDE_INSTALL_KCFGDIR:PATH=/usr/share/config.kcfg \ -DKDE_INSTALL_LIBDIR:PATH=/usr/lib64 \ -DKDE_INSTALL_LIBEXECDIR:PATH=/usr/libexec \ -DKDE_INSTALL_METAINFODIR:PATH=/usr/share/metainfo \ -DKDE_INSTALL_PLUGINDIR:PATH=/usr/lib64/qt5/plugins \ -DKDE_INSTALL_QMLDIR:PATH=/usr/lib64/qt5/qml \ -DKDE_INSTALL_QTPLUGINDIR:PATH=/usr/lib64/qt5/plugins \ -DKDE_INSTALL_QTQUICKIMPORTSDIR:PATH=/usr/lib64/qt5/imports \ -DKDE_INSTALL_SYSCONFDIR:PATH=/etc \ -DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON