[cmake] Fix ruby 2.2.0 teeny (0) detection

Mamoru TASAKA mtasaka at fedoraproject.org
Sat Jan 17 07:15:23 UTC 2015


commit f4c732aafc4688d808170a2d353138784e52fc85
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date:   Sat Jan 17 16:15:45 2015 +0900

    Fix ruby 2.2.0 teeny (0) detection

 cmake-3.1.0-ruby22-teeny-detection.patch |   42 ++++++++++++++++++++++++++++++
 cmake.spec                               |    9 +++++-
 2 files changed, 50 insertions(+), 1 deletions(-)
---
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 <evangelos at foutrelis.com>
+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 <mtasaka at fedoraproject.org> - 3.1.0-2
+- Fix ruby 2.2.0 teeny (0) detection
+
 * Wed Dec 17 2014 Orion Poplawski <orion at cora.nwra.com> - 3.1.0-1
 - Update to 3.1.0 final
 


More information about the scm-commits mailing list