public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/czmq] rawhide: Allow to build with CMake 4.0
@ 2026-07-30 5:35 Cristian Le
0 siblings, 0 replies; only message in thread
From: Cristian Le @ 2026-07-30 5:35 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/czmq
Branch : rawhide
Commit : 28457a5521a0a7db4e7a31f6517121360e66c453
Author : Cristian Le <git@lecris.dev>
Date : 2026-07-30T05:13:21+00:00
Stats : +313/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/czmq/c/28457a5521a0a7db4e7a31f6517121360e66c453?branch=rawhide
Log:
Allow to build with CMake 4.0
- Use GNUInstallDirs pattern (rhbz#2381195)
---
diff --git a/2310.patch b/2310.patch
new file mode 100644
index 0000000..6e3c509
--- /dev/null
+++ b/2310.patch
@@ -0,0 +1,308 @@
+Subject: [PATCH] Move the distclean definition to add_custom_target
+Use `GNUInstallDirs` standards
+Replace `SOURCE_DIR` with standard `PROJECT_SOURCE_DIR`
+Move `enable_language` into `project`
+Bump CMake policies with higher bound
+---
+Index: CMakeLists.txt
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt (revision 4a50c2153586cf510d6cc3fcfbb9f5ea2e02c419)
++++ b/CMakeLists.txt (revision 07ba6d109d8d62c71f7bebd322b6f4293558aa7e)
+@@ -6,12 +6,14 @@
+ ########################################################################
+ # Project setup
+ ########################################################################
+-cmake_minimum_required(VERSION 2.8.12)
+-project(czmq)
+-enable_language(C)
++cmake_minimum_required(VERSION 2.8...4.0)
++project(czmq
++ LANGUAGES C
++)
+ enable_testing()
+
+-set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
++include(GNUInstallDirs)
++
+ set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
+ # Select flags
+ if(MSVC)
+@@ -30,7 +32,7 @@
+ # options
+ ########################################################################
+ if (NOT CMAKE_BUILD_TYPE)
+- if (EXISTS "${SOURCE_DIR}/.git")
++ if (EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ set (CMAKE_BUILD_TYPE Debug)
+ else ()
+ # http://xit0.org/2013/04/cmake-use-git-branch-and-commit-details-in-project/
+@@ -79,7 +81,7 @@
+ include(CheckSymbolExists)
+ check_symbol_exists(AI_V4MAPPED "czmq.h" HAVE_DECL_AI_V4MAPPED)
+
+-file(REMOVE "${SOURCE_DIR}/src/platform.h")
++file(REMOVE "${PROJECT_SOURCE_DIR}/src/platform.h")
+
+ file(WRITE "${PROJECT_BINARY_DIR}/platform.h.in" "
+ #cmakedefine HAVE_LINUX_WIRELESS_H
+@@ -97,7 +99,7 @@
+ #so the sources have to be compiled as c++
+ if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
+ enable_language(CXX)
+- file(GLOB sources "${SOURCE_DIR}/src/*.c")
++ file(GLOB sources "${PROJECT_SOURCE_DIR}/src/*.c")
+ set_source_files_properties(
+ ${sources}
+ PROPERTIES LANGUAGE CXX
+@@ -123,7 +125,7 @@
+ set(MORE_LIBRARIES)
+ endif()
+
+-list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}")
++list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}")
+ set(OPTIONAL_LIBRARIES)
+ set(OPTIONAL_LIBRARIES_STATIC)
+
+@@ -326,14 +328,14 @@
+ ENDIF (ENABLE_DRAFTS)
+
+ source_group ("Header Files" FILES ${czmq_headers})
+-install(FILES ${czmq_headers} DESTINATION include)
++install(FILES ${czmq_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+ ########################################################################
+ # library
+ ########################################################################
+
+
+-include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}")
++include_directories("${PROJECT_SOURCE_DIR}/src" "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}")
+ set (czmq_sources
+ src/zactor.c
+ src/zarmour.c
+@@ -434,15 +436,12 @@
+
+ install(TARGETS czmq
+ EXPORT czmq-targets
+- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
+- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file
+- RUNTIME DESTINATION bin # .dll file
+ )
+
+ target_include_directories(czmq
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+- $<INSTALL_INTERFACE:include>
++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+ endif()
+
+@@ -471,15 +470,12 @@
+
+ install(TARGETS czmq-static
+ EXPORT czmq-targets
+- LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
+- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file
+- RUNTIME DESTINATION bin # .dll file
+ )
+
+ target_include_directories(czmq-static
+ PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+- $<INSTALL_INTERFACE:include>
++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+ target_compile_definitions(czmq-static
+ PUBLIC CZMQ_STATIC
+@@ -496,21 +492,21 @@
+ set (VERSION "4.2.1")
+ set (prefix "${CMAKE_INSTALL_PREFIX}")
+ set (exec_prefix "\${prefix}")
+-set (libdir "\${prefix}/lib${LIB_SUFFIX}")
+-set (includedir "\${prefix}/include")
++set (libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
++set (includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+ IF (ENABLE_DRAFTS)
+ set (pkg_config_defines "-DCZMQ_BUILD_DRAFT_API=1")
+ ELSE (ENABLE_DRAFTS)
+ set (pkg_config_defines "")
+ ENDIF (ENABLE_DRAFTS)
+ configure_file(
+- "${SOURCE_DIR}/src/libczmq.pc.in"
+- "${SOURCE_DIR}/src/libczmq.pc"
++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc.in"
++ "${PROJECT_SOURCE_DIR}/src/libczmq.pc"
+ @ONLY)
+
+ install(
+- FILES "${SOURCE_DIR}/src/libczmq.pc"
+- DESTINATION "lib${LIB_SUFFIX}/pkgconfig"
++ FILES "${PROJECT_SOURCE_DIR}/src/libczmq.pc"
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
+ )
+
+ ########################################################################
+@@ -520,8 +516,7 @@
+ if (WIN32)
+ set(CMAKECONFIG_INSTALL_DIR "CMake" CACHE STRING "install path for czmqConfig.cmake")
+ else()
+- # GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
+- set(CMAKECONFIG_INSTALL_DIR "share/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake")
++ set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake")
+ endif()
+
+ if (NOT CMAKE_VERSION VERSION_LESS 3.0)
+@@ -546,7 +541,7 @@
+ ########################################################################
+ add_executable(
+ zmakecert
+- "${SOURCE_DIR}/src/zmakecert.c"
++ "${PROJECT_SOURCE_DIR}/src/zmakecert.c"
+ )
+ if (TARGET czmq)
+ target_link_libraries(
+@@ -565,12 +560,10 @@
+ ${OPTIONAL_LIBRARIES_STATIC}
+ )
+ endif()
+-install(TARGETS zmakecert
+- RUNTIME DESTINATION bin
+-)
++install(TARGETS zmakecert)
+ add_executable(
+ zsp
+- "${SOURCE_DIR}/src/zsp.c"
++ "${PROJECT_SOURCE_DIR}/src/zsp.c"
+ )
+ if (TARGET czmq)
+ target_link_libraries(
+@@ -591,7 +584,7 @@
+ endif()
+ add_executable(
+ test_randof
+- "${SOURCE_DIR}/src/test_randof.c"
++ "${PROJECT_SOURCE_DIR}/src/test_randof.c"
+ )
+ if (TARGET czmq)
+ target_link_libraries(
+@@ -612,7 +605,7 @@
+ endif()
+ add_executable(
+ czmq_selftest
+- "${SOURCE_DIR}/src/czmq_selftest.c"
++ "${PROJECT_SOURCE_DIR}/src/czmq_selftest.c"
+ )
+ if (TARGET czmq)
+ target_link_libraries(
+@@ -748,34 +741,33 @@
+ # cleanup
+ ########################################################################
+ if (NOT TARGET distclean)
+- add_custom_target (distclean @echo Cleaning for source distribution)
+-endif()
+-
+-set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt
+- ${PROJECT_BINARY_DIR}/cmake_install.cmake
+- ${PROJECT_BINARY_DIR}/Makefile
+- ${PROJECT_BINARY_DIR}/CMakeFiles
+- ${PROJECT_BINARY_DIR}/CTestTestfile.cmake
+- ${PROJECT_BINARY_DIR}/DartConfiguration.tcl
+- ${PROJECT_BINARY_DIR}/Testing
+- ${PROJECT_BINARY_DIR}/compile_commands.json
+- ${PROJECT_BINARY_DIR}/platform.h
+- ${PROJECT_BINARY_DIR}/src/libczmq.pc
+- ${PROJECT_BINARY_DIR}/src/libczmq.so
+- ${PROJECT_BINARY_DIR}/src/czmq_selftest
+- ${PROJECT_BINARY_DIR}/src/zmakecert
+- ${PROJECT_BINARY_DIR}/src/zsp
+- ${PROJECT_BINARY_DIR}/src/test_randof
+- ${PROJECT_BINARY_DIR}/src/czmq_selftest
+-)
+-
+-add_custom_command(
+- DEPENDS clean
+- COMMENT "distribution clean"
+- COMMAND rm
+- ARGS -rf CMakeTmp ${cmake_generated}
+- TARGET distclean
+-)
++ if (CMAKE_VERSION VERSION_LESS 3.17)
++ set(rm_command rm -rf)
++ else()
++ set(rm_command ${CMAKE_COMMAND} -E rm -rf --)
++ endif()
++ set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt
++ ${PROJECT_BINARY_DIR}/cmake_install.cmake
++ ${PROJECT_BINARY_DIR}/Makefile
++ ${PROJECT_BINARY_DIR}/CMakeFiles
++ ${PROJECT_BINARY_DIR}/CTestTestfile.cmake
++ ${PROJECT_BINARY_DIR}/DartConfiguration.tcl
++ ${PROJECT_BINARY_DIR}/Testing
++ ${PROJECT_BINARY_DIR}/compile_commands.json
++ ${PROJECT_BINARY_DIR}/platform.h
++ ${PROJECT_BINARY_DIR}/src/libczmq.pc
++ ${PROJECT_BINARY_DIR}/src/libczmq.so
++ ${PROJECT_BINARY_DIR}/src/czmq_selftest
++ ${PROJECT_BINARY_DIR}/src/zmakecert
++ ${PROJECT_BINARY_DIR}/src/zsp
++ ${PROJECT_BINARY_DIR}/src/test_randof
++ ${PROJECT_BINARY_DIR}/src/czmq_selftest
++ )
++ add_custom_target(distclean
++ COMMAND ${rm_command} CMakeTmp ${cmake_generated}
++ COMMENT Cleaning for source distribution
++ )
++endif()
+
+ include(ClangFormat OPTIONAL)
+
+Index: bindings/jni/czmq-jni/CMakeLists.txt
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/bindings/jni/czmq-jni/CMakeLists.txt b/bindings/jni/czmq-jni/CMakeLists.txt
+--- a/bindings/jni/czmq-jni/CMakeLists.txt (revision 4a50c2153586cf510d6cc3fcfbb9f5ea2e02c419)
++++ b/bindings/jni/czmq-jni/CMakeLists.txt (revision 9238bcb3a3fa5ae7c3b4e9a0ce7a49d94cc30dcc)
+@@ -2,10 +2,11 @@
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
+ # Read the zproject/README.md for information about making permanent changes. #
+ ################################################################################
+-cmake_minimum_required (VERSION 2.8)
++cmake_minimum_required (VERSION 2.8...4.0)
+
+-project (czmqjni CXX)
+-enable_language (C)
++project (czmqjni
++ LANGUAGES C CXX
++)
+
+ # Search for Find*.cmake files in the following locations
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+Index: bindings/jni/czmq-jni/android/CMakeLists.txt
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/bindings/jni/czmq-jni/android/CMakeLists.txt b/bindings/jni/czmq-jni/android/CMakeLists.txt
+--- a/bindings/jni/czmq-jni/android/CMakeLists.txt (revision 4a50c2153586cf510d6cc3fcfbb9f5ea2e02c419)
++++ b/bindings/jni/czmq-jni/android/CMakeLists.txt (revision 9238bcb3a3fa5ae7c3b4e9a0ce7a49d94cc30dcc)
+@@ -2,10 +2,11 @@
+ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
+ # Read the zproject/README.md for information about making permanent changes. #
+ ################################################################################
+-cmake_minimum_required (VERSION 3.6)
++cmake_minimum_required (VERSION 3.6...4.0)
+
+-project (czmqjni CXX)
+-enable_language (C)
++project (czmqjni
++ LANGUAGES C CXX
++)
+
+ # Search for Find*.cmake files in the following locations
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/..")
diff --git a/czmq.spec b/czmq.spec
index 69e5c9c..124909d 100644
--- a/czmq.spec
+++ b/czmq.spec
@@ -7,6 +7,10 @@ License: MPL-2.0
URL: http://czmq.zeromq.org
Source0: https://github.com/zeromq/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
+# Allow to build with CMake 4.0 and use GNUInstallDirs pattern
+# Cherry-picked from: https://github.com/zeromq/czmq/pull/2310
+Patch: 2310.patch
+
BuildRequires: gcc
BuildRequires: libuuid-devel
BuildRequires: pkgconfig(libzmq)
@@ -69,7 +73,7 @@ rm -f %{buildroot}%{_libdir}/libczmq.{a,la}
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*
-%{_datadir}/cmake/%{name}/
+%{_libdir}/cmake/%{name}/
%{_mandir}/man1/*.1*
%{_mandir}/man3/*.3*
%{_mandir}/man7/*.7*
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-30 5:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-30 5:35 [rpms/czmq] rawhide: Allow to build with CMake 4.0 Cristian Le
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox