Fix ruby 2.2.0 teeny (0) detection

This commit is contained in:
Mamoru TASAKA 2015-01-17 16:15:45 +09:00
parent a4a401c76b
commit f4c732aafc
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,42 @@
From 802d0aa0b0a0af72fdc95bf1f69afeb362b6ef95 Mon Sep 17 00:00:00 2001
From: Evangelos Foutras <evangelos@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

View File

@ -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@fedoraproject.org> - 3.1.0-2
- Fix ruby 2.2.0 teeny (0) detection
* Wed Dec 17 2014 Orion Poplawski <orion@cora.nwra.com> - 3.1.0-1
- Update to 3.1.0 final