[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