From 267fbc6cd1588df0a0ecf9c7e62dd224d09da038 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 29 Feb 2012 15:44:37 +0000 Subject: [PATCH] Revert accidental merge of 1.9.3.125 from F-18 -> F-17 Revert "Upgrade to Ruby 1.9.3-p125." This reverts commit ef4f0ea4171a971e72f6ebfd07486054256c9004. --- .gitignore | 1 - ...9.3-added-site-and-vendor-arch-flags.patch | 10 ++-- ruby-1.9.3-always-use-i386.patch | 2 +- ruby-1.9.3-arch-specific-dir.patch | 8 +-- ruby-1.9.3-custom-rubygems-location.patch | 4 +- ruby-1.9.3-disable-versioned-paths.patch | 2 +- ruby-1.9.3-fix-json-parser.patch | 40 ++++++++++++++ ruby-1.9.3-prevent-optimizing-sp.patch | 53 +++++++++++++++++++ ruby.spec | 19 ++++--- sources | 2 +- 10 files changed, 118 insertions(+), 23 deletions(-) create mode 100644 ruby-1.9.3-fix-json-parser.patch create mode 100644 ruby-1.9.3-prevent-optimizing-sp.patch diff --git a/.gitignore b/.gitignore index c58f574..03a0175 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,3 @@ ruby-rev415a3ef9ab82c65a7abc-ext_tk.tar.gz /ruby-revc2dfaa7d40531aef3706bcc16f38178b0c6633ee-ext_tk.tar.gz /ruby-1.8.7-p357.tar.bz2 /ruby-1.9.3-p0.tar.gz -/ruby-1.9.3-p125.tar.gz diff --git a/ruby-1.9.3-added-site-and-vendor-arch-flags.patch b/ruby-1.9.3-added-site-and-vendor-arch-flags.patch index 1363063..9dff272 100644 --- a/ruby-1.9.3-added-site-and-vendor-arch-flags.patch +++ b/ruby-1.9.3-added-site-and-vendor-arch-flags.patch @@ -29,7 +29,7 @@ diff --git a/configure.in b/configure.in index 83e5d76..31532bd 100644 --- a/configure.in +++ b/configure.in -@@ -2811,6 +2811,15 @@ until SITE_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITE_DIR}"; do +@@ -2801,6 +2801,15 @@ until SITE_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITE_DIR}"; do dir="${SITE_DIR}" done @@ -45,7 +45,7 @@ index 83e5d76..31532bd 100644 AC_ARG_WITH(vendordir, AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]]]), [vendordir=$withval], -@@ -2820,19 +2829,32 @@ until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do +@@ -2810,19 +2819,32 @@ until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do dir="${VENDOR_DIR}" done @@ -78,7 +78,7 @@ index 83e5d76..31532bd 100644 fi pat=`echo "$RUBY_LIB_PREFIX/" | tr -c '\012' .`'\(.*\)' -@@ -2850,6 +2872,13 @@ AS_CASE(["$RUBY_SITE_LIB_PATH"], +@@ -2840,6 +2862,13 @@ AS_CASE(["$RUBY_SITE_LIB_PATH"], [ RUBY_SITE_LIB_PATH="\"${RUBY_SITE_LIB_PATH}\"" ]) @@ -92,7 +92,7 @@ index 83e5d76..31532bd 100644 AS_CASE(["$RUBY_VENDOR_LIB_PATH"], ["$RUBY_LIB_PREFIX/"*], [ RUBY_VENDOR_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_VENDOR_LIB_PATH\" : \"$pat\"`"'"' -@@ -2857,6 +2886,13 @@ AS_CASE(["$RUBY_VENDOR_LIB_PATH"], +@@ -2847,6 +2876,13 @@ AS_CASE(["$RUBY_VENDOR_LIB_PATH"], [ RUBY_VENDOR_LIB_PATH="\"${RUBY_VENDOR_LIB_PATH}\"" ]) @@ -106,7 +106,7 @@ index 83e5d76..31532bd 100644 pat=`echo "$RUBY_EXEC_PREFIX/" | tr -c '\012' .`'\(.*\)' AS_CASE(["$RUBY_LIB_PREFIX"], ["$RUBY_EXEC_PREFIX/"*], [ -@@ -2878,19 +2914,23 @@ if test "x$SITE_DIR" = xno; then +@@ -2868,19 +2904,23 @@ if test "x$SITE_DIR" = xno; then AC_DEFINE(NO_RUBY_SITE_LIB) else AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, ${RUBY_SITE_LIB_PATH}) diff --git a/ruby-1.9.3-always-use-i386.patch b/ruby-1.9.3-always-use-i386.patch index f5a8c3d..734c5eb 100644 --- a/ruby-1.9.3-always-use-i386.patch +++ b/ruby-1.9.3-always-use-i386.patch @@ -1,6 +1,6 @@ --- a/configure.in.orig 2011-10-18 08:56:21.587594685 +0200 +++ b/configure.in 2011-10-18 08:56:59.751593321 +0200 -@@ -2935,6 +2935,8 @@ +@@ -2925,6 +2925,8 @@ configure_args=$ac_configure_args AC_SUBST(configure_args)dnl diff --git a/ruby-1.9.3-arch-specific-dir.patch b/ruby-1.9.3-arch-specific-dir.patch index 8440ea7..b8feb96 100644 --- a/ruby-1.9.3-arch-specific-dir.patch +++ b/ruby-1.9.3-arch-specific-dir.patch @@ -26,7 +26,7 @@ diff --git a/configure.in b/configure.in index 83e5d76..e6dc38c 100644 --- a/configure.in +++ b/configure.in -@@ -2793,6 +2793,15 @@ else +@@ -2783,6 +2783,15 @@ else RUBY_LIB_VERSION="\"${ruby_version}\"" fi @@ -42,7 +42,7 @@ index 83e5d76..e6dc38c 100644 AC_ARG_WITH(sitedir, AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]]]), [sitedir=$withval], -@@ -2815,16 +2824,25 @@ if test "${LOAD_RELATIVE+set}"; then +@@ -2805,16 +2814,25 @@ if test "${LOAD_RELATIVE+set}"; then AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) RUBY_EXEC_PREFIX="" RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" @@ -68,7 +68,7 @@ index 83e5d76..e6dc38c 100644 AS_CASE(["$RUBY_SITE_LIB_PATH"], ["$RUBY_LIB_PREFIX/"*], [ RUBY_SITE_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_SITE_LIB_PATH\" : \"$pat\"`"'"' -@@ -2855,6 +2873,7 @@ else +@@ -2845,6 +2863,7 @@ else fi AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, "${RUBY_EXEC_PREFIX}") AC_DEFINE_UNQUOTED(RUBY_LIB_PREFIX, ${RUBY_LIB_PREFIX}) @@ -76,7 +76,7 @@ index 83e5d76..e6dc38c 100644 if test "x$SITE_DIR" = xno; then AC_DEFINE(NO_RUBY_SITE_LIB) else -@@ -2869,6 +2888,7 @@ fi +@@ -2859,6 +2878,7 @@ fi AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl diff --git a/ruby-1.9.3-custom-rubygems-location.patch b/ruby-1.9.3-custom-rubygems-location.patch index 62d3dad..2566ef6 100644 --- a/ruby-1.9.3-custom-rubygems-location.patch +++ b/ruby-1.9.3-custom-rubygems-location.patch @@ -15,7 +15,7 @@ diff --git a/configure.in b/configure.in index b1bc951..91c5d0d 100644 --- a/configure.in +++ b/configure.in -@@ -2838,6 +2838,13 @@ until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do +@@ -2828,6 +2828,13 @@ until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do dir="${VENDORARCH_DIR}" done @@ -29,7 +29,7 @@ index b1bc951..91c5d0d 100644 if test "${LOAD_RELATIVE+set}"; then AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) RUBY_EXEC_PREFIX="" -@@ -2931,6 +2938,7 @@ AC_SUBST(sitearch)dnl +@@ -2921,6 +2928,7 @@ AC_SUBST(sitearch)dnl AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorarchdir)dnl diff --git a/ruby-1.9.3-disable-versioned-paths.patch b/ruby-1.9.3-disable-versioned-paths.patch index 6d0c5e1..afafb04 100644 --- a/ruby-1.9.3-disable-versioned-paths.patch +++ b/ruby-1.9.3-disable-versioned-paths.patch @@ -13,7 +13,7 @@ diff --git a/configure.in b/configure.in index e742e74..86cb68f 100644 --- a/configure.in +++ b/configure.in -@@ -2963,6 +2963,17 @@ else +@@ -2953,6 +2953,17 @@ else fi AC_SUBST(USE_RUBYGEMS) diff --git a/ruby-1.9.3-fix-json-parser.patch b/ruby-1.9.3-fix-json-parser.patch new file mode 100644 index 0000000..9621c72 --- /dev/null +++ b/ruby-1.9.3-fix-json-parser.patch @@ -0,0 +1,40 @@ +diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c +index d1d14c7..1773616 100644 +--- a/ext/json/parser/parser.c ++++ b/ext/json/parser/parser.c +@@ -1293,6 +1293,7 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) + { + char *p = string, *pe = string, *unescape; + int unescape_len; ++ char buf[4]; + + while (pe < stringEnd) { + if (*pe == '\\') { +@@ -1325,7 +1326,6 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) + if (pe > stringEnd - 4) { + return Qnil; + } else { +- char buf[4]; + UTF32 ch = unescape_unicode((unsigned char *) ++pe); + pe += 3; + if (UNI_SUR_HIGH_START == (ch & 0xFC00)) { +diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl +index e7d47e1..33e775c 100644 +--- a/ext/json/parser/parser.rl ++++ b/ext/json/parser/parser.rl +@@ -393,6 +393,7 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) + { + char *p = string, *pe = string, *unescape; + int unescape_len; ++ char buf[4]; + + while (pe < stringEnd) { + if (*pe == '\\') { +@@ -425,7 +426,6 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd) + if (pe > stringEnd - 4) { + return Qnil; + } else { +- char buf[4]; + UTF32 ch = unescape_unicode((unsigned char *) ++pe); + pe += 3; + if (UNI_SUR_HIGH_START == (ch & 0xFC00)) { diff --git a/ruby-1.9.3-prevent-optimizing-sp.patch b/ruby-1.9.3-prevent-optimizing-sp.patch new file mode 100644 index 0000000..085d7f8 --- /dev/null +++ b/ruby-1.9.3-prevent-optimizing-sp.patch @@ -0,0 +1,53 @@ +Index: ChangeLog +=================================================================== +--- ChangeLog (revision 34277) ++++ ChangeLog (revision 34278) +@@ -1,3 +1,13 @@ ++Thu Jan 12 13:51:00 2012 NARUSE, Yui ++ ++ * cont.c (cont_restore_0): prevent optimizing out `sp'. sp is used for ++ reserving a memory space with ALLOCA_N for restoring machine stack ++ stored in cont->machine_stack, but clang optimized out it (and ++ maybe #5851 is also caused by this). ++ This affected TestContinuation#test_check_localvars. ++ ++ * cont.c (cont_restore_1): revert workaround introduced in r32201. ++ + Mon Oct 10 22:33:12 2011 KOSAKI Motohiro + + * test/-ext-/old_thread_select/test_old_thread_select.rb: +Index: cont.c +=================================================================== +--- cont.c (revision 34277) ++++ cont.c (revision 34278) +@@ -669,10 +669,9 @@ + } + #endif + if (cont->machine_stack_src) { +- size_t i; + FLUSH_REGISTER_WINDOWS; +- for (i = 0; i < cont->machine_stack_size; i++) +- cont->machine_stack_src[i] = cont->machine_stack[i]; ++ MEMCPY(cont->machine_stack_src, cont->machine_stack, ++ VALUE, cont->machine_stack_size); + } + + #ifdef __ia64 +@@ -742,7 +741,7 @@ + if (&space[0] > end) { + # ifdef HAVE_ALLOCA + volatile VALUE *sp = ALLOCA_N(VALUE, &space[0] - end); +- (void)sp; ++ space[0] = *sp; + # else + cont_restore_0(cont, &space[0]); + # endif +@@ -758,7 +757,7 @@ + if (&space[STACK_PAD_SIZE] < end) { + # ifdef HAVE_ALLOCA + volatile VALUE *sp = ALLOCA_N(VALUE, end - &space[STACK_PAD_SIZE]); +- (void)sp; ++ space[0] = *sp; + # else + cont_restore_0(cont, &space[STACK_PAD_SIZE-1]); + # endif diff --git a/ruby.spec b/ruby.spec index e931852..5b4e22b 100644 --- a/ruby.spec +++ b/ruby.spec @@ -1,7 +1,7 @@ %global major_version 1 %global minor_version 9 %global teeny_version 3 -%global patch_level 125 +%global patch_level 0 %global major_minor_version %{major_version}.%{minor_version} @@ -51,7 +51,7 @@ Summary: An interpreter of object-oriented scripting language Name: ruby Version: %{ruby_version_patch_level} -Release: 1%{?dist} +Release: 7%{?dist} Group: Development/Languages License: Ruby or BSD URL: http://ruby-lang.org/ @@ -83,6 +83,12 @@ Patch8: ruby-1.9.3-custom-rubygems-location.patch # Add support for installing binary extensions according to FHS. # https://github.com/rubygems/rubygems/issues/210 Patch9: rubygems-1.8.11-binary-extensions.patch +# Fixes segfaults when build with GCC 4.7. +# http://bugs.ruby-lang.org/issues/5851 +Patch10: ruby-1.9.3-prevent-optimizing-sp.patch +# Fixes json encoding failures when build with GCC 4.7. +# http://bugs.ruby-lang.org/issues/5888 +Patch11: ruby-1.9.3-fix-json-parser.patch # Make mkmf verbose by default Patch12: ruby-1.9.3-mkmf-verbose.patch @@ -310,6 +316,8 @@ Tcl/Tk interface for the object-oriented scripting language Ruby. %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 +%patch11 -p1 %patch12 -p1 %build @@ -426,9 +434,7 @@ sed -i '2 a\ s.require_paths = ["lib"]' %{buildroot}/%{gem_dir}/specifications/minitest-%{minitest_version}.gemspec %check -# TODO: Investigate the test failures. -# https://bugs.ruby-lang.org/issues/6036 -make check TESTS="-v -x test_pathname.rb -x test_drbssl.rb -x test_parse.rb -x test_x509cert.rb" +make check %post libs -p /sbin/ldconfig @@ -698,9 +704,6 @@ make check TESTS="-v -x test_pathname.rb -x test_drbssl.rb -x test_parse.rb -x t %{ruby_libdir}/tkextlib %changelog -* Mon Feb 20 2012 Vít Ondruch - 1.9.3.125-1 -- Upgrade to Ruby 1.9.3-p125. - * Sun Jan 29 2012 Mamoru Tasaka - 1.9.3.0-7 - Make mkmf.rb verbose by default diff --git a/sources b/sources index d168ab2..e874ffe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e3ea86b9d3fc2d3ec867f66969ae3b92 ruby-1.9.3-p125.tar.gz +8e2fef56185cfbaf29d0c8329fc77c05 ruby-1.9.3-p0.tar.gz