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