From 0fccc4494b18bc4526c12c18d6cd2f171b6952c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kl=C3=B6tzke?= Date: Sun, 1 Feb 2026 11:20:59 +0100 Subject: [PATCH 1/7] devel::cmake: bump to 3.31.11 Most importantly, this solves a build error with the recently updated curl. --- recipes/devel/cmake.yaml | 10 ++++------ .../devel/cmake/0001-fix-curl-lib-deps.patch | 20 ++++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/recipes/devel/cmake.yaml b/recipes/devel/cmake.yaml index 850f9f5d..825cf05a 100644 --- a/recipes/devel/cmake.yaml +++ b/recipes/devel/cmake.yaml @@ -1,13 +1,13 @@ inherit: [patch] metaEnvironment: - PKG_VERSION: "3.25.1" + PKG_VERSION: "3.31.11" PKG_LICENSE: "BSD-3-Clause" checkoutSCM: scm: url url: ${GITHUB_MIRROR}/Kitware/CMake/releases/download/v${PKG_VERSION}/cmake-${PKG_VERSION}.tar.gz - digestSHA256: 1c511d09516af493694ed9baf13c55947a36389674d657a2d5e0ccedc6b291d8 + digestSHA256: c0a3b3f2912b2166f522d5010ffb6029d8454ee635f5ad7a3247e0be7f9a15c9 stripComponents: 1 checkoutDeterministic: True @@ -37,11 +37,9 @@ multiPackage: buildScript: | cmakeBuild "$1" \ - -DKWSYS_LFS_WORKS=TRUE \ - -DKWSYS_CHAR_IS_SIGNED=TRUE \ -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ - -DCTEST_USE_XMLRPC=OFF \ - -DBUILD_CursesDialog=OFF + -DBUILD_CursesDialog=OFF \ + -DCMake_ENABLE_DEBUGGER=OFF packageScript: | cmakePackageTgt diff --git a/recipes/devel/cmake/0001-fix-curl-lib-deps.patch b/recipes/devel/cmake/0001-fix-curl-lib-deps.patch index ad3b4f5e..3181bf7a 100644 --- a/recipes/devel/cmake/0001-fix-curl-lib-deps.patch +++ b/recipes/devel/cmake/0001-fix-curl-lib-deps.patch @@ -4,26 +4,28 @@ The current implementation does not account for transitive dependencies of cURL. Add what is strictly necessary to get it compiled in our environment. diff -Nurp a/Modules/FindCURL.cmake b/Modules/FindCURL.cmake ---- a/Modules/FindCURL.cmake 2022-11-30 14:57:03.000000000 +0100 -+++ b/Modules/FindCURL.cmake 2022-12-05 21:25:34.000000000 +0100 -@@ -185,13 +185,19 @@ find_package_handle_standard_args(CURL +--- a/Modules/FindCURL.cmake 2025-12-08 19:33:58.000000000 +0100 ++++ b/Modules/FindCURL.cmake 2026-01-21 14:42:55.650870435 +0100 +@@ -291,7 +291,7 @@ find_package_handle_standard_args(CURL HANDLE_COMPONENTS) - + if(CURL_FOUND) - set(CURL_LIBRARIES ${CURL_LIBRARY}) + set(CURL_LIBRARIES ${CURL_LIBRARY} ${PC_CURL_LIBRARIES}) set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) - + if(NOT TARGET CURL::libcurl) - add_library(CURL::libcurl UNKNOWN IMPORTED) +@@ -299,6 +299,13 @@ if(CURL_FOUND) set_target_properties(CURL::libcurl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}") + + if(PC_CURL_FOUND) + set(CURL_DEPENDENCY_LIBRARIES "${PC_CURL_LIBRARIES}") + list(REMOVE_ITEM CURL_DEPENDENCY_LIBRARIES curl) + set_target_properties(CURL::libcurl PROPERTIES + INTERFACE_LINK_LIBRARIES "${CURL_DEPENDENCY_LIBRARIES}") + endif() - - if(EXISTS "${CURL_LIBRARY}") - set_target_properties(CURL::libcurl PROPERTIES ++ + if(CURL_USE_STATIC_LIBS) + set_property(TARGET CURL::libcurl APPEND PROPERTY + INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB") From a4ddc6e1707c78a3e34615ccbb5438583425f16d Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Thu, 22 Jan 2026 09:14:00 +0100 Subject: [PATCH 2/7] make: use fifo jobServer To support the Makefile-Generator of cmake we have to use the same jobServer implementation for ninja and make as both classes are inherited by cmake. See: https://github.com/BobBuildTool/basement/pull/295#discussion_r2715711062 --- classes/make.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/make.yaml b/classes/make.yaml index a6802c5f..b3f8b0e5 100644 --- a/classes/make.yaml +++ b/classes/make.yaml @@ -1,4 +1,4 @@ -jobServer: "fifo-or-pipe" +jobServer: "fifo" buildToolsWeak: [make] buildVarsWeak: [MAKE_JOBS] buildSetup: | From 12eb4af3e285d54f8443e03f177470d26b1c1f5b Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Mon, 5 Jul 2021 06:55:47 +0200 Subject: [PATCH 3/7] classes/cmake: make CMake Generator configurable Some builds are failing if ninja is used while the succeed with make. Make the Generator setable and support 'Unix Makefiles' next to ninja. --- classes/cmake.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/classes/cmake.yaml b/classes/cmake.yaml index 61aba71d..dc2e34aa 100644 --- a/classes/cmake.yaml +++ b/classes/cmake.yaml @@ -1,7 +1,7 @@ -inherit: [cpackage, ninja, install, licenses] +inherit: [cpackage, ninja, install, licenses, make] buildToolsWeak: [cmake] -buildVars: [AUTOCONF_HOST, AR, CC, CXX] +buildVars: [AUTOCONF_HOST, AR, CC, CXX, CMAKE_GENERATOR] buildSetup: | # Make sure CMake finds other stuff by its own logic too CMAKE_FIND_ROOT_PATH= @@ -144,7 +144,7 @@ buildSetup: | pushd build cmake "$1" \ - -G Ninja \ + -G "${CMAKE_GENERATOR:-Ninja}" \ ${CMAKE_TOOLCHAIN_FILE:+-DCMAKE_TOOLCHAIN_FILE="$CMAKE_TOOLCHAIN_FILE"} \ -DCMAKE_FIND_ROOT_PATH="$CMAKE_FIND_ROOT_PATH" \ -DCMAKE_BUILD_TYPE=Bob \ @@ -155,9 +155,13 @@ buildSetup: | -DCMAKE_MSVC_RUNTIME_LIBRARY="" \ "${@:2}" - ninjaParallel ${MAKE_OPTIONS:+"${MAKE_OPTIONS[@]}"} \ - ${MAKE_TARGETS:+"${MAKE_TARGETS[@]}"} - + if [[ "${CMAKE_GENERATOR:-Ninja}" == Ninja ]]; then + ninjaParallel ${MAKE_OPTIONS:+"${MAKE_OPTIONS[@]}"} \ + ${MAKE_TARGETS:+"${MAKE_TARGETS[@]}"} + elif [[ "${CMAKE_GENERATOR:-Ninja}" == 'Unix Makefiles' ]]; then + makeParallel ${MAKE_OPTIONS:+"${MAKE_OPTIONS[@]}"} \ + ${MAKE_TARGETS:+"${MAKE_TARGET[@]}"} + fi if [[ -n "$INSTALL" ]] ; then DESTDIR="${PWD}/../install" cmake \ ${INSTALL_COMPONENT:+-DCOMPONENT="$INSTALL_COMPONENT"} \ From c1b44dc46153495c3bf0b339dc0834f4077de7f7 Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Fri, 23 Jan 2026 14:35:55 +0100 Subject: [PATCH 4/7] add cmake-3 CMake 4.0 removed support for cmake_minium_version <= 3.5 ([1]). Since there are still packages around requiring older cmake versions add a cmake-3 class and tool to be used by them. [1] https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html --- classes/cmake-3.yaml | 7 +++ recipes/devel/cmake-3.yaml | 46 +++++++++++++++++++ .../cmake-3/0001-fix-curl-lib-deps.patch | 31 +++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 classes/cmake-3.yaml create mode 100644 recipes/devel/cmake-3.yaml create mode 100644 recipes/devel/cmake-3/0001-fix-curl-lib-deps.patch diff --git a/classes/cmake-3.yaml b/classes/cmake-3.yaml new file mode 100644 index 00000000..bf7f926a --- /dev/null +++ b/classes/cmake-3.yaml @@ -0,0 +1,7 @@ +inherit: [cmake] + +depends: + - name: devel::cmake-3 + use: [tools] + tools: + target-toolchain: host-compat-toolchain diff --git a/recipes/devel/cmake-3.yaml b/recipes/devel/cmake-3.yaml new file mode 100644 index 00000000..25fc6cb2 --- /dev/null +++ b/recipes/devel/cmake-3.yaml @@ -0,0 +1,46 @@ +inherit: [cmake, patch] + +metaEnvironment: + PKG_VERSION: "3.31.11" + PKG_LICENSE: "BSD-3-Clause" + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/Kitware/CMake/releases/download/v${PKG_VERSION}/cmake-${PKG_VERSION}.tar.gz + digestSHA256: c0a3b3f2912b2166f522d5010ffb6029d8454ee635f5ad7a3247e0be7f9a15c9 + stripComponents: 1 + +checkoutDeterministic: True +checkoutScript: | + patchApplySeries $<@cmake-3/*.patch@> + +depends: + - libs::expat-dev + - libs::jsoncpp-dev + - libs::libarchive-dev + - libs::libuv-dev + - libs::rhash-dev + - libs::zlib-dev + - net::curl-dev + - use: [] + depends: + - libs::expat-tgt + - libs::jsoncpp-tgt + - libs::libarchive-tgt + - libs::libuv-tgt + - libs::rhash-tgt + - libs::zlib-tgt + - net::curl-tgt + +buildScript: | + cmakeBuild "$1" \ + -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ + -DBUILD_CursesDialog=OFF \ + -DCMake_ENABLE_DEBUGGER=OFF + +packageScript: | + cmakePackageTgt + +provideDeps: [ "*-tgt" ] +provideTools: + cmake: usr/bin diff --git a/recipes/devel/cmake-3/0001-fix-curl-lib-deps.patch b/recipes/devel/cmake-3/0001-fix-curl-lib-deps.patch new file mode 100644 index 00000000..3181bf7a --- /dev/null +++ b/recipes/devel/cmake-3/0001-fix-curl-lib-deps.patch @@ -0,0 +1,31 @@ +Fix CURL find package module + +The current implementation does not account for transitive dependencies of +cURL. Add what is strictly necessary to get it compiled in our environment. + +diff -Nurp a/Modules/FindCURL.cmake b/Modules/FindCURL.cmake +--- a/Modules/FindCURL.cmake 2025-12-08 19:33:58.000000000 +0100 ++++ b/Modules/FindCURL.cmake 2026-01-21 14:42:55.650870435 +0100 +@@ -291,7 +291,7 @@ find_package_handle_standard_args(CURL + HANDLE_COMPONENTS) + + if(CURL_FOUND) +- set(CURL_LIBRARIES ${CURL_LIBRARY}) ++ set(CURL_LIBRARIES ${CURL_LIBRARY} ${PC_CURL_LIBRARIES}) + set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) + + if(NOT TARGET CURL::libcurl) +@@ -299,6 +299,13 @@ if(CURL_FOUND) + set_target_properties(CURL::libcurl PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}") + ++ if(PC_CURL_FOUND) ++ set(CURL_DEPENDENCY_LIBRARIES "${PC_CURL_LIBRARIES}") ++ list(REMOVE_ITEM CURL_DEPENDENCY_LIBRARIES curl) ++ set_target_properties(CURL::libcurl PROPERTIES ++ INTERFACE_LINK_LIBRARIES "${CURL_DEPENDENCY_LIBRARIES}") ++ endif() ++ + if(CURL_USE_STATIC_LIBS) + set_property(TARGET CURL::libcurl APPEND PROPERTY + INTERFACE_COMPILE_DEFINITIONS "CURL_STATICLIB") From 1ac4ca61f9f285ece42621a4604edf05f84b5f3d Mon Sep 17 00:00:00 2001 From: Ralf Hubert Date: Tue, 27 Jan 2026 06:52:42 +0100 Subject: [PATCH 5/7] cmake: bump to v4.2.1 --- recipes/devel/cmake.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/devel/cmake.yaml b/recipes/devel/cmake.yaml index 825cf05a..16d3ca7f 100644 --- a/recipes/devel/cmake.yaml +++ b/recipes/devel/cmake.yaml @@ -1,13 +1,13 @@ inherit: [patch] metaEnvironment: - PKG_VERSION: "3.31.11" + PKG_VERSION: "4.2.1" PKG_LICENSE: "BSD-3-Clause" checkoutSCM: scm: url url: ${GITHUB_MIRROR}/Kitware/CMake/releases/download/v${PKG_VERSION}/cmake-${PKG_VERSION}.tar.gz - digestSHA256: c0a3b3f2912b2166f522d5010ffb6029d8454ee635f5ad7a3247e0be7f9a15c9 + digestSHA256: "414aacfac54ba0e78e64a018720b64ed6bfca14b587047b8b3489f407a14a070" stripComponents: 1 checkoutDeterministic: True From 38d5c2bf7a020968cf529e5abc993d9f57c9f514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kl=C3=B6tzke?= Date: Sun, 1 Feb 2026 13:09:24 +0100 Subject: [PATCH 6/7] Revert "devel::dune: bump to v3.21.0" Build fails with: /.../_boot/otherlibs/stdune/src/copyfile_stubs.c:126: undefined reference to `dlsym' collect2: error: ld returned 1 exit status File "caml_startup", line 1: Error: Error during linking (exit code 1) make: *** [Makefile:43: _boot/dune.exe] Error 2 This reverts commit 52c3ebf1e221149c862d4c9e218ba70185905d49. --- recipes/devel/dune.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/devel/dune.yaml b/recipes/devel/dune.yaml index 070fe2dd..b7d44896 100644 --- a/recipes/devel/dune.yaml +++ b/recipes/devel/dune.yaml @@ -1,7 +1,7 @@ inherit: [cpackage, make] metaEnvironment: - PKG_VERSION: "3.21.0" + PKG_VERSION: "3.17.2" PKG_LICENSE: "MIT" depends: @@ -13,7 +13,7 @@ depends: checkoutSCM: scm: url url: https://github.com/ocaml/dune/archive/refs/tags/${PKG_VERSION}.tar.gz - digestSHA256: 07c7dbd778579e35f365320b559d6f781cd755c6485b164b802f109fe21ead68 + digestSHA256: 1b45e34d1eacf40be569e4d7ad055508a3242637b098327c91f7ce67772a1889 stripComponents: 1 multiPackage: From c743f79d06b2fbc370dc95b2cf276b97aa7b8757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Kl=C3=B6tzke?= Date: Sun, 1 Feb 2026 14:00:23 +0100 Subject: [PATCH 7/7] tests: build devel::cmake-3 The legacy version of cmake is usually not needed. But make sure it builds in case it does. --- tests/linux/recipes/buildall.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/linux/recipes/buildall.yaml b/tests/linux/recipes/buildall.yaml index 11aa772e..841dd172 100644 --- a/tests/linux/recipes/buildall.yaml +++ b/tests/linux/recipes/buildall.yaml @@ -17,6 +17,11 @@ depends: - devel::llvm-libs-dev - devel::llvm-libs-tgt + # Just build cmake-3 but do not use its tool. It is already provided by + # devel::cmake, included by basement::rootrecipe above. + - name: devel::cmake-3 + use: [result] + buildScript: | true