diff --git a/cmake-3.1.0-ruby22-teeny-detection.patch b/cmake-3.1.0-ruby22-teeny-detection.patch new file mode 100644 index 0000000..9f2c6dd --- /dev/null +++ b/cmake-3.1.0-ruby22-teeny-detection.patch @@ -0,0 +1,42 @@ +From 802d0aa0b0a0af72fdc95bf1f69afeb362b6ef95 Mon Sep 17 00:00:00 2001 +From: Evangelos Foutras +Date: Mon, 29 Dec 2014 19:02:04 +0200 +Subject: [PATCH] FindRuby: Fix output check in _RUBY_CONFIG_VAR + +Since commit v2.8.8~173^2 (FindRuby: clean up querying variables from +Ruby, 2012-02-17) we query RbConfig::CONFIG first and, if the command +fails or its output equates to a false constant, then fall back to +querying Config::CONFIG. + +Due to the above, an error condition exists with Ruby 2.2.0; when +querying RbConfig::CONFIG['TEENY'], the output of '0' will be discarded +since it matches the false constant '0'. + +In previous versions this wasn't a problem, but Ruby 2.2 has completely +removed Config::CONFIG. This causes RUBY_VERSION_PATCH to be set to an +empty string and the Ruby version to be detected as '2.2.' (instead of +'2.2.0'). + +Fix the output check to explicitly look for an empty string before using +the fallback query method. (Someone more familiar with Ruby might be +able to deem the fallback as unnecessary and fully remove it.) +--- + Modules/FindRuby.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Modules/FindRuby.cmake b/Modules/FindRuby.cmake +index b5ac703..0950d15 100644 +--- a/Modules/FindRuby.cmake ++++ b/Modules/FindRuby.cmake +@@ -90,7 +90,7 @@ if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) + RESULT_VARIABLE _RUBY_SUCCESS + OUTPUT_VARIABLE _RUBY_OUTPUT + ERROR_QUIET) +- if(_RUBY_SUCCESS OR NOT _RUBY_OUTPUT) ++ if(_RUBY_SUCCESS OR _RUBY_OUTPUT STREQUAL "") + execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']" + RESULT_VARIABLE _RUBY_SUCCESS + OUTPUT_VARIABLE _RUBY_OUTPUT +-- +1.7.10.4 + diff --git a/cmake.spec b/cmake.spec index a061d44..d2401d7 100644 --- a/cmake.spec +++ b/cmake.spec @@ -13,7 +13,7 @@ Name: cmake Version: 3.1.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Cross-platform make system Group: Development/Tools @@ -40,6 +40,9 @@ Patch5: cmake-2.8.11-rc4-lua-5.2.patch # Add -fno-strict-aliasing when compiling cm_sha2.c # http://www.cmake.org/Bug/view.php?id=14314 Patch6: cmake-strict_aliasing.patch +# Fix ruby 2.2.0 teeny (0) detection +# http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=802d0aa0b0a0af72fdc95bf1f69afeb362b6ef95#patch1 +Patch7: cmake-3.1.0-ruby22-teeny-detection.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -106,6 +109,7 @@ The %{name}-gui package contains the Qt based GUI for CMake. %patch2 -p1 %patch5 -p1 %patch6 -p1 -b .strict_aliasing +%patch7 -p1 %build @@ -227,6 +231,9 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %changelog +* Sat Jan 17 2015 Mamoru TASAKA - 3.1.0-2 +- Fix ruby 2.2.0 teeny (0) detection + * Wed Dec 17 2014 Orion Poplawski - 3.1.0-1 - Update to 3.1.0 final