diff --git a/debian/changelog b/debian/changelog index cf5ae8a25..3e740b952 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,10 @@ cmake (2.8.7-4) UNRELEASED; urgency=low is now possible to force a specific python version via command line again. The interface has changed though, see NEWS entry. (Closes: #663188) Patch: backport_findpython_fixes.diff + * Backport a bunch of FindRuby improvements from cmake master. It should be + able to properly find ruby 1.9.1 as packaged in Debian now. + (Closes: #643949) + Patch: backport_findruby_improvements.diff -- Modestas Vainius Fri, 16 Mar 2012 22:10:41 +0200 diff --git a/debian/patches/backport_findruby_improvements.diff b/debian/patches/backport_findruby_improvements.diff new file mode 100644 index 000000000..857b05afc --- /dev/null +++ b/debian/patches/backport_findruby_improvements.diff @@ -0,0 +1,165 @@ +From: Alex Neundorf +From: Rolf Eike Beer +Subject: Various FindRuby improvements and bug fixes +Applied-Upstream: 2.8.8 +Bug: http://public.kitware.com/Bug/view.php?id=12172 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643949 +Origin: backport, commit:93c55ec FindRuby: fix usage of RUBY_VERSION_MAJOR (#12172) + commit:3db2c8b FindRuby: add more possible library names (for ubuntu, #12172) + commit:a9bca05 FindRuby.cmake: add more debug output + commit:409aeaf FindRuby: do not blindly set version to 1.8.0 + commit:854e762 FindRuby: clean up querying variables from Ruby +Last-Update: 2012-03-16 + +Backport a bunch of FindRuby improvements and bug fixes from cmake master. +FindRuby should find ruby 1.9.1 as packaged in Debian now. + +--- a/Modules/FindRuby.cmake ++++ b/Modules/FindRuby.cmake +@@ -60,50 +60,45 @@ ENDIF("${Ruby_FIND_VERSION_SHORT_NODOT}" + FIND_PROGRAM(RUBY_EXECUTABLE NAMES ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}) + + +-IF(RUBY_EXECUTABLE AND NOT RUBY_MAJOR_VERSION) +- # query the ruby version +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['MAJOR']" +- OUTPUT_VARIABLE RUBY_VERSION_MAJOR) ++IF(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) ++ FUNCTION(_RUBY_CONFIG_VAR RBVAR OUTVAR) ++ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']" ++ RESULT_VARIABLE _RUBY_SUCCESS ++ OUTPUT_VARIABLE _RUBY_OUTPUT ++ ERROR_QUIET) ++ IF(_RUBY_SUCCESS OR NOT _RUBY_OUTPUT) ++ EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']" ++ RESULT_VARIABLE _RUBY_SUCCESS ++ OUTPUT_VARIABLE _RUBY_OUTPUT ++ ERROR_QUIET) ++ ENDIF(_RUBY_SUCCESS OR NOT _RUBY_OUTPUT) ++ SET(${OUTVAR} "${_RUBY_OUTPUT}" PARENT_SCOPE) ++ ENDFUNCTION(_RUBY_CONFIG_VAR) + +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['MINOR']" +- OUTPUT_VARIABLE RUBY_VERSION_MINOR) + +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['TEENY']" +- OUTPUT_VARIABLE RUBY_VERSION_PATCH) ++ # query the ruby version ++ _RUBY_CONFIG_VAR("MAJOR" RUBY_VERSION_MAJOR) ++ _RUBY_CONFIG_VAR("MINOR" RUBY_VERSION_MINOR) ++ _RUBY_CONFIG_VAR("TEENY" RUBY_VERSION_PATCH) + + # query the different directories +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['archdir']" +- OUTPUT_VARIABLE RUBY_ARCH_DIR) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['arch']" +- OUTPUT_VARIABLE RUBY_ARCH) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['rubyhdrdir']" +- OUTPUT_VARIABLE RUBY_HDR_DIR) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['libdir']" +- OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_DIR) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['rubylibdir']" +- OUTPUT_VARIABLE RUBY_RUBY_LIB_DIR) ++ _RUBY_CONFIG_VAR("archdir" RUBY_ARCH_DIR) ++ _RUBY_CONFIG_VAR("arch" RUBY_ARCH) ++ _RUBY_CONFIG_VAR("rubyhdrdir" RUBY_HDR_DIR) ++ _RUBY_CONFIG_VAR("libdir" RUBY_POSSIBLE_LIB_DIR) ++ _RUBY_CONFIG_VAR("rubylibdir" RUBY_RUBY_LIB_DIR) + + # site_ruby +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['sitearchdir']" +- OUTPUT_VARIABLE RUBY_SITEARCH_DIR) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['sitelibdir']" +- OUTPUT_VARIABLE RUBY_SITELIB_DIR) ++ _RUBY_CONFIG_VAR("sitearchdir" RUBY_SITEARCH_DIR) ++ _RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR) + + # vendor_ruby available ? + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'" + OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET) + + IF(RUBY_HAS_VENDOR_RUBY) +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['vendorlibdir']" +- OUTPUT_VARIABLE RUBY_VENDORLIB_DIR) +- +- EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['vendorarchdir']" +- OUTPUT_VARIABLE RUBY_VENDORARCH_DIR) ++ _RUBY_CONFIG_VAR("vendorlibdir" RUBY_VENDORLIB_DIR) ++ _RUBY_CONFIG_VAR("vendorarchdir" RUBY_VENDORARCH_DIR) + ENDIF(RUBY_HAS_VENDOR_RUBY) + + # save the results in the cache so we don't have to run ruby the next time again +@@ -135,11 +130,11 @@ IF(RUBY_EXECUTABLE AND NOT RUBY_MAJOR_ + RUBY_VERSION_MINOR + RUBY_VERSION_PATCH + ) +-ENDIF(RUBY_EXECUTABLE AND NOT RUBY_MAJOR_VERSION) ++ENDIF(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) + + # In case RUBY_EXECUTABLE could not be executed (e.g. cross compiling) + # try to detect which version we found. This is not too good. +-IF(NOT RUBY_VERSION_MAJOR) ++IF(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) + # by default assume 1.8.0 + SET(RUBY_VERSION_MAJOR 1) + SET(RUBY_VERSION_MINOR 8) +@@ -149,13 +144,14 @@ IF(NOT RUBY_VERSION_MAJOR) + SET(RUBY_VERSION_MAJOR 1) + SET(RUBY_VERSION_MINOR 9) + ENDIF(${RUBY_EXECUTABLE} MATCHES "ruby1.?9" OR RUBY_HDR_DIR) +-ENDIF(NOT RUBY_VERSION_MAJOR) +- ++ENDIF(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR) + +-SET(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}") +-SET(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}") +-SET(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}") +-SET(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}") ++IF(RUBY_VERSION_MAJOR) ++ SET(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}") ++ SET(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}") ++ SET(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}") ++ SET(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}") ++ENDIF(RUBY_VERSION_MAJOR) + + FIND_PATH(RUBY_INCLUDE_DIR + NAMES ruby.h +@@ -167,7 +163,7 @@ FIND_PATH(RUBY_INCLUDE_DIR + SET(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} ) + + # if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir +-IF( ${Ruby_FIND_VERSION_SHORT_NODOT} GREATER 18 OR ${_RUBY_VERSION_SHORT_NODOT} GREATER 18 OR RUBY_HDR_DIR) ++IF( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18 OR "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18 OR RUBY_HDR_DIR) + FIND_PATH(RUBY_CONFIG_INCLUDE_DIR + NAMES ruby/config.h config.h + HINTS +@@ -176,11 +172,11 @@ IF( ${Ruby_FIND_VERSION_SHORT_NODOT} GRE + ) + + SET(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} ) +-ENDIF( ${Ruby_FIND_VERSION_SHORT_NODOT} GREATER 18 OR ${_RUBY_VERSION_SHORT_NODOT} GREATER 18 OR RUBY_HDR_DIR) ++ENDIF( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18 OR "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18 OR RUBY_HDR_DIR) + + + # Determine the list of possible names for the ruby library +-SET(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT}) ++SET(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT} ruby-${_RUBY_VERSION_SHORT} ruby-${RUBY_VERSION}) + + IF(WIN32) + SET( _RUBY_MSVC_RUNTIME "" ) +@@ -224,6 +220,10 @@ IF(_RUBY_DEBUG_OUTPUT) + MESSAGE(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}") + MESSAGE(STATUS "Found RUBY_VERSION: \"${RUBY_VERSION}\" , short: \"${_RUBY_VERSION_SHORT}\", nodot: \"${_RUBY_VERSION_SHORT_NODOT}\"") + MESSAGE(STATUS "_RUBY_REQUIRED_VARS: ${_RUBY_REQUIRED_VARS}") ++ MESSAGE(STATUS "RUBY_EXECUTABLE: ${RUBY_EXECUTABLE}") ++ MESSAGE(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}") ++ MESSAGE(STATUS "RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}") ++ MESSAGE(STATUS "RUBY_CONFIG_INCLUDE_DIR: ${RUBY_CONFIG_INCLUDE_DIR}") + MESSAGE(STATUS "--------------------") + ENDIF(_RUBY_DEBUG_OUTPUT) + diff --git a/debian/patches/series b/debian/patches/series index 9eada996a..87fbee995 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ manpage_fixes.diff mipsel_is_little_endian.diff paths_in_regex_espace_metachars.diff backport_findpython_fixes.diff +backport_findruby_improvements.diff