]> TLD Linux GIT Repositories - packages/ruby.git/commitdiff
- merged 2.3.5 from PLD
authorMarcin Krol <hawk@tld-linux.org>
Fri, 19 Jan 2018 14:12:01 +0000 (14:12 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Fri, 19 Jan 2018 14:12:01 +0000 (14:12 +0000)
13 files changed:
arch-specific-dir.patch [deleted file]
custom-rubygems-location.patch
disable-versioned-paths.patch [deleted file]
duplicated-paths.patch
empty-ruby-version.patch [deleted file]
mkmf-verbose.patch
operating_system.rb
ruby-ffs.patch [deleted file]
ruby-posixsh.patch [deleted file]
ruby.spec
site-and-vendor-arch-flags.patch [deleted file]
strip-ccache.patch
x32-asm.patch [deleted file]

diff --git a/arch-specific-dir.patch b/arch-specific-dir.patch
deleted file mode 100644 (file)
index 8440ea7..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From df4253a5b79b63f16f215f2c19f1b9666c4ca01e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
-Date: Thu, 8 Sep 2011 15:30:05 +0200
-Subject: [PATCH] Add configuration arch specific dir flag.
-
----
- Makefile.in      |    1 +
- configure.in     |   20 ++++++++++++++++++++
- tool/mkconfig.rb |    4 +++-
- version.c        |    2 ++
- 4 files changed, 26 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index bcdaf5f..d61b2ee 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -31,6 +31,7 @@ libexecdir = @libexecdir@
- datarootdir = @datarootdir@
- datadir = @datadir@
- arch = @arch@
-+archdir = @archdir@
- sitearch = @sitearch@
- sitedir = @sitedir@
- ruby_version = @ruby_version@
-diff --git a/configure.in b/configure.in
-index 83e5d76..e6dc38c 100644
---- a/configure.in
-+++ b/configure.in
-@@ -2793,6 +2793,15 @@ else
-     RUBY_LIB_VERSION="\"${ruby_version}\""
- fi
- 
-+AC_ARG_WITH(archdir,
-+          AS_HELP_STRING([--with-archdir=DIR], [architecture specific ruby libraries [[LIBDIR/RUBY_BASE_NAME/ARCH]]]),
-+            [archdir=$withval],
-+            [archdir='${rubylibprefix}/${arch}'])
-+dir="${archdir}"
-+until ARCH_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${ARCH_DIR}"; do
-+    dir="${ARCH_DIR}"
-+done
-+
- 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
-     AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
-     RUBY_EXEC_PREFIX=""
-     RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-+    RUBY_ARCH_LIB_PATH="`eval echo "$ARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-     RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-     RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
- else
-     RUBY_EXEC_PREFIX="`eval echo \\"$exec_prefix/\\" | sed 's|^NONE/|'"$prefix"'/|;s|/$||'`"
-     RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-+    RUBY_ARCH_LIB_PATH="`eval echo \\"$ARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-     RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-     RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
- fi
- 
- pat=`echo "$RUBY_LIB_PREFIX/" | tr -c '\012' .`'\(.*\)'
-+AS_CASE(["$RUBY_ARCH_LIB_PATH"],
-+  ["$RUBY_LIB_PREFIX/"*], [
-+    RUBY_ARCH_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_ARCH_LIB_PATH\" : \"$pat\"`"'"'
-+    ],
-+  [
-+    RUBY_ARCH_LIB_PATH="\"${RUBY_ARCH_LIB_PATH}\""
-+    ])
- 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
- fi
- AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, "${RUBY_EXEC_PREFIX}")
- AC_DEFINE_UNQUOTED(RUBY_LIB_PREFIX, ${RUBY_LIB_PREFIX})
-+AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, ${RUBY_ARCH_LIB_PATH})
- if test "x$SITE_DIR" = xno; then
-     AC_DEFINE(NO_RUBY_SITE_LIB)
- else
-@@ -2869,6 +2888,7 @@ fi
- AC_SUBST(arch)dnl
- AC_SUBST(sitearch)dnl
- AC_SUBST(ruby_version)dnl
-+AC_SUBST(archdir)dnl
- AC_SUBST(sitedir)dnl
- AC_SUBST(vendordir)dnl
- 
-diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
-index b707c4b..9780ef2 100755
---- a/tool/mkconfig.rb
-+++ b/tool/mkconfig.rb
-@@ -43,6 +43,7 @@ v_others = []
- continued_name = nil
- continued_line = nil
- path_version = "/$(ruby_version)"
-+archdir_override = "$(vendorlibdir)/$(sitearch)"
- File.foreach "config.status" do |line|
-   next if /^#/ =~ line
-   name = nil
-@@ -77,6 +78,7 @@ File.foreach "config.status" do |line|
-     when /^RUBY_INSTALL_NAME$/; next if $install_name
-     when /^RUBY_SO_NAME$/; next if $so_name
-     when /^arch$/; if val.empty? then val = arch else arch = val end
-+    when /^archdir$/; archdir_override = val; next
-     when /^sitearch/; val = '$(arch)' if val.empty?
-     end
-     case val
-@@ -207,7 +209,7 @@ print(*v_fast)
- print(*v_others)
- print <<EOS
-   CONFIG["rubylibdir"] = "$(rubylibprefix)#{path_version}"
--  CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
-+  CONFIG["archdir"] = "#{archdir_override}"
- EOS
- print <<EOS unless v_disabled["sitedir"]
-   CONFIG["sitelibdir"] = "$(sitedir)#{path_version}"
-diff --git a/version.c b/version.c
-index 59d4e5e..915a0a2 100644
---- a/version.c
-+++ b/version.c
-@@ -47,7 +47,9 @@
- #define RUBY_SITE_LIB2              RUBY_SITE_LIB    "/"RUBY_LIB_VERSION
- #define RUBY_VENDOR_LIB2            RUBY_VENDOR_LIB  "/"RUBY_LIB_VERSION
- #endif
-+#ifndef RUBY_ARCHLIB
- #define RUBY_ARCHLIB                RUBY_LIB         "/"RUBY_ARCH
-+#endif
- #define RUBY_SITE_ARCHLIB           RUBY_SITE_LIB2   "/"RUBY_SITEARCH
- #define RUBY_VENDOR_ARCHLIB         RUBY_VENDOR_LIB2 "/"RUBY_SITEARCH
- #ifdef  RUBY_THINARCH
--- 
-1.7.6.1
-
index 90ad58d46c1717d4e8e1c32768fd40d802cae627..e82f17255ea153b656777495e0da4349e3f0d12f 100644 (file)
@@ -1,46 +1,73 @@
-From b5e9dc3683cb085aa57e7b12c35a4f21b2cc1482 Mon Sep 17 00:00:00 2001
+From 94da59aafacc6a9efe829529eb51385588d6f149 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
 Date: Fri, 11 Nov 2011 13:14:45 +0100
 Subject: [PATCH] Allow to install RubyGems into custom location, outside of
  Ruby tree.
 
 ---
- configure.in      | 8 ++++++++
- tool/rbinstall.rb | 9 +++++++++
- version.c         | 4 ++++
- 3 files changed, 21 insertions(+)
+ configure.in            | 5 +++++
+ loadpath.c              | 4 ++++
+ template/verconf.h.tmpl | 3 +++
+ tool/rbinstall.rb       | 9 +++++++++
+ 4 files changed, 21 insertions(+)
 
 diff --git a/configure.in b/configure.in
-index 1627d12..e064b2b 100644
+index 03a4152..0e371e2 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -3349,6 +3349,13 @@ AC_ARG_WITH(vendorarchdir,
+@@ -4264,6 +4264,10 @@ AC_ARG_WITH(vendorarchdir,
              [vendorarchdir=$withval],
-             [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${multiarch-'${vendorlibdir}/${sitearch}'}])
+             [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}])
  
 +AC_ARG_WITH(rubygemsdir,
 +           AS_HELP_STRING([--with-rubygemsdir=DIR], [custom rubygems directory]),
 +            [rubygemsdir=$withval])
-+if test "$rubygemsdir" != ""; then
-+    AC_DEFINE_UNQUOTED(RUBYGEMS_DIR,"$rubygemsdir" !<verconf>!)
-+fi
 +
- unexpand_shvar rubylibprefix       exec_prefix libdir RUBY_BASE_NAME
- unexpand_shvar rubyarchprefix      exec_prefix libdir arch RUBY_BASE_NAME archlibdir rubylibprefix
- unexpand_shvar rubysitearchprefix  exec_prefix libdir sitearch arch RUBY_BASE_NAME archlibdir sitearchlibdir rubylibprefix
-@@ -3415,6 +3422,7 @@ AC_SUBST(sitearchdir)dnl
+ if test "${LOAD_RELATIVE+set}"; then
+     AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)
+     RUBY_EXEC_PREFIX=''
+@@ -4288,6 +4292,7 @@ AC_SUBST(sitearchdir)dnl
  AC_SUBST(vendordir)dnl
  AC_SUBST(vendorlibdir)dnl
  AC_SUBST(vendorarchdir)dnl
 +AC_SUBST(rubygemsdir)dnl
  
- configure_args=$ac_configure_args
- AC_SUBST(configure_args)dnl
+ AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl
+ AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl
+diff --git a/loadpath.c b/loadpath.c
+index 623dc9d..74c5d9e 100644
+--- a/loadpath.c
++++ b/loadpath.c
+@@ -94,6 +94,10 @@ const char ruby_initial_load_paths[] =
+ #endif
+ #endif
+ 
++#ifdef RUBYGEMS_DIR
++    RUBYGEMS_DIR "\0"
++#endif
++
+     RUBY_LIB "\0"
+ #ifdef RUBY_THINARCH
+     RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+diff --git a/template/verconf.h.tmpl b/template/verconf.h.tmpl
+index 79c003e..34f2382 100644
+--- a/template/verconf.h.tmpl
++++ b/template/verconf.h.tmpl
+@@ -36,6 +36,9 @@
+ % if C["RUBY_SEARCH_PATH"]
+ #define RUBY_SEARCH_PATH              "${RUBY_SEARCH_PATH}"
+ % end
++% if C["rubygemsdir"]
++#define RUBYGEMS_DIR                  "${rubygemsdir}"
++% end
+ %
+ % R = {}
+ % R["ruby_version"] = '"RUBY_LIB_VERSION"'
 diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
-index 92e54c6..c72dfb6 100755
+index b47b6e1..0b99408 100755
 --- a/tool/rbinstall.rb
 +++ b/tool/rbinstall.rb
-@@ -313,6 +313,7 @@ sitelibdir = CONFIG["sitelibdir"]
+@@ -328,6 +328,7 @@ def CONFIG.[](name, mandatory = false)
  sitearchlibdir = CONFIG["sitearchdir"]
  vendorlibdir = CONFIG["vendorlibdir"]
  vendorarchlibdir = CONFIG["vendorarchdir"]
@@ -48,7 +75,7 @@ index 92e54c6..c72dfb6 100755
  mandir = CONFIG["mandir", true]
  docdir = CONFIG["docdir", true]
  configure_args = Shellwords.shellwords(CONFIG["configure_args"])
-@@ -500,7 +501,15 @@ end
+@@ -506,7 +507,15 @@ def CONFIG.[](name, mandatory = false)
  install?(:local, :comm, :lib) do
    prepare "library scripts", rubylibdir
    noinst = %w[README* *.txt *.rdoc *.gemspec]
@@ -63,22 +90,7 @@ index 92e54c6..c72dfb6 100755
 +  end
  end
  
- install?(:local, :arch, :lib) do
-diff --git a/version.c b/version.c
-index 54c4513..d76100b 100644
---- a/version.c
-+++ b/version.c
-@@ -99,6 +99,10 @@ const char ruby_initial_load_paths[] =
- #endif
- #endif
- 
-+#ifdef RUBYGEMS_DIR
-+    RUBYGEMS_DIR "\0"
-+#endif
-+
-     RUBY_LIB "\0"
- #ifdef RUBY_THINARCH
-     RUBY_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+ install?(:local, :comm, :hdr, :'comm-hdr') do
 -- 
-1.8.1.2
+1.8.3.1
 
diff --git a/disable-versioned-paths.patch b/disable-versioned-paths.patch
deleted file mode 100644 (file)
index 1d0bfea..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From fa1a50ad10814f724b8713865dc222724cb955ab Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
-Date: Thu, 25 Aug 2011 14:33:51 +0200
-Subject: [PATCH] Allow to disable versioned paths.
-
----
- configure.in     |   11 +++++++++++
- tool/mkconfig.rb |    9 ++++++---
- version.c        |   10 ++++++++++
- 3 files changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index e742e74..86cb68f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -2963,6 +2963,17 @@ else
- fi
- AC_SUBST(USE_RUBYGEMS)
- 
-+AC_ARG_ENABLE(versioned-paths,
-+      AS_HELP_STRING([--disable-versioned-paths], [disable paths with version number]),
-+      [enable_versioned_paths="$enableval"], [enable_versioned_paths=yes])
-+if test x"$enable_versioned_paths" = xno; then
-+    AC_DEFINE(DISABLE_VERSIONED_PATHS, 1)
-+    USE_VERSIONED_PATHS=NO
-+else
-+    USE_VERSIONED_PATHS=YES
-+fi
-+AC_SUBST(USE_VERSIONED_PATHS)
-+
- arch_hdrdir="${EXTOUT}/include/${arch}/ruby"
- AS_MKDIR_P("${arch_hdrdir}")
- config_h="${arch_hdrdir}/config.h"
-diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
-index a2221f0..47d8c8f 100755
---- a/tool/mkconfig.rb
-+++ b/tool/mkconfig.rb
-@@ -42,6 +42,7 @@ v_others = []
- vars = {}
- continued_name = nil
- continued_line = nil
-+path_version = "/$(ruby_version)"
- File.foreach "config.status" do |line|
-   next if /^#/ =~ line
-   name = nil
-@@ -138,6 +139,8 @@ File.foreach "config.status" do |line|
-     case name
-     when "ruby_version"
-       version = val[/\A"(.*)"\z/, 1]
-+    when /^USE_VERSIONED_PATHS$/
-+      path_version = nil if /NO/ =~ val
-     end
-   end
- #  break if /^CEOF/
-@@ -203,15 +206,15 @@ end
- print(*v_fast)
- print(*v_others)
- print <<EOS
--  CONFIG["rubylibdir"] = "$(rubylibprefix)/$(ruby_version)"
-+  CONFIG["rubylibdir"] = "$(rubylibprefix)#{path_version}"
-   CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
- EOS
- print <<EOS unless v_disabled["sitedir"]
--  CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"
-+  CONFIG["sitelibdir"] = "$(sitedir)#{path_version}"
-   CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
- EOS
- print <<EOS unless v_disabled["vendordir"]
--  CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"
-+  CONFIG["vendorlibdir"] = "$(vendordir)#{path_version}"
-   CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
- EOS
- print <<EOS
-diff --git a/version.c b/version.c
-index 59d4e5e..641dc33 100644
---- a/version.c
-+++ b/version.c
-@@ -38,9 +38,15 @@
- #define RUBY_VENDOR_LIB RUBY_LIB_PREFIX"/vendor_ruby"
- #endif
- 
-+#ifdef DISABLE_VERSIONED_PATHS
-+#define RUBY_LIB                    RUBY_LIB_PREFIX
-+#define RUBY_SITE_LIB2              RUBY_SITE_LIB
-+#define RUBY_VENDOR_LIB2            RUBY_VENDOR_LIB
-+#else
- #define RUBY_LIB                    RUBY_LIB_PREFIX  "/"RUBY_LIB_VERSION
- #define RUBY_SITE_LIB2              RUBY_SITE_LIB    "/"RUBY_LIB_VERSION
- #define RUBY_VENDOR_LIB2            RUBY_VENDOR_LIB  "/"RUBY_LIB_VERSION
-+#endif
- #define RUBY_ARCHLIB                RUBY_LIB         "/"RUBY_ARCH
- #define RUBY_SITE_ARCHLIB           RUBY_SITE_LIB2   "/"RUBY_SITEARCH
- #define RUBY_VENDOR_ARCHLIB         RUBY_VENDOR_LIB2 "/"RUBY_SITEARCH
-@@ -75,8 +81,10 @@ const char ruby_initial_load_paths[] =
-     RUBY_SITE_THIN_ARCHLIB "\0"
- #endif
-     RUBY_SITE_ARCHLIB "\0"
-+#ifndef DISABLE_VERSIONED_PATHS
-     RUBY_SITE_LIB "\0"
- #endif
-+#endif
- 
- #ifndef NO_RUBY_VENDOR_LIB
-     RUBY_VENDOR_LIB2 "\0"
-@@ -84,8 +92,10 @@ const char ruby_initial_load_paths[] =
-     RUBY_VENDOR_THIN_ARCHLIB "\0"
- #endif
-     RUBY_VENDOR_ARCHLIB "\0"
-+#ifndef DISABLE_VERSIONED_PATHS
-     RUBY_VENDOR_LIB "\0"
- #endif
-+#endif
- 
-     RUBY_LIB "\0"
- #ifdef RUBY_THIN_ARCHLIB
--- 
-1.7.7.3
-diff --git a/lib/rdoc/ri/paths.rb b/lib/rdoc/ri/paths.rb
-index a3c65bf..0575730 100644
---- a/lib/rdoc/ri/paths.rb
-+++ b/lib/rdoc/ri/paths.rb
-@@ -11,9 +11,9 @@ module RDoc::RI::Paths
-   version = RbConfig::CONFIG['ruby_version']
- 
-   base    = if RbConfig::CONFIG.key? 'ridir' then
--              File.join RbConfig::CONFIG['ridir'], version
-+              File.join [RbConfig::CONFIG['ridir'], RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? version : nil].compact
-             else
--              File.join RbConfig::CONFIG['datadir'], 'ri', version
-+              File.join [RbConfig::CONFIG['datadir'], 'ri', RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? version : nil].compact
-             end
- 
-   SYSDIR  = File.join base, "system"
-diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
-index cec8c9f..fed14d2 100755
---- a/tool/rbinstall.rb
-+++ b/tool/rbinstall.rb
-@@ -379,7 +379,7 @@ end
- 
- install?(:doc, :rdoc) do
-   if $rdocdir
--    ridatadir = File.join(CONFIG['ridir'], CONFIG['ruby_version'], "system")
-+    ridatadir = File.join([CONFIG['ridir'], RbConfig::CONFIG['USE_VERSIONED_PATHS'] == 'YES' ? RbConfig::CONFIG['ruby_version'] : nil, "system"].compact)
-     prepare "rdoc", ridatadir
-     install_recursive($rdocdir, ridatadir, :mode => $data_mode)
-   end
--- 
-1.7.6
-
index 58d602d13fcc71a4e91407313504ce7746f48d37..eb341075724e084838728c294f7a632e2cd6220d 100644 (file)
@@ -1,49 +1,43 @@
-From e943a89efd63dcfb80a0ab8d9a4db37f523f508e Mon Sep 17 00:00:00 2001
+From e24d97c938c481450ed80ec83e5399595946c1ae Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
 Date: Fri, 8 Feb 2013 22:48:41 +0100
 Subject: [PATCH] Prevent duplicated paths when empty version string is
  configured.
 
 ---
- configure.in |  3 +++
- version.c    | 10 ++++++++++
- 2 files changed, 13 insertions(+)
+ configure.in     |  3 ++-
+ loadpath.c       | 12 ++++++++++++
+ tool/mkconfig.rb |  2 +-
+ 3 files changed, 15 insertions(+), 2 deletions(-)
 
 diff --git a/configure.in b/configure.in
-index 5850bbf..7604bb8 100644
+index db37cd6..ce8d149 100644
 --- a/configure.in
 +++ b/configure.in
-@@ -3367,6 +3367,9 @@ unexpand_shvar exec_prefix         prefix
- if test ${RUBY_LIB_VERSION_STYLE+set}; then
-     AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION_STYLE, $RUBY_LIB_VERSION_STYLE !<verconf>!)
- else
-+    if test "x${ruby_version}" = 'x'; then
-+        AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
-+    fi
-     AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION, [$RUBY_LIB_VERSION] !<verconf>!)
+@@ -4228,7 +4228,8 @@ AS_CASE(["$ruby_version_dir_name"],
+ ruby_version_dir=/'${ruby_version_dir_name}'
+ 
+ if test -z "${ruby_version_dir_name}"; then
+-    AC_MSG_ERROR([No ruby version, No place for bundled libraries])
++    unset ruby_version_dir
++    AC_DEFINE(RUBY_LIB_VERSION_BLANK, 1)
  fi
- AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, ${RUBY_EXEC_PREFIX})
-diff --git a/version.c b/version.c
-index 282960d..54c4513 100644
---- a/version.c
-+++ b/version.c
-@@ -39,9 +39,15 @@
- #define RUBY_VENDOR_LIB RUBY_LIB_PREFIX"/vendor_ruby"
- #endif
  
+ rubylibdir='${rubylibprefix}'${ruby_version_dir}
+diff --git a/loadpath.c b/loadpath.c
+index 9160031..0d4d953 100644
+--- a/loadpath.c
++++ b/loadpath.c
+@@ -65,22 +65,34 @@ const char ruby_initial_load_paths[] =
+     RUBY_SEARCH_PATH "\0"
+ #endif
+ #ifndef NO_RUBY_SITE_LIB
 +#ifdef RUBY_LIB_VERSION_BLANK
-+#define RUBY_LIB                    RUBY_LIB_PREFIX
-+#define RUBY_SITE_LIB2              RUBY_SITE_LIB
-+#define RUBY_VENDOR_LIB2            RUBY_VENDOR_LIB
++    RUBY_SITE_LIB "\0"
 +#else
- #define RUBY_LIB                    RUBY_LIB_PREFIX  "/"RUBY_LIB_VERSION
- #define RUBY_SITE_LIB2              RUBY_SITE_LIB    "/"RUBY_LIB_VERSION
- #define RUBY_VENDOR_LIB2            RUBY_VENDOR_LIB  "/"RUBY_LIB_VERSION
+     RUBY_SITE_LIB2 "\0"
 +#endif
- #ifndef RUBY_ARCH_LIB_FOR
- #define RUBY_ARCH_LIB_FOR(arch)        RUBY_LIB         "/"arch
- #endif
-@@ -77,8 +83,10 @@ const char ruby_initial_load_paths[] =
+ #ifdef RUBY_THINARCH
      RUBY_SITE_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
  #endif
      RUBY_SITE_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
@@ -53,8 +47,12 @@ index 282960d..54c4513 100644
 +#endif
  
  #ifndef NO_RUBY_VENDOR_LIB
++#ifdef RUBY_LIB_VERSION_BLANK
++    RUBY_VENDOR_LIB "\0"
++#else
      RUBY_VENDOR_LIB2 "\0"
-@@ -86,8 +94,10 @@ const char ruby_initial_load_paths[] =
++#endif
+ #ifdef RUBY_THINARCH
      RUBY_VENDOR_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
  #endif
      RUBY_VENDOR_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
@@ -65,6 +63,19 @@ index 282960d..54c4513 100644
  
      RUBY_LIB "\0"
  #ifdef RUBY_THINARCH
+diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
+index 07076d4..35e6c3c 100755
+--- a/tool/mkconfig.rb
++++ b/tool/mkconfig.rb
+@@ -122,7 +122,7 @@ def config.write(arg)
+     val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump
+     case name
+     when /^prefix$/
+-      val = "(TOPDIR || DESTDIR + #{val})"
++      val = "(((TOPDIR && TOPDIR.empty?) ? nil : TOPDIR) || DESTDIR + #{val})"
+     when /^ARCH_FLAG$/
+       val = "arch_flag || #{val}" if universal
+     when /^UNIVERSAL_ARCHNAMES$/
 -- 
-1.8.1.2
+1.9.0
 
diff --git a/empty-ruby-version.patch b/empty-ruby-version.patch
deleted file mode 100644 (file)
index 0e2b2d6..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From c9b2eff36728266052ccfff54d3ac0a0624fd0f1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
-Date: Thu, 14 Feb 2013 11:50:41 +0100
-Subject: [PATCH 1/2] Use File.join insteado of manual path creation.
-
-This prevents issues, when File.join in #new_default_spec removes
-superfluous slashes while they are kept in expected paths. E.g. the test
-would fail if ruby configuration specifies --with-ruby-version=''.
----
- test/rubygems/test_gem_commands_contents_command.rb | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/test/rubygems/test_gem_commands_contents_command.rb b/test/rubygems/test_gem_commands_contents_command.rb
-index 60df53f..35c9631 100644
---- a/test/rubygems/test_gem_commands_contents_command.rb
-+++ b/test/rubygems/test_gem_commands_contents_command.rb
-@@ -140,10 +140,10 @@ lib/foo.rb
-       @cmd.execute
-     end
- 
--    expected = %W[
--      #{Gem::ConfigMap[:bindir]}/default_command
--      #{Gem::ConfigMap[:rubylibdir]}/default/gem.rb
--      #{Gem::ConfigMap[:archdir]}/default_gem.so
-+    expected = [
-+      File.join(Gem::ConfigMap[:bindir], 'default_command'),
-+      File.join(Gem::ConfigMap[:rubylibdir], 'default/gem.rb'),
-+      File.join(Gem::ConfigMap[:archdir], 'default_gem.so')
-     ].sort.join "\n"
- 
-     assert_equal expected, @ui.output.chomp
--- 
-1.8.1.2
-
index de78ad872e5c342483e29f5778a557d1ebd95590..ccbd97201808694ba6eca90a005b41ea06accc2a 100644 (file)
@@ -1,4 +1,4 @@
-From ec16398159a161fc77436b4855d489f193b2515b Mon Sep 17 00:00:00 2001
+From 28cc0749d6729aa2444661ee7b411e183fe220b0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
 Date: Mon, 19 Nov 2012 15:14:51 +0100
 Subject: [PATCH] Verbose mkmf.
@@ -8,10 +8,10 @@ Subject: [PATCH] Verbose mkmf.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/lib/mkmf.rb b/lib/mkmf.rb
-index 4b6c52e..67a15ee 100644
+index 682eb46..e6b1445 100644
 --- a/lib/mkmf.rb
 +++ b/lib/mkmf.rb
-@@ -1777,7 +1777,7 @@ SRC
+@@ -1892,7 +1892,7 @@ def configuration(srcdir)
  SHELL = /bin/sh
  
  # V=0 quiet, V=1 verbose.  other values don't work.
@@ -21,5 +21,5 @@ index 4b6c52e..67a15ee 100644
  Q = $(Q1:0=@)
  ECHO1 = $(V:1=@#{CONFIG['NULLCMD']})
 -- 
-1.8.1.2
+1.8.3.1
 
index c3b19d6b94a8217972b6c9fdd28378515a437725..4b2903dbb29b7b5b7d667aa8f3230777c2dac77f 100644 (file)
@@ -6,11 +6,38 @@ module Gem
     # E.g. for '/usr/share/ruby', 'ruby', it returns '/usr'
 
     def previous_but_one_dir_to(path, dir)
+      return unless path
+
       split_path = path.split(File::SEPARATOR)
       File.join(split_path.take_while { |one_dir| one_dir !~ /^#{dir}$/ }[0..-2])
     end
     private :previous_but_one_dir_to
 
+    ##
+    # Detects --install-dir option specified on command line.
+
+    def opt_install_dir?
+      @opt_install_dir ||= ARGV.include?('--install-dir') || ARGV.include?('-i')
+    end
+    private :opt_install_dir?
+
+    ##
+    # Detects --build-root option specified on command line.
+
+    def opt_build_root?
+      @opt_build_root ||= ARGV.include?('--build-root')
+    end
+    private :opt_build_root?
+
+    ##
+    # Tries to detect, if arguments and environment variables suggest that
+    # 'gem install' is executed from rpmbuild.
+
+    def rpmbuild?
+      @rpmbuild ||= ENV['RPM_PACKAGE_NAME'] && (opt_install_dir? || opt_build_root?)
+    end
+    private :rpmbuild?
+
     ##
     # Default gems locations allowed on FHS system (/usr, /usr/share).
     # The locations are derived from directories specified during build
@@ -18,8 +45,8 @@ module Gem
 
     def default_locations
       @default_locations ||= {
-        :system => previous_but_one_dir_to(ConfigMap[:vendordir], ConfigMap[:RUBY_INSTALL_NAME]),
-        :local => previous_but_one_dir_to(ConfigMap[:sitedir], ConfigMap[:RUBY_INSTALL_NAME])
+        :system => previous_but_one_dir_to(RbConfig::CONFIG['vendordir'], RbConfig::CONFIG['RUBY_INSTALL_NAME']),
+        :local => previous_but_one_dir_to(RbConfig::CONFIG['sitedir'], RbConfig::CONFIG['RUBY_INSTALL_NAME'])
       }
     end
 
@@ -30,18 +57,30 @@ module Gem
     def default_dirs
       @libdir ||= case RUBY_PLATFORM
       when 'java'
-        ConfigMap[:datadir]
+        RbConfig::CONFIG['datadir']
       else
-        ConfigMap[:libdir]
+        RbConfig::CONFIG['libdir']
       end
 
-      @default_dirs ||= Hash[default_locations.collect do |destination, path|
-        [destination, {
-          :bin_dir => File.join(path, ConfigMap[:bindir].split(File::SEPARATOR).last),
-          :gem_dir => File.join(path, ConfigMap[:datadir].split(File::SEPARATOR).last, 'gems'),
-          :ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
-        }]
-      end]
+      @default_dirs ||= default_locations.inject(Hash.new) do |hash, location|
+        destination, path = location
+
+        hash[destination] = if path
+          {
+            :bin_dir => File.join(path, RbConfig::CONFIG['bindir'].split(File::SEPARATOR).last),
+            :gem_dir => File.join(path, RbConfig::CONFIG['datadir'].split(File::SEPARATOR).last, 'gems'),
+            :ext_dir => File.join(path, @libdir.split(File::SEPARATOR).last, 'gems')
+          }
+        else
+          {
+            :bin_dir => '',
+            :gem_dir => '',
+            :ext_dir => ''
+          }
+        end
+
+        hash
+      end
     end
 
     ##
@@ -57,7 +96,9 @@ module Gem
     # RubyGems default overrides.
 
     def default_dir
-      if Process.uid == 0
+      if opt_build_root?
+        Gem.default_dirs[:system][:gem_dir]
+      elsif Process.uid == 0
         Gem.default_dirs[:local][:gem_dir]
       else
         Gem.user_dir
@@ -70,7 +111,9 @@ module Gem
     end
 
     def default_bindir
-      if Process.uid == 0
+      if opt_build_root?
+        Gem.default_dirs[:system][:bin_dir]
+      elsif Process.uid == 0
         Gem.default_dirs[:local][:bin_dir]
       else
         File.join [Dir.home, 'bin']
@@ -78,8 +121,26 @@ module Gem
     end
 
     def default_ext_dir_for base_dir
-      dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
-      dirs && File.join(dirs.last[:ext_dir], RbConfig::CONFIG['RUBY_INSTALL_NAME'])
+      dir = if rpmbuild?
+        build_dir = base_dir.chomp Gem.default_dirs[:system][:gem_dir]
+        if build_dir != base_dir
+          File.join build_dir, Gem.default_dirs[:system][:ext_dir]
+        end
+      else
+        dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
+        dirs && dirs.last[:ext_dir]
+      end
+      dir && File.join(dir, RbConfig::CONFIG['RUBY_INSTALL_NAME'])
+    end
+
+    # This method should be available since RubyGems 2.2 until RubyGems 3.0.
+    # https://github.com/rubygems/rubygems/issues/749
+    if method_defined? :install_extension_in_lib
+      remove_method :install_extension_in_lib
+
+      def install_extension_in_lib
+        false
+      end
     end
   end
 end
diff --git a/ruby-ffs.patch b/ruby-ffs.patch
deleted file mode 100644 (file)
index 73e9b9d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur ruby-1.9.2-p290-o//configure.in ruby-1.9.2-p290/configure.in
---- ruby-1.9.2-p290-o//configure.in    2011-08-27 20:31:47.000000000 -0600
-+++ ruby-1.9.2-p290/configure.in       2011-08-27 20:35:03.000000000 -0600
-@@ -1184,7 +1184,7 @@
- else
-   AC_LIBOBJ([signbit])
- fi
--AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess\
-+AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess ffs\
-             truncate ftruncate ftello chsize times utimes utimensat fcntl lockf lstat\
-             truncate64 ftruncate64 ftello64 fseeko fseeko64 \
-             link symlink readlink readdir_r fsync fdatasync fchown\
diff --git a/ruby-posixsh.patch b/ruby-posixsh.patch
deleted file mode 100644 (file)
index 66039c8..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
---- ruby-2.0.0-p481/configure.in.orig  2014-08-29 20:47:53.036620911 +0200
-+++ ruby-2.0.0-p481/configure.in       2014-08-30 16:07:42.010367205 +0200
-@@ -3241,37 +3241,37 @@
- 
- shvar_to_cpp() {
-     var="$1" val="$2"
--    exec_prefix_pat="`echo \"${exec_prefix}\" | sed 's/\\./\\\\./g'`"
--    arch_pat="`echo \"${arch}\" | sed 's/\\./\\\\./g'`"
--    sitearch_pat="`echo \"${sitearch}\" | sed 's/\\./\\\\./g'`"
--    val="`echo '\"'\"${val}\"'\"' |
-+    exec_prefix_pat="$(echo "${exec_prefix}" | sed 's/\./\\./g')"
-+    arch_pat="$(echo "${arch}" | sed 's/\./\\./g')"
-+    sitearch_pat="$(echo "${sitearch}" | sed 's/\./\\./g')"
-+    val="$(echo '"'"${val}"'"' |
-       sed \
--          -e 's/\${\([[A-Z][A-Z_]]*\)}/\"\1\"/g' \
--          -e 's|\${sitearchlibdir}|'\"${sitearchlibdir}|g\" \
--          -e 's|\${sitearchincludedir}|'\"${sitearchincludedir}|g\" \
--          -e 's|\${archlibdir}|'\"${archlibdir}|g\" \
--          -e 's|\${archincludedir}|'\"${archincludedir}|g\" \
--          -e 's|\${libdir}|'\"${libdir}|g\" \
--          -e 's/\${ruby_version}/\"RUBY_LIB_VERSION\"/g' \
--          -e 's/\${arch}/\"arch\"/g' \
--          -e 's/\${sitearch}/\"arch\"/g' \
--          -e 's/\${vendorarchdir}/\"RUBY_VENDOR_ARCH_LIB\"/g' \
--          -e 's/\${sitearchdir}/\"RUBY_SITE_ARCH_LIB\"/g' \
--          -e 's/\${vendorlibdir}/\"RUBY_VENDOR_LIB2\"/g' \
--          -e 's/\${sitelibdir}/\"RUBY_SITE_LIB2\"/g' \
--          -e 's/\${vendordir}/\"RUBY_VENDOR_LIB\"/g' \
--          -e 's/\${sitedir}/\"RUBY_SITE_LIB\"/g' \
--          -e 's/\${rubylibdir}/\"RUBY_LIB\"/g' \
--          -e 's/\${rubylibprefix}/\"RUBY_LIB_PREFIX\"/g' \
--          -e 's/\${rubyarchprefix}/\"RUBY_ARCH_PREFIX_FOR(arch)\"/g' \
--          -e 's/\${rubysitearchprefix}/\"RUBY_SITEARCH_PREFIX_FOR(arch)\"/g' \
--          -e 's/\${exec_prefix}/\"RUBY_EXEC_PREFIX\"/g' \
--          -e \"s|${exec_prefix_pat}/|\"'\"RUBY_EXEC_PREFIX\"/|g' \
--          -e \"s|${arch_pat}|\"'\"arch\"|g' \
--          -e \"s|${sitearch_pat}|\"'\"sitearch\"|g' \
--          -e 's|^\\\"NONE/|RUBY_EXEC_PREFIX\\\"/|' \
--          -e 's|^\\\"NONE\\\"|\\\"'\"${prefix}\"'\\\"|' \
--          -e 's/^\\\"\\\"\(.\)/\1/;s/\(.\)\\\"\\\"$/\1/'
--      `"
-+          -e 's/\${\([[A-Z][A-Z_]]*\)}/"\1"/g' \
-+          -e 's|\${sitearchlibdir}|'"${sitearchlibdir}|g" \
-+          -e 's|\${sitearchincludedir}|'"${sitearchincludedir}|g" \
-+          -e 's|\${archlibdir}|'"${archlibdir}|g" \
-+          -e 's|\${archincludedir}|'"${archincludedir}|g" \
-+          -e 's|\${libdir}|'"${libdir}|g" \
-+          -e 's/\${ruby_version}/"RUBY_LIB_VERSION"/g' \
-+          -e 's/\${arch}/"arch"/g' \
-+          -e 's/\${sitearch}/"arch"/g' \
-+          -e 's/\${vendorarchdir}/"RUBY_VENDOR_ARCH_LIB"/g' \
-+          -e 's/\${sitearchdir}/"RUBY_SITE_ARCH_LIB"/g' \
-+          -e 's/\${vendorlibdir}/"RUBY_VENDOR_LIB2"/g' \
-+          -e 's/\${sitelibdir}/"RUBY_SITE_LIB2"/g' \
-+          -e 's/\${vendordir}/"RUBY_VENDOR_LIB"/g' \
-+          -e 's/\${sitedir}/"RUBY_SITE_LIB"/g' \
-+          -e 's/\${rubylibdir}/"RUBY_LIB"/g' \
-+          -e 's/\${rubylibprefix}/"RUBY_LIB_PREFIX"/g' \
-+          -e 's/\${rubyarchprefix}/"RUBY_ARCH_PREFIX_FOR(arch)"/g' \
-+          -e 's/\${rubysitearchprefix}/"RUBY_SITEARCH_PREFIX_FOR(arch)"/g' \
-+          -e 's/\${exec_prefix}/"RUBY_EXEC_PREFIX"/g' \
-+          -e "s|${exec_prefix_pat}/|"'"RUBY_EXEC_PREFIX"/|g' \
-+          -e "s|${arch_pat}|"'"arch"|g' \
-+          -e "s|${sitearch_pat}|"'"sitearch"|g' \
-+          -e 's|^\\"NONE/|RUBY_EXEC_PREFIX\\"/|' \
-+          -e 's|^\\"NONE\\"|\\"'"${prefix}"'\\"|' \
-+          -e 's/^\\"\\"\(.\)/\1/;s/\(.\)\\"\\"$/\1/'
-+      )"
-     eval $var='"$val"'
- }
-@@ -3289,7 +3289,7 @@
-       fi
-     done
-     expr=['s/${[^${}"]*}/"&"/g;'"${expr};"'s/"\(\${[^${}"]*}\)"/\1/g']
--    eval $var='"`echo \"\\\"${'$var'}\\\"\" | sed \"$expr;s/\\\"//g\"`"'
-+    eval $var='"$(echo "\"${'$var'}\"" | sed "$expr;s/\"//g")"'
- }
- 
- rubylibprefix='${libdir}/${RUBY_BASE_NAME}'
index c5564a3dead7f5e184b9e4b6d39fbb899e404bc6..bc01ec2eb134c622220b257b765829220f24a73a 100644 (file)
--- a/ruby.spec
+++ b/ruby.spec
@@ -2,39 +2,21 @@
 #      - include ext/ in docs
 #      - replace ri with fastri
 #      - patch ri to search multiple indexes (one per package), so RPMs can install ri docs
-#   - fix inconsistencies with versioned vs not-versioned dirs (see dirname hacks in configure)
-# - vendor *noarch* packages get installed to /usr/share/ruby/vendor_ruby/PACKAGE, which
-#   will be installed fine on ruby < 2.0, but not usable as dir not in included
-#   in load_path, how to force vendor packages built with ruby 2.0 pull ruby 2.0?
-#   for packages with gem deps it's simple: ruby-listen-2.7.1-0.2.noarch marks ruby-modules-2.0.0.451-0.17.x86_64 (cap /usr/share/gems/specifications)
-#   add that dir to legacy loadpath?
 #
 # Conditional build:
 %bcond_without doc             # skip (time-consuming) docs generating; intended for speed up test builds
-%bcond_with    tk              # build Tk bindings (tcl8.6 is not supported)
+%bcond_with    tk              # Tk bindings
 %bcond_without batteries       # Don't include rubygems, json, rake, minitest
 %bcond_without default_ruby    # use this Ruby as default system Ruby
 %bcond_with    bootstrap       # build bootstrap version
+%bcond_with    tests           # build without tests
 
-%define                rel             1
-%define                ruby_version    2.0
-%define                basever         2.0.0
-%define                patchlevel      645
-
+%define                rel             4
+%define                ruby_version    2.3
+%define                patchlevel      5
+%define                pkg_version     %{ruby_version}.%{patchlevel}
 %define                ruby_suffix %{!?with_default_ruby:%{ruby_version}}
-%define                doc_version     2_0_0
-
-%define                bigdecimal_ver  1.2.0
-%define                io_console_ver  0.4.2
-%define                irb_ver         0.9.6
-%define                json_ver        1.7.7
-%define                minitest_ver    4.3.2
-%define                psych_ver       2.0.0
-%define                rake_ver        0.9.6
-%define                rdoc_ver        4.0.0
-%define                rubygems_ver    2.0.14
-%define                test_unit_ver   2.0.0.0
-
+%define                doc_version     2_3_4
 %define                oname   ruby
 Summary:       Ruby - interpreted scripting language
 Summary(ja.UTF-8):     オブジェクト指向言語Rubyインタプリタ
@@ -42,57 +24,66 @@ Summary(pl.UTF-8):  Ruby - interpretowany język skryptowy
 Summary(pt_BR.UTF-8):  Linguagem de script orientada a objeto
 Summary(zh_CN.UTF-8):  ruby - 一种快速高效的面向对象脚本编程语言
 Name:          ruby%{ruby_suffix}
-Version:       %{basever}.%{patchlevel}
+Version:       %{pkg_version}
 Release:       %{rel}
 Epoch:         1
-# Public Domain for example for: include/ruby/st.h, strftime.c, ...
-License:       (Ruby or BSD) and Public Domain
+# Public Domain for example for: include/ruby/st.h, strftime.c, missing/*, ...
+# MIT and CCO: ccan/*
+# zlib: ext/digest/md5/md5.*, ext/nkf/nkf-utf8/nkf.c
+# UCD: some of enc/trans/**/*.src
+License:       (Ruby or BSD) and Public Domain and MIT and CC0 and zlib and UCD
 Group:         Development/Languages
-Source0:       https://ftp.ruby-lang.org/pub/ruby/2.0/%{oname}-%{basever}-p%{patchlevel}.tar.bz2
-# Source0-md5: d576240c97cfcc3ed9bdc457eb1e8280
-Source1:       http://www.ruby-doc.org/download/%{oname}-doc-bundle.tar.gz
-# Source1-md5: ad1af0043be98ba1a4f6d0185df63876
+# https://www.ruby-lang.org/en/downloads/
+Source0:       https://cache.ruby-lang.org/pub/ruby/%{ruby_version}/%{oname}-%{pkg_version}.tar.xz
+# Source0-md5: 7bc4c199647f9eceb66c9611f11d6da0
 Source2:       http://www.ruby-doc.org/downloads/%{oname}_%{doc_version}_stdlib_rdocs.tgz
-# Source2-md5: 34d3770c9e62882e5f9199e1e1cb81bf
+# Source2-md5: 7eaa030a197aec91f601810e5956f01d
 Source3:       http://www.ruby-doc.org/downloads/%{oname}_%{doc_version}_core_rdocs.tgz
-# Source3-md5: 00979cf2f60f8d4b4286984799b3579d
+# Source3-md5: ea7afde12ccbb7e09db91294a3481696
 Source100:     ftp://ftp.ruby-lang.org/pub/ruby/1.8/%{oname}-1.8.7-p330.tar.gz
 # Source100-md5:       50a49edb787211598d08e756e733e42e
 Source4:       rdoc.1
 Source5:       testrb.1
 Source6:       operating_system.rb
 Patch0:                %{oname}-lib64.patch
-Patch1:                %{oname}-ffs.patch
+#Patch1:               %{oname}-ffs.patch
 Patch2:                fix-bison-invocation.patch
 Patch3:                mkmf-verbose.patch
 Patch4:                strip-ccache.patch
-Patch5:                duplicated-paths.patch
-Patch7:                empty-ruby-version.patch
+Patch5:                ruby-version.patch
+Patch6:                duplicated-paths.patch
+# obsolete?
 Patch8:                rubygems-2.0.0-binary-extensions.patch
 Patch9:                custom-rubygems-location.patch
-Patch10:       %{oname}-posixsh.patch
-Patch11:       x32-asm.patch
+Patch12:       archlibdir.patch
 URL:           http://www.ruby-lang.org/
-BuildRequires: autoconf >= 2.60
+BuildRequires: autoconf >= 2.67
 BuildRequires: automake
 BuildRequires: bison >= 1.875
 BuildRequires: db-devel
 BuildRequires: gdbm-devel >= 1.8.3
+BuildRequires: gmp-devel
 BuildRequires: libffi-devel
 BuildRequires: ncurses-devel
-BuildRequires: openssl-devel
+BuildRequires: openssl-devel >= 0.9.6
 BuildRequires: pkgconfig
 BuildRequires: readline-devel >= 4.2
-# bootstrap needs ruby binary, erb module
-%{!?with_bootstrap:BuildRequires:      ruby-modules}
-%{!?with_bootstrap:BuildRequires:      ruby}
 BuildRequires: sed >= 4.0
+BuildRequires: systemtap-sdt-devel
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
 BuildRequires: yaml-devel
+BuildRequires: zlib-devel
+%if %{without bootstrap}
+# bootstrap needs ruby binary, erb module
+BuildRequires: ruby
+BuildRequires: ruby-modules
+%endif
 %if %{with tk}
-BuildRequires: tk-devel
+BuildRequires: tk-devel < 8.7
+BuildRequires: tk-devel >= 8.4
 %endif
 Requires(post,postun): /sbin/ldconfig
-Provides:      ruby(ver) = %{ruby_version}
 Obsoletes:     ruby-REXML <= 2.4.0-2
 Obsoletes:     ruby-doc < 1.8.4
 Obsoletes:     ruby-fastthread <= 0.6.3
@@ -101,6 +92,20 @@ Conflicts:  ruby-activesupport < 2.3.11-2
 Conflicts:     ruby-activesupport2 < 2.3.11-2
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define        bigdecimal_ver          1.2.8
+%define        io_console_ver          0.4.5
+%define        irb_ver                 0.9.6
+%define        json_ver                1.8.3.1
+%define        minitest_ver            5.8.5
+%define        psych_ver               2.1.0.1
+%define        rake_ver                10.4.2
+%define        rdoc_ver                4.2.1
+%define        rubygems_ver            2.5.2.1
+%define        test_unit_ver           3.1.5
+%define        power_assert_ver        0.2.6
+%define        did_you_mean_ver        1.0.0
+%define        net_telnet_ver          0.1.1
+
 %define        ruby_ridir              %{_datadir}/ri/system
 %define        gem_dir                 %{_datadir}/gems
 %define        gem_libdir              %{_libdir}/gems/%{oname}
@@ -123,27 +128,12 @@ BuildRoot:        %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %define        ruby_vendorarchdir      %{_libdir}/%{oname}/%{vendordir}/%{ruby_version}
 %define        ruby_vendorlibdir       %{_datadir}/%{oname}/%{vendordir}
 
-# TODO: drop legacy loadpaths after all ruby modules rebuilt in Th
-%define        legacy_libdir           %{_libdir}/%{oname}/%{ruby_version}
-%define        legacy_archdir          %{_libdir}/%{oname}/%{ruby_version}/%{_target_cpu}-linux
-%define        legacy_sitedir          %{_libdir}/%{oname}/%{sitedir}
-%define        legacy_sitelibdir       %{_libdir}/%{oname}/%{sitedir}/%{ruby_version}
-%define        legacy_sitearchdir      %{_libdir}/%{oname}/%{sitedir}/%{ruby_version}/%{_target_cpu}-linux
-%define        legacy_vendordir        %{_libdir}/%{oname}/%{vendordir}
-%define        legacy_vendorlibdir     %{_libdir}/%{oname}/%{vendordir}/%{ruby_version}
-%define        legacy_vendorarchdir    %{_libdir}/%{oname}/%{vendordir}/%{ruby_version}/%{_target_cpu}-linux
-
-%define        legacy_siteloadpath     %{legacy_sitelibdir}\\0%{legacy_sitearchdir}\\0%{legacy_sitedir}
-%define        legacy_vendorloadpath   %{legacy_vendorarchdir}
-%define        legacy_loadpath         %{legacy_archdir}
-%define        legacy_loadpaths        %{legacy_siteloadpath}\\0%{legacy_vendorloadpath}\\0%{legacy_loadpath}
-
 # bleh, some nasty (gcc or ruby) bug still not fixed
 # (SEGV or "unexpected break" on miniruby run during build)
-%define                specflags_ia64  -O0
+%define        specflags_ia64  -O0
 
 # ruby needs frame pointers for correct exception handling
-%define                specflags_ia32  -fno-omit-frame-pointer
+%define        specflags_ia32  -fno-omit-frame-pointer
 
 %description
 Ruby is the interpreted scripting language for quick and easy
@@ -181,17 +171,9 @@ Summary(pl.UTF-8): Standardowe moduły i narzędzia dla języka Ruby
 Group:         Development/Languages
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Suggests:      ruby-rubygems
-Provides:      ruby-bigdecimal = %{bigdecimal_ver}
-Provides:      ruby-io-console = %{io_console_ver}
 # workaround for autodep generator not getting version properly
 Provides:      ruby(abi) = %{ruby_version}
 Provides:      ruby-modules(ver) = %{ruby_version}
-%if %{with batteries}
-Provides:      ruby-minitest = %{minitest_ver}
-Obsoletes:     ruby-minitest <= 1.5.0
-%endif
-# FIXME later
-Provides:      ruby(abi) = %{ruby_version}
 %requires_ge_to        openssl openssl-devel
 
 %description modules
@@ -223,6 +205,7 @@ Group:              Development/Languages
 Requires:      %{name}-modules = %{epoch}:%{version}-%{release}
 Requires:      gcc
 Requires:      glibc-devel
+Requires:      gmp-devel
 Requires:      pkgconfig
 
 %description devel
@@ -294,10 +277,10 @@ Przykłady programów w języku Ruby.
 %package irb
 Summary:       The Interactive Ruby
 Version:       %{irb_ver}
-Release:       %{basever}.%{patchlevel}.%{rel}
+Release:       %{pkg_version}.%{rel}
 Epoch:         0
 Group:         Development/Languages
-Requires:      %{name}-modules = 1:%{basever}.%{patchlevel}-%{rel}
+Requires:      %{name}-modules = 1:%{pkg_version}-%{rel}
 Provides:      irb = %{version}-%{release}
 Provides:      ruby(irb) = %{version}-%{release}
 %if "%{_rpmversion}" >= "5"
@@ -312,13 +295,14 @@ from the terminal.
 Summary:       A tool to generate HTML and command-line documentation for Ruby projects
 Summary(pl.UTF-8):     Narzędzie do generowania dokumentacji HTML i linii poleceń dla projektów w Rubym
 Version:       %{rdoc_ver}
-Release:       %{basever}.%{patchlevel}.%{rel}
+Release:       %{pkg_version}.%{rel}
 Epoch:         0
-License:       GPL v2 and Ruby and MIT
+# SIL: lib/rdoc/generator/template/darkfish/css/fonts.css
+License:       GPLv2 and Ruby and MIT and SIL
 Group:         Development/Libraries
-Requires:      %{name}-modules = 1:%{basever}.%{patchlevel}-%{rel}
 Requires:      %{name}-irb >= %{irb_ver}
 Requires:      %{name}-json >= %{json_ver}
+Requires:      %{name}-modules = 1:%{pkg_version}-%{rel}
 Obsoletes:     rdoc <= 0.9.0
 %if "%{_rpmversion}" >= "5"
 BuildArch:     noarch
@@ -338,11 +322,14 @@ wyświetlania dokumentacji online.
 Summary:       RubyGems - the Ruby standard for packaging Ruby libraries
 Summary(pl.UTF-8):     RubyGems - standard Ruby'ego pakietowania bibliotek
 Version:       %{rubygems_ver}
-Release:       %{basever}.%{patchlevel}.%{rel}
+Release:       %{pkg_version}.%{rel}
 Epoch:         0
 License:       Ruby or MIT
 Group:         Development/Libraries
-Requires:      %{name}-modules = 1:%{basever}.%{patchlevel}-%{rel}
+Requires:      %{name}-bigdecimal = %{bigdecimal_ver}-%{pkg_version}.%{rel}
+Requires:      %{name}-io-console = %{io_console_ver}-%{pkg_version}.%{rel}
+Requires:      %{name}-modules = 1:%{pkg_version}-%{rel}
+Requires:      %{name}-psych = %{psych_ver}-%{pkg_version}.%{rel}
 Requires:      %{name}-rdoc >= %{rdoc_ver}
 Suggests:      %{name}-devel
 Provides:      rubygems = %{rubygems_ver}
@@ -362,7 +349,7 @@ zarządzania zewnętrznymi bibliotekami.
 Summary:       Rake is a Make-like program implemented in Ruby
 Summary(pl.UTF-8):     Program typu Make dla języka Ruby
 Version:       %{rake_ver}
-Release:       %{basever}.%{patchlevel}.%{rel}
+Release:       %{pkg_version}.%{rel}
 Epoch:         0
 License:       MIT
 Group:         Development/Languages
@@ -404,9 +391,10 @@ Ma następujące cechy:
 Summary:       JSON library for Ruby
 Summary(pl.UTF-8):     Biblioteka JSON dla języka Ruby
 Version:       %{json_ver}
-Release:       %{basever}.%{patchlevel}.%{rel}
+Release:       %{pkg_version}.%{rel}
 Epoch:         0
-License:       MIT
+# UCD: ext/json/generator/generator.c
+License:       (Ruby or GPLv2) and UCD
 Group:         Development/Languages
 Obsoletes:     ruby-json-rubyforge
 Conflicts:     ruby-modules < 1:1.9.3.429-3
@@ -417,27 +405,171 @@ This is a JSON implementation as a Ruby extension in C.
 %description json -l pl.UTF-8
 Biblioteka JSON dla języka Ruby.
 
-%prep
-%if %{with bootstrap}
-%setup -q -n %{oname}-%{basever}-p%{patchlevel} -a1 -a2 -a3 -a100
-%else
-%setup -q -n %{oname}-%{basever}-p%{patchlevel} -a1 -a2 -a3
+%package minitest
+Summary:       Minitest provides a complete suite of testing facilities
+Version:       %{minitest_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+License:       MIT
+Group:         Development/Libraries
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
+
+%description minitest
+minitest/unit is a small and incredibly fast unit testing framework.
+
+minitest/spec is a functionally complete spec engine.
+
+minitest/benchmark is an awesome way to assert the performance of your
+algorithms in a repeatable manner.
+
+minitest/mock by Steven Baker, is a beautifully tiny mock object
+framework.
+
+minitest/pride shows pride in testing and adds coloring to your test
+output.
+
+%package power_assert
+# The Summary/Description fields are rather poor.
+# https://github.com/k-tsj/power_assert/issues/3
+Summary:       Power Assert for Ruby
+Version:       %{power_assert_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+License:       Ruby or BSD
+Group:         Development/Libraries
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
+
+%description power_assert
+Power Assert shows each value of variables and method calls in the
+expression. It is useful for testing, providing which value wasn't
+correct when the condition is not satisfied.
+
+%package test-unit
+# The Summary/Description fields are rather poor.
+# https://github.com/test-unit/test-unit/issues/73
+Summary:       Improved version of Test::Unit bundled in Ruby 1.8.x
+Version:       %{test_unit_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+Group:         Development/Libraries
+# lib/test/unit/diff.rb is a double license of the Ruby license and PSF license.
+# lib/test-unit.rb is a dual license of the Ruby license and LGPLv2.1 or later.
+License:       (Ruby or BSD) and (Ruby or BSD or Python) and (Ruby or BSD or LGPLv2+)
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
+
+%description test-unit
+Ruby 1.9.x bundles minitest not Test::Unit. Test::Unit bundled in Ruby
+1.8.x had not been improved but unbundled Test::Unit (test-unit) is
+improved actively.
+
+%package did_you_mean
+Summary:       "Did you mean?" experience in Ruby
+Version:       %{did_you_mean_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+License:       MIT
+Group:         Development/Libraries
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
 %endif
+
+%description did_you_mean
+"did you mean?" experience in Ruby: the error message will tell you
+the right one when you misspelled something.
+
+%package net-telnet
+Summary:       Provides telnet client functionality
+Version:       %{net_telnet_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+Group:         Development/Libraries
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
+
+%description net-telnet
+Provides telnet client functionality.
+
+This class also has, through delegation, all the methods of a socket
+object (by default, a TCPSocket, but can be set by the Proxy option to
+new()). This provides methods such as close() to end the session and
+sysread() to read data directly from the host, instead of via the
+waitfor() mechanism. Note that if you do use sysread() directly when
+in telnet mode, you should probably pass the output through
+preprocess() to extract telnet command sequences.
+
+%package bigdecimal
+Summary:       BigDecimal provides arbitrary-precision floating point decimal arithmetic
+Version:       %{bigdecimal_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+License:       GPL+ or Artistic
+Group:         Development/Libraries
+
+%description bigdecimal
+Ruby provides built-in support for arbitrary precision integer
+arithmetic. For example:
+
+42**13 -> 1265437718438866624512
+
+BigDecimal provides similar support for very large or very accurate
+floating point numbers. Decimal arithmetic is also useful for general
+calculation, because it provides the correct answers people
+expect–whereas normal binary floating point arithmetic often
+introduces subtle errors because of the conversion between base 10 and
+base 2.
+
+%package io-console
+Summary:       IO/Console is a simple console utilizing library
+Version:       %{io_console_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+Group:         Development/Libraries
+
+%description io-console
+IO/Console provides very simple and portable access to console. It
+doesn't provide higher layer features, such like curses and readline.
+
+%package psych
+Summary:       A libyaml wrapper for Ruby
+Version:       %{psych_ver}
+Release:       %{pkg_version}.%{rel}
+Epoch:         0
+License:       MIT
+Group:         Development/Libraries
+
+%description psych
+Psych is a YAML parser and emitter. Psych leverages libyaml for its
+YAML parsing and emitting capabilities. In addition to wrapping
+libyaml, Psych also knows how to serialize and de-serialize most Ruby
+objects to and from the YAML format.
+
+%prep
+%setup -q -n %{oname}-%{pkg_version} -a2 -a3 %{?with_bootstrap:-a100}
 %patch0 -p1
-%patch1 -p1
+#%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
-%patch7 -p1
-%patch8 -p1
+%patch6 -p1
+#%patch8 -p1
 %patch9 -p1
-%patch10 -p1
-%patch11 -p1
+%patch12 -p1
 
 # must be regenerated with new bison
 %{__rm} parse.{c,h}
 
+# Remove bundled libraries to be sure they are not used.
+%{__rm} -r ext/psych/yaml
+%{__rm} -r ext/fiddle/libffi*
+
 # Install custom operating_system.rb.
 install -d lib/rubygems/defaults
 cp -p %{SOURCE6} lib/rubygems/defaults
@@ -477,6 +609,7 @@ cd ..
 %configure \
        %{?with_bootstrap:--with-baseruby=%{oname}-1.8.7-p330/miniruby} \
        --program-suffix=%{ruby_suffix} \
+       --with-archlibdir=%{_libdir} \
        --with-rubygemsdir=%{rubygems_dir} \
        --with-rubylibprefix=%{ruby_libdir} \
        --with-rubyarchprefix=%{ruby_archdir} \
@@ -488,12 +621,12 @@ cd ..
        --with-rubyarchhdrdir=%{_includedir}/%{oname}-%{ruby_version} \
        --with-sitearchhdrdir='$(sitehdrdir)/$(arch)' \
        --with-vendorarchhdrdir='$(vendorhdrdir)/$(arch)' \
-       --enable-shared \
-       --enable-pthread \
        --enable-multiarch \
-       --disable-rubygems \
+       --enable-shared \
        --disable-install-doc \
-       --with-ruby-version=''
+       --disable-rpath \
+       --disable-rubygems \
+       --with-ruby-version='' \
 
 %{__make} -j1 main \
        COPY="cp -p" Q= \
@@ -503,6 +636,49 @@ cd ..
 %{__make} -j1 rdoc
 %endif
 
+%if %{with tests}
+# unset these, as testsuite does "git commit" somewhere, which points to pld .spec repo. doh
+unset GIT_DIR GIT_WORK_TREE
+
+unset GIT
+DISABLE_TESTS=""
+
+%ifarch armv7l armv7hl armv7hnl
+# test_call_double(DL::TestDL) fails on ARM HardFP
+# http://bugs.ruby-lang.org/issues/6592
+DISABLE_TESTS="-x test_dl2.rb $DISABLE_TESTS"
+%endif
+
+# test_debug(TestRubyOptions) fails due to LoadError reported in debug mode,
+# when abrt.rb cannot be required (seems to be easier way then customizing
+# the test suite).
+touch abrt.rb
+
+# TestSignal#test_hup_me hangs up the test suite.
+# http://bugs.ruby-lang.org/issues/8997
+sed -i '/def test_hup_me/,/end if Process.respond_to/ s/^/#/' test/ruby/test_signal.rb
+
+# Fix "Could not find 'minitest'" error.
+# http://bugs.ruby-lang.org/issues/9259
+sed -i "/^  gem 'minitest', '~> 4.0'/ s/^/#/" lib/rubygems/test_case.rb
+
+# Segmentation fault.
+# https://bugs.ruby-lang.org/issues/9198
+sed -i '/^  def test_machine_stackoverflow/,/^  end/ s/^/#/' test/ruby/test_exception.rb
+
+# Don't test wrap ciphers to prevent "OpenSSL::Cipher::CipherError: wrap mode
+# not allowed" error.
+# https://bugs.ruby-lang.org/issues/10229
+sed -i '/assert(OpenSSL::Cipher::Cipher.new(name).is_a?(OpenSSL::Cipher::Cipher))/i \
+        next if /wrap/ =~ name' test/openssl/test_cipher.rb
+
+# Test is broken due to SSLv3 disabled in Fedora.
+# https://bugs.ruby-lang.org/issues/10046
+sed -i '/def test_ctx_server_session_cb$/,/^  end$/ s/^/#/' test/openssl/test_ssl_session.rb
+
+%{__make} check TESTS="-v $DISABLE_TESTS"
+%endif
+
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{ruby_rdocdir},%{ruby_ridir}} \
@@ -517,19 +693,31 @@ install -d $RPM_BUILD_ROOT{%{ruby_rdocdir},%{ruby_ridir}} \
 # http://bugs.ruby-lang.org/issues/7807
 sed -i -e 's/Version: \${ruby_version}/Version: %{ruby_version}/' $RPM_BUILD_ROOT%{_pkgconfigdir}/%{oname}-%{ruby_version}.pc
 
-install -d $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{basever}.%{patchlevel}
-cp -Rf sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{basever}.%{patchlevel}
+# Kill bundled certificates, as they should be part of ca-certificates.
+for cert in \
+       Class3PublicPrimaryCertificationAuthority.pem \
+       DigiCertHighAssuranceEVRootCA.pem \
+       EntrustnetSecureServerCertificationAuthority.pem \
+       GeoTrustGlobalCA.pem \
+       AddTrustExternalCARoot.pem \
+       AddTrustExternalCARoot-2048.pem \
+; do
+       %{__rm} $RPM_BUILD_ROOT%{rubygems_dir}/rubygems/ssl_certs/$cert
+done
+
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{pkg_version}
+cp -Rf sample/* $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{pkg_version}
 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_mandir}/man1/rdoc%{ruby_suffix}.1
 cp -p %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1/testrb%{ruby_suffix}.1
 
 %{__rm} -rf $RPM_BUILD_ROOT%{_docdir}/%{name}/html
 
 # detect this runtime, "make install" is affected by operating_system.rb what is installed in system!
-gem_dir=$(./miniruby -I. -Ilib -r rubygems -e 'puts Gem.default_dir')
+gem_dir=$(./miniruby -Ilib -I. -I.ext/common ./tool/runruby.rb -- --disable-gems -r$(basename *-linux*-fake.rb .rb) -r rubygems -e 'puts Gem.default_dir')
 
 # Move gems root into common directory, out of Ruby directory structure.
 install -d $RPM_BUILD_ROOT%{gem_dir}
-mv $RPM_BUILD_ROOT${gem_dir}/{gems,specifications} $RPM_BUILD_ROOT%{gem_dir}
+%{__mv} $RPM_BUILD_ROOT${gem_dir}/{gems,specifications} $RPM_BUILD_ROOT%{gem_dir}
 
 # Move bundled rubygems to %gem_dir
 # make symlinks for io-console and bigdecimal, which are considered to be part of stdlib by other Gems
@@ -538,61 +726,57 @@ mv $RPM_BUILD_ROOT${gem_dir}/{gems,specifications} $RPM_BUILD_ROOT%{gem_dir}
 # as there may came files from other packages as well. actually, unlikely as
 # the links to got system dir and only ruby may package there (other distro
 # packages should go to vendor dirs)
+%if 0
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/rake* $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/rake* $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/lib
 ln -s %{gem_dir}/gems/rake-%{rake_ver}/lib/rake $RPM_BUILD_ROOT%{ruby_libdir}
 ln -s %{gem_dir}/gems/rake-%{rake_ver}/lib/rake.rb $RPM_BUILD_ROOT%{ruby_libdir}
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/rake-%{rake_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/rake-%{rake_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%endif
 
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/rdoc-%{rdoc_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/rdoc* $RPM_BUILD_ROOT%{gem_dir}/gems/rdoc-%{rdoc_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/rdoc* $RPM_BUILD_ROOT%{gem_dir}/gems/rdoc-%{rdoc_ver}/lib
 ln -s %{gem_dir}/gems/rdoc-%{rdoc_ver}/lib/rdoc $RPM_BUILD_ROOT%{ruby_libdir}
 ln -s %{gem_dir}/gems/rdoc-%{rdoc_ver}/lib/rdoc.rb $RPM_BUILD_ROOT%{ruby_libdir}
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/rdoc-%{rdoc_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/rdoc-%{rdoc_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}/lib
 install -d $RPM_BUILD_ROOT%{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/bigdecimal $RPM_BUILD_ROOT%{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libarchdir}/bigdecimal.so $RPM_BUILD_ROOT%{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/bigdecimal $RPM_BUILD_ROOT%{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libarchdir}/bigdecimal.so $RPM_BUILD_ROOT%{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}/lib/bigdecimal $RPM_BUILD_ROOT%{ruby_libdir}/bigdecimal
 ln -s %{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib/bigdecimal.so $RPM_BUILD_ROOT%{ruby_libarchdir}/bigdecimal.so
 
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/io-console-%{io_console_ver}/lib
 install -d $RPM_BUILD_ROOT%{gem_libdir}/io-console-%{io_console_ver}/lib/io
-mv $RPM_BUILD_ROOT%{ruby_libdir}/io $RPM_BUILD_ROOT%{gem_dir}/gems/io-console-%{io_console_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libarchdir}/io/console.so $RPM_BUILD_ROOT%{gem_libdir}/io-console-%{io_console_ver}/lib/io
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/io-console-%{io_console_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/io $RPM_BUILD_ROOT%{gem_dir}/gems/io-console-%{io_console_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libarchdir}/io/console.so $RPM_BUILD_ROOT%{gem_libdir}/io-console-%{io_console_ver}/lib/io
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/io-console-%{io_console_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 ln -s %{gem_dir}/gems/io-console-%{io_console_ver}/lib/io $RPM_BUILD_ROOT%{ruby_libdir}/io
 ln -s %{gem_libdir}/io-console-%{io_console_ver}/lib/io/console.so $RPM_BUILD_ROOT%{ruby_libarchdir}/io/console.so
 
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/json-%{json_ver}/lib
 install -d $RPM_BUILD_ROOT%{gem_libdir}/json-%{json_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/json* $RPM_BUILD_ROOT%{gem_dir}/gems/json-%{json_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libarchdir}/json $RPM_BUILD_ROOT%{gem_libdir}/json-%{json_ver}/lib
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/json-%{json_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/json* $RPM_BUILD_ROOT%{gem_dir}/gems/json-%{json_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libarchdir}/json $RPM_BUILD_ROOT%{gem_libdir}/json-%{json_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/json-%{json_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 ln -s %{gem_dir}/gems/json-%{json_ver}/lib/json $RPM_BUILD_ROOT%{ruby_libdir}/json
 ln -s %{gem_dir}/gems/json-%{json_ver}/lib/json.rb $RPM_BUILD_ROOT%{ruby_libdir}/json.rb
 install -d $RPM_BUILD_ROOT%{ruby_libarchdir}/json/ext
 ln -s %{gem_libdir}/json-%{json_ver}/lib/json/ext/parser.so $RPM_BUILD_ROOT%{ruby_libarchdir}/json/ext
 ln -s %{gem_libdir}/json-%{json_ver}/lib/json/ext/generator.so $RPM_BUILD_ROOT%{ruby_libarchdir}/json/ext
 
-install -d $RPM_BUILD_ROOT%{gem_dir}/gems/minitest-%{minitest_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/minitest $RPM_BUILD_ROOT%{gem_dir}/gems/minitest-%{minitest_ver}/lib
 ln -s %{gem_dir}/gems/minitest-%{minitest_ver}/lib/minitest $RPM_BUILD_ROOT%{ruby_libdir}
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/minitest-%{minitest_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 
-install -d $RPM_BUILD_ROOT%{gem_dir}/gems/test-unit-%{test_unit_ver}/lib
 install -d $RPM_BUILD_ROOT%{ruby_libdir}/test
-mv $RPM_BUILD_ROOT%{ruby_libdir}/test/unit $RPM_BUILD_ROOT%{gem_dir}/gems/test-unit-%{test_unit_ver}/lib
 ln -s %{gem_dir}/gems/test-unit-%{test_unit_ver}/lib/unit $RPM_BUILD_ROOT%{ruby_libdir}/test
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/test-unit-%{test_unit_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 
 install -d $RPM_BUILD_ROOT%{gem_dir}/gems/psych-%{psych_ver}/lib
 install -d $RPM_BUILD_ROOT%{gem_libdir}/psych-%{psych_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libdir}/psych* $RPM_BUILD_ROOT%{gem_dir}/gems/psych-%{psych_ver}/lib
-mv $RPM_BUILD_ROOT%{ruby_libarchdir}/psych.so $RPM_BUILD_ROOT%{gem_libdir}/psych-%{psych_ver}/lib/
-mv $RPM_BUILD_ROOT%{gem_dir}/specifications/default/psych-%{psych_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
+%{__mv} $RPM_BUILD_ROOT%{ruby_libdir}/psych* $RPM_BUILD_ROOT%{gem_dir}/gems/psych-%{psych_ver}/lib
+%{__mv} $RPM_BUILD_ROOT%{ruby_libarchdir}/psych.so $RPM_BUILD_ROOT%{gem_libdir}/psych-%{psych_ver}/lib/
+%{__mv} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/psych-%{psych_ver}.gemspec $RPM_BUILD_ROOT%{gem_dir}/specifications
 ln -s %{gem_dir}/gems/psych-%{psych_ver}/lib/psych $RPM_BUILD_ROOT%{ruby_libdir}/psych
 ln -s %{gem_dir}/gems/psych-%{psych_ver}/lib/psych.rb $RPM_BUILD_ROOT%{ruby_libdir}/psych.rb
 ln -s %{gem_libdir}/psych-%{psych_ver}/lib/psych.so $RPM_BUILD_ROOT%{ruby_archdir}/psych.so
@@ -619,8 +803,35 @@ sed -i '/^end$/ i\
 sed -i '/^end$/ i\
   s.require_paths = ["lib"]' $RPM_BUILD_ROOT%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
 
+# Push the .gemspecs through the RubyGems to let them write the stub headers.
+# This speeds up loading of libraries and avoids warnings in Spring:
+# https://github.com/rubygems/rubygems/pull/694
+for s in rake-%{rake_ver}.gemspec rdoc-%{rdoc_ver}.gemspec json-%{json_ver}.gemspec; do
+       s="$RPM_BUILD_ROOT%{gem_dir}/specifications/$s"
+       %{__make} runruby TESTRUN_SCRIPT="-rubygems \
+       -e \"spec = Gem::Specification.load('$s')\" \
+       -e \"File.write '$s', spec.to_ruby\""
+done
+
 ln -sf %{gem_dir}/gems/rake-%{rake_ver}/bin/rake $RPM_BUILD_ROOT%{_bindir}/rake%{ruby_suffix}
 
+%{__sed} -i -e '1s,/usr/bin/env ruby,/usr/bin/ruby,' \
+       $RPM_BUILD_ROOT%{ruby_libdir}/abbrev.rb \
+       $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/bin/rake \
+       $RPM_BUILD_ROOT%{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/rdoc \
+       $RPM_BUILD_ROOT%{gem_dir}/gems/rdoc-%{rdoc_ver}/bin/ri \
+       $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{pkg_version}/{cal,test,time,uumerge}.rb \
+       $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{pkg_version}/{drb,logger,openssl,ripper,rss}/*.rb \
+       $RPM_BUILD_ROOT%{_examplesdir}/%{oname}-%{pkg_version}/webrick/*.cgi
+
+# gem non library files
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/minitest-%{minitest_ver}/test
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/test-unit-%{test_unit_ver}/{[A-Z]*,doc,sample,test}
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/power_assert-%{power_assert_ver}/{[A-Z]*,test}
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/did_you_mean-%{did_you_mean_ver}/{[A-Z]*,doc,test}
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/rake-%{rake_ver}/{[A-Z]*,doc,test}
+%{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/net-telnet-%{net_telnet_ver}/{[A-Z]*,bin}
+
 %if %{without batteries}
 # packaged separately
 %{__rm} -r $RPM_BUILD_ROOT%{ruby_libdir}/{rubygems,rake,json,minitest}
@@ -628,7 +839,7 @@ ln -sf %{gem_dir}/gems/rake-%{rake_ver}/bin/rake $RPM_BUILD_ROOT%{_bindir}/rake%
 %{__rm} -r $RPM_BUILD_ROOT%{gem_dir}/gems/rake-*
 %{__rm} $RPM_BUILD_ROOT%{ruby_libdir}/{rake,rubygems,json}.rb
 %{__rm} $RPM_BUILD_ROOT%{_bindir}/{gem,rake}
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/rake*
+#%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/rake*
 %{__rm} $RPM_BUILD_ROOT%{gem_dir}/specifications/default/{json,minitest,rake}-*.gemspec
 %{?with_doc:%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/ri/%{ruby_version}/system/JSON}
 %endif
@@ -647,7 +858,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc NEWS LEGAL README README.EXT ChangeLog
+%doc NEWS LEGAL BSDL README.md README.EXT ChangeLog
 %attr(755,root,root) %{_bindir}/ruby%{ruby_suffix}
 %attr(755,root,root) %{_libdir}/libruby.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libruby.so.%{ruby_version}
@@ -670,17 +881,6 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{ruby_vendorlibdir}/data
 %dir %{ruby_vendorlibdir}/net
 
-%if 0
-# legacy dirs. when everything rebuilt in Th not using these dirs. drop them
-%dir %{legacy_archdir}
-%dir %{legacy_sitedir}
-%dir %{legacy_sitelibdir}
-%dir %{legacy_sitearchdir}
-%dir %{legacy_vendorarchdir}
-%dir %{legacy_libdir}/tasks
-%dir %{legacy_archdir}/racc
-%endif
-
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libruby.so
@@ -695,11 +895,16 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with tk}
 %files tk
 %defattr(644,root,root,755)
+%doc ext/tk/{ChangeLog.tkextlib,MANUAL_tcltklib.eng,README.fork}
+%lang(ja) %doc ext/tk/MANUAL_tcltklib.ja
+%{ruby_libdir}/multi-tk.rb
+%{ruby_libdir}/remote-tk.rb
 %{ruby_libdir}/tcltk.rb
 %{ruby_libdir}/tk*.rb
 %{ruby_libdir}/tk
 %{ruby_libdir}/tkextlib
-%attr(755,root,root) %{ruby_archdir}/t*.so
+%attr(755,root,root) %{ruby_archdir}/tcltklib.so
+%attr(755,root,root) %{ruby_archdir}/tkutil.so
 %endif
 
 %files irb
@@ -734,11 +939,9 @@ rm -rf $RPM_BUILD_ROOT
 %files rake
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/rake%{ruby_suffix}
-%{_mandir}/man1/rake%{ruby_suffix}.1*
-%{ruby_libdir}/rake
-%{ruby_libdir}/rake.rb
 %dir %{gem_dir}/gems/rake-%{rake_ver}
 %{gem_dir}/gems/rake-%{rake_ver}/lib
+%{gem_dir}/gems/rake-%{rake_ver}/rakelib
 %dir %{gem_dir}/gems/rake-%{rake_ver}/bin
 %attr(755,root,root) %{gem_dir}/gems/rake-%{rake_ver}/bin/rake
 %{gem_dir}/specifications/rake-%{rake_ver}.gemspec
@@ -761,13 +964,73 @@ rm -rf $RPM_BUILD_ROOT
 %{gem_dir}/specifications/json-%{json_ver}.gemspec
 %endif
 
+%files power_assert
+%defattr(644,root,root,755)
+%dir %{gem_dir}/gems/power_assert-%{power_assert_ver}
+%{gem_dir}/gems/power_assert-%{power_assert_ver}/lib
+%{gem_dir}/specifications/power_assert-%{power_assert_ver}.gemspec
+
+%files minitest
+%defattr(644,root,root,755)
+%{ruby_libdir}/minitest
+%{gem_dir}/gems/minitest-%{minitest_ver}
+%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
+
+%files test-unit
+%defattr(644,root,root,755)
+%dir %{gem_dir}/gems/test-unit-%{test_unit_ver}
+%{gem_dir}/gems/test-unit-%{test_unit_ver}/lib
+%{gem_dir}/specifications/test-unit-%{test_unit_ver}.gemspec
+%{_mandir}/man1/testrb%{ruby_suffix}.1*
+
+%files did_you_mean
+%defattr(644,root,root,755)
+%dir %{gem_dir}/gems/did_you_mean-%{did_you_mean_ver}
+%{gem_dir}/gems/did_you_mean-%{did_you_mean_ver}/benchmark
+%{gem_dir}/gems/did_you_mean-%{did_you_mean_ver}/evaluation
+%{gem_dir}/gems/did_you_mean-%{did_you_mean_ver}/lib
+%{gem_dir}/specifications/did_you_mean-%{did_you_mean_ver}.gemspec
+
+%files net-telnet
+%defattr(644,root,root,755)
+%dir %{gem_dir}/gems/net-telnet-%{net_telnet_ver}
+%{gem_dir}/gems/net-telnet-%{net_telnet_ver}/lib
+%{gem_dir}/specifications/net-telnet-%{net_telnet_ver}.gemspec
+
+%files bigdecimal
+%defattr(644,root,root,755)
+%{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}
+%dir %{gem_libdir}/bigdecimal-%{bigdecimal_ver}
+%dir %{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib
+%attr(755,root,root) %{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib/bigdecimal.so
+%{ruby_libdir}/bigdecimal
+%{gem_dir}/specifications/bigdecimal-%{bigdecimal_ver}.gemspec
+
+%files io-console
+%defattr(644,root,root,755)
+%{gem_dir}/gems/io-console-%{io_console_ver}
+%dir %{gem_libdir}/io-console-%{io_console_ver}
+%dir %{gem_libdir}/io-console-%{io_console_ver}/lib
+%dir %{gem_libdir}/io-console-%{io_console_ver}/lib/io
+%attr(755,root,root) %{gem_libdir}/io-console-%{io_console_ver}/lib/io/console.so
+%{gem_dir}/specifications/io-console-%{io_console_ver}.gemspec
+
+%files psych
+%defattr(644,root,root,755)
+%{ruby_libdir}/psych.rb
+%attr(755,root,root) %{ruby_archdir}/psych.so
+%{gem_dir}/gems/psych-%{psych_ver}
+%{ruby_libdir}/psych
+%dir %{gem_libdir}/psych-%{psych_ver}
+%dir %{gem_libdir}/psych-%{psych_ver}/lib
+%attr(755,root,root) %{gem_libdir}/psych-%{psych_ver}/lib/psych.so
+%{gem_dir}/specifications/psych-%{psych_ver}.gemspec
+
 %files modules
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/erb%{ruby_suffix}
 %{ruby_libdir}/cgi
-%{ruby_libdir}/date
 %{ruby_libdir}/digest
-%{ruby_libdir}/dl
 %{ruby_libdir}/drb
 %{ruby_libdir}/fiddle
 %{ruby_libdir}/io
@@ -782,7 +1045,6 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/ripper
 %{ruby_libdir}/rss
 %{ruby_libdir}/shell
-#%{ruby_libdir}/syck
 %{ruby_libdir}/syslog
 %{ruby_libdir}/test
 %{ruby_libdir}/uri
@@ -796,13 +1058,11 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/benchmark.rb
 %{ruby_libdir}/cgi.rb
 %{ruby_libdir}/cmath.rb
-%{ruby_libdir}/complex.rb
 %{ruby_libdir}/csv.rb
 %{ruby_libdir}/date.rb
 %{ruby_libdir}/debug.rb
 %{ruby_libdir}/delegate.rb
 %{ruby_libdir}/digest.rb
-%{ruby_libdir}/dl.rb
 %{ruby_libdir}/drb.rb
 %{ruby_libdir}/e2mmap.rb
 %{ruby_libdir}/erb.rb
@@ -812,7 +1072,6 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/find.rb
 %{ruby_libdir}/forwardable.rb
 %{ruby_libdir}/getoptlong.rb
-%{ruby_libdir}/gserver.rb
 %{ruby_libdir}/ipaddr.rb
 %{ruby_libdir}/json.rb
 %{ruby_libdir}/kconv.rb
@@ -825,6 +1084,7 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/open-uri.rb
 %{ruby_libdir}/open3.rb
 %{ruby_libdir}/openssl.rb
+%{ruby_libdir}/optionparser.rb
 %{ruby_libdir}/optparse.rb
 %{ruby_libdir}/ostruct.rb
 %{ruby_libdir}/pathname.rb
@@ -834,8 +1094,6 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/profile.rb
 %{ruby_libdir}/profiler.rb
 %{ruby_libdir}/pstore.rb
-%{ruby_libdir}/psych.rb
-%{ruby_libdir}/rational.rb
 %{ruby_libdir}/rdoc.rb
 %{ruby_libdir}/resolv-replace.rb
 %{ruby_libdir}/resolv.rb
@@ -850,7 +1108,6 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/socket.rb
 %{ruby_libdir}/sync.rb
 %{ruby_libdir}/tempfile.rb
-%{ruby_libdir}/thread.rb
 %{ruby_libdir}/thwait.rb
 %{ruby_libdir}/time.rb
 %{ruby_libdir}/timeout.rb
@@ -858,6 +1115,8 @@ rm -rf $RPM_BUILD_ROOT
 %{ruby_libdir}/tracer.rb
 %{ruby_libdir}/tsort.rb
 %{ruby_libdir}/un.rb
+%{ruby_libdir}/unicode_normalize
+%{ruby_libdir}/unicode_normalize.rb
 %{ruby_libdir}/uri.rb
 %{ruby_libdir}/weakref.rb
 %{ruby_libdir}/webrick.rb
@@ -868,21 +1127,17 @@ rm -rf $RPM_BUILD_ROOT
 %exclude %{ruby_libdir}/rubygems.rb
 %exclude %{ruby_libdir}/ubygems.rb
 %exclude %{ruby_libdir}/rbconfig/datadir.rb
-%exclude %{ruby_libdir}/rbconfig/obsolete.rb
 %endif
 %exclude %{ruby_libdir}/irb.rb
 %exclude %{ruby_libdir}/mkmf.rb
-%exclude %{ruby_libdir}/rake.rb
 
 %{ruby_archdir}/rbconfig.rb
 %attr(755,root,root) %{ruby_archdir}/bigdecimal.so
 %attr(755,root,root) %{ruby_archdir}/continuation.so
 %attr(755,root,root) %{ruby_archdir}/coverage.so
-%attr(755,root,root) %{ruby_archdir}/curses.so
 %attr(755,root,root) %{ruby_archdir}/date_core.so
 %attr(755,root,root) %{ruby_archdir}/dbm.so
 %attr(755,root,root) %{ruby_archdir}/digest.so
-%attr(755,root,root) %{ruby_archdir}/dl.so
 %attr(755,root,root) %{ruby_archdir}/etc.so
 %attr(755,root,root) %{ruby_archdir}/fcntl.so
 %attr(755,root,root) %{ruby_archdir}/fiber.so
@@ -892,10 +1147,10 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{ruby_archdir}/objspace.so
 %attr(755,root,root) %{ruby_archdir}/openssl.so
 %attr(755,root,root) %{ruby_archdir}/pathname.so
-%attr(755,root,root) %{ruby_archdir}/psych.so
 %attr(755,root,root) %{ruby_archdir}/pty.so
 %attr(755,root,root) %{ruby_archdir}/readline.so
 %attr(755,root,root) %{ruby_archdir}/ripper.so
+%attr(755,root,root) %{ruby_archdir}/thread.so
 %attr(755,root,root) %{ruby_archdir}/sdbm.so
 %attr(755,root,root) %{ruby_archdir}/socket.so
 %attr(755,root,root) %{ruby_archdir}/stringio.so
@@ -903,10 +1158,10 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{ruby_archdir}/syslog.so
 %attr(755,root,root) %{ruby_archdir}/zlib.so
 
+%dir %{ruby_archdir}/cgi
+%attr(755,root,root) %{ruby_archdir}/cgi/escape.so
 %dir %{ruby_archdir}/digest
 %attr(755,root,root) %{ruby_archdir}/digest/*.so
-%dir %{ruby_archdir}/dl
-%attr(755,root,root) %{ruby_archdir}/dl/callback.so
 %dir %{ruby_archdir}/enc
 %attr(755,root,root) %{ruby_archdir}/enc/*.so
 %dir %{ruby_archdir}/enc/trans
@@ -917,49 +1172,12 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{ruby_archdir}/mathn/*.so
 %dir %{ruby_archdir}/racc
 %attr(755,root,root) %{ruby_archdir}/racc/*.so
-
-# bigdecimal
-%{gem_dir}/specifications/bigdecimal-%{bigdecimal_ver}.gemspec
-%{gem_dir}/gems/bigdecimal-%{bigdecimal_ver}
-%dir %{gem_libdir}/bigdecimal-%{bigdecimal_ver}
-%dir %{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib
-%attr(755,root,root) %{gem_libdir}/bigdecimal-%{bigdecimal_ver}/lib/bigdecimal.so
-%{ruby_libdir}/bigdecimal
+%dir %{ruby_archdir}/rbconfig
+%attr(755,root,root) %{ruby_archdir}/rbconfig/sizeof.so
 
 %dir %{_libdir}/gems
 %dir %{_libdir}/gems/%{oname}
 
-# io-console
-%{gem_dir}/specifications/io-console-%{io_console_ver}.gemspec
-%{gem_dir}/gems/io-console-%{io_console_ver}
-%dir %{gem_libdir}/io-console-%{io_console_ver}
-%dir %{gem_libdir}/io-console-%{io_console_ver}/lib
-%dir %{gem_libdir}/io-console-%{io_console_ver}/lib/io
-%attr(755,root,root) %{gem_libdir}/io-console-%{io_console_ver}/lib/io/console.so
-
-%if %{with batteries}
-# minitest
-%{ruby_libdir}/minitest
-%{gem_dir}/gems/minitest-%{minitest_ver}
-%{gem_dir}/specifications/minitest-%{minitest_ver}.gemspec
-%endif
-
-%{gem_dir}/specifications/psych-%{psych_ver}.gemspec
-%{gem_dir}/gems/psych-%{psych_ver}
-%{ruby_libdir}/psych
-%dir %{gem_libdir}/psych-%{psych_ver}
-%dir %{gem_libdir}/psych-%{psych_ver}/lib
-%attr(755,root,root) %{gem_libdir}/psych-%{psych_ver}/lib/psych.so
-
-# test-unit
-%{gem_dir}/specifications/test-unit-%{test_unit_ver}.gemspec
-%dir %{gem_dir}/gems/test-unit-%{test_unit_ver}
-%{gem_dir}/gems/test-unit-%{test_unit_ver}/lib
-%dir %{gem_dir}/gems/test-unit-%{test_unit_ver}/bin
-%attr(755,root,root) %{gem_dir}/gems/test-unit-%{test_unit_ver}/bin/testrb
-%attr(755,root,root) %{_bindir}/testrb%{ruby_suffix}
-%{_mandir}/man1/testrb%{ruby_suffix}.1*
-
 %dir %{gem_dir}
 %dir %{gem_dir}/gems
 %dir %{gem_dir}/specifications
@@ -967,13 +1185,12 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/erb%{ruby_suffix}.1*
 %{_mandir}/man1/ri%{ruby_suffix}.1*
 
+%if %{with doc}
 %files doc
 %defattr(644,root,root,755)
-%doc ruby-doc-bundle/*
-%{?with_doc:%doc ruby_%{doc_version}_stdlib}
-%{?with_doc:%doc ruby_%{doc_version}_core}
+%doc ruby_%{doc_version}_stdlib
+%doc ruby_%{doc_version}_core
 
-%if %{with doc}
 %files doc-ri
 %defattr(644,root,root,755)
 %{ruby_ridir}/*
@@ -981,4 +1198,4 @@ rm -rf $RPM_BUILD_ROOT
 
 %files examples
 %defattr(644,root,root,755)
-%{_examplesdir}/%{oname}-*
+%{_examplesdir}/%{oname}-%{pkg_version}
diff --git a/site-and-vendor-arch-flags.patch b/site-and-vendor-arch-flags.patch
deleted file mode 100644 (file)
index 1363063..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-From b0a875862d14244ca41cd1e1e9090f87757aaeb9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
-Date: Mon, 5 Sep 2011 13:10:47 +0200
-Subject: [PATCH] Added configuration flags for site and vendor architecture
- specific directories.
-
----
- Makefile.in      |    3 +++
- configure.in     |   40 ++++++++++++++++++++++++++++++++++++++++
- tool/mkconfig.rb |    8 ++++++--
- version.c        |    4 ++++
- 4 files changed, 53 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index bcdaf5f..f57e4c4 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -34,6 +34,9 @@ datadir = @datadir@
- archdir = @archdir@
- sitearch = @sitearch@
- sitedir = @sitedir@
-+sitearchdir= @sitearchdir@
-+vendordir = @vendordir@
-+vendorarchdir = @vendorarchdir@
- ruby_version = @ruby_version@
- 
- TESTUI = console
-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
-     dir="${SITE_DIR}"
- done
- 
-+AC_ARG_WITH(sitearchdir,
-+          AS_HELP_STRING([--with-sitearchdir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]]]),
-+            [sitearchdir=$withval],
-+            [sitearchdir='${rubylibprefix}/site_ruby/${arch}'])
-+dir="${sitearchdir}"
-+until SITEARCH_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITEARCH_DIR}"; do
-+    dir="${SITEARCH_DIR}"
-+done
-+
- 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
-     dir="${VENDOR_DIR}"
- done
- 
-+AC_ARG_WITH(vendorarchdir,
-+          AS_HELP_STRING([--with-vendorarchdir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]]]),
-+            [vendorarchdir=$withval],
-+            [vendorarchdir='${rubylibprefix}/vendor_ruby/${arch}'])
-+dir="${vendorarchdir}"
-+until VENDORARCH_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDORARCH_DIR}"; do
-+    dir="${VENDORARCH_DIR}"
-+done
-+
- 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"'/|/|'`"
-     RUBY_ARCH_LIB_PATH="`eval echo "$ARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-     RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-+    RUBY_SITE_ARCHLIB_PATH="`eval echo "$SITEARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-     RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
-+    RUBY_VENDOR_ARCHLIB_PATH="`eval echo "$VENDORARCH_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"
- else
-     RUBY_EXEC_PREFIX="`eval echo \\"$exec_prefix/\\" | sed 's|^NONE/|'"$prefix"'/|;s|/$||'`"
-     RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-     RUBY_ARCH_LIB_PATH="`eval echo \\"$ARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-     RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-+    RUBY_SITE_ARCHLIB_PATH="`eval echo \\"$SITEARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-     RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
-+    RUBY_VENDOR_ARCHLIB_PATH="`eval echo \\"$VENDORARCH_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"
- fi
- 
- pat=`echo "$RUBY_LIB_PREFIX/" | tr -c '\012' .`'\(.*\)'
-@@ -2850,6 +2872,13 @@ AS_CASE(["$RUBY_SITE_LIB_PATH"],
-   [
-     RUBY_SITE_LIB_PATH="\"${RUBY_SITE_LIB_PATH}\""
-     ])
-+AS_CASE(["$RUBY_SITE_ARCHLIB_PATH"],
-+  ["$RUBY_LIB_PREFIX/"*], [
-+    RUBY_SITE_ARCHLIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_SITE_ARCHLIB_PATH\" : \"$pat\"`"'"'
-+    ],
-+  [
-+    RUBY_SITE_ARCHLIB_PATH="\"${RUBY_SITE_ARCHLIB_PATH}\""
-+    ])
- 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"],
-   [
-     RUBY_VENDOR_LIB_PATH="\"${RUBY_VENDOR_LIB_PATH}\""
-     ])
-+AS_CASE(["$RUBY_VENDOR_ARCHLIB_PATH"],
-+  ["$RUBY_LIB_PREFIX/"*], [
-+    RUBY_VENDOR_ARCHLIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_VENDOR_ARCHLIB_PATH\" : \"$pat\"`"'"'
-+    ],
-+  [
-+    RUBY_VENDOR_ARCHLIB_PATH="\"${RUBY_VENDOR_ARCHLIB_PATH}\""
-+    ])
- 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
-     AC_DEFINE(NO_RUBY_SITE_LIB)
- else
-     AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, ${RUBY_SITE_LIB_PATH})
-+    AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, ${RUBY_SITE_ARCHLIB_PATH})
- fi
- if test "x$VENDOR_DIR" = xno; then
-     AC_DEFINE(NO_RUBY_VENDOR_LIB)
- else
-     AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, ${RUBY_VENDOR_LIB_PATH})
-+    AC_DEFINE_UNQUOTED(RUBY_VENDOR_ARCHLIB, ${RUBY_VENDOR_ARCHLIB_PATH})
- fi
- 
- AC_SUBST(arch)dnl
- AC_SUBST(sitearch)dnl
- AC_SUBST(ruby_version)dnl
- AC_SUBST(archdir)dnl
- AC_SUBST(sitedir)dnl
-+AC_SUBST(sitearchdir)dnl
- AC_SUBST(vendordir)dnl
-+AC_SUBST(vendorarchdir)dnl
- 
- configure_args=$ac_configure_args
- AC_SUBST(configure_args)dnl
-diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
-index b707c4b..6230720 100755
---- a/tool/mkconfig.rb
-+++ b/tool/mkconfig.rb
-@@ -44,6 +44,8 @@ v_others = []
- continued_line = nil
- path_version = "/$(ruby_version)"
- archdir_override = "$(vendorlibdir)/$(sitearch)"
-+sitearchdir_override = "$(sitelibdir)/$(sitearch)"
-+vendorarchdir_override = "$(vendorlibdir)/$(sitearch)"
- File.foreach "config.status" do |line|
-   next if /^#/ =~ line
-   name = nil
-@@ -79,6 +81,8 @@ File.foreach "config.status" do |line|
-     when /^RUBY_SO_NAME$/; next if $so_name
-     when /^arch$/; if val.empty? then val = arch else arch = val end
-     when /^archdir$/; archdir_override = val; next
-+    when /^sitearchdir$/; sitearchdir_override = val; next
-+    when /^vendorarchdir$/; vendorarchdir_override = val; next
-     when /^sitearch/; val = '$(arch)' if val.empty?
-     end
-     case val
-@@ -213,11 +217,11 @@ print <<EOS
- EOS
- print <<EOS unless v_disabled["sitedir"]
-   CONFIG["sitelibdir"] = "$(sitedir)#{path_version}"
--  CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"
-+  CONFIG["sitearchdir"] = "#{sitearchdir_override}"
- EOS
- print <<EOS unless v_disabled["vendordir"]
-   CONFIG["vendorlibdir"] = "$(vendordir)#{path_version}"
--  CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"
-+  CONFIG["vendorarchdir"] = "#{vendorarchdir_override}"
- EOS
- print <<EOS
-   CONFIG["topdir"] = File.dirname(__FILE__)
-diff --git a/version.c b/version.c
-index 59d4e5e..2558aa0 100644
---- a/version.c
-+++ b/version.c
-@@ -50,8 +50,12 @@
- #ifndef RUBY_ARCHLIB
- #define RUBY_ARCHLIB                RUBY_LIB         "/"RUBY_ARCH
- #endif
-+#ifndef RUBY_SITE_ARCHLIB
- #define RUBY_SITE_ARCHLIB           RUBY_SITE_LIB2   "/"RUBY_SITEARCH
-+#endif
-+#ifndef RUBY_VENDOR_ARCHLIB
- #define RUBY_VENDOR_ARCHLIB         RUBY_VENDOR_LIB2 "/"RUBY_SITEARCH
-+#endif
- #ifdef  RUBY_THINARCH
- #define RUBY_THIN_ARCHLIB           RUBY_LIB         "/"RUBY_THINARCH
- #define RUBY_SITE_THIN_ARCHLIB      RUBY_SITE_LIB2   "/"RUBY_THINARCH
--- 
-1.7.6.1
-
index 456a10075be7a78d9724d5afd6a1bbe7e89a0c00..801ee3c2e5d17b378657c660e1dfd93a259d3718 100644 (file)
@@ -1,28 +1,25 @@
-strip ccache from CC and CXX from rbconfig.rb
-as a side effect, we need to pass CC to sub-makes
-
---- ruby-2.0.0-p353/tool/mkconfig.rb~  2013-03-24 17:42:06.000000000 +0200
-+++ ruby-2.0.0-p353/tool/mkconfig.rb   2014-03-18 10:34:08.489251715 +0200
-@@ -77,6 +77,7 @@
-     when /^(?:MAJOR|MINOR|TEENY)$/; next
-     when /^RUBY_INSTALL_NAME$/; next if $install_name
-     when /^RUBY_SO_NAME$/; next if $so_name
+--- ruby-2.2.5/tool/mkconfig.rb.orig   2016-09-19 13:53:05.152982868 +0200
++++ ruby-2.2.5/tool/mkconfig.rb        2016-09-19 14:01:04.182988081 +0200
+@@ -79,6 +79,7 @@
+     when /^LIBRUBY_D?LD/; next
+     when /^RUBY_INSTALL_NAME$/; next vars[name] = (install_name = val).dup if $install_name
+     when /^RUBY_SO_NAME$/; next vars[name] = (so_name = val).dup if $so_name
 +    when /^(CC|CXX)$/; val.sub!(/ccache /, '')
      when /^arch$/; if val.empty? then val = arch else arch = val end
      when /^sitearch$/; val = '$(arch)' if val.empty?
      end
---- ruby-2.0.0-p451/common.mk  2014-04-05 16:16:52.983112032 +0300
-+++ ruby-2.0.0-p451/common.mk  2014-04-05 16:26:58.679843426 +0300
-@@ -176,7 +176,7 @@
+--- ruby-2.2.7/common.mk~      2017-04-19 20:22:53.000000000 +0300
++++ ruby-2.2.7/common.mk       2017-04-19 20:23:24.847180464 +0300
+@@ -186,7 +186,7 @@
  configure-ext: $(EXTS_MK)
  
  build-ext: $(EXTS_MK)
--      $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS) $(EXTSTATIC) LIBRUBY_EXTS=$(LIBRUBY_EXTS) ENCOBJS="$(ENCOBJS)"
-+      $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS) $(EXTSTATIC) LIBRUBY_EXTS=$(LIBRUBY_EXTS) ENCOBJS="$(ENCOBJS)" CC="$(CC)"
+-      $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \
++      $(Q)$(MAKE) -f $(EXTS_MK) $(MFLAGS) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) CC="$(CC)" \
+           EXTENCS="$(ENCOBJS)" UPDATE_LIBRARIES=no $(EXTSTATIC)
  
- $(MKMAIN_CMD): $(MKFILES) all-incs $(PREP) $(RBCONFIG) $(LIBRUBY)
-       $(Q)$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --command-output=$@ $(EXTMK_ARGS)
-@@ -545,7 +545,7 @@
+ prog: program wprogram
+@@ -598,7 +598,7 @@
        $(ECHO) making $@
        $(Q) $(MAKE) -f $(ENC_MK) V="$(V)" \
                RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" \
@@ -31,12 +28,12 @@ as a side effect, we need to pass CC to sub-makes
  
  
  libenc enc: {$(VPATH)}encdb.h
-@@ -860,7 +860,7 @@
+@@ -737,7 +737,7 @@
  
  srcs-enc: $(ENC_MK)
        $(ECHO) making srcs under enc
 -      $(Q) $(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs
 +      $(Q) $(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" CC="$(CC)" $(MFLAGS) srcs
  
- all-incs: incs
- incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}encdb.h {$(VPATH)}transdb.h {$(VPATH)}known_errors.inc \
+ all-incs: incs {$(VPATH)}encdb.h {$(VPATH)}transdb.h
+ incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}known_errors.inc \
diff --git a/x32-asm.patch b/x32-asm.patch
deleted file mode 100644 (file)
index 9fb8e87..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: ruby1.9.1-1.9.3.484/gc.h
-===================================================================
---- ruby1.9.1-1.9.3.484.orig/gc.h      2014-03-08 07:14:10.672333559 -0800
-+++ ruby1.9.1-1.9.3.484/gc.h   2014-03-08 07:17:00.820079593 -0800
-@@ -3,7 +3,11 @@
- #define RUBY_GC_H 1
- 
- #if defined(__x86_64__) && defined(__GNUC__) && !defined(__native_client__)
-+#ifdef __ILP32__
-+#define SET_MACHINE_STACK_END(p) __asm__ volatile ("movl\t%%esp, %0" : "=r" (*(p)))
-+#else
- #define SET_MACHINE_STACK_END(p) __asm__ volatile ("movq\t%%rsp, %0" : "=r" (*(p)))
-+#endif
- #elif defined(__i386) && defined(__GNUC__) && !defined(__native_client__)
- #define SET_MACHINE_STACK_END(p) __asm__ volatile ("movl\t%%esp, %0" : "=r" (*(p)))
- #else