From 89db6c6de97d717c9c2b49d94305381f998b0ca2 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 8 Feb 2018 16:49:45 +0530 Subject: gnu: cmake: Update to 3.10.2. * gnu/packages/cmake.scm (cmake): Update to 3.10.2. [source]: Remove cmake-fix-tests patch. Do not remove bundled cmlibuv. [arguments]: Replace system* with invoke. [inputs]: Add rhash. Sort. [home-page]: Update URL. * gnu/packages/patches/cmake-fix-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Unregister it. --- gnu/local.mk | 1 - gnu/packages/cmake.scm | 87 ++++++++++++--------- gnu/packages/patches/cmake-fix-tests.patch | 120 ----------------------------- 3 files changed, 50 insertions(+), 158 deletions(-) delete mode 100644 gnu/packages/patches/cmake-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1c3685457f..678a0f0d74 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -598,7 +598,6 @@ dist_patch_DATA = \ %D%/packages/patches/clisp-remove-failing-test.patch \ %D%/packages/patches/clucene-pkgconfig.patch \ %D%/packages/patches/clx-remove-demo.patch \ - %D%/packages/patches/cmake-fix-tests.patch \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/cool-retro-term-dont-check-uninit-member.patch \ %D%/packages/patches/cool-retro-term-fix-array-size.patch \ diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e6c5c4e793..d5022dc741 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017, 2018 Marius Bakke +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,7 +42,7 @@ (define-module (gnu packages cmake) (define-public cmake (package (name "cmake") - (version "3.7.2") + (version "3.10.2") (source (origin (method url-fetch) (uri (string-append "https://www.cmake.org/files/v" @@ -49,8 +50,7 @@ (define-public cmake "/cmake-" version ".tar.gz")) (sha256 (base32 - "1q6a60695prpzzsmczm2xrgxdb61fyjznb04dr6yls6iwv24c4nw")) - (patches (search-patches "cmake-fix-tests.patch")) + "12r1ldq4l032d6f5gc22dlayck4cr29cczqsl9xf0vdm9anzml40")) (modules '((guix build utils))) (snippet '(begin @@ -58,18 +58,31 @@ (define-public cmake (with-directory-excursion "Utilities" (for-each delete-file-recursively '("cmbzip2" - ;"cmcompress" + ;; "cmcompress" "cmcurl" "cmexpat" - ;"cmjsoncpp" - ;"cmlibarchive" + ;; "cmjsoncpp" + ;; "cmlibarchive" "cmliblzma" - "cmlibuv" + ;; "cmlibuv" "cmzlib")) #t))))) (build-system gnu-build-system) (arguments `(#:test-target "test" + #:make-flags + (let ((skipped-tests + (list "BundleUtilities" ; This test fails on Guix. + "CTestTestSubdir" ; This test fails to build 2 of the 3 tests. + "CMake.String" ; This test depends on clock being set to + ; current time, which is not the case in + ; the build environment. + ;; These tests requires network access. + "CTestCoverageCollectGCOV" + "CTestTestUpload"))) + (list + (string-append + "ARGS=--exclude-regex ^\\(" (string-join skipped-tests "\\|") "\\)$"))) #:phases (modify-phases %standard-phases (add-before 'configure 'patch-bin-sh @@ -78,8 +91,6 @@ (define-public cmake ;; files. (substitute* '("Modules/CompilerId/Xcode-3.pbxproj.in" - "Modules/CompilerId/Xcode-1.pbxproj.in" - "Modules/CompilerId/Xcode-2.pbxproj.in" "Modules/CPack.RuntimeScript.in" "Source/cmakexbuild.cxx" "Source/cmGlobalXCodeGenerator.cxx" @@ -102,43 +113,45 @@ (define-public cmake (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (zero? (system* - "./configure" - (string-append "--prefix=" out) - "--system-libs" - "--no-system-jsoncpp" ; FIXME: Circular dependency. - ;; By default, the man pages and other docs land - ;; in PREFIX/man and PREFIX/doc, but we want them - ;; in share/{man,doc}. Note that unlike - ;; autoconf-generated configure scripts, cmake's - ;; configure prepends "PREFIX/" to what we pass - ;; to --mandir and --docdir. - "--mandir=share/man" - ,(string-append - "--docdir=share/doc/cmake-" - (version-major+minor version))))))) + (invoke + "./configure" + (string-append "--prefix=" out) + "--system-libs" + "--no-system-jsoncpp" ; FIXME: Circular dependency. + ;; By default, the man pages and other docs land + ;; in PREFIX/man and PREFIX/doc, but we want them + ;; in share/{man,doc}. Note that unlike + ;; autoconf-generated configure scripts, cmake's + ;; configure prepends "PREFIX/" to what we pass + ;; to --mandir and --docdir. + "--mandir=share/man" + ,(string-append + "--docdir=share/doc/cmake-" + (version-major+minor version)))))) (add-before 'check 'set-test-environment (lambda _ ;; Get verbose output from failed tests. (setenv "CTEST_OUTPUT_ON_FAILURE" "TRUE") + ;; Parallel tests fail in the 3.10.2 release. ;; Run tests in parallel. - (setenv "CTEST_PARALLEL_LEVEL" - (number->string (parallel-job-count))) + ;; (setenv "CTEST_PARALLEL_LEVEL" + ;; (number->string (parallel-job-count))) #t))))) (inputs - `(("file" ,file) - ("curl" ,curl) - ("zlib" ,zlib) - ("expat" ,expat) - ("bzip2" ,bzip2) - ("ncurses" ,ncurses) ; required for ccmake - ("libuv" ,libuv) - ("libarchive" ,libarchive))) + `(("bzip2" ,bzip2) + ("curl" ,curl) + ("expat" ,expat) + ("file" ,file) + ("libarchive" ,libarchive) + ("libuv" ,libuv) + ("ncurses" ,ncurses) ; required for ccmake + ("rhash" ,rhash) + ("zlib" ,zlib))) (native-search-paths (list (search-path-specification - (variable "CMAKE_PREFIX_PATH") - (files '(""))))) - (home-page "https://www.cmake.org/") + (variable "CMAKE_PREFIX_PATH") + (files '(""))))) + (home-page "https://cmake.org/") (synopsis "Cross-platform build system") (description "CMake is a family of tools designed to build, test and package software. diff --git a/gnu/packages/patches/cmake-fix-tests.patch b/gnu/packages/patches/cmake-fix-tests.patch deleted file mode 100644 index 732b0023ab..0000000000 --- a/gnu/packages/patches/cmake-fix-tests.patch +++ /dev/null @@ -1,120 +0,0 @@ -From af0a62dadfb3db25880bc653e2e4c97435a604c9 Mon Sep 17 00:00:00 2001 -From: Efraim Flashner -Date: Mon, 29 Aug 2016 20:07:58 +0300 -Subject: [PATCH] cmake-fix-tests - ---- - Tests/CMakeLists.txt | 83 ++++++++++++++++++++++++++++------------------------ - 1 file changed, 44 insertions(+), 39 deletions(-) - -diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt -index f21e430..56014a2 100644 ---- a/Tests/CMakeLists.txt -+++ b/Tests/CMakeLists.txt -@@ -416,10 +416,12 @@ if(BUILD_TESTING) - endif() - - # run test for BundleUtilities on supported platforms/compilers -- if(MSVC OR -- MINGW OR -- CMAKE_SYSTEM_NAME MATCHES "Linux" OR -- CMAKE_SYSTEM_NAME MATCHES "Darwin") -+# if(MSVC OR -+# MINGW OR -+# CMAKE_SYSTEM_NAME MATCHES "Linux" OR -+# CMAKE_SYSTEM_NAME MATCHES "Darwin") -+# This test fails on Guix: skip it. -+ if(FALSE) - if(NOT "${CMAKE_GENERATOR}" STREQUAL "Watcom WMake") - - add_test(BundleUtilities ${CMAKE_CTEST_COMMAND} -@@ -2481,30 +2483,32 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release - PASS_REGULAR_EXPRESSION "Could not find executable" - FAIL_REGULAR_EXPRESSION "SegFault") - -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND} -- -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V -- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log" -- ) -- set_tests_properties(CTestTestUpload PROPERTIES -- PASS_REGULAR_EXPRESSION "Upload\\.xml") -- -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestCoverageCollectGCOV ${CMAKE_CTEST_COMMAND} -- -C \${CTEST_CONFIGURATION_TYPE} -- -S "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -VV -- --output-log "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/testOut.log" -- ) -- set_tests_properties(CTestCoverageCollectGCOV PROPERTIES -- PASS_REGULAR_EXPRESSION -- "PASSED with correct output.*Testing/CoverageInfo/main.cpp.gcov") -- set_property(TEST CTestCoverageCollectGCOV PROPERTY ENVIRONMENT CTEST_PARALLEL_LEVEL=) -+# This test requires network connectivity: skip it. -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestTestUpload/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestTestUpload ${CMAKE_CTEST_COMMAND} -+# -S "${CMake_BINARY_DIR}/Tests/CTestTestUpload/test.cmake" -V -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestTestUpload/testOut.log" -+# ) -+# set_tests_properties(CTestTestUpload PROPERTIES -+# PASS_REGULAR_EXPRESSION "Upload\\.xml") -+ -+# This test times out -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestCoverageCollectGCOV ${CMAKE_CTEST_COMMAND} -+# -C \${CTEST_CONFIGURATION_TYPE} -+# -S "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/test.cmake" -VV -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestCoverageCollectGCOV/testOut.log" -+# ) -+# set_tests_properties(CTestCoverageCollectGCOV PROPERTIES -+# PASS_REGULAR_EXPRESSION -+# "PASSED with correct output.*Testing/CoverageInfo/main.cpp.gcov") -+# set_property(TEST CTestCoverageCollectGCOV PROPERTY ENVIRONMENT CTEST_PARALLEL_LEVEL=) - - configure_file( - "${CMake_SOURCE_DIR}/Tests/CTestTestEmptyBinaryDirectory/test.cmake.in" -@@ -2860,17 +2864,18 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release - set_tests_properties(CTestTestStopTime PROPERTIES - PASS_REGULAR_EXPRESSION "The stop time has been passed") - -- configure_file( -- "${CMake_SOURCE_DIR}/Tests/CTestTestSubdir/test.cmake.in" -- "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -- @ONLY ESCAPE_QUOTES) -- add_test(CTestTestSubdir ${CMAKE_CTEST_COMMAND} -- -S "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -V -- --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/testOutput.log" -- ) -- #make sure all 3 subdirs were added -- set_tests_properties(CTestTestSubdir PROPERTIES -- PASS_REGULAR_EXPRESSION "0 tests failed out of 3") -+# This test fails to build 2 of the 3 tests -+# configure_file( -+# "${CMake_SOURCE_DIR}/Tests/CTestTestSubdir/test.cmake.in" -+# "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -+# @ONLY ESCAPE_QUOTES) -+# add_test(CTestTestSubdir ${CMAKE_CTEST_COMMAND} -+# -S "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/test.cmake" -V -+# --output-log "${CMake_BINARY_DIR}/Tests/CTestTestSubdir/testOutput.log" -+# ) -+# #make sure all 3 subdirs were added -+# set_tests_properties(CTestTestSubdir PROPERTIES -+# PASS_REGULAR_EXPRESSION "0 tests failed out of 3") - - configure_file( - "${CMake_SOURCE_DIR}/Tests/CTestTestTimeout/test.cmake.in" --- -2.9.3 - -- cgit v1.2.3