From 08ef1cc5552ff1f2e2c78d45c4c34bce5098f6ea Mon Sep 17 00:00:00 2001 From: Denis Fateyev Date: Sun, 12 Jul 2026 03:06:23 +0500 Subject: [PATCH 1/2] Require CMake 3.5 policy version CMake 4.0 dropped compatibility with policies older than 3.5, so cmake_minimum_required(VERSION 2.6) no longer configures (FTBFS). Raise the floor to 3.5 and use the range syntax to opt into modern policy behavior without breaking older CMake. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 443b68f..75493a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5...4.0) SET(CMAKE_BUILD_TYPE Release) SET(CMAKE_CXX_FLAGS_DEBUG "-g -Wall -Wconversion") SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -Wall -Wconversion") From 6a8ad29db1a6c782fef01c8be7b82ebfd0c1d43c Mon Sep 17 00:00:00 2001 From: Denis Fateyev Date: Sun, 12 Jul 2026 03:30:47 +0500 Subject: [PATCH 2/2] Use GNUInstallDirs instead of non-standard LIB_SUFFIX Fedora is dropping the non-standard LIB_SUFFIX / LIB_INSTALL_DIR variables from its %cmake macro (Changes/CMake_drop_install_vars), which broke the install rules that hardcoded lib${LIB_SUFFIX}. This change also should be useful for all modern Linux envs. Include GNUInstallDirs and install to the standard CMAKE_INSTALL_LIBDIR / CMAKE_INSTALL_INCLUDEDIR instead, so the correct multilib path (e.g. lib64) is picked up automatically. Drop the now unused LIB_INSTALL_DIR block and update the pkg-config template to match. --- CMakeLists.txt | 16 +++++++--------- libdkim++.pc.cmake | 4 ++-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75493a5..423080a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,8 @@ INCLUDE(FindPkgConfig) PROJECT(libdkim++) SET(TARGET_NAME "dkim++") +INCLUDE(GNUInstallDirs) + SET(TARGET_VERSION_MAJOR 2) SET(TARGET_VERSION_MINOR 4) SET(TARGET_VERSION_PATCH 0) @@ -53,17 +55,13 @@ SUBDIRS( tools ) -IF (NOT DEFINED LIB_INSTALL_DIR) -SET(LIB_INSTALL_DIR "lib") -ENDIF(NOT DEFINED LIB_INSTALL_DIR) - FILE(GLOB_RECURSE files src/*.hpp) -INSTALL(FILES ${files} DESTINATION include/libdkim++) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so DESTINATION lib${LIB_SUFFIX}) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so.${TARGET_VERSION} DESTINATION lib${LIB_SUFFIX}) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so.${TARGET_VERSION_MAJOR} DESTINATION lib${LIB_SUFFIX}) +INSTALL(FILES ${files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libdkim++) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so DESTINATION ${CMAKE_INSTALL_LIBDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so.${TARGET_VERSION} DESTINATION ${CMAKE_INSTALL_LIBDIR}) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.so.${TARGET_VERSION_MAJOR} DESTINATION ${CMAKE_INSTALL_LIBDIR}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libdkim++.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.pc @ONLY) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdkim++.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) # Make FreeBSD packages IF (CMAKE_SYSTEM_NAME MATCHES BSD) diff --git a/libdkim++.pc.cmake b/libdkim++.pc.cmake index 0c36bb7..1d6d3a3 100644 --- a/libdkim++.pc.cmake +++ b/libdkim++.pc.cmake @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/lib@LIB_SUFFIX@ -includedir=${prefix}/include +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ Name: libdkim++ Description: libdkim++ is a lightweight and portable DKIM (RFC4871)