diff --git a/.ruby.metadata b/.ruby.metadata
new file mode 100644
index 0000000..2762ff2
--- /dev/null
+++ b/.ruby.metadata
@@ -0,0 +1 @@
+9d3e5758c87a2c8016aec246f278b7551f8cb675 SOURCES/ruby-2.0.0-p247.tar.bz2
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/abrt_prelude.rb b/SOURCES/abrt_prelude.rb
new file mode 100644
index 0000000..5ffc51d
--- /dev/null
+++ b/SOURCES/abrt_prelude.rb
@@ -0,0 +1,4 @@
+begin
+  require 'abrt'
+rescue LoadError
+end
diff --git a/SOURCES/config.h b/SOURCES/config.h
new file mode 100644
index 0000000..ce501db
--- /dev/null
+++ b/SOURCES/config.h
@@ -0,0 +1,46 @@
+/*
+ * This config.h is a wrapper include file for the original ruby/config.h,
+ * which has been renamed to ruby/config-<arch>.h. There are conflicts for the
+ * original ruby/config.h on multilib systems, which result from arch-specific
+ * configuration options. Please do not use the arch-specific file directly.
+ */
+
+/*
+ * This wrapped is addpated from SDL's one:
+ * http://pkgs.fedoraproject.org/cgit/SDL.git/tree/SDL_config.h
+ */
+
+#ifdef ruby_config_wrapper_h
+#error "ruby_config_wrapper_h should not be defined!"
+#endif
+#define ruby_config_wrapper_h
+
+#if defined(__i386__)
+#include "ruby/config-i386.h"
+#elif defined(__ia64__)
+#include "ruby/config-ia64.h"
+#elif defined(__powerpc64__)
+#include "ruby/config-ppc64.h"
+#elif defined(__powerpc__)
+#include "ruby/config-ppc.h"
+#elif defined(__s390x__)
+#include "ruby/config-s390x.h"
+#elif defined(__s390__)
+#include "ruby/config-s390.h"
+#elif defined(__x86_64__)
+#include "ruby/config-x86_64.h"
+#elif defined(__arm__)
+#include "ruby/config-arm.h"
+#elif defined(__alpha__)
+#include "ruby/config-alpha.h"
+#elif defined(__sparc__) && defined (__arch64__)
+#include "ruby/config-sparc64.h"
+#elif defined(__sparc__)
+#include "ruby/config-sparc.h"
+#elif defined(__aarch64__)
+#include "ruby/config-aarch64.h"
+#else
+#error "The ruby-devel package is not usable with the architecture."
+#endif
+
+#undef ruby_config_wrapper_h
diff --git a/SOURCES/libruby.stp b/SOURCES/libruby.stp
new file mode 100644
index 0000000..098b39d
--- /dev/null
+++ b/SOURCES/libruby.stp
@@ -0,0 +1,303 @@
+/* SystemTap tapset to make it easier to trace Ruby 2.0
+ *
+ * All probes provided by Ruby can be listed using following command
+ * (the path to the library must be adjuste appropriately):
+ *
+ * stap -L 'process("@LIBRARY_PATH@").mark("*")'
+ */
+
+/**
+ * probe ruby.array.create - Allocation of new array.
+ *
+ * @size: Number of elements (an int)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.array.create =
+      process("@LIBRARY_PATH@").mark("array__create")
+{
+	size = $arg1
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.cmethod.entry - Fired just before a method implemented in C is entered.
+ *
+ * @classname: Name of the class (string)
+ * @methodname: The method about bo be executed (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.cmethod.entry =
+      process("@LIBRARY_PATH@").mark("cmethod__entry")
+{
+	classname  = user_string($arg1)
+	methodname = user_string($arg2)
+	file = user_string($arg3)
+	line = $arg4
+}
+
+/**
+ * probe ruby.cmethod.return - Fired just after a method implemented in C has returned.
+ *
+ * @classname: Name of the class (string)
+ * @methodname: The executed method (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.cmethod.return =
+      process("@LIBRARY_PATH@").mark("cmethod__return")
+{
+	classname  = user_string($arg1)
+	methodname = user_string($arg2)
+	file = user_string($arg3)
+	line = $arg4
+}
+
+/**
+ * probe ruby.find.require.entry - Fired when require starts to search load
+ * path for suitable file to require.
+ *
+ * @requiredfile: The name of the file to be required (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.find.require.entry =
+      process("@LIBRARY_PATH@").mark("find__require__entry")
+{
+	requiredfile = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.find.require.return - Fired just after require has finished
+ * search of load path for suitable file to require.
+ *
+ * @requiredfile: The name of the file to be required (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.find.require.return =
+      process("@LIBRARY_PATH@").mark("find__require__return")
+{
+	requiredfile = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.gc.mark.begin - Fired when a GC mark phase is about to start.
+ *
+ * It takes no arguments.
+ */
+probe ruby.gc.mark.begin =
+      process("@LIBRARY_PATH@").mark("gc__mark__begin")
+{
+}
+
+/**
+ * probe ruby.gc.mark.end - Fired when a GC mark phase has ended.
+ *
+ * It takes no arguments.
+ */
+probe ruby.gc.mark.end =
+      process("@LIBRARY_PATH@").mark("gc__mark__end")
+{
+}
+
+/**
+ * probe ruby.gc.sweep.begin - Fired when a GC sweep phase is about to start.
+ *
+ * It takes no arguments.
+ */
+probe ruby.gc.sweep.begin =
+      process("@LIBRARY_PATH@").mark("gc__sweep__begin")
+{
+}
+
+/**
+ * probe ruby.gc.sweep.end - Fired when a GC sweep phase has ended.
+ *
+ * It takes no arguments.
+ */
+probe ruby.gc.sweep.end =
+      process("@LIBRARY_PATH@").mark("gc__sweep__end")
+{
+}
+
+/**
+ * probe ruby.hash.create - Allocation of new hash.
+ *
+ * @size: Number of elements (int)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.hash.create =
+      process("@LIBRARY_PATH@").mark("hash__create")
+{
+	size = $arg1
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.load.entry - Fired when calls to "load" are made.
+ *
+ * @loadedfile: The name of the file to be loaded (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.load.entry =
+      process("@LIBRARY_PATH@").mark("load__entry")
+{
+	loadedfile = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.load.return - Fired just after require has finished
+ * search of load path for suitable file to require.
+ *
+ * @loadedfile: The name of the file that was loaded (string)
+ */
+probe ruby.load.return =
+      process("@LIBRARY_PATH@").mark("load__return")
+{
+	loadedfile = user_string($arg1)
+}
+
+/**
+ * probe ruby.method.entry - Fired just before a method implemented in Ruby is entered.
+ *
+ * @classname: Name of the class (string)
+ * @methodname: The method about bo be executed (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.method.entry =
+      process("@LIBRARY_PATH@").mark("method__entry")
+{
+	classname  = user_string($arg1)
+	methodname = user_string($arg2)
+	file = user_string($arg3)
+	line = $arg4
+}
+
+/**
+ * probe ruby.method.return - Fired just after a method implemented in Ruby has returned.
+ *
+ * @classname: Name of the class (string)
+ * @methodname: The executed method (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.method.return =
+      process("@LIBRARY_PATH@").mark("method__return")
+{
+	classname  = user_string($arg1)
+	methodname = user_string($arg2)
+	file = user_string($arg3)
+	line = $arg4
+}
+
+/**
+ * probe ruby.object.create - Allocation of new object.
+ *
+ * @classname: Name of the class (string)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.object.create =
+      process("@LIBRARY_PATH@").mark("object__create")
+{
+	classname = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.parse.begin - Fired just before a Ruby source file is parsed.
+ *
+ * @parsedfile: The name of the file to be parsed (string)
+ * @parsedline: The line number of beginning of parsing (int)
+ */
+probe ruby.parse.begin =
+      process("@LIBRARY_PATH@").mark("parse__begin")
+{
+	parsedfile = user_string($arg1)
+	parsedline = $arg2
+}
+
+/**
+ * probe ruby.parse.end - Fired just after a Ruby source file was parsed.
+ *
+ * @parsedfile: The name of parsed the file (string)
+ * @parsedline: The line number of beginning of parsing (int)
+ */
+probe ruby.parse.end =
+      process("@LIBRARY_PATH@").mark("parse__end")
+{
+	parsedfile = user_string($arg1)
+	parsedline = $arg2
+}
+
+/**
+ * probe ruby.raise - Fired when an exception is raised.
+ *
+ * @classname: The class name of the raised exception (string)
+ * @file: The name of the file where the exception was raised (string)
+ * @line: The line number in the file where the exception was raised (int)
+ */
+probe ruby.raise =
+      process("@LIBRARY_PATH@").mark("raise")
+{
+	classname  = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.require.entry - Fired on calls to rb_require_safe (when a file
+ * is required).
+ *
+ * @requiredfile: The name of the file to be required (string)
+ * @file: The file that called "require" (string)
+ * @line: The line number where the call to require was made(int)
+ */
+probe ruby.require.entry =
+      process("@LIBRARY_PATH@").mark("require__entry")
+{
+	requiredfile = user_string($arg1)
+	file = user_string($arg2)
+	line = $arg3
+}
+
+/**
+ * probe ruby.require.return - Fired just after require has finished
+ * search of load path for suitable file to require.
+ *
+ * @requiredfile: The file that was required (string)
+ */
+probe ruby.require.return =
+      process("@LIBRARY_PATH@").mark("require__return")
+{
+	requiredfile = user_string($arg1)
+}
+
+/**
+ * probe ruby.string.create - Allocation of new string.
+ *
+ * @size: Number of elements (an int)
+ * @file: The file name where the method is being called (string)
+ * @line: The line number where the method is being called (int)
+ */
+probe ruby.string.create =
+      process("@LIBRARY_PATH@").mark("string__create")
+{
+	size = $arg1
+	file = user_string($arg2)
+	line = $arg3
+}
diff --git a/SOURCES/macros.ruby b/SOURCES/macros.ruby
new file mode 100644
index 0000000..36f4077
--- /dev/null
+++ b/SOURCES/macros.ruby
@@ -0,0 +1,22 @@
+%ruby_libdir %{_datadir}/%{name}
+%ruby_libarchdir %{_libdir}/%{name}
+
+# This is the local lib/arch and should not be used for packaging.
+%ruby_sitedir site_ruby
+%ruby_sitelibdir %{_prefix}/local/share/%{name}/%{ruby_sitedir}
+%ruby_sitearchdir %{_prefix}/local/%{_lib}/%{name}/%{ruby_sitedir}
+
+# This is the general location for libs/archs compatible with all
+# or most of the Ruby versions available in the Fedora repositories.
+%ruby_vendordir vendor_ruby
+%ruby_vendorlibdir %{ruby_libdir}/%{ruby_vendordir}
+%ruby_vendorarchdir %{ruby_libarchdir}/%{ruby_vendordir}
+
+# For ruby packages we want to filter out any provides caused by private
+# libs in %%{ruby_vendorarchdir}/%%{ruby_sitearchdir}.
+#
+# Note that this must be invoked in the spec file, preferably as
+# "%{?ruby_default_filter}", before any %description block.
+%ruby_default_filter %{expand: \
+%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^(%{ruby_vendorarchdir}|%{ruby_sitearchdir})/.*\\\\.so$ \
+}
diff --git a/SOURCES/macros.rubygems b/SOURCES/macros.rubygems
new file mode 100644
index 0000000..1043c02
--- /dev/null
+++ b/SOURCES/macros.rubygems
@@ -0,0 +1,37 @@
+# The RubyGems root folder.
+%gem_dir %{_datadir}/gems
+%gem_archdir %{_libdir}/gems
+
+# Common gem locations and files.
+%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version}
+%gem_extdir_mri %{gem_archdir}/%{name}/%{gem_name}-%{version}
+%gem_libdir %{gem_instdir}/lib
+%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem
+%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec
+%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version}
+
+# Install gem into appropriate directory.
+# -n<gem_file>      Overrides gem file name for installation.
+# -d<install_dir>   Set installation directory.
+%gem_install(d:n:) \
+mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \
+\
+CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\
+gem install \\\
+        -V \\\
+        --local \\\
+        --install-dir %{-d*}%{!?-d:.%{gem_dir}} \\\
+        --bindir .%{_bindir} \\\
+        --force \\\
+        --document=ri,rdoc \\\
+        %{-n*}%{!?-n:%{gem_name}-%{version}.gem} \
+%{nil}
+
+# For rubygems packages we want to filter out any provides caused by private
+# libs in %%{gem_archdir}.
+#
+# Note that this must be invoked in the spec file, preferably as
+# "%{?rubygems_default_filter}", before any %description block.
+%rubygems_default_filter %{expand: \
+%global __provides_exclude_from %{?__provides_exclude_from:%{__provides_exclude_from}|}^%{gem_extdir_mri}/.*\\\\.so$ \
+}
diff --git a/SOURCES/operating_system.rb b/SOURCES/operating_system.rb
new file mode 100644
index 0000000..c3b19d6
--- /dev/null
+++ b/SOURCES/operating_system.rb
@@ -0,0 +1,85 @@
+module Gem
+  class << self
+
+    ##
+    # Returns full path of previous but one directory of dir in path
+    # E.g. for '/usr/share/ruby', 'ruby', it returns '/usr'
+
+    def previous_but_one_dir_to(path, dir)
+      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
+
+    ##
+    # Default gems locations allowed on FHS system (/usr, /usr/share).
+    # The locations are derived from directories specified during build
+    # configuration.
+
+    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])
+      }
+    end
+
+    ##
+    # For each location provides set of directories for binaries (:bin_dir)
+    # platform independent (:gem_dir) and dependent (:ext_dir) files.
+
+    def default_dirs
+      @libdir ||= case RUBY_PLATFORM
+      when 'java'
+        ConfigMap[:datadir]
+      else
+        ConfigMap[: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]
+    end
+
+    ##
+    # Remove methods we are going to override. This avoids "method redefined;"
+    # warnings otherwise issued by Ruby.
+
+    remove_method :default_dir if method_defined? :default_dir
+    remove_method :default_path if method_defined? :default_path
+    remove_method :default_bindir if method_defined? :default_bindir
+    remove_method :default_ext_dir_for if method_defined? :default_ext_dir_for
+
+    ##
+    # RubyGems default overrides.
+
+    def default_dir
+      if Process.uid == 0
+        Gem.default_dirs[:local][:gem_dir]
+      else
+        Gem.user_dir
+      end
+    end
+
+    def default_path
+      path = default_dirs.collect {|location, paths| paths[:gem_dir]}
+      path.unshift Gem.user_dir if File.exist? Gem.user_home
+    end
+
+    def default_bindir
+      if Process.uid == 0
+        Gem.default_dirs[:local][:bin_dir]
+      else
+        File.join [Dir.home, 'bin']
+      end
+    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'])
+    end
+  end
+end
diff --git a/SOURCES/ruby-1.9.3-always-use-i386.patch b/SOURCES/ruby-1.9.3-always-use-i386.patch
new file mode 100644
index 0000000..8b724a8
--- /dev/null
+++ b/SOURCES/ruby-1.9.3-always-use-i386.patch
@@ -0,0 +1,25 @@
+From 796aa193a0e01f3035361f045ac66486d71f608a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Mon, 19 Nov 2012 14:37:28 +0100
+Subject: [PATCH] Always use i386.
+
+---
+ configure.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index 418b0cb..d26fe5b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3419,6 +3419,8 @@ AC_SUBST(vendorarchdir)dnl
+ configure_args=$ac_configure_args
+ AC_SUBST(configure_args)dnl
+ 
++target_cpu=`echo $target_cpu | sed s/i.86/i386/`
++
+ if test "${universal_binary-no}" = yes ; then
+     arch="universal-${target_os}"
+     AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,
+-- 
+1.8.1
+
diff --git a/SOURCES/ruby-1.9.3-custom-rubygems-location.patch b/SOURCES/ruby-1.9.3-custom-rubygems-location.patch
new file mode 100644
index 0000000..90ad58d
--- /dev/null
+++ b/SOURCES/ruby-1.9.3-custom-rubygems-location.patch
@@ -0,0 +1,84 @@
+From b5e9dc3683cb085aa57e7b12c35a4f21b2cc1482 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(+)
+
+diff --git a/configure.in b/configure.in
+index 1627d12..e064b2b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3349,6 +3349,13 @@ AC_ARG_WITH(vendorarchdir,
+             [vendorarchdir=$withval],
+             [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby/${ruby_version}'}${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
+ 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
+diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
+index 92e54c6..c72dfb6 100755
+--- a/tool/rbinstall.rb
++++ b/tool/rbinstall.rb
+@@ -313,6 +313,7 @@ sitelibdir = CONFIG["sitelibdir"]
+ sitearchlibdir = CONFIG["sitearchdir"]
+ vendorlibdir = CONFIG["vendorlibdir"]
+ vendorarchlibdir = CONFIG["vendorarchdir"]
++rubygemsdir = CONFIG["rubygemsdir"]
+ mandir = CONFIG["mandir", true]
+ docdir = CONFIG["docdir", true]
+ configure_args = Shellwords.shellwords(CONFIG["configure_args"])
+@@ -500,7 +501,15 @@ end
+ install?(:local, :comm, :lib) do
+   prepare "library scripts", rubylibdir
+   noinst = %w[README* *.txt *.rdoc *.gemspec]
++  noinst += %w[*ubygems.rb rubygems/ datadir.rb] if rubygemsdir
+   install_recursive(File.join(srcdir, "lib"), rubylibdir, :no_install => noinst, :mode => $data_mode)
++  if rubygemsdir
++    noinst = %w[obsolete.rb]
++    install_recursive(File.join(srcdir, "lib", "rubygems"), File.join(rubygemsdir, "rubygems"), :mode => $data_mode)
++    install_recursive(File.join(srcdir, "lib", "rbconfig"), File.join(rubygemsdir, "rbconfig"), :no_install => noinst, :mode => $data_mode)
++    install(File.join(srcdir, "lib", "ubygems.rb"), File.join(rubygemsdir, "ubygems.rb"), :mode => $data_mode)
++    install(File.join(srcdir, "lib", "rubygems.rb"), File.join(rubygemsdir, "rubygems.rb"), :mode => $data_mode)
++  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"
+-- 
+1.8.1.2
+
diff --git a/SOURCES/ruby-1.9.3-mkmf-verbose.patch b/SOURCES/ruby-1.9.3-mkmf-verbose.patch
new file mode 100644
index 0000000..de78ad8
--- /dev/null
+++ b/SOURCES/ruby-1.9.3-mkmf-verbose.patch
@@ -0,0 +1,25 @@
+From ec16398159a161fc77436b4855d489f193b2515b 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.
+
+---
+ lib/mkmf.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/mkmf.rb b/lib/mkmf.rb
+index 4b6c52e..67a15ee 100644
+--- a/lib/mkmf.rb
++++ b/lib/mkmf.rb
+@@ -1777,7 +1777,7 @@ SRC
+ SHELL = /bin/sh
+ 
+ # V=0 quiet, V=1 verbose.  other values don't work.
+-V = 0
++V = 1
+ Q1 = $(V:1=)
+ Q = $(Q1:0=@)
+ ECHO1 = $(V:1=@#{CONFIG['NULLCMD']})
+-- 
+1.8.1.2
+
diff --git a/SOURCES/ruby-1.9.3.p195-fix-webrick-tests.patch b/SOURCES/ruby-1.9.3.p195-fix-webrick-tests.patch
new file mode 100644
index 0000000..b340bff
--- /dev/null
+++ b/SOURCES/ruby-1.9.3.p195-fix-webrick-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/test/runner.rb b/test/runner.rb
+index 49844c7..8e59a85 100644
+--- a/test/runner.rb
++++ b/test/runner.rb
+@@ -2,6 +2,8 @@ require 'rbconfig'
+ 
+ require 'test/unit'
+ 
++require_relative 'ruby/envutil'
++
+ src_testdir = File.dirname(File.realpath(__FILE__))
+ $LOAD_PATH << src_testdir
+ module Gem
diff --git a/SOURCES/ruby-2.0.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/SOURCES/ruby-2.0.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
new file mode 100644
index 0000000..58d602d
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
@@ -0,0 +1,70 @@
+From e943a89efd63dcfb80a0ab8d9a4db37f523f508e 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(+)
+
+diff --git a/configure.in b/configure.in
+index 5850bbf..7604bb8 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>!)
+ 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
+ 
++#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
++#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
+ #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[] =
+     RUBY_SITE_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+ #endif
+     RUBY_SITE_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
++#ifndef RUBY_LIB_VERSION_BLANK
+     RUBY_SITE_LIB "\0"
+ #endif
++#endif
+ 
+ #ifndef NO_RUBY_VENDOR_LIB
+     RUBY_VENDOR_LIB2 "\0"
+@@ -86,8 +94,10 @@ const char ruby_initial_load_paths[] =
+     RUBY_VENDOR_ARCH_LIB_FOR(RUBY_THINARCH) "\0"
+ #endif
+     RUBY_VENDOR_ARCH_LIB_FOR(RUBY_SITEARCH) "\0"
++#ifndef RUBY_LIB_VERSION_BLANK
+     RUBY_VENDOR_LIB "\0"
+ #endif
++#endif
+ 
+     RUBY_LIB "\0"
+ #ifdef RUBY_THINARCH
+-- 
+1.8.1.2
+
diff --git a/SOURCES/ruby-2.0.0-p195-Fix-build-against-OpenSSL-with-enabled-ECC-curves.patch b/SOURCES/ruby-2.0.0-p195-Fix-build-against-OpenSSL-with-enabled-ECC-curves.patch
new file mode 100644
index 0000000..461b787
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p195-Fix-build-against-OpenSSL-with-enabled-ECC-curves.patch
@@ -0,0 +1,85 @@
+From 5617aafa2d44d0a4bc811830e225463abd01b2b2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 21 May 2013 10:01:33 +0200
+Subject: [PATCH] Fix build against OpenSSL with enabled ECC curves.
+
+---
+ ext/openssl/ossl_pkey_ec.c   |  4 ++++
+ test/openssl/test_pkey_ec.rb | 26 +++++++++++++-------------
+ 2 files changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/ext/openssl/ossl_pkey_ec.c b/ext/openssl/ossl_pkey_ec.c
+index 8e6d88f..29e28ca 100644
+--- a/ext/openssl/ossl_pkey_ec.c
++++ b/ext/openssl/ossl_pkey_ec.c
+@@ -762,8 +762,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)
+                 method = EC_GFp_mont_method();
+             } else if (id == s_GFp_nist) {
+                 method = EC_GFp_nist_method();
++#if !defined(OPENSSL_NO_EC2M)
+             } else if (id == s_GF2m_simple) {
+                 method = EC_GF2m_simple_method();
++#endif
+             }
+ 
+             if (method) {
+@@ -817,8 +819,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)
+ 
+             if (id == s_GFp) {
+                 new_curve = EC_GROUP_new_curve_GFp;
++#if !defined(OPENSSL_NO_EC2M)
+             } else if (id == s_GF2m) {
+                 new_curve = EC_GROUP_new_curve_GF2m;
++#endif
+             } else {
+                 ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
+             }
+diff --git a/test/openssl/test_pkey_ec.rb b/test/openssl/test_pkey_ec.rb
+index f151335..56f3ff7 100644
+--- a/test/openssl/test_pkey_ec.rb
++++ b/test/openssl/test_pkey_ec.rb
+@@ -7,28 +7,28 @@ class OpenSSL::TestEC < Test::Unit::TestCase
+     @data1 = 'foo'
+     @data2 = 'bar' * 1000 # data too long for DSA sig
+ 
+-    @group1 = OpenSSL::PKey::EC::Group.new('secp112r1')
+-    @group2 = OpenSSL::PKey::EC::Group.new('sect163k1')
+-    @group3 = OpenSSL::PKey::EC::Group.new('prime256v1')
++    @groups = []
++    @keys = []
+ 
+-    @key1 = OpenSSL::PKey::EC.new
+-    @key1.group = @group1
+-    @key1.generate_key
++    OpenSSL::PKey::EC.builtin_curves.each do |curve, comment|
++      group = OpenSSL::PKey::EC::Group.new(curve)
+ 
+-    @key2 = OpenSSL::PKey::EC.new(@group2.curve_name)
+-    @key2.generate_key
++      key = OpenSSL::PKey::EC.new(group)
++      key.generate_key
+ 
+-    @key3 = OpenSSL::PKey::EC.new(@group3)
+-    @key3.generate_key
+-
+-    @groups = [@group1, @group2, @group3]
+-    @keys = [@key1, @key2, @key3]
++      @groups << group
++      @keys << key
++    end
+   end
+ 
+   def compare_keys(k1, k2)
+     assert_equal(k1.to_pem, k2.to_pem)
+   end
+ 
++  def test_builtin_curves
++    assert(!OpenSSL::PKey::EC.builtin_curves.empty?)
++  end
++
+   def test_curve_names
+     @groups.each_with_index do |group, idx|
+       key = @keys[idx]
+-- 
+1.8.2.1
+
diff --git a/SOURCES/ruby-2.0.0-p195-aarch64.patch b/SOURCES/ruby-2.0.0-p195-aarch64.patch
new file mode 100644
index 0000000..8009d32
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p195-aarch64.patch
@@ -0,0 +1,360 @@
+diff -urN ruby-2.0.0-p0/tool/config.guess ruby-2.0.0-p0-aarch64/tool/config.guess
+--- ruby-2.0.0-p0/tool/config.guess	2012-01-29 07:50:18.000000000 -0600
++++ ruby-2.0.0-p0-aarch64/tool/config.guess	2013-03-08 07:15:49.233030866 -0600
+@@ -2,9 +2,9 @@
+ # Attempt to guess a canonical system name.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+-#   2011 Free Software Foundation, Inc.
++#   2011, 2012 Free Software Foundation, Inc.
+ 
+-timestamp='2011-11-11'
++timestamp='2012-09-25'
+ 
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -17,9 +17,7 @@
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+@@ -57,8 +55,8 @@
+ 
+ Originally written by Per Bothner.
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+-Software Foundation, Inc.
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
++Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -145,7 +143,7 @@
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+     *:NetBSD:*:*)
+ 	# NetBSD (nbsd) targets should (where applicable) match one or
+-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++	# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+ 	# switched to ELF, *-*-netbsd* would select the old
+ 	# object file format.  This provides both forward
+@@ -202,6 +200,10 @@
+ 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ 	echo "${machine}-${os}${release}"
+ 	exit ;;
++    *:Bitrig:*:*)
++	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++	exit ;;
+     *:OpenBSD:*:*)
+ 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+@@ -304,7 +306,7 @@
+     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ 	echo arm-acorn-riscix${UNAME_RELEASE}
+ 	exit ;;
+-    arm:riscos:*:*|arm:RISCOS:*:*)
++    arm*:riscos:*:*|arm*:RISCOS:*:*)
+ 	echo arm-unknown-riscos
+ 	exit ;;
+     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+@@ -803,6 +805,9 @@
+     i*:CYGWIN*:*)
+ 	echo ${UNAME_MACHINE}-pc-cygwin
+ 	exit ;;
++    *:MINGW64*:*)
++	echo ${UNAME_MACHINE}-pc-mingw64
++	exit ;;
+     *:MINGW*:*)
+ 	echo ${UNAME_MACHINE}-pc-mingw32
+ 	exit ;;
+@@ -863,6 +868,13 @@
+     i*86:Minix:*:*)
+ 	echo ${UNAME_MACHINE}-pc-minix
+ 	exit ;;
++    aarch64:Linux:*:*)
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
++	exit ;;
++    aarch64_be:Linux:*:*)
++	UNAME_MACHINE=aarch64_be
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
++	exit ;;
+     alpha:Linux:*:*)
+ 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ 	  EV5)   UNAME_MACHINE=alphaev5 ;;
+@@ -897,16 +909,16 @@
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     cris:Linux:*:*)
+-	echo cris-axis-linux-gnu
++	echo ${UNAME_MACHINE}-axis-linux-gnu
+ 	exit ;;
+     crisv32:Linux:*:*)
+-	echo crisv32-axis-linux-gnu
++	echo ${UNAME_MACHINE}-axis-linux-gnu
+ 	exit ;;
+     frv:Linux:*:*)
+-	echo frv-unknown-linux-gnu
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     hexagon:Linux:*:*)
+-	echo hexagon-unknown-linux-gnu
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     i*86:Linux:*:*)
+ 	LIBC=gnu
+@@ -948,7 +960,7 @@
+ 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ 	;;
+     or32:Linux:*:*)
+-	echo or32-unknown-linux-gnu
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     padre:Linux:*:*)
+ 	echo sparc-unknown-linux-gnu
+@@ -989,7 +1001,7 @@
+ 	echo ${UNAME_MACHINE}-dec-linux-gnu
+ 	exit ;;
+     x86_64:Linux:*:*)
+-	echo x86_64-unknown-linux-gnu
++	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     xtensa*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+@@ -1196,6 +1208,9 @@
+     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+ 	echo i586-pc-haiku
+ 	exit ;;
++    x86_64:Haiku:*:*)
++	echo x86_64-unknown-haiku
++	exit ;;
+     SX-4:SUPER-UX:*:*)
+ 	echo sx4-nec-superux${UNAME_RELEASE}
+ 	exit ;;
+@@ -1251,7 +1266,7 @@
+     NEO-?:NONSTOP_KERNEL:*:*)
+ 	echo neo-tandem-nsk${UNAME_RELEASE}
+ 	exit ;;
+-    NSE-?:NONSTOP_KERNEL:*:*)
++    NSE-*:NONSTOP_KERNEL:*:*)
+ 	echo nse-tandem-nsk${UNAME_RELEASE}
+ 	exit ;;
+     NSR-?:NONSTOP_KERNEL:*:*)
+@@ -1320,11 +1335,11 @@
+     i*86:AROS:*:*)
+ 	echo ${UNAME_MACHINE}-pc-aros
+ 	exit ;;
++    x86_64:VMkernel:*:*)
++	echo ${UNAME_MACHINE}-unknown-esx
++	exit ;;
+ esac
+ 
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+ eval $set_cc_for_build
+ cat >$dummy.c <<EOF
+ #ifdef _SEQUENT_
+diff -urN ruby-2.0.0-p0/tool/config.sub ruby-2.0.0-p0-aarch64/tool/config.sub
+--- ruby-2.0.0-p0/tool/config.sub	2012-01-29 07:50:18.000000000 -0600
++++ ruby-2.0.0-p0-aarch64/tool/config.sub	2013-03-08 07:15:49.328019902 -0600
+@@ -2,9 +2,9 @@
+ # Configuration validation subroutine script.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+-#   2011 Free Software Foundation, Inc.
++#   2011, 2012 Free Software Foundation, Inc.
+ 
+-timestamp='2011-11-11'
++timestamp='2012-10-10'
+ 
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -21,9 +21,7 @@
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+@@ -76,8 +74,8 @@
+ GNU config.sub ($timestamp)
+ 
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
+-Software Foundation, Inc.
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
++Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -125,13 +123,17 @@
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+   knetbsd*-gnu* | netbsd*-gnu* | \
+   kopensolaris*-gnu* | \
+   storm-chaos* | os2-emx* | rtmk-nova*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
++  android-linux)
++    os=-linux-android
++    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++    ;;
+   *)
+     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+     if [ $basic_machine != $1 ]
+@@ -154,7 +156,7 @@
+ 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+-	-apple | -axis | -knuth | -cray | -microblaze)
++	-apple | -axis | -knuth | -cray | -microblaze*)
+ 		os=
+ 		basic_machine=$1
+ 		;;
+@@ -223,6 +225,12 @@
+ 	-isc*)
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
++	-lynx*178)
++		os=-lynxos178
++		;;
++	-lynx*5)
++		os=-lynxos5
++		;;
+ 	-lynx*)
+ 		os=-lynxos
+ 		;;
+@@ -247,6 +255,7 @@
+ 	# Some are omitted here because they have special meanings below.
+ 	1750a | 580 \
+ 	| a29k \
++	| aarch64 | aarch64_be \
+ 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ 	| am33_2.0 \
+@@ -264,7 +273,7 @@
+ 	| le32 | le64 \
+ 	| lm32 \
+ 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+-	| maxq | mb | microblaze | mcore | mep | metag \
++	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ 	| mips | mipsbe | mipseb | mipsel | mipsle \
+ 	| mips16 \
+ 	| mips64 | mips64el \
+@@ -319,8 +328,7 @@
+ 	c6x)
+ 		basic_machine=tic6x-unknown
+ 		;;
+-	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+-		# Motorola 68HC11/12.
++	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ 		basic_machine=$basic_machine-unknown
+ 		os=-none
+ 		;;
+@@ -333,7 +341,10 @@
+ 	strongarm | thumb | xscale)
+ 		basic_machine=arm-unknown
+ 		;;
+-
++	xgate)
++		basic_machine=$basic_machine-unknown
++		os=-none
++		;;
+ 	xscaleeb)
+ 		basic_machine=armeb-unknown
+ 		;;
+@@ -356,6 +367,7 @@
+ 	# Recognize the basic CPU types with company name.
+ 	580-* \
+ 	| a29k-* \
++	| aarch64-* | aarch64_be-* \
+ 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+@@ -377,7 +389,8 @@
+ 	| lm32-* \
+ 	| m32c-* | m32r-* | m32rle-* \
+ 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
++	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
++	| microblaze-* | microblazeel-* \
+ 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ 	| mips16-* \
+ 	| mips64-* | mips64el-* \
+@@ -719,7 +732,6 @@
+ 	i370-ibm* | ibm*)
+ 		basic_machine=i370-ibm
+ 		;;
+-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+ 	i*86v32)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-sysv32
+@@ -777,9 +789,13 @@
+ 		basic_machine=ns32k-utek
+ 		os=-sysv
+ 		;;
+-	microblaze)
++	microblaze*)
+ 		basic_machine=microblaze-xilinx
+ 		;;
++	mingw64)
++		basic_machine=x86_64-pc
++		os=-mingw64
++		;;
+ 	mingw32)
+ 		basic_machine=i386-pc
+ 		os=-mingw32
+@@ -1341,15 +1357,15 @@
+ 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+-	      | -openbsd* | -solidbsd* \
++	      | -bitrig* | -openbsd* | -solidbsd* \
+ 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ 	      | -chorusos* | -chorusrdb* | -cegcc* \
+ 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+-	      | -mingw32* | -linux-gnu* | -linux-android* \
+-	      | -linux-newlib* | -linux-uclibc* \
++	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ 	      | -uxpv* | -beos* | -mpeix* | -udk* \
+ 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+@@ -1532,6 +1548,9 @@
+ 	c4x-* | tic4x-*)
+ 		os=-coff
+ 		;;
++	hexagon-*)
++		os=-elf
++		;;
+ 	tic54x-*)
+ 		os=-coff
+ 		;;
+@@ -1559,9 +1578,6 @@
+ 		;;
+ 	m68000-sun)
+ 		os=-sunos3
+-		# This also exists in the configure program, but was not the
+-		# default.
+-		# os=-sunos4
+ 		;;
+ 	m68*-cisco)
+ 		os=-aout
diff --git a/SOURCES/ruby-2.0.0-p247-Make-stable-Gem-Specification.files-in-default-.gems.patch b/SOURCES/ruby-2.0.0-p247-Make-stable-Gem-Specification.files-in-default-.gems.patch
new file mode 100644
index 0000000..2989954
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p247-Make-stable-Gem-Specification.files-in-default-.gems.patch
@@ -0,0 +1,28 @@
+From fb9fcc8b01d968c62577756cbfd00f20a10b5cbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 9 Jul 2013 12:32:49 +0200
+Subject: [PATCH] Make stable Gem::Specification.files in default .gemspecs
+
+Although the .gemspec files for default gems are same in function, the
+different order of their "s.files" makes them different therefore
+possibly conflicting in multilib scenario.
+---
+ tool/rbinstall.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
+index 1063fac..fb2fcee 100755
+--- a/tool/rbinstall.rb
++++ b/tool/rbinstall.rb
+@@ -592,7 +592,7 @@ module RbInstall
+       end
+ 
+       def collect
+-        ruby_libraries + built_libraries
++        (ruby_libraries + built_libraries).sort
+       end
+ 
+       private
+-- 
+1.8.3.1
+
diff --git a/SOURCES/ruby-2.0.0-p247-Revert-mkmf.rb-prefix-install_dirs-only-with-DESTDIR.patch b/SOURCES/ruby-2.0.0-p247-Revert-mkmf.rb-prefix-install_dirs-only-with-DESTDIR.patch
new file mode 100644
index 0000000..fa7d946
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p247-Revert-mkmf.rb-prefix-install_dirs-only-with-DESTDIR.patch
@@ -0,0 +1,70 @@
+From 28e8a4ad0146fef37b514bde9a27ba5b6f7c34c5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 2 Jul 2013 11:51:50 +0200
+Subject: [PATCH] Revert "mkmf.rb: prefix install_dirs only with DESTDIR"
+
+This reverts commit 7e1d5045943835ff906850e7b3bc71f985ae5f36.
+---
+ lib/mkmf.rb | 29 ++++++++++++++---------------
+ 1 file changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/lib/mkmf.rb b/lib/mkmf.rb
+index ee89198..cca487e 100644
+--- a/lib/mkmf.rb
++++ b/lib/mkmf.rb
+@@ -189,21 +189,21 @@ module MakeMakefile
+       ]
+     elsif $configure_args.has_key?('--vendor')
+       dirs = [
+-        ['BINDIR',        '$(DESTDIR)$(bindir)'],
+-        ['RUBYCOMMONDIR', '$(DESTDIR)$(vendordir)$(target_prefix)'],
+-        ['RUBYLIBDIR',    '$(DESTDIR)$(vendorlibdir)$(target_prefix)'],
+-        ['RUBYARCHDIR',   '$(DESTDIR)$(vendorarchdir)$(target_prefix)'],
+-        ['HDRDIR',        '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
+-        ['ARCHHDRDIR',    '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
++        ['BINDIR',        '$(bindir)'],
++        ['RUBYCOMMONDIR', '$(vendordir)$(target_prefix)'],
++        ['RUBYLIBDIR',    '$(vendorlibdir)$(target_prefix)'],
++        ['RUBYARCHDIR',   '$(vendorarchdir)$(target_prefix)'],
++        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],
++        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
+       ]
+     else
+       dirs = [
+-        ['BINDIR',        '$(DESTDIR)$(bindir)'],
+-        ['RUBYCOMMONDIR', '$(DESTDIR)$(sitedir)$(target_prefix)'],
+-        ['RUBYLIBDIR',    '$(DESTDIR)$(sitelibdir)$(target_prefix)'],
+-        ['RUBYARCHDIR',   '$(DESTDIR)$(sitearchdir)$(target_prefix)'],
+-        ['HDRDIR',        '$(DESTDIR)$(rubyhdrdir)/ruby$(target_prefix)'],
+-        ['ARCHHDRDIR',    '$(DESTDIR)$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
++        ['BINDIR',        '$(bindir)'],
++        ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'],
++        ['RUBYLIBDIR',    '$(sitelibdir)$(target_prefix)'],
++        ['RUBYARCHDIR',   '$(sitearchdir)$(target_prefix)'],
++        ['HDRDIR',        '$(rubyhdrdir)/ruby$(target_prefix)'],
++        ['ARCHHDRDIR',    '$(rubyhdrdir)/$(arch)/ruby$(target_prefix)'],
+       ]
+     end
+     dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")]
+@@ -1728,7 +1728,6 @@ SRC
+   end
+ 
+   def with_destdir(dir)
+-    return dir unless $extmk
+     dir = dir.sub($dest_prefix_pattern, '')
+     /\A\$[\(\{]/ =~ dir ? dir : "$(DESTDIR)"+dir
+   end
+@@ -1787,8 +1786,8 @@ ECHO = $(ECHO1:0=@echo)
+ #### Start of system configuration section. ####
+ #{"top_srcdir = " + $top_srcdir.sub(%r"\A#{Regexp.quote($topdir)}/", "$(topdir)/") if $extmk}
+ srcdir = #{srcdir.gsub(/\$\((srcdir)\)|\$\{(srcdir)\}/) {mkintpath(CONFIG[$1||$2]).unspace}}
+-topdir = #{mkintpath(topdir = $extmk ? CONFIG["topdir"] : $topdir).unspace}
+-hdrdir = #{(hdrdir = CONFIG["hdrdir"]) == topdir ? "$(topdir)" : mkintpath(hdrdir).unspace}
++topdir = #{mkintpath($extmk ? CONFIG["topdir"] : $topdir).unspace}
++hdrdir = #{mkintpath(CONFIG["hdrdir"]).unspace}
+ arch_hdrdir = #{$arch_hdrdir.quote}
+ PATH_SEPARATOR = #{CONFIG['PATH_SEPARATOR']}
+ VPATH = #{vpath.join(CONFIG['PATH_SEPARATOR'])}
+-- 
+1.8.2.1
+
diff --git a/SOURCES/ruby-2.0.0-p313-CVE-2013-4287-algorithmic-complexity-vulnerability.patch b/SOURCES/ruby-2.0.0-p313-CVE-2013-4287-algorithmic-complexity-vulnerability.patch
new file mode 100644
index 0000000..e5d2f28
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p313-CVE-2013-4287-algorithmic-complexity-vulnerability.patch
@@ -0,0 +1,28 @@
+From b3571b55971e92458cba6c13177bae7a9d9b6ffd Mon Sep 17 00:00:00 2001
+From: nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
+Date: Fri, 13 Sep 2013 15:02:01 +0000
+Subject: [PATCH] * lib/rubygems: Update to RubyGems to 2.0.8.
+ [ruby-core:57155]   [Backport #8900]   the patch is provided by drbrain (Eric
+ Hodel).   this update contains a security fix for CVE-2013-4287.
+
+git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
+---
+ lib/rubygems.rb         | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/lib/rubygems/version.rb b/lib/rubygems/version.rb
+index e983751..bbf04f5 100644
+--- a/lib/rubygems/version.rb
++++ b/lib/rubygems/version.rb
+@@ -147,7 +147,7 @@ class Gem::Version
+ 
+   # FIX: These are only used once, in .correct?. Do they deserve to be
+   # constants?
+-  VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*' # :nodoc:
++  VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
+   ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
+ 
+   ##
+-- 
+1.8.4
+
diff --git a/SOURCES/ruby-2.0.0-p318-CVE-2013-4636-algorithmic-complexity-vulnerability.patch b/SOURCES/ruby-2.0.0-p318-CVE-2013-4636-algorithmic-complexity-vulnerability.patch
new file mode 100644
index 0000000..e67783d
--- /dev/null
+++ b/SOURCES/ruby-2.0.0-p318-CVE-2013-4636-algorithmic-complexity-vulnerability.patch
@@ -0,0 +1,73 @@
+Index: lib/rubygems/version.rb
+===================================================================
+--- lib/rubygems/version.rb	(revision 43039)
++++ lib/rubygems/version.rb	(working copy)
+@@ -148,7 +148,7 @@ class Gem::Version
+   # FIX: These are only used once, in .correct?. Do they deserve to be
+   # constants?
+   VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
+-  ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
++  ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
+ 
+   ##
+   # A string representation of this Version.
+Index: test/rubygems/test_gem_requirement.rb
+===================================================================
+--- test/rubygems/test_gem_requirement.rb	(revision 43039)
++++ test/rubygems/test_gem_requirement.rb	(working copy)
+@@ -47,18 +47,20 @@ class TestGemRequirement < Gem::TestCase
+   end
+ 
+   def test_parse_bad
+-    e = assert_raises Gem::Requirement::BadRequirementError do
+-      Gem::Requirement.parse nil
+-    end
+-
+-    assert_equal 'Illformed requirement [nil]', e.message
++    [
++      nil,
++      '',
++      '! 1',
++      '= junk',
++      '1..2',
++    ].each do |bad|
++      e = assert_raises Gem::Requirement::BadRequirementError do
++        Gem::Requirement.parse bad
++      end
+ 
+-    e = assert_raises Gem::Requirement::BadRequirementError do
+-      Gem::Requirement.parse ""
++      assert_equal "Illformed requirement [#{bad.inspect}]", e.message
+     end
+ 
+-    assert_equal 'Illformed requirement [""]', e.message
+-
+     assert_equal Gem::Requirement::BadRequirementError.superclass, ArgumentError
+   end
+ 
+Index: test/rubygems/test_gem_version.rb
+===================================================================
+--- test/rubygems/test_gem_version.rb	(revision 43039)
++++ test/rubygems/test_gem_version.rb	(working copy)
+@@ -67,12 +67,18 @@ class TestGemVersion < Gem::TestCase
+   end
+ 
+   def test_initialize_bad
+-    ["junk", "1.0\n2.0"].each do |bad|
+-      e = assert_raises ArgumentError do
++    %W[
++      junk
++      1.0\n2.0
++      1..2
++      1.2\ 3.4
++      1-2-3
++    ].each do |bad|
++      e = assert_raises ArgumentError, bad do
+         Gem::Version.new bad
+       end
+ 
+-      assert_equal "Malformed version number string #{bad}", e.message
++      assert_equal "Malformed version number string #{bad}", e.message, bad
+     end
+   end
+ 
diff --git a/SOURCES/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch b/SOURCES/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch
new file mode 100644
index 0000000..3a36f91
--- /dev/null
+++ b/SOURCES/ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch
@@ -0,0 +1,43 @@
+diff --git a/Makefile.in b/Makefile.in
+index a93a1e6..fb30c19 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -108,6 +108,7 @@ XRUBY_RUBYLIBDIR = @XRUBY_RUBYLIBDIR@
+ XRUBY_RUBYHDRDIR = @XRUBY_RUBYHDRDIR@
+ 
+ DEFAULT_PRELUDES = $(@USE_RUBYGEMS@_GEM_PRELUDE)
++OPTIONAL_PRELUDES = @OPTIONAL_PRELUDES@
+ 
+ #### End of system configuration section. ####
+ 
+diff --git a/common.mk b/common.mk
+index e5069e5..ca5e3f9 100644
+--- a/common.mk
++++ b/common.mk
+@@ -107,7 +107,7 @@ ALLOBJS       = $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT)
+ 
+ GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)
+ 
+-PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES)
++PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES) $(OPTIONAL_PRELUDES)
+ GEM_PRELUDE = $(srcdir)/gem_prelude.rb
+ YES_GEM_PRELUDE = $(GEM_PRELUDE)
+ NO_GEM_PRELUDE =
+diff --git a/configure.in b/configure.in
+index 7977aaf..1ef42cd 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3494,6 +3494,13 @@ AC_SUBST(rubyarchhdrdir)dnl
+ AC_SUBST(sitearchhdrdir)dnl
+ AC_SUBST(vendorarchhdrdir)dnl
+ 
++AC_ARG_WITH(prelude,
++		AS_HELP_STRING([--with-prelude=FILE-LIST], [specify additional preludes separated by space]),
++		[prelude=$withval])
++if test "$prelude" != ""; then
++    AC_SUBST(OPTIONAL_PRELUDES, $prelude)
++fi
++
+ AC_ARG_WITH(mantype,
+ 	AS_HELP_STRING([--with-mantype=TYPE], [specify man page type; TYPE is one of man and doc]),
+ 		[
diff --git a/SOURCES/ruby-exercise.stp b/SOURCES/ruby-exercise.stp
new file mode 100644
index 0000000..df9df41
--- /dev/null
+++ b/SOURCES/ruby-exercise.stp
@@ -0,0 +1,39 @@
+/* Example tapset file.
+ *
+ * You can execute the tapset using following command (please adjust the path
+ * prior running the command, if needed):
+ * 
+ * stap /usr/share/doc/ruby-2.0.0.0/ruby-exercise.stp -c "ruby -e \"puts 'test'\""
+ */
+
+probe ruby.cmethod.entry {
+  printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line);
+}
+
+probe ruby.cmethod.return {
+  printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line);
+}
+
+probe ruby.method.entry {
+  printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line);
+}
+
+probe ruby.method.return {
+  printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line);
+}
+
+probe ruby.gc.mark.begin { printf("%d gc.mark.begin\n", tid()); }
+
+probe ruby.gc.mark.end { printf("%d gc.mark.end\n", tid()); }
+
+probe ruby.gc.sweep.begin { printf("%d gc.sweep.begin\n", tid()); }
+
+probe ruby.gc.sweep.end { printf("%d gc.sweep.end\n", tid()); }
+
+probe ruby.object.create{
+  printf("%d obj.create %s %s:%d\n", tid(), classname, file, line);
+}
+
+probe ruby.raise {
+  printf("%d raise %s %s:%d\n", tid(), classname, file, line);
+}
diff --git a/SOURCES/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch b/SOURCES/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
new file mode 100644
index 0000000..607e028
--- /dev/null
+++ b/SOURCES/rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
@@ -0,0 +1,152 @@
+From b95b9942361104dc5b7fd08eb4970f893d8c1a54 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Wed, 13 Feb 2013 13:12:30 +0100
+Subject: [PATCH 1/3] Remove duplicated check.
+
+The loaded specifications are rejected already in #gather_dependencies,
+so this condition cannot trigger.
+---
+ lib/rubygems/dependency_installer.rb | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
+index d811f62..dffa8df 100644
+--- a/lib/rubygems/dependency_installer.rb
++++ b/lib/rubygems/dependency_installer.rb
+@@ -330,9 +330,6 @@ class Gem::DependencyInstaller
+ 
+     last = @gems_to_install.size - 1
+     @gems_to_install.each_with_index do |spec, index|
+-      # REFACTOR more current spec set hardcoding, should be abstracted?
+-      next if Gem::Specification.include?(spec) and index != last
+-
+       # TODO: make this sorta_verbose so other users can benefit from it
+       say "Installing gem #{spec.full_name}" if Gem.configuration.really_verbose
+ 
+-- 
+1.8.1.2
+
+
+From 2fa9087b1986db6c7945c0f997fed2bfff5ce06a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Wed, 13 Feb 2013 15:47:47 +0100
+Subject: [PATCH 2/3] Do not modify global Specification.dirs during
+ installation.
+
+While gems are installed into --install-dir just fine even without
+modifications of Specification.dirs, change in it makes inaccessible
+gems already present on the system.
+---
+ lib/rubygems/dependency_installer.rb | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
+index dffa8df..841f26a 100644
+--- a/lib/rubygems/dependency_installer.rb
++++ b/lib/rubygems/dependency_installer.rb
+@@ -57,17 +57,14 @@ class Gem::DependencyInstaller
+   # :build_args:: See Gem::Installer::new
+ 
+   def initialize(options = {})
+-    @install_dir = options[:install_dir] || Gem.dir
+ 
+     if options[:install_dir] then
+-      # HACK shouldn't change the global settings, needed for -i behavior
+-      # maybe move to the install command?  See also github #442
+-      Gem::Specification.dirs = @install_dir
+-      Gem.ensure_gem_subdirectories @install_dir
++      Gem.ensure_gem_subdirectories options[:install_dir]
+     end
+ 
+     options = DEFAULT_OPTIONS.merge options
+ 
++    @install_dir         = options[:install_dir]
+     @bin_dir             = options[:bin_dir]
+     @dev_shallow         = options[:dev_shallow]
+     @development         = options[:development]
+@@ -92,7 +89,7 @@ class Gem::DependencyInstaller
+     @installed_gems = []
+     @toplevel_specs = nil
+ 
+-    @cache_dir = options[:cache_dir] || @install_dir
++    @cache_dir = options[:cache_dir] || @install_dir || Gem.dir
+ 
+     # Set with any errors that SpecFetcher finds while search through
+     # gemspecs for a dep
+@@ -202,7 +199,7 @@ class Gem::DependencyInstaller
+     # that this isn't dependent only on the currently installed gems
+     dependency_list.specs.reject! { |spec|
+       not keep_names.include?(spec.full_name) and
+-      Gem::Specification.include?(spec)
++      (!@install_dir && Gem::Specification.include?(spec))
+     }
+ 
+     unless dependency_list.ok? or @ignore_dependencies or @force then
+@@ -254,7 +251,7 @@ class Gem::DependencyInstaller
+           to_do.push t.spec
+         end
+ 
+-        results.remove_installed! dep
++        results.remove_installed! dep unless @install_dir
+ 
+         @available << results
+         results.inject_into_list dependency_list
+@@ -360,7 +357,7 @@ class Gem::DependencyInstaller
+                                 :force               => @force,
+                                 :format_executable   => @format_executable,
+                                 :ignore_dependencies => @ignore_dependencies,
+-                                :install_dir         => @install_dir,
++                                :install_dir         => (@install_dir || Gem.dir),
+                                 :security_policy     => @security_policy,
+                                 :user_install        => @user_install,
+                                 :wrappers            => @wrappers,
+-- 
+1.8.1.2
+
+
+From d473204ce920702dd87257db49355929f31530d4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Fri, 15 Feb 2013 17:02:44 +0100
+Subject: [PATCH 3/3] Default to Gem.dir as late as possible.
+
+---
+ lib/rubygems/dependency_installer.rb | 2 +-
+ lib/rubygems/installer.rb            | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/rubygems/dependency_installer.rb b/lib/rubygems/dependency_installer.rb
+index 841f26a..abcfa0f 100644
+--- a/lib/rubygems/dependency_installer.rb
++++ b/lib/rubygems/dependency_installer.rb
+@@ -357,7 +357,7 @@ class Gem::DependencyInstaller
+                                 :force               => @force,
+                                 :format_executable   => @format_executable,
+                                 :ignore_dependencies => @ignore_dependencies,
+-                                :install_dir         => (@install_dir || Gem.dir),
++                                :install_dir         => @install_dir,
+                                 :security_policy     => @security_policy,
+                                 :user_install        => @user_install,
+                                 :wrappers            => @wrappers,
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 780a88b..6543130 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -537,13 +537,13 @@ class Gem::Installer
+       :bin_dir      => nil,
+       :env_shebang  => false,
+       :force        => false,
+-      :install_dir  => Gem.dir,
+       :only_install_dir => false
+     }.merge options
+ 
+     @env_shebang         = options[:env_shebang]
+     @force               = options[:force]
+-    @gem_home            = options[:install_dir]
++    @install_dir         = options[:install_dir]
++    @gem_home            = options[:install_dir] || Gem.dir
+     @ignore_dependencies = options[:ignore_dependencies]
+     @format_executable   = options[:format_executable]
+     @security_policy     = options[:security_policy]
+-- 
+1.8.1.2
+
diff --git a/SOURCES/rubygems-2.0.0-Fixes-for-empty-ruby-version.patch b/SOURCES/rubygems-2.0.0-Fixes-for-empty-ruby-version.patch
new file mode 100644
index 0000000..e443a46
--- /dev/null
+++ b/SOURCES/rubygems-2.0.0-Fixes-for-empty-ruby-version.patch
@@ -0,0 +1,81 @@
+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
+
+
+From b022cef7b2e6c2d138388a6c2db02cca8c408cc6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Thu, 14 Feb 2013 13:35:20 +0100
+Subject: [PATCH 2/2] Do not add last slash to Gem.user_dir if ruby_version
+ string is empty.
+
+---
+ lib/rubygems/defaults.rb  | 4 +++-
+ test/rubygems/test_gem.rb | 6 ++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
+index ea84e5c..05c35bb 100644
+--- a/lib/rubygems/defaults.rb
++++ b/lib/rubygems/defaults.rb
+@@ -54,7 +54,9 @@ module Gem
+   # Path for gems in the user's home directory
+ 
+   def self.user_dir
+-    File.join Gem.user_home, '.gem', ruby_engine, ConfigMap[:ruby_version]
++    parts = [Gem.user_home, '.gem', ruby_engine]
++    parts << ConfigMap[:ruby_version] unless ConfigMap[:ruby_version].empty?
++    File.join parts
+   end
+ 
+   ##
+diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
+index bf77009..9ee78f7 100644
+--- a/test/rubygems/test_gem.rb
++++ b/test/rubygems/test_gem.rb
+@@ -1198,8 +1198,10 @@ class TestGem < Gem::TestCase
+   end
+ 
+   def test_self_user_dir
+-    assert_equal File.join(@userhome, '.gem', Gem.ruby_engine,
+-                           Gem::ConfigMap[:ruby_version]), Gem.user_dir
++    parts = [@userhome, '.gem', Gem.ruby_engine]
++    parts << Gem::ConfigMap[:ruby_version] unless Gem::ConfigMap[:ruby_version].empty?
++
++    assert_equal File.join(parts), Gem.user_dir
+   end
+ 
+   def test_self_user_home
+-- 
+1.8.1.2
+
diff --git a/SOURCES/rubygems-2.0.0-binary-extensions.patch b/SOURCES/rubygems-2.0.0-binary-extensions.patch
new file mode 100644
index 0000000..4876d35
--- /dev/null
+++ b/SOURCES/rubygems-2.0.0-binary-extensions.patch
@@ -0,0 +1,344 @@
+From ec90622235ae19b28a327cb50a10e0311e8f3d71 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Thu, 3 Nov 2011 16:43:05 +0100
+Subject: [PATCH 1/8] Add dedicate extensions folder into $LOAD_PATH.
+
+---
+ lib/rubygems/specification.rb | 32 ++++++++++++++++++++++++++++++--
+ 1 file changed, 30 insertions(+), 2 deletions(-)
+
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index cabdf8d..87b14d2 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,6 +1256,12 @@ class Gem::Specification
+       File.join full_gem_path, path
+     end
+ 
++    unless extensions.empty?
++      paths += require_paths.map do |path|
++        File.join ext_dir, path
++      end
++    end
++
+     # gem directories must come after -I and ENV['RUBYLIB']
+     insert_index = Gem.load_path_insert_index
+ 
+@@ -1374,11 +1380,16 @@ class Gem::Specification
+ 
+   def contains_requirable_file? file
+     root     = full_gem_path
++    ext      = ext_dir
+     suffixes = Gem.suffixes
+ 
+     require_paths.any? do |lib|
+-      base = "#{root}/#{lib}/#{file}"
+-      suffixes.any? { |suf| File.file? "#{base}#{suf}" }
++      base = ["#{root}/#{lib}/#{file}"]
++      base << "#{ext}/#{lib}/#{file}" unless extensions.empty?
++
++      base.any? do |path|
++        suffixes.any? { |suf| File.file? "#{path}#{suf}" }
++      end
+     end
+   end
+ 
+@@ -1674,6 +1685,23 @@ class Gem::Specification
+   end
+ 
+   ##
++  # Returns the full path to this spec's ext directory.
++  # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
++
++  def ext_dir
++    @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
++  end
++
++  ##
++  # Returns the full path to the exts directory containing this spec's
++  # gem directory. eg: /usr/local/lib/ruby/1.8/exts
++
++  def exts_dir
++    # TODO: this logic seems terribly broken, but tests fail if just base_dir
++    @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
++  end
++
++  ##
+   # Deprecated and ignored, defaults to true.
+   #
+   # Formerly used to indicate this gem was RDoc-capable.
+-- 
+1.8.1.2
+
+
+From e42819f32fc5d935f7e7189ec4be8bdab0a2cf3f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Wed, 16 Nov 2011 13:26:48 +0100
+Subject: [PATCH 2/8] Use spec's ext dir for extension installation.
+
+---
+ lib/rubygems/installer.rb     | 2 +-
+ lib/rubygems/specification.rb | 7 +++----
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 780a88b..854c177 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+       say "This could take a while..."
+     end
+ 
+-    dest_path = File.join gem_dir, spec.require_paths.first
++    dest_path = spec.ext_dir
+     ran_rake = false # only run rake once
+ 
+     spec.extensions.each do |extension|
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index 87b14d2..492ddbe 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1689,16 +1689,15 @@ class Gem::Specification
+   # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
+ 
+   def ext_dir
+-    @gem_dir ||= File.expand_path File.join(exts_dir, full_name)
++    @ext_dir ||= File.join exts_dir, full_name, require_paths.first
+   end
+ 
+   ##
+   # Returns the full path to the exts directory containing this spec's
+-  # gem directory. eg: /usr/local/lib/ruby/1.8/exts
++  # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+ 
+   def exts_dir
+-    # TODO: this logic seems terribly broken, but tests fail if just base_dir
+-    @exts_dir ||= File.join(loaded_from && base_dir || Gem.dir, "exts")
++    @exts_dir ||= gems_dir
+   end
+ 
+   ##
+-- 
+1.8.1.2
+
+
+From 0e9dd0655111f7dda805233c79a3771459d9a66a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Wed, 16 Nov 2011 14:52:16 +0100
+Subject: [PATCH 3/9] Simplify the extending of $LOAD_PATH for binary gems.
+
+---
+ lib/rubygems/specification.rb | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index 492ddbe..c703827 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,11 +1256,7 @@ class Gem::Specification
+       File.join full_gem_path, path
+     end
+ 
+-    unless extensions.empty?
+-      paths += require_paths.map do |path|
+-        File.join ext_dir, path
+-      end
+-    end
++    paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
+ 
+     # gem directories must come after -I and ENV['RUBYLIB']
+     insert_index = Gem.load_path_insert_index
+@@ -1697,7 +1693,10 @@ class Gem::Specification
+   # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+ 
+   def exts_dir
+-    @exts_dir ||= gems_dir
++    @exts_dir ||= begin
++      dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
++      dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
++    end
+   end
+ 
+   ##
+-- 
+1.8.1.2
+
+
+From 9a8556c609e800d0dbd24af416d613f2e82f323c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Fri, 9 Dec 2011 16:31:04 +0100
+Subject: [PATCH 4/8] Fix the binary extension search path construction.
+
+---
+ lib/rubygems/installer.rb     | 2 +-
+ lib/rubygems/specification.rb | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index 854c177..f1f2ad7 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+       say "This could take a while..."
+     end
+ 
+-    dest_path = spec.ext_dir
++    dest_path = File.join spec.ext_dir, spec.require_paths.first
+     ran_rake = false # only run rake once
+ 
+     spec.extensions.each do |extension|
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index c703827..fa9ea6e 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1256,7 +1256,7 @@ class Gem::Specification
+       File.join full_gem_path, path
+     end
+ 
+-    paths << ext_dir unless extensions.empty? || paths.include?(ext_dir)
++    paths << File.join(ext_dir, require_paths.first) unless extensions.empty? || (ext_dir == full_gem_path)
+ 
+     # gem directories must come after -I and ENV['RUBYLIB']
+     insert_index = Gem.load_path_insert_index
+@@ -1685,7 +1685,7 @@ class Gem::Specification
+   # eg: /usr/local/lib/ruby/1.8/exts/mygem-1.0
+ 
+   def ext_dir
+-    @ext_dir ||= File.join exts_dir, full_name, require_paths.first
++    @ext_dir ||= File.join exts_dir, full_name
+   end
+ 
+   ##
+-- 
+1.8.1.2
+
+
+From 476c2f90cc6f5f490858f253a9b23eb19d53d2fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 13 Dec 2011 12:14:54 +0100
+Subject: [PATCH 5/8] Remove binary extensions during uninstall.
+
+---
+ lib/rubygems/uninstaller.rb | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
+index d672b9d..5c31a0c 100644
+--- a/lib/rubygems/uninstaller.rb
++++ b/lib/rubygems/uninstaller.rb
+@@ -246,6 +246,7 @@ class Gem::Uninstaller
+       File.writable?(spec.base_dir)
+ 
+     FileUtils.rm_rf spec.full_gem_path
++    FileUtils.rm_rf spec.ext_dir
+ 
+     # TODO: should this be moved to spec?... I vote eww (also exists in docmgr)
+     old_platform_name = [spec.name,
+-- 
+1.8.1.2
+
+
+From 35dc17e86f701fe1be80d98ace79735c535fd570 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Tue, 13 Dec 2011 14:27:14 +0100
+Subject: [PATCH 6/8] Avoid dependency on customized operating_system.rb.
+
+---
+ lib/rubygems/defaults.rb      | 11 +++++++++++
+ lib/rubygems/specification.rb |  5 +----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
+index ea84e5c..b221954 100644
+--- a/lib/rubygems/defaults.rb
++++ b/lib/rubygems/defaults.rb
+@@ -101,6 +101,17 @@ module Gem
+   end
+ 
+   ##
++  # Returns binary extensions dir for specified RubyGems base dir or nil
++  # if such directory cannot be determined.
++  #
++  # By default, the binary extensions are located side by side with their
++  # Ruby counterparts, therefore nil is returned
++
++  def self.default_ext_dir_for base_dir
++    nil
++  end
++
++  ##
+   # A wrapper around RUBY_ENGINE const that may not be defined
+ 
+   def self.ruby_engine
+diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
+index fa9ea6e..2b10499 100644
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1693,10 +1693,7 @@ class Gem::Specification
+   # gem directory. eg: /usr/local/lib/ruby/1.8/gems
+ 
+   def exts_dir
+-    @exts_dir ||= begin
+-      dirs = Gem.default_dirs.detect {|location, paths| paths[:gem_dir] == base_dir}
+-      dirs ? File.join(dirs.last[:ext_dir], 'exts') : gems_dir
+-    end
++    @exts_dir ||= Gem.default_ext_dir_for(base_dir) || gems_dir
+   end
+ 
+   ##
+-- 
+1.8.1.2
+
+
+From 0937c0b0a3c2ed08ab5b0875f7f95e24157525c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Thu, 7 Feb 2013 13:07:34 +0100
+Subject: [PATCH 7/8] Fix binary extensions installation when --install-dir is
+ specified.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index f1f2ad7..e1577fc 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+       say "This could take a while..."
+     end
+ 
+-    dest_path = File.join spec.ext_dir, spec.require_paths.first
++    dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
+     ran_rake = false # only run rake once
+ 
+     spec.extensions.each do |extension|
+-- 
+1.8.1.2
+
+
+From 062a11c59731f5875d5a8821a212c8a41cb84577 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
+Date: Fri, 15 Feb 2013 17:07:07 +0100
+Subject: [PATCH 8/8] Use correct option.
+
+---
+ lib/rubygems/installer.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
+index e1577fc..1492c68 100644
+--- a/lib/rubygems/installer.rb
++++ b/lib/rubygems/installer.rb
+@@ -646,7 +646,7 @@ TEXT
+       say "This could take a while..."
+     end
+ 
+-    dest_path = File.join(options[:install_dir] ? gem_dir : spec.ext_dir, spec.require_paths.first)
++    dest_path = File.join(@install_dir ? gem_dir : spec.ext_dir, spec.require_paths.first)
+     ran_rake = false # only run rake once
+ 
+     spec.extensions.each do |extension|
+-- 
+1.8.1.2
+
diff --git a/SPECS/ruby.spec b/SPECS/ruby.spec
new file mode 100644
index 0000000..8cae4f8
--- /dev/null
+++ b/SPECS/ruby.spec
@@ -0,0 +1,1957 @@
+%global major_version 2
+%global minor_version 0
+%global teeny_version 0
+%global patch_level 247
+
+%global major_minor_version %{major_version}.%{minor_version}
+
+%global ruby_version %{major_minor_version}.%{teeny_version}
+%global ruby_version_patch_level %{major_minor_version}.%{teeny_version}.%{patch_level}
+%global ruby_release %{ruby_version}
+
+# Specify the named version. It has precedense to revision.
+#%%global milestone preview2
+
+# Keep the revision enabled for pre-releases from SVN.
+#%%global revision 39387
+
+%global ruby_archive %{name}-%{ruby_version}
+
+# If revision and milestone are removed/commented out, the official release build is expected.
+%if 0%{?milestone:1}%{?revision:1} != 0
+%global development_release %{?milestone}%{?!milestone:%{?revision:r%{revision}}}
+%global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision:r%{revision}}}
+%else
+%global ruby_archive %{ruby_archive}-p%{patch_level}
+%endif
+
+
+%global release 16
+%{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}
+
+%global rubygems_version 2.0.3
+
+# The RubyGems library has to stay out of Ruby directory three, since the
+# RubyGems should be share by all Ruby implementations.
+%global rubygems_dir %{_datadir}/rubygems
+
+%global rake_version 0.9.6
+# TODO: The IRB has strange versioning. Keep the Ruby's versioning ATM.
+# http://redmine.ruby-lang.org/issues/5313
+%global irb_version %{ruby_version_patch_level}
+%global rdoc_version 4.0.0
+%global bigdecimal_version 1.2.0
+%global io_console_version 0.4.2
+%global json_version 1.7.7
+%global minitest_version 4.3.2
+%global psych_version 2.0.0
+
+# Might not be needed in the future, if we are lucky enough.
+# https://bugzilla.redhat.com/show_bug.cgi?id=888262
+%global tapset_root %{_datadir}/systemtap
+%global tapset_dir %{tapset_root}/tapset
+%global tapset_libdir %(echo %{_libdir} | sed 's/64//')*
+
+%global _normalized_cpu %(echo %{_target_cpu} | sed 's/^ppc/powerpc/;s/i.86/i386/;s/sparcv./sparc/')
+
+%if 0%{?fedora} >= 19
+%global with_rubypick 1
+%endif
+
+Summary: An interpreter of object-oriented scripting language
+Name: ruby
+Version: %{ruby_version_patch_level}
+Release: %{release_string}
+Group: Development/Languages
+# Public Domain for example for: include/ruby/st.h, strftime.c, ...
+License: (Ruby or BSD) and Public Domain
+URL: http://ruby-lang.org/
+Source0: ftp://ftp.ruby-lang.org/pub/%{name}/%{major_minor_version}/%{ruby_archive}.tar.bz2
+Source1: operating_system.rb
+# TODO: Try to push SystemTap support upstream.
+Source2: libruby.stp
+Source3: ruby-exercise.stp
+Source4: macros.ruby
+Source5: macros.rubygems
+Source6: abrt_prelude.rb
+# This wrapper fixes https://bugzilla.redhat.com/show_bug.cgi?id=977941
+# Hopefully, it will get removed soon:
+# https://fedorahosted.org/fpc/ticket/312
+# https://bugzilla.redhat.com/show_bug.cgi?id=977941
+Source7: config.h
+
+
+# Include the constants defined in macros files.
+# http://rpm.org/ticket/866
+%{lua:
+
+function source_macros(file)
+  local macro = nil
+
+  for line in io.lines(file) do
+    if not macro and line:match("^%%") then
+      macro = line:match("^%%(.*)$")
+      line = nil
+    end
+
+    if macro then
+      if line and macro:match("^.-%s*\\%s*$") then
+        macro = macro .. '\n' .. line
+      end
+
+      if not macro:match("^.-%s*\\%s*$") then
+        rpm.define(macro)
+        macro = nil
+      end
+    end
+  end
+end
+
+source_macros(rpm.expand("%{SOURCE4}"))
+source_macros(rpm.expand("%{SOURCE5}"))
+
+}
+
+# http://bugs.ruby-lang.org/issues/7807
+Patch0: ruby-2.0.0-Prevent-duplicated-paths-when-empty-version-string-i.patch
+# Force multiarch directories for i.86 to be always named i386. This solves
+# some differencies in build between Fedora and RHEL.
+Patch3: ruby-1.9.3-always-use-i386.patch
+# Fixes random WEBRick test failures.
+# https://bugs.ruby-lang.org/issues/6573.
+Patch5: ruby-1.9.3.p195-fix-webrick-tests.patch
+# Allows to install RubyGems into custom directory, outside of Ruby's tree.
+# http://redmine.ruby-lang.org/issues/5617
+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
+# Note that 8th patch might be resolved by
+# https://bugs.ruby-lang.org/issues/7897
+Patch9: rubygems-2.0.0-binary-extensions.patch
+# Make mkmf verbose by default
+Patch12: ruby-1.9.3-mkmf-verbose.patch
+# This slightly changes behavior of "gem install --install-dir" behavior.
+# Without this patch, Specifications.dirs is modified and gems installed on
+# the system cannot be required anymore. This causes later issues when RDoc
+# documentation should be generated, since json gem is sudenly not accessible.
+# https://github.com/rubygems/rubygems/pull/452
+Patch13: rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.patch
+# This prevents issues, when ruby configuration specifies --with-ruby-version=''.
+# https://github.com/rubygems/rubygems/pull/455
+Patch14: rubygems-2.0.0-Fixes-for-empty-ruby-version.patch
+# Although this does not directly affects Fedora ATM, it might be issue when
+# rebuilding package on different platform (RHEL7). Please keep the patch until
+# it is resolved in upstream.
+# https://bugs.ruby-lang.org/issues/8384
+Patch15: ruby-2.0.0-p195-Fix-build-against-OpenSSL-with-enabled-ECC-curves.patch
+# Adds aarch64 support.
+# http://bugs.ruby-lang.org/issues/8331
+# https://bugzilla.redhat.com/show_bug.cgi?id=926463
+# Please note that this is the BZ patch, it might be good idea to update it
+# with its upstream version when available.
+Patch16: ruby-2.0.0-p195-aarch64.patch
+# Adds support for '--with-prelude' configuration option. This allows to built
+# in support for ABRT.
+# http://bugs.ruby-lang.org/issues/8566
+Patch17: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch
+# Fixes issues with DESTDIR.
+# https://bugs.ruby-lang.org/issues/8115
+Patch18: ruby-2.0.0-p247-Revert-mkmf.rb-prefix-install_dirs-only-with-DESTDIR.patch
+# Fixes multilib conlicts of .gemspec files.
+# https://bugs.ruby-lang.org/issues/8623
+Patch19: ruby-2.0.0-p247-Make-stable-Gem-Specification.files-in-default-.gems.patch
+
+# Version regex algorithmic complexity vulnerability
+# CVE-2013-4287
+# http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=42937
+Patch100: ruby-2.0.0-p313-CVE-2013-4287-algorithmic-complexity-vulnerability.patch
+# Version regex algorithmic complexity vulnerability (CVE for incomplete
+# fix for CVE-2013-4287)
+# CVE-2013-4363
+# http://bugs.ruby-lang.org/issues/8950
+Patch101: ruby-2.0.0-p318-CVE-2013-4636-algorithmic-complexity-vulnerability.patch
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: ruby(rubygems) >= %{rubygems_version}
+# Make the bigdecimal gem a runtime dependency of Ruby to avoid problems
+# with user-installed gems, that don't require it in gemspec/Gemfile
+# See https://bugzilla.redhat.com/show_bug.cgi?id=829209
+# and http://bugs.ruby-lang.org/issues/6123
+Requires: rubygem(bigdecimal) >= %{bigdecimal_version}
+
+BuildRequires: autoconf
+BuildRequires: gdbm-devel
+BuildRequires: ncurses-devel
+BuildRequires: libdb-devel
+BuildRequires: libffi-devel
+BuildRequires: openssl-devel
+BuildRequires: libyaml-devel
+BuildRequires: readline-devel
+BuildRequires: tk-devel
+# Needed to pass test_set_program_name(TestRubyOptions)
+BuildRequires: procps
+BuildRequires: %{_bindir}/dtrace
+# Unbundle cert.pem
+BuildRequires: ca-certificates
+
+# This package provides %%{_bindir}/ruby-mri therefore it is marked by this
+# virtual provide. It can be installed as dependency of rubypick.
+Provides: ruby(runtime_executable) = %{ruby_release}
+
+%global __provides_exclude_from ^(%{ruby_libarchdir}|%{gem_archdir})/.*\\.so$
+
+%description
+Ruby is the interpreted scripting language for quick and easy
+object-oriented programming.  It has many features to process text
+files and to do system management tasks (as in Perl).  It is simple,
+straight-forward, and extensible.
+
+
+%package devel
+Summary:    A Ruby development environment
+Group:      Development/Languages
+Requires:   %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+Header files and libraries for building an extension library for the
+Ruby or an application embedding Ruby.
+
+%package libs
+Summary:    Libraries necessary to run Ruby
+Group:      Development/Libraries
+License:    Ruby or BSD
+Provides:   ruby(release) = %{ruby_release}
+
+%description libs
+This package includes the libruby, necessary to run Ruby.
+
+# TODO: Rename or not rename to ruby-rubygems?
+%package -n rubygems
+Summary:    The Ruby standard for packaging ruby libraries
+Version:    %{rubygems_version}
+Group:      Development/Libraries
+License:    Ruby or MIT
+Requires:   ruby(release)
+Requires:   rubygem(rdoc) >= %{rdoc_version}
+Requires:   rubygem(io-console) >= %{io_console_version}
+Requires:   rubygem(psych) >= %{psych_version}
+Requires:   ca-certificates
+Provides:   gem = %{version}-%{release}
+Provides:   ruby(rubygems) = %{version}-%{release}
+BuildArch:  noarch
+
+%description -n rubygems
+RubyGems is the Ruby standard for publishing and managing third party
+libraries.
+
+
+%package -n rubygems-devel
+Summary:    Macros and development tools for packaging RubyGems
+Version:    %{rubygems_version}
+Group:      Development/Libraries
+License:    Ruby or MIT
+Requires:   ruby(rubygems) = %{version}-%{release}
+BuildArch:  noarch
+
+%description -n rubygems-devel
+Macros and development tools for packaging RubyGems.
+
+
+%package -n rubygem-rake
+Summary:    Ruby based make-like utility
+Version:    %{rake_version}
+Group:      Development/Libraries
+License:    Ruby or MIT
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rake = %{version}-%{release}
+Provides:   rubygem(rake) = %{version}-%{release}
+BuildArch:  noarch
+
+%description -n rubygem-rake
+Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
+specified in standard Ruby syntax.
+
+
+%package irb
+Summary:    The Interactive Ruby
+Version:    %{irb_version}
+Group:      Development/Libraries
+Requires:   %{name}-libs = %{ruby_version_patch_level}
+Provides:   irb = %{version}-%{release}
+Provides:   ruby(irb) = %{version}-%{release}
+BuildArch:  noarch
+
+%description irb
+The irb is acronym for Interactive Ruby.  It evaluates ruby expression
+from the terminal.
+
+
+%package -n rubygem-rdoc
+Summary:    A tool to generate HTML and command-line documentation for Ruby projects
+Version:    %{rdoc_version}
+Group:      Development/Libraries
+License:    GPLv2 and Ruby and MIT
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Requires:   ruby(irb) = %{irb_version}
+Requires:   rubygem(json) >= %{json_version}
+Provides:   rdoc = %{version}-%{release}
+Provides:   ri = %{version}-%{release}
+Provides:   rubygem(rdoc) = %{version}-%{release}
+Obsoletes:  ruby-rdoc < %{version}
+Obsoletes:  ruby-ri < %{version}
+BuildArch:  noarch
+
+%description -n rubygem-rdoc
+RDoc produces HTML and command-line documentation for Ruby projects.  RDoc
+includes the 'rdoc' and 'ri' tools for generating and displaying online
+documentation.
+
+
+%package doc
+Summary:    Documentation for %{name}
+Group:      Documentation
+Requires:   %{_bindir}/ri
+BuildArch:  noarch
+
+%description doc
+This package contains documentation for %{name}.
+
+
+%package -n rubygem-bigdecimal
+Summary:    BigDecimal provides arbitrary-precision floating point decimal arithmetic
+Version:    %{bigdecimal_version}
+Group:      Development/Libraries
+License:    GPL+ or Artistic
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rubygem(bigdecimal) = %{version}-%{release}
+
+%description -n rubygem-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 -n rubygem-io-console
+Summary:    IO/Console is a simple console utilizing library
+Version:    %{io_console_version}
+Group:      Development/Libraries
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rubygem(io-console) = %{version}-%{release}
+
+%description -n rubygem-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 -n rubygem-json
+Summary:    This is a JSON implementation as a Ruby extension in C
+Version:    %{json_version}
+Group:      Development/Libraries
+License:    Ruby or GPLv2
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rubygem(json) = %{version}-%{release}
+
+%description -n rubygem-json
+This is a implementation of the JSON specification according to RFC 4627.
+You can think of it as a low fat alternative to XML, if you want to store
+data to disk or transmit it over a network rather than use a verbose
+markup language.
+
+
+%package -n rubygem-minitest
+Summary:    Minitest provides a complete suite of testing facilities
+Version:    %{minitest_version}
+Group:      Development/Libraries
+License:    MIT
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rubygem(minitest) = %{version}-%{release}
+BuildArch:  noarch
+
+%description -n rubygem-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 -n rubygem-psych
+Summary:    A libyaml wrapper for Ruby
+Version:    %{psych_version}
+Group:      Development/Libraries
+License:    MIT
+Requires:   ruby(release)
+Requires:   ruby(rubygems) >= %{rubygems_version}
+Provides:   rubygem(psych) = %{version}-%{release}
+
+%description -n rubygem-psych
+Psych is a YAML parser and emitter. Psych leverages
+libyaml[http://pyyaml.org/wiki/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.
+
+# TODO:
+# %%pacakge -n rubygem-test-unit
+
+
+%package tcltk
+Summary:    Tcl/Tk interface for scripting language Ruby
+Group:      Development/Languages
+Requires:   %{name}-libs%{?_isa} = %{ruby_version_patch_level}
+Provides:   ruby(tcltk) = %{ruby_version_patch_level}-%{release}
+
+%description tcltk
+Tcl/Tk interface for the object-oriented scripting language Ruby.
+
+%prep
+%setup -q -n %{ruby_archive}
+
+%patch0 -p1
+%patch3 -p1
+%patch5 -p1
+%patch8 -p1
+%patch9 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+
+%patch100 -p1
+%patch101
+
+# Provide an example of usage of the tapset:
+cp -a %{SOURCE3} .
+
+# Make abrt_prelude.rb available for compilation process. The prelude must be
+# available together with Ruby's source due to
+# https://github.com/ruby/ruby/blob/trunk/tool/compile_prelude.rb#L26
+cp -a %{SOURCE6} .
+
+%build
+autoconf
+
+%configure \
+        --with-rubylibprefix='%{ruby_libdir}' \
+        --with-rubyarchprefix='%{ruby_libarchdir}' \
+        --with-sitedir='%{ruby_sitelibdir}' \
+        --with-sitearchdir='%{ruby_sitearchdir}' \
+        --with-vendordir='%{ruby_vendorlibdir}' \
+        --with-vendorarchdir='%{ruby_vendorarchdir}' \
+        --with-rubyhdrdir='%{_includedir}' \
+        --with-rubyarchhdrdir='%{_includedir}' \
+        --with-sitearchhdrdir='$(sitehdrdir)/$(arch)' \
+        --with-vendorarchhdrdir='$(vendorhdrdir)/$(arch)' \
+        --with-rubygemsdir='%{rubygems_dir}' \
+        --with-ruby-pc='%{name}.pc' \
+        --disable-rpath \
+        --enable-shared \
+        --with-ruby-version='' \
+        --enable-multiarch \
+        --with-prelude=./abrt_prelude.rb \
+
+
+
+# Q= makes the build output more verbose and allows to check Fedora
+# compiler options.
+make %{?_smp_mflags} COPY="cp -p" Q=
+
+%install
+rm -rf %{buildroot}
+make install DESTDIR=%{buildroot}
+
+# Rename ruby/config.h to ruby/config-<arch>.h to avoid file conflicts on
+# multilib systems and install config.h wrapper
+mv %{buildroot}%{_includedir}/%{name}/config.h %{buildroot}%{_includedir}/%{name}/config-%{_arch}.h
+install -m644 %{SOURCE7} %{buildroot}%{_includedir}/%{name}/config.h
+
+# Rename the ruby executable. It is replaced by RubyPick.
+%{?with_rubypick:mv %{buildroot}%{_bindir}/%{name}{,-mri}}
+
+# Version is empty if --with-ruby-version is specified.
+# http://bugs.ruby-lang.org/issues/7807
+sed -i 's/Version: \${ruby_version}/Version: %{ruby_version}/' %{buildroot}%{_libdir}/pkgconfig/%{name}.pc
+
+# Move macros file insto proper place and replace the %%{name} macro, since it
+# would be wrongly evaluated during build of other packages.
+mkdir -p %{buildroot}%{_sysconfdir}/rpm
+install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/rpm/macros.ruby
+sed -i "s/%%{name}/%{name}/" %{buildroot}%{_sysconfdir}/rpm/macros.ruby
+install -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/rpm/macros.rubygems
+sed -i "s/%%{name}/%{name}/" %{buildroot}%{_sysconfdir}/rpm/macros.rubygems
+
+# Kill bundled cert.pem
+mkdir -p %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/
+ln -sf %{_sysconfdir}/pki/tls/cert.pem \
+  %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ca-bundle.pem
+
+# Install custom operating_system.rb.
+mkdir -p %{buildroot}%{rubygems_dir}/rubygems/defaults
+cp %{SOURCE1} %{buildroot}%{rubygems_dir}/rubygems/defaults
+
+# Move gems root into common direcotry, out of Ruby directory structure.
+mv %{buildroot}%{ruby_libdir}/gems %{buildroot}%{gem_dir}
+
+# Create folders for gem binary extensions.
+# TODO: These folders should go into rubygem-filesystem but how to achieve it,
+# since noarch package cannot provide arch dependent subpackages?
+# http://rpm.org/ticket/78
+mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name}
+
+# Move bundled rubygems to %%gem_dir and %%gem_extdir_mri
+# make symlinks for io-console and bigdecimal, which are considered to be part of stdlib by other Gems
+mkdir -p %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/lib
+mv %{buildroot}%{ruby_libdir}/rake* %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/lib
+mv %{buildroot}%{gem_dir}/specifications/default/rake-%{rake_version}.gemspec %{buildroot}%{gem_dir}/specifications
+
+mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib
+mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib
+mv %{buildroot}%{gem_dir}/specifications/default/rdoc-%{rdoc_version}.gemspec %{buildroot}%{gem_dir}/specifications
+
+mkdir -p %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib
+mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/lib
+mv %{buildroot}%{ruby_libdir}/bigdecimal %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib
+mv %{buildroot}%{ruby_libarchdir}/bigdecimal.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/lib
+mv %{buildroot}%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec %{buildroot}%{gem_dir}/specifications
+ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib/bigdecimal %{buildroot}%{ruby_libdir}/bigdecimal
+ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/lib/bigdecimal.so %{buildroot}%{ruby_libarchdir}/bigdecimal.so
+
+mkdir -p %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib
+mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/lib/io
+mv %{buildroot}%{ruby_libdir}/io %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib
+mv %{buildroot}%{ruby_libarchdir}/io/console.so %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/lib/io
+mv %{buildroot}%{gem_dir}/specifications/default/io-console-%{io_console_version}.gemspec %{buildroot}%{gem_dir}/specifications
+ln -s %{gem_dir}/gems/io-console-%{io_console_version}/lib/io %{buildroot}%{ruby_libdir}/io
+ln -s %{_libdir}/gems/%{name}/io-console-%{io_console_version}/lib/io/console.so %{buildroot}%{ruby_libarchdir}/io/console.so
+
+mkdir -p %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib
+mkdir -p %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}/lib
+mv %{buildroot}%{ruby_libdir}/json* %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib
+mv %{buildroot}%{ruby_libarchdir}/json/ %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version}/lib/
+mv %{buildroot}%{gem_dir}/specifications/default/json-%{json_version}.gemspec %{buildroot}%{gem_dir}/specifications
+
+mkdir -p %{buildroot}%{gem_dir}/gems/minitest-%{minitest_version}/lib
+mv %{buildroot}%{ruby_libdir}/minitest %{buildroot}%{gem_dir}/gems/minitest-%{minitest_version}/lib
+mv %{buildroot}%{gem_dir}/specifications/default/minitest-%{minitest_version}.gemspec %{buildroot}%{gem_dir}/specifications
+
+mkdir -p %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib
+mkdir -p %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}/lib
+mv %{buildroot}%{ruby_libdir}/psych* %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib
+mv %{buildroot}%{ruby_libarchdir}/psych.so %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version}/lib/
+mv %{buildroot}%{gem_dir}/specifications/default/psych-%{psych_version}.gemspec %{buildroot}%{gem_dir}/specifications
+ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych %{buildroot}%{ruby_libdir}/psych
+ln -s %{gem_dir}/gems/psych-%{psych_version}/lib/psych.rb %{buildroot}%{ruby_libdir}/psych.rb
+ln -s %{_libdir}/gems/%{name}/psych-%{psych_version}/lib/psych.so %{buildroot}%{ruby_libarchdir}/psych.so
+
+# Adjust the gemspec files so that the gems will load properly
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]' %{buildroot}%{gem_dir}/specifications/rake-%{rake_version}.gemspec
+
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]' %{buildroot}%{gem_dir}/specifications/rdoc-%{rdoc_version}.gemspec
+
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]\
+  s.extensions = ["bigdecimal.so"]' %{buildroot}%{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec
+
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]\
+  s.extensions = ["io/console.so"]' %{buildroot}%{gem_dir}/specifications/io-console-%{io_console_version}.gemspec
+
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]\
+  s.extensions = ["json/ext/parser.so", "json/ext/generator.so"]' %{buildroot}%{gem_dir}/specifications/json-%{json_version}.gemspec
+
+sed -i '/^end$/ i\
+  s.require_paths = ["lib"]' %{buildroot}%{gem_dir}/specifications/minitest-%{minitest_version}.gemspec
+
+# Install a tapset and fix up the path to the library.
+mkdir -p %{buildroot}%{tapset_dir}
+sed -e "s|@LIBRARY_PATH@|%{tapset_libdir}/libruby.so.%{ruby_version}|" \
+  %{SOURCE2} > %{buildroot}%{tapset_dir}/libruby.so.%{ruby_version}.stp
+# Escape '*/' in comment.
+sed -i -r "s|( \*.*\*)\/(.*)|\1\\\/\2|" %{buildroot}%{tapset_dir}/libruby.so.%{ruby_version}.stp
+
+%check
+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
+
+make check TESTS="-v $DISABLE_TESTS"
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%files
+%doc COPYING
+%lang(ja) %doc COPYING.ja
+%doc GPL
+%doc LEGAL
+%{_bindir}/erb
+%{_bindir}/%{name}%{?with_rubypick:-mri}
+%{_bindir}/testrb
+%{_mandir}/man1/erb*
+%{_mandir}/man1/ruby*
+
+# http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries
+%exclude %{_libdir}/libruby-static.a
+
+%files devel
+%doc COPYING*
+%doc GPL
+%doc LEGAL
+%doc README.EXT
+%lang(ja) %doc README.EXT.ja
+
+%{_sysconfdir}/rpm/macros.ruby
+
+%{_includedir}/*
+%{_libdir}/libruby.so
+%{_libdir}/pkgconfig/%{name}.pc
+
+%files libs
+%doc COPYING
+%lang(ja) %doc COPYING.ja
+%doc GPL
+%doc LEGAL
+%doc README
+%lang(ja) %doc README.ja
+%doc NEWS
+%doc doc/NEWS-*
+# Exclude /usr/local directory since it is supposed to be managed by
+# local system administrator.
+%exclude %{ruby_sitelibdir}
+%exclude %{ruby_sitearchdir}
+%{ruby_vendorlibdir}
+%{ruby_vendorarchdir}
+
+# List all these files explicitly to prevent surprises
+# Platform independent libraries.
+%dir %{ruby_libdir}
+%{ruby_libdir}/*.rb
+%exclude %{ruby_libdir}/*-tk.rb
+%exclude %{ruby_libdir}/irb.rb
+%exclude %{ruby_libdir}/tcltk.rb
+%exclude %{ruby_libdir}/tk*.rb
+%exclude %{ruby_libdir}/psych.rb
+%{ruby_libdir}/cgi
+%{ruby_libdir}/date
+%{ruby_libdir}/digest
+%{ruby_libdir}/dl
+%{ruby_libdir}/drb
+%{ruby_libdir}/fiddle
+%exclude %{ruby_libdir}/gems
+%exclude %{ruby_libdir}/irb
+%{ruby_libdir}/matrix
+%{ruby_libdir}/net
+%{ruby_libdir}/openssl
+%{ruby_libdir}/optparse
+%{ruby_libdir}/racc
+%{ruby_libdir}/rbconfig
+%{ruby_libdir}/rexml
+%{ruby_libdir}/rinda
+%{ruby_libdir}/ripper
+%{ruby_libdir}/rss
+%{ruby_libdir}/shell
+%{ruby_libdir}/syslog
+%{ruby_libdir}/test
+%exclude %{ruby_libdir}/tk
+%exclude %{ruby_libdir}/tkextlib
+%{ruby_libdir}/uri
+%{ruby_libdir}/webrick
+%{ruby_libdir}/xmlrpc
+%{ruby_libdir}/yaml
+
+# Platform specific libraries.
+%{_libdir}/libruby.so.*
+%dir %{ruby_libarchdir}
+%{ruby_libarchdir}/continuation.so
+%{ruby_libarchdir}/coverage.so
+%{ruby_libarchdir}/curses.so
+%{ruby_libarchdir}/date_core.so
+%{ruby_libarchdir}/dbm.so
+%dir %{ruby_libarchdir}/digest
+%{ruby_libarchdir}/digest.so
+%{ruby_libarchdir}/digest/bubblebabble.so
+%{ruby_libarchdir}/digest/md5.so
+%{ruby_libarchdir}/digest/rmd160.so
+%{ruby_libarchdir}/digest/sha1.so
+%{ruby_libarchdir}/digest/sha2.so
+%dir %{ruby_libarchdir}/dl
+%{ruby_libarchdir}/dl.so
+%{ruby_libarchdir}/dl/callback.so
+%dir %{ruby_libarchdir}/enc
+%{ruby_libarchdir}/enc/big5.so
+%{ruby_libarchdir}/enc/cp949.so
+%{ruby_libarchdir}/enc/emacs_mule.so
+%{ruby_libarchdir}/enc/encdb.so
+%{ruby_libarchdir}/enc/euc_jp.so
+%{ruby_libarchdir}/enc/euc_kr.so
+%{ruby_libarchdir}/enc/euc_tw.so
+%{ruby_libarchdir}/enc/gb18030.so
+%{ruby_libarchdir}/enc/gb2312.so
+%{ruby_libarchdir}/enc/gbk.so
+%{ruby_libarchdir}/enc/iso_8859_1.so
+%{ruby_libarchdir}/enc/iso_8859_10.so
+%{ruby_libarchdir}/enc/iso_8859_11.so
+%{ruby_libarchdir}/enc/iso_8859_13.so
+%{ruby_libarchdir}/enc/iso_8859_14.so
+%{ruby_libarchdir}/enc/iso_8859_15.so
+%{ruby_libarchdir}/enc/iso_8859_16.so
+%{ruby_libarchdir}/enc/iso_8859_2.so
+%{ruby_libarchdir}/enc/iso_8859_3.so
+%{ruby_libarchdir}/enc/iso_8859_4.so
+%{ruby_libarchdir}/enc/iso_8859_5.so
+%{ruby_libarchdir}/enc/iso_8859_6.so
+%{ruby_libarchdir}/enc/iso_8859_7.so
+%{ruby_libarchdir}/enc/iso_8859_8.so
+%{ruby_libarchdir}/enc/iso_8859_9.so
+%{ruby_libarchdir}/enc/koi8_r.so
+%{ruby_libarchdir}/enc/koi8_u.so
+%{ruby_libarchdir}/enc/shift_jis.so
+%dir %{ruby_libarchdir}/enc/trans
+%{ruby_libarchdir}/enc/trans/big5.so
+%{ruby_libarchdir}/enc/trans/chinese.so
+%{ruby_libarchdir}/enc/trans/emoji.so
+%{ruby_libarchdir}/enc/trans/emoji_iso2022_kddi.so
+%{ruby_libarchdir}/enc/trans/emoji_sjis_docomo.so
+%{ruby_libarchdir}/enc/trans/emoji_sjis_kddi.so
+%{ruby_libarchdir}/enc/trans/emoji_sjis_softbank.so
+%{ruby_libarchdir}/enc/trans/escape.so
+%{ruby_libarchdir}/enc/trans/gb18030.so
+%{ruby_libarchdir}/enc/trans/gbk.so
+%{ruby_libarchdir}/enc/trans/iso2022.so
+%{ruby_libarchdir}/enc/trans/japanese.so
+%{ruby_libarchdir}/enc/trans/japanese_euc.so
+%{ruby_libarchdir}/enc/trans/japanese_sjis.so
+%{ruby_libarchdir}/enc/trans/korean.so
+%{ruby_libarchdir}/enc/trans/single_byte.so
+%{ruby_libarchdir}/enc/trans/transdb.so
+%{ruby_libarchdir}/enc/trans/utf8_mac.so
+%{ruby_libarchdir}/enc/trans/utf_16_32.so
+%{ruby_libarchdir}/enc/utf_16be.so
+%{ruby_libarchdir}/enc/utf_16le.so
+%{ruby_libarchdir}/enc/utf_32be.so
+%{ruby_libarchdir}/enc/utf_32le.so
+%{ruby_libarchdir}/enc/windows_1251.so
+%{ruby_libarchdir}/enc/windows_31j.so
+%{ruby_libarchdir}/etc.so
+%{ruby_libarchdir}/fcntl.so
+%{ruby_libarchdir}/fiber.so
+%{ruby_libarchdir}/fiddle.so
+%{ruby_libarchdir}/gdbm.so
+%dir %{ruby_libarchdir}/io
+%{ruby_libarchdir}/io/nonblock.so
+%{ruby_libarchdir}/io/wait.so
+%dir %{ruby_libarchdir}/mathn
+%{ruby_libarchdir}/mathn/complex.so
+%{ruby_libarchdir}/mathn/rational.so
+%{ruby_libarchdir}/nkf.so
+%{ruby_libarchdir}/objspace.so
+%{ruby_libarchdir}/openssl.so
+%{ruby_libarchdir}/pathname.so
+%{ruby_libarchdir}/pty.so
+%dir %{ruby_libarchdir}/racc
+%{ruby_libarchdir}/racc/cparse.so
+%{ruby_libarchdir}/rbconfig.rb
+%{ruby_libarchdir}/readline.so
+%{ruby_libarchdir}/ripper.so
+%{ruby_libarchdir}/sdbm.so
+%{ruby_libarchdir}/socket.so
+%{ruby_libarchdir}/stringio.so
+%{ruby_libarchdir}/strscan.so
+%{ruby_libarchdir}/syslog.so
+%exclude %{ruby_libarchdir}/tcltklib.so
+%exclude %{ruby_libarchdir}/tkutil.so
+%{ruby_libarchdir}/zlib.so
+
+%{tapset_root}
+
+# TODO rubygems 2.0.0 does not create test-unit gemspec
+# TODO for now put this in ruby-libs rpm
+# TODO check if the following can be removed after
+# TODO test-unit rebuild
+%dir %{gem_dir}
+%dir %{gem_dir}/specifications
+%dir %{gem_dir}/specifications/default
+%{gem_dir}/specifications/default/test-unit-*.gemspec
+
+%files -n rubygems
+%{_bindir}/gem
+%{rubygems_dir}
+%{gem_dir}
+%exclude %{gem_dir}/gems/*
+%{_exec_prefix}/lib*/gems
+%exclude %{_exec_prefix}/lib*/gems/%{name}/bigdecimal-%{bigdecimal_version}
+%exclude %{_exec_prefix}/lib*/gems/%{name}/io-console-%{io_console_version}
+%exclude %{_exec_prefix}/lib*/gems/%{name}/json-%{json_version}
+%exclude %{_exec_prefix}/lib*/gems/%{name}/psych-%{psych_version}
+%exclude %{gem_dir}/gems/rake-%{rake_version}
+%exclude %{gem_dir}/gems/rdoc-%{rdoc_version}
+%exclude %{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec
+%exclude %{gem_dir}/specifications/io-console-%{io_console_version}.gemspec
+%exclude %{gem_dir}/specifications/json-%{json_version}.gemspec
+%exclude %{gem_dir}/specifications/minitest-%{minitest_version}.gemspec
+%exclude %{gem_dir}/specifications/rake-%{rake_version}.gemspec
+%exclude %{gem_dir}/specifications/rdoc-%{rdoc_version}.gemspec
+%exclude %{gem_dir}/specifications/psych-%{psych_version}.gemspec
+# TODO rubygems 2.0.0 does not create test-unit gemspec
+# TODO where to put test-unit-*.gemspec??
+%exclude %{gem_dir}/specifications/default/test-unit-*.gemspec
+
+%files -n rubygems-devel
+%{_sysconfdir}/rpm/macros.rubygems
+
+%files -n rubygem-rake
+%{_bindir}/rake
+%{gem_dir}/gems/rake-%{rake_version}
+%{gem_dir}/specifications/rake-%{rake_version}.gemspec
+%{_mandir}/man1/rake.1*
+
+%files irb
+%{_bindir}/irb
+%{ruby_libdir}/irb.rb
+%{ruby_libdir}/irb
+%{_mandir}/man1/irb.1*
+
+%files -n rubygem-rdoc
+%{_bindir}/rdoc
+%{_bindir}/ri
+%{gem_dir}/gems/rdoc-%{rdoc_version}
+%{gem_dir}/specifications/rdoc-%{rdoc_version}.gemspec
+%{_mandir}/man1/ri*
+
+%files doc
+%doc README
+%lang(ja) %doc README.ja
+%doc ChangeLog
+%doc doc/ChangeLog-*
+%doc ruby-exercise.stp
+%{_datadir}/ri
+
+%files -n rubygem-bigdecimal
+%{ruby_libdir}/bigdecimal
+%{ruby_libarchdir}/bigdecimal.so
+%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}
+%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}
+%{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec
+
+%files -n rubygem-io-console
+%{ruby_libdir}/io
+%{ruby_libarchdir}/io/console.so
+%{_libdir}/gems/%{name}/io-console-%{io_console_version}
+%{gem_dir}/gems/io-console-%{io_console_version}
+%{gem_dir}/specifications/io-console-%{io_console_version}.gemspec
+
+%files -n rubygem-json
+%{_libdir}/gems/%{name}/json-%{json_version}
+%{gem_dir}/gems/json-%{json_version}
+%{gem_dir}/specifications/json-%{json_version}.gemspec
+
+%files -n rubygem-minitest
+%{gem_dir}/gems/minitest-%{minitest_version}
+%{gem_dir}/specifications/minitest-%{minitest_version}.gemspec
+
+%files -n rubygem-psych
+%{ruby_libdir}/psych
+%{ruby_libdir}/psych.rb
+%{ruby_libarchdir}/psych.so
+%{_libdir}/gems/%{name}/psych-%{psych_version}
+%{gem_dir}/gems/psych-%{psych_version}
+%{gem_dir}/specifications/psych-%{psych_version}.gemspec
+
+%files tcltk
+%{ruby_libdir}/*-tk.rb
+%{ruby_libdir}/tcltk.rb
+%{ruby_libdir}/tk*.rb
+%{ruby_libarchdir}/tcltklib.so
+%{ruby_libarchdir}/tkutil.so
+%{ruby_libdir}/tk
+%{ruby_libdir}/tkextlib
+
+%changelog
+* Wed Sep 25 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-16
+- Fix version regex algorithmic complexity vulnerability (CVE for incomplete
+  fix for CVE-2013-4287) (CVE-2013-4363).
+  - Related: rhbz#1006429
+
+* Tue Sep 17 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-15
+- Fix version regex algorithmic complexity vulnerability (CVE-2013-4287).
+  - Resolves: rhbz#1006429
+
+* Mon Jul 15 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-14
+- Add forgotten psych.rb link into rubygem-psych to fix "private method `load'
+  called for Psych:Moduler" error (rhbz#979133).
+
+* Thu Jul 11 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-13
+- Fixes multilib conlicts of .gemspec files.
+- Make symlinks for psych gem to ruby stdlib dirs (rhbz#979133).
+- Use system-wide cert.pem.
+
+* Thu Jul 04 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-12
+- Fix RubyGems search paths when building gems with native extension
+  (rhbz#979133).
+
+* Tue Jul 02 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-11
+- Fix RubyGems version.
+
+* Tue Jul 02 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-10
+- Better support for build without configuration (rhbz#977941).
+
+* Mon Jul 01 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.247-9
+- Update to Ruby 2.0.0-p247 (rhbz#979605).
+- Fix CVE-2013-4073.
+- Fix for wrong makefiles created by mkmf (rhbz#921650).
+- Add support for ABRT autoloading.
+
+* Fri May 17 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.195-8
+- Update to Ruby 2.0.0-p195 (rhbz#917374).
+- Fix object taint bypassing in DL and Fiddle (CVE-2013-2065).
+- Fix build against OpenSSL with enabled ECC curves.
+- Add aarch64 support (rhbz#926463).
+
+* Fri Apr 19 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-7
+- Macro definition moved into macros.ruby and macros.rubygems files.
+- Added filtering macros.
+- Filter automatically generated provides of private libraries (rhbz#947408).
+
+* Fri Mar 22 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-6
+- Fix RbConfig::CONFIG['exec_prefix'] returns empty string (rhbz#924851).
+
+* Thu Mar 21 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-5
+- Make Ruby buildable without rubypick.
+- Prevent random test failures.
+
+* Fri Mar 08 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 2.0.0.0-4
+- Don't mark rpm config file as %%config (fpc#259)
+
+* Tue Mar 05 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-3
+- Avoid "method redefined;" warnings due to modified operating_system.rb.
+- Fix strange paths created during build of binary gems.
+
+* Mon Feb 25 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-2
+- Prevent squash of %%gem_install with following line.
+
+* Mon Feb 25 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-1
+- Update to Ruby 2.0.0-p0.
+- Change %%{ruby_extdir} to %%{ruby_extdir_mri} in preparation for better
+  JRuby support.
+
+* Mon Feb 25 2013 Mamoru TASAKA <mtasaka@fedoraprojec.org> - 2.0.0.0-0.3.r39387
+- Move test-unit.gemspec to -libs subpackage for now because rubygems
+  2.0.0 does not create this
+
+* Fri Feb 22 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-0.2.r39387
+- Fix issues with wrong value of Rubygem's shebang introduced in r39267.
+
+* Fri Feb 22 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-0.1.r39387
+- Upgrade to Ruby 2.0.0 (r39387).
+- Introduce %%gem_install macro.
+- Build against libdb instead of libdb4 (rhbz#894022).
+- Move native extensions from exts to ruby directory.
+- Enable most of the PPC test suite.
+- Change ruby(abi) -> ruby(release).
+- Rename ruby executable to ruby-mri, to be prepared for RubyPick.
+- Add ruby(runtime_executable) virtual provide, which is later used
+  by RubyPick.
+- RDoc now depends on JSON.
+- Try to make -doc subpackage noarch again, since the new RDoc should resolve
+  the arch dependent issues (https://github.com/rdoc/rdoc/issues/71).
+- Enable SystemTap support.
+- Add TapSet for Ruby.
+- Split Psych into rubygem-psych subpackage.
+
+* Mon Feb 11 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.385-28
+- Update to 1.9.3 p385
+
+* Sat Jan 19 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.374-27
+- Update to 1.9.3 p374
+- Fix provided variables in pkgconfig (bug 789532:
+  Vít Ondruch <vondruch@redhat.com>)
+
+* Fri Jan 18 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.362-26
+- Provide non-versioned pkgconfig file (bug 789532)
+- Use db5 on F-19 (bug 894022)
+ 
+* Wed Jan 16 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.362-25
+- Backport fix for the upstream PR7629, save the proc made from the given block
+  (bug 895173)
+
+* Wed Jan  2 2013 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.362-24
+- Update to 1.9.3.362
+
+* Mon Dec 03 2012 Jaromir Capik <jcapik@redhat.com> - 1.9.3.327-23
+- Skipping test_parse.rb (fails on ARM at line 787)
+- http://bugs.ruby-lang.org/issues/6899
+
+* Sun Nov 11 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.327-23
+- Skip test_str_crypt (on rawhide) for now (upstream bug 7312)
+
+* Sat Nov 10 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.327-22
+- Ignore some network related tests
+
+* Sat Nov 10 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.327-21
+- Update to 1.9.3.327
+- Fix Hash-flooding DoS vulnerability on MurmurHash function
+  (CVE-2012-5371)
+
+* Sat Oct 13 2012 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.3.286-19
+- Update to 1.9.3 p286
+- Don't create files when NUL-containing path name is passed
+  (bug 865940, CVE-2012-4522)
+
+* Thu Oct 04 2012 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.9.3.194-18
+- Patch from trunk for CVE-2012-4464, CVE-2012-4466
+
+* Thu Sep 06 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.194-17
+- Split documentation into -doc subpackage (rhbz#854418).
+
+* Tue Aug 14 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.194-16
+- Revert the dependency of ruby-libs on rubygems (rhbz#845011, rhbz#847482).
+
+* Wed Aug 01 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.194-15
+- ruby-libs must require rubygems (rhbz#845011).
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.9.3.194-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Mon Jun 11 2012 Bohuslav Kabrda <bkabrda@redhat.com> - 1.9.3.194-13
+- Make the bigdecimal gem a runtime dependency of Ruby.
+
+* Mon Jun 11 2012 Bohuslav Kabrda <bkabrda@redhat.com> - 1.9.3.194-12
+- Make symlinks for bigdecimal and io-console gems to ruby stdlib dirs (RHBZ 829209).
+
+* Tue May 29 2012 Bohuslav Kabrda <bkabrda@redhat.com> - 1.9.3.194-11
+- Fix license to contain Public Domain.
+- macros.ruby now contains unexpanded macros.
+
+* Sun Apr 22 2012 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.9.3.194-10.1
+- Bump release
+
+* Fri Apr 20 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.194-1
+- Update to Ruby 1.9.3-p194.
+
+* Mon Apr 09 2012 Karsten Hopp <karsten@redhat.com> 1.9.3.125-3
+- disable check on ppc(64), RH bugzilla 803698
+
+* Wed Feb 29 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 1.9.3.125-2
+- Temporarily disable make check on ARM until it's fixed upstream. Tracked in RHBZ 789410
+
+* Mon Feb 20 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.125-1
+- Upgrade to Ruby 1.9.3-p125.
+
+* Sun Jan 29 2012 Mamoru Tasaka <mtasaka@fedoraprpject.org> - 1.9.3.0-7
+- Make mkmf.rb verbose by default
+
+* Thu Jan 26 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-6
+- Relax dependencies to allow external updates of bundled gems.
+
+* Wed Jan 18 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-5
+- Initial release of Ruby 1.9.3.
+- Add rubygems dependency on io-console for user interactions.
+- Gems license clarification.
+
+* Tue Jan 17 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-4
+- Bundled gems moved into dedicated directories and subpackages.
+- Create and own RubyGems directories for binary extensions.
+- Fix build with GCC 4.7.
+
+* Mon Jan 16 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-3
+- Fix RHEL build.
+- Fixed directory ownership.
+- Verose build output.
+
+* Sun Jan 15 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-2
+- Install RubyGems outside of Ruby directory structure.
+- RubyGems has not its own -devel subpackage.
+- Enhanced macros.ruby and macros.rubygems.
+- All tests are green now (bkabrda).
+
+* Sat Jan 14 2012 Vít Ondruch <vondruch@redhat.com> - 1.9.3.0-1
+- Initial package
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.7.357-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Dec 29 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.357-1
+- Update to 1.8.7p357
+- Randomize hash on process startup (CVE-2011-4815, bug 750564)
+
+* Fri Dec 23 2011 Dennis Gilmore <dennis@ausil.us> - 1.8.7.352-2
+- dont normalise arm cpus to arm
+- there is something weird about how ruby choses where to put bits
+
+* Thu Nov 17 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.352-3
+- F-17: kill gdbm support for now due to licensing compatibility issue
+
+* Sat Oct  1 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.352-2
+- F-17: rebuild against new gdbm
+
+* Sat Jul 16 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.352-1
+- Update to 1.8.7 p352
+- CVE-2011-2686 is fixed in this version (bug 722415)
+- Update ext/tk to the latest git
+- Remove duplicate path entry (bug 718695)
+
+* Thu Jul 14 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.334-4
+- Once fix FTBFS (bug 716021)
+
+* Mon Jul 11 2011 Dennis Gilmore <dennis@ausil.us> - 1.8.7.334-3
+- normalise arm cpus to arm
+
+* Mon May 30 2011 Mamoru Tasaka <mtasaka@fedoraproject.org> - 1.8.7.334-2
+- Own %%{_normalized_cpu}-%%{_target_os} directory (bug 708816)
+
+* Sat Feb 19 2011 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.334-1
+- Update to 1.8.7 p334
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.7.330-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Sun Jan 02 2011 Dennis Gilmore <dennis@ausil.us> - 1.8.7.330-2
+- nomalise the 32 bit sparc archs to sparc
+
+* Sun Dec 26 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.330-1
+- Update to 1.8.7 p330
+- ext/tk updated to the newest header
+
+* Thu Nov  4 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.302-2
+- Avoid multilib conflict on -libs subpackage (bug 649174)
+
+* Mon Aug 23 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.302-1
+- Update to 1.8.7.302
+- CVE-2010-0541 (bug 587731) is fixed in this version
+- Update ext/tk to the latest head
+
+* Mon Aug  2 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.299-5
+- More cleanup of spec file, expecially for rpmlint issue
+- build ri files in %%build
+
+* Mon Jul 26 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.7.299-4
+- Cleanup spec file
+- Make -irb, -rdoc subpackage noarch
+- Make dependencies between arch-dependent subpackages isa specific
+- Improve sample documentation gathering
+
+* Mon Jul 12 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.299-3
+- updated packaged based on feedback (from mtasaka)
+- added comments to all patches / sources
+- obsoleted ruby-mode, as it's now provided by the emacs package itself
+- readded missing documentation
+- various small compatability/regression fixes
+
+* Tue Jul 06 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.299-2
+- readded bits to pull tk package from upstream source branch
+- removed unecessary .tk.old dir
+- renamed macros which may cause confusion, removed unused ones
+
+* Thu Jun 24 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.299-1
+- integrate more of jmeyering's and mtaska's feedback
+- removed emacs bits that are now shipped with the emacs package
+- various patch and spec cleanup
+- rebased to ruby 1.8.7 patch 299, removed patches no longer needed:
+   ruby-1.8.7-openssl-1.0.patch, ruby-1.8.7-rb_gc_guard_ptr-optimization.patch
+
+* Wed Jun 23 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.249-5
+- Various fixes
+
+* Wed Jun 23 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.249-4
+- Fixed incorrect paths in 1.8.7 rpm
+
+* Tue Jun 22 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.249-3
+- Integrated Jim Meyering's feedback and changes in to:
+- remove trailing blanks
+- placate rpmlint
+- ruby_* definitions: do not use trailing slashes in directory names
+- _normalized_cpu: simplify definition
+
+* Mon Jun 21 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.249-2
+- Integrate mtasaka's feedback and changes
+- patch101 ruby_1_8_7-rb_gc_guard_ptr-optimization.patch
+
+* Tue Jun 15 2010 Mohammed Morsi <mmorsi@redhat.com> - 1.8.7.249-1
+- Initial Ruby 1.8.7 specfile
+
+* Wed May 19 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.399-5
+- Retry for bug 559158, Simplify the OpenSSL::Digest class
+  pull more change commits from ruby_1_8 branch
+
+* Mon May 17 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.399-4
+- Patch36 (ruby-1.8.x-RHASH_SIZE-rb_hash_lookup-def.patch)
+  also backport rb_hash_lookup definition (bug 592936)
+
+* Thu May 13 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.399-3
+- ruby-1.8.x-null-class-must-be-Qnil.patch (bug 530407)
+- Recreate some patches using upstream svn when available, and
+  add some comments for patches
+
+* Tue May 11 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.399-2
+- tcltk: Give up using potentially unmaintained ruby_1_8_6 branch
+  and instead completely replace with ruby_1_8 branch head
+  (at this time, using rev 27738)
+  (seems to fix 560053, 590503)
+- Fix Japanese encoding strings under ruby-tcltk/ext/tk/sample/
+
+* Tue Apr 27 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.399-1
+- Update to 1.8.6 p 399 (bug 579675)
+- Patch to fix gc bug causing open4 crash (bug 580993)
+
+* Fri Mar 12 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.388-9
+- F-14: rebuild against new gdbm
+
+* Thu Jan 28 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp>
+- Once revert the previous change (patch34)
+
+* Wed Jan 27 2010 Jeroen van Meeuwen <j.van.meeuwen@ogd.nl> - 1.8.6.388-8
+- Backport openssl/digest functions providing digest and hexdigest functions
+  directly in OpenSSL::Digest.methods
+- Make sure that Red Hat people version their changelog entries
+- This is actually release #1, but now needs to be release #7
+
+* Mon Jan 18 2010 Akira TAGOH <tagoh@redhat.com> - 1.8.6.388-1
+- Add conditional for RHEL.
+
+* Wed Jan 13 2010 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.383-6
+- CVE-2009-4492 ruby WEBrick log escape sequence (bug 554485)
+
+* Wed Dec  9 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.383-5
+- Change mkmf.rb to use LIBRUBYARG_SHARED so that have_library() works
+  without libruby-static.a (bug 428384)
+- And move libruby-static.a to -static subpackage
+
+* Thu Oct 29 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.383-4
+- Use bison to regenerate parse.c to keep the original format of error
+  messages (bug 530275 comment 4)
+
+* Sun Oct 25 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.383-3
+- Patch so that irb saves its history (bug 518584, ruby issue 1556)
+
+* Sat Oct 24 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.383-2
+- Update to 1.8.6 patchlevel 383 (bug 520063)
+
+* Wed Oct 14 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.369-5
+- Much better idea for Patch31 provided by Akira TAGOH <tagoh@redhat.com>
+
+* Wed Oct 14 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.369-4
+- Fix the search path of ri command for ri manuals installed with gem
+  (bug 528787)
+
+* Wed Aug 26 2009 Tomas Mraz <tmraz@redhat.com> - 1.8.6.369-3
+- Rebuild against new openssl
+
+* Thu Jul 23 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.369-2
+- Make sure that readline.so is linked against readline 5 because
+  Ruby is under GPLv2
+
+* Sat Jun 20 2009  Jeroen van Meeuwen <kanarip@fedoraproject.org> - 1.8.6.369-1
+- New patchlevel fixing CVE-2009-1904
+- Fix directory on ARM (#506233, Kedar Sovani)
+
+* Sun May 31 2009 Jeroen van Meeuwen <j.van.meeuwen@ogd.nl> - 1.8.6.368-1
+- New upstream release (p368)
+
+* Sat Apr 11 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.287-8
+- Merge Review fix (#226381)
+
+* Wed Mar 18 2009 Jeroen van Meeuwen <j.van.meeuwen@ogd.nl> - 1.8.6.287-7
+- Fix regression in CVE-2008-3790 (#485383)
+
+* Mon Mar 16 2009 Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> - 1.8.6.287-6
+- Again use -O2 optimization level
+- i586 should search i386-linux directory (on <= F-11)
+
+* Thu Mar 05 2009 Jeroen van Meeuwen <kanarip@fedoraproject.org> - 1.8.6.287-5
+- Rebuild for gcc4.4
+
+* Fri Feb 27 2009 Jeroen van Meeuwen <kanarip@fedoraproject.org> - 1.8.6.287-3
+- CVE-2008-5189: CGI header injection.
+
+* Wed Oct  8 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.287-2
+- CVE-2008-3790: DoS vulnerability in the REXML module.
+
+* Sat Aug 23 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.287-1
+- New upstream release.
+- Security fixes.
+  - CVE-2008-3655: Ruby does not properly restrict access to critical
+                   variables and methods at various safe levels.
+  - CVE-2008-3656: DoS vulnerability in WEBrick.
+  - CVE-2008-3657: Lack of taintness check in dl.
+  - CVE-2008-1447: DNS spoofing vulnerability in resolv.rb.
+  - CVE-2008-3443: Memory allocation failure in Ruby regex engine.
+- Remove the unnecessary backported patches.
+
+* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 1.8.6.230-5
+- rebuild against db4-4.7
+
+* Tue Jul  1 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.230-4
+- Backported from upstream SVN to fix a segfault issue with Array#fill.
+
+* Mon Jun 30 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.230-3
+- Backported from upstream SVN to fix a segfault issue. (#452825)
+- Backported from upstream SVN to fix an integer overflow in rb_ary_fill.
+
+* Wed Jun 25 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.230-2
+- Fix a segfault issue. (#452810)
+
+* Tue Jun 24 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.230-1
+- New upstream release.
+- Security fixes. (#452295)
+  - CVE-2008-1891: WEBrick CGI source disclosure.
+  - CVE-2008-2662: Integer overflow in rb_str_buf_append().
+  - CVE-2008-2663: Integer overflow in rb_ary_store().
+  - CVE-2008-2664: Unsafe use of alloca in rb_str_format().
+  - CVE-2008-2725: Integer overflow in rb_ary_splice().
+  - CVE-2008-2726: Integer overflow in rb_ary_splice().
+- ruby-1.8.6.111-CVE-2007-5162.patch: removed.
+- Build ruby-mode package for all archtectures.
+
+* Tue Mar  4 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.114-1
+- Security fix for CVE-2008-1145.
+- Improve a spec file. (#226381)
+  - Correct License tag.
+  - Fix a timestamp issue.
+  - Own a arch-specific directory.
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.8.6.111-9
+- Autorebuild for GCC 4.3
+
+* Tue Feb 19 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-8
+- Rebuild for gcc-4.3.
+
+* Tue Jan 15 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-7
+- Revert the change of libruby-static.a. (#428384)
+
+* Fri Jan 11 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-6
+- Fix an unnecessary replacement for shebang. (#426835)
+
+* Fri Jan  4 2008 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-5
+- Rebuild.
+
+* Fri Dec 28 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-4
+- Clean up again.
+
+* Fri Dec 21 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-3
+- Clean up the spec file.
+- Remove ruby-man-1.4.6 stuff. this is entirely the out-dated document.
+  this could be replaced by ri.
+- Disable the static library building.
+
+* Tue Dec 04 2007 Release Engineering <rel-eng at fedoraproject dot org> - 1.8.6.111-2
+ - Rebuild for openssl bump
+
+* Wed Oct 31 2007 Akira TAGOH <tagoh@redhat.com>
+- Fix the dead link.
+
+* Mon Oct 29 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.111-1
+- New upstream release.
+- ruby-1.8.6.111-CVE-2007-5162.patch: Update a bit with backporting the changes
+   at trunk to enable the fix without any modifications on the users' scripts.
+   Note that Net::HTTP#enable_post_connection_check isn't available anymore.
+   If you want to disable this post-check, you should give OpenSSL::SSL::VERIFY_NONE
+   to Net::HTTP#verify_mode= instead of.
+
+* Mon Oct 15 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.110-2
+- Enable pthread support for ppc too. (#201452)
+- Fix unexpected dependencies appears in ruby-libs. (#253325)
+
+* Wed Oct 10 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.110-1
+- New upstream release.
+  - ruby-r12567.patch: removed.
+- ruby-1.8.6-CVE-2007-5162.patch: security fix for Net::HTTP that is
+  insufficient verification of SSL certificate.
+
+* Thu Aug 23 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.36-4
+- Rebuild
+
+* Fri Aug 10 2007 Akira TAGOH <tagoh@redhat.com>
+- Update License tag.
+
+* Mon Jun 25 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.36-3
+- ruby-r12567.patch: backport patch from upstream svn to get rid of
+  the unnecessary declarations. (#245446)
+
+* Wed Jun 20 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6.36-2
+- New upstream release.
+  - Fix Etc::getgrgid to get the correct gid as requested. (#236647)
+
+* Wed Mar 28 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6-2
+- Fix search path breakage. (#234029)
+
+* Thu Mar 15 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.6-1
+- New upstream release.
+- clean up a spec file.
+
+* Tue Feb 13 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.5.12-2
+- Rebuild
+
+* Mon Feb  5 2007 Akira TAGOH <tagoh@redhat.com> - 1.8.5.12-1
+- New upstream release.
+
+* Mon Dec 11 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.5.2-1
+- security fix release.
+
+* Fri Oct 27 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.5-4
+- security fix release.
+- ruby-1.8.5-cgi-CVE-2006-5467.patch: fix a CGI multipart parsing bug that
+  causes the denial of service. (#212396)
+
+* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 1.8.5-3
+- rebuilt for unwind info generation, broken in gcc-4.1.1-21
+
+* Tue Sep 26 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.5-2
+- fixed rbconfig.rb to refer to DESTDIR for sitearchdir. (#207311)
+
+* Mon Aug 28 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.5-1
+- New upstream release.
+- removed the unnecessary patches:
+  - ruby-1.8.4-no-eaccess.patch
+  - ruby-1.8.4-64bit-pack.patch
+  - ruby-1.8.4-fix-insecure-dir-operation.patch
+  - ruby-1.8.4-fix-insecure-regexp-modification.patch
+  - ruby-1.8.4-fix-alias-safe-level.patch
+- build with --enable-pthread except on ppc.
+- ruby-1.8.5-hash-memory-leak.patch: backported from CVS to fix a memory leak
+  on Hash. [ruby-talk:211233]
+
+* Mon Aug  7 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-12
+- owns sitearchdir. (#201208)
+
+* Thu Jul 20 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-11
+- security fixes [CVE-2006-3694]
+  - ruby-1.8.4-fix-insecure-dir-operation.patch:
+  - ruby-1.8.4-fix-insecure-regexp-modification.patch: fixed the insecure
+    operations in the certain safe-level restrictions. (#199538)
+  - ruby-1.8.4-fix-alias-safe-level.patch: fixed to not bypass the certain
+    safe-level restrictions. (#199543)
+
+* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1.8.4-10.fc6.1
+- rebuild
+
+* Mon Jun 19 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-10
+- fixed the wrong file list again. moved tcltk library into ruby-tcltk.
+  (#195872)
+
+* Thu Jun  8 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-8
+- ruby-deprecated-sitelib-search-path.patch: correct the order of search path.
+
+* Wed Jun  7 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-7
+- exclude ppc64 to make ruby-mode package. right now emacs.ppc64 isn't provided
+  and buildsys became much stricter.
+- ruby-deprecated-sitelib-search-path.patch: applied to add more search path
+  for backward compatiblity.
+- added byacc to BuildReq. (#194161)
+
+* Wed May 17 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-6
+- ruby-deprecated-search-path.patch: added the deprecated installation paths
+  to the search path for the backward compatibility.
+- added a Provides: ruby(abi) to ruby-libs.
+- ruby-1.8.4-64bit-pack.patch: backport patch from upstream to fix unpack("l")
+  not working on 64bit arch and integer overflow on template "w". (#189350)
+- updated License tag to be more comfortable, and with a pointer to get more
+  details, like Python package does. (#179933)
+- clean up.
+
+* Wed Apr 19 2006 Akira TAGOH <tagoh@redhat.com>
+- ruby-rubyprefix.patch: moved all arch-independent modules under /usr/lib/ruby
+  and keep arch-dependent modules under /usr/lib64/ruby for 64bit archs.
+  so 'rubylibdir', 'sitelibdir' and 'sitedir' in Config::CONFIG points to
+  the kind of /usr/lib/ruby now. (#184199)
+
+* Mon Apr 17 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-4
+- correct sitelibdir. (#184198)
+
+* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.8.4-3.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.8.4-3.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Mon Feb  6 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-3
+- ruby-1.8.4-no-eaccess.patch: backported from ruby CVS to avoid conflict
+  between newer glibc. (#179835)
+
+* Wed Jan  4 2006 Akira TAGOH <tagoh@redhat.com> - 1.8.4-2
+- ruby-tcltk-multilib.patch: fixed a typo.
+
+* Tue Dec 27 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.4-1
+- New upstream release.
+  - fixed a missing return statement. (#140833)
+  - fixed an use of uninitialized variable. (#144890)
+
+* Fri Dec 16 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.4-0.4.preview2
+- updates to 1.8.4-preview2.
+- renamed the packages to ruby-* (#175765)
+  - irb  -> ruby-irb
+  - rdoc -> ruby-rdoc
+  - ri   -> ruby-ri
+- added tcl-devel and tk-devel into BuildRequires.
+
+* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
+- rebuilt
+
+* Thu Nov 10 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.4-0.3.preview1
+- rebuilt against the latest openssl.
+
+* Tue Nov  1 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.4-0.2.preview1
+- build-deps libX11-devel instead of xorg-x11-devel.
+
+* Mon Oct 31 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.4-0.1.preview1
+- New upstream release.
+- ruby-1.8.2-strscan-memset.patch: removed because it's no longer needed.
+
+* Tue Oct  4 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.3-4
+- moved the documents from ruby-libs to ruby-docs, which contains the arch
+  specific thing and to be multilib support. (#168826)
+
+* Mon Oct  3 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.3-3
+- fixed the wrong file list. the external library for tcl/tk was included
+  in ruby-libs unexpectedly.
+
+* Mon Sep 26 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.3-2
+- ruby-multilib.patch: added another chunk for multilib. (#169127)
+
+* Wed Sep 21 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.3-1
+- New upstream release.
+- Build-Requires xorg-x11-devel instead of XFree86-devel.
+- ruby-multilib.patch: applied for only 64-bit archs.
+- ruby-1.8.2-xmlrpc-CAN-2005-1992.patch: removed. it has already been in upstream.
+
+* Tue Jun 21 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-9
+- ruby-1.8.2-xmlrpc-CAN-2005-1992.patch: fixed the arbitrary command execution
+  on XMLRPC server. (#161096)
+
+* Thu Jun 16 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-8
+- ruby-1.8.2-tcltk-multilib.patch: applied to get tcltklib.so built. (#160194)
+
+* Thu Apr  7 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-7
+- ruby-1.8.2-deadcode.patch: removed the dead code from the source. (#146108)
+- make sure that all documentation files in ruby-docs are the world-
+  readable. (#147279)
+
+* Tue Mar 22 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-6
+- ruby-1.8.2-strscan-memset.patch: fixed an wrong usage of memset(3).
+
+* Tue Mar 15 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-5
+- rebuilt
+
+* Tue Jan 25 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-4
+- fixed the wrong generation of file manifest. (#146055)
+- spec file clean up.
+
+* Mon Jan 24 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-3
+- separated out to rdoc package.
+- make the dependency of irb for rdoc. (#144708)
+
+* Wed Jan 12 2005 Tim Waugh <twaugh@redhat.com> - 1.8.2-2
+- Rebuilt for new readline.
+
+* Wed Jan  5 2005 Akira TAGOH <tagoh@redhat.com> - 1.8.2-1
+- New upstream release.
+- ruby-1.8.1-ia64-stack-limit.patch: removed - it's no longer needed.
+- ruby-1.8.1-cgi_session_perms.patch: likewise.
+- ruby-1.8.1-cgi-dos.patch: likewise.
+- generated Ruby interactive documentation - senarated package.
+  it's now provided as ri package. (#141806)
+
+* Thu Nov 11 2004 Jeff Johnson <jbj@jbj.org> 1.8.1-10
+- rebuild against db-4.3.21.
+
+* Wed Nov 10 2004 Akira TAGOH <tagoh@redhat.com> - 1.8.1-9
+- ruby-1.8.1-cgi-dos.patch: security fix [CAN-2004-0983]
+- ruby-1.8.1-cgi_session_perms.patch: security fix [CAN-2004-0755]
+
+* Fri Oct 29 2004 Akira TAGOH <tagoh@redhat.com> - 1.8.1-8
+- added openssl-devel and db4-devel into BuildRequires (#137479)
+
+* Wed Oct  6 2004 Akira TAGOH <tagoh@redhat.com> - 1.8.1-7
+- require emacs-common instead of emacs.
+
+* Wed Jun 23 2004 Akira TAGOH <tagoh@redhat.com> 1.8.1-4
+- updated the documentation.
+
+* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Wed Feb 04 2004 Akira TAGOH <tagoh@redhat.com> 1.8.1-1
+- New upstream release.
+- don't use any optimization for ia64 to avoid the build failure.
+- ruby-1.8.1-ia64-stack-limit.patch: applied to fix SystemStackError when the optimization is disabled.
+
+* Sat Dec 13 2003 Jeff Johnson <jbj@jbj.org> 1.8.0-3
+- rebuild against db-4.2.52.
+
+* Thu Sep 25 2003 Jeff Johnson <jbj@jbj.org> 1.8.0-2
+- rebuild against db-4.2.42.
+
+* Tue Aug  5 2003 Akira TAGOH <tagoh@redhat.com> 1.8.0-1
+- New upstream release.
+
+* Thu Jul 24 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-9.1
+- rebuilt
+
+* Thu Jul 24 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-9
+- ruby-1.6.8-castnode.patch: handling the nodes with correct cast.
+  use this patch now instead of ruby-1.6.8-fix-x86_64.patch.
+
+* Fri Jul 04 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-8
+- rebuilt
+
+* Fri Jul 04 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-7
+- fix the gcc warnings. (#82192)
+- ruby-1.6.8-fix-x86_64.patch: correct a patch.
+  NOTE: DON'T USE THIS PATCH FOR BIG ENDIAN ARCHITECTURE.
+- ruby-1.6.7-long2int.patch: removed.
+
+* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Fri Feb  7 2003 Jens Petersen <petersen@redhat.com> - 1.6.8-5
+- rebuild against ucs4 tcltk
+
+* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
+- rebuilt
+
+* Wed Jan 22 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-3
+- ruby-1.6.8-multilib.patch: applied to fix the search path issue on x86_64
+
+* Tue Jan 21 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-2
+- ruby-1.6.8-require.patch: applied to fix the search bug in require.
+- don't apply long2int patch to s390 and s390x. it doesn't work.
+
+* Wed Jan 15 2003 Akira TAGOH <tagoh@redhat.com> 1.6.8-1
+- New upstream release.
+- removed some patches. it's no longer needed.
+  - ruby-1.6.7-100.patch
+  - ruby-1.6.7-101.patch
+  - ruby-1.6.7-102.patch
+  - ruby-1.6.7-103.patch
+  - 801_extmk.rb-shellwords.patch
+  - 801_mkmf.rb-shellwords.patch
+  - 804_parse.y-new-bison.patch
+  - 805_uri-bugfix.patch
+  - ruby-1.6.6-900_XXX_strtod.patch
+  - ruby-1.6.7-sux0rs.patch
+  - ruby-1.6.7-libobj.patch
+
+* Wed Jan 15 2003 Jens Petersen <petersen@redhat.com> 1.6.7-14
+- rebuild to update tcltk deps
+
+* Mon Dec 16 2002 Elliot Lee <sopwith@redhat.com> 1.6.7-13
+- Remove ExcludeArch: x86_64
+- Fix x86_64 ruby with long2int.patch (ruby was assuming that sizeof(long)
+  == sizeof(int). The patch does not fix the source of the problem, just
+  makes it a non-issue.)
+- _smp_mflags
+
+* Tue Dec 10 2002 Tim Powers <timp@redhat.com> 1.6.7-12
+- rebuild to fix broken tcltk deps
+
+* Tue Oct 22 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-11
+- use %%configure macro instead of configure script.
+- use the latest config.{sub,guess}.
+- get archname from rbconfig.rb for %%dir
+- applied some patches from Debian:
+  - 801_extmk.rb-shellwords.patch: use Shellwords
+  - 801_mkmf.rb-shellwords.patch: mkmf.rb creates bad Makefile. the Makefile
+    links libruby.a to the target.
+  - 803_sample-fix-shbang.patch: all sample codes should be
+    s|/usr/local/bin|/usr/bin|g
+  - 804_parse.y-new-bison.patch: fix syntax warning.
+  - 805_uri-bugfix.patch: uri.rb could not handle correctly broken mailto-uri.
+- add ExcludeArch x86_64 temporarily to fix Bug#74581. Right now ruby can't be
+  built on x86_64.
+
+* Tue Aug 27 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-10
+- moved sitedir to /usr/lib/ruby/site_ruby again according as our perl and
+  python.
+- ruby-1.6.7-resolv1.patch, ruby-1.6.7-resolv2.patch: applied to fix 'Too many
+  open files - "/etc/resolv.conf"' issue. (Bug#64830)
+
+* Thu Jul 18 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-9
+- add the owned directory.
+
+* Fri Jul 12 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-8
+- fix typo.
+
+* Thu Jul 04 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-7
+- removed the ruby-mode-xemacs because it's merged to the xemacs sumo.
+
+* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Wed Jun 19 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-5
+- fix the stripped binary.
+- use the appropriate macros.
+
+* Sun May 26 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Thu May 23 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-3
+- ruby-1.6.7-libobj.patch: applied to fix autoconf2.53 error.
+
+* Mon Mar 18 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-2
+- ruby-man-1.4.6-jp.tar.bz2: removed.
+- ruby-refm-rdp-1.4.7-ja-html.tar.bz2: uses it instead of.
+- ruby-1.6.7-500-marshal-proc.patch, ruby-1.6.7-501-class-var.patch:
+  removed.
+- ruby-1.6.7-100.patch: applied a bug fix patch.
+  (ruby-dev#16274: patch for 'wm state')
+  (PR#206ja: SEGV handle EXIT)
+- ruby-1.6.7-101.patch: applied a bug fix patch.
+  (ruby-list#34313: singleton should not be Marshal.dump'ed)
+  (ruby-dev#16411: block local var)
+- ruby-1.6.7-102.patch: applied a bug fix patch.
+  (handling multibyte chars is partially broken)
+- ruby-1.6.7-103.patch: applied a bug fix patch.
+  (ruby-dev#16462: preserve reference for GC, but link should be cut)
+
+* Fri Mar  8 2002 Akira TAGOH <tagoh@redhat.com> 1.6.7-1
+- New upstream release.
+- ruby-1.6.6-100.patch, ruby-1.6.6-501-ruby-mode.patch:
+  removed. these patches no longer should be needed.
+- ruby-1.6.7-500-marshal-proc.patch: applied a fix patch.
+  (ruby-dev#16178: Marshal::dump should call Proc#call.)
+- ruby-1.6.7-501-class-var.patch: applied a fix patch.
+  (ruby-talk#35157: class vars broken in 1.6.7)
+
+* Wed Feb 27 2002 Akira TAGOH <tagoh@redhat.com> 1.6.6-5
+- Disable alpha because nothing is xemacs for alpha now.
+
+* Tue Feb  5 2002 Akira TAGOH <tagoh@redhat.com> 1.6.6-3
+- Fixed the duplicate files.
+
+* Tue Feb  5 2002 Akira TAGOH <tagoh@redhat.com> 1.6.6-2
+- Fixed the missing %%defattr
+
+* Fri Feb  1 2002 Akira TAGOH <tagoh@redhat.com> 1.6.6-1
+- New upstream release.
+- Applied bug fix patches:
+  - ruby-1.6.6-501-ruby-mode.patch: ruby-talk#30479: disables font-lock
+    coloring.
+  - ruby-1.6.6-100.patch: ruby-talk#30203: Ruby 1.6.6 bug and fix
+                          ruby-list#33047: regex bug
+                          PR#230: problem with -d in 1.6.6
+- Added ruby-mode and ruby-mode-xemacs packages.
+- Ruby works fine for ia64. so re-enable to build with ia64.
+  (probably it should be worked for alpha)
+
+* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Thu Jul 19 2001 Bernhard Rosenkraenzer <bero@redhat.com> 1.6.4-2
+- Remove Japanese description and summaries; they belong in specspo and
+  break rpm
+- Clean up specfile
+- Mark language specific files (README.jp) as such
+- bzip2 sources
+- rename the libruby package to ruby-libs for consistency
+- Exclude ia64 (doesn't build - the code doesn't seem to be 64-bit clean
+  [has been excluded on alpha forever])
+
+* Tue Jul 17 2001 Akira TAGOH <tagoh@redhat.com> 1.6.4-1
+- rebuild for Red Hat 7.2
+
+* Mon Jun 04 2001 akira yamada <akira@vinelinux.org>
+- upgrade to nwe upstream version 1.6.4.
+
+* Mon Apr 02 2001 akira yamada <akira@vinelinux.org>
+- applied patch:
+  - fixed method cache bug. etc. (Patch103, Patch104)
+
+* Tue Mar 27 2001 akira yamada <akira@vinelinux.org>
+- applied patch:
+  - fixed marshal for bignum bug.
+  - fixed scope of constant variables bug.
+
+* Tue Mar 20 2001 akira yamada <akira@vinelinux.org>
+- upgraded to new upstream version 1.6.3.
+
+* Fri Feb 09 2001 akira yamada <akira@vinelinux.org>
+- fixed bad group for libruby.
+- Applied patch: upgraded to cvs version (2001-02-08):
+  fixed minor bugs.
+
+* Thu Jan 18 2001 akira yamada <akira@vinelinux.org>
+- Applied patch: upgraded to cvs version (2001-01-15):
+  fixed minor bugs(e.g. ruby makes extention librares too large...).
+
+* Wed Jan 10 2001 akira yamada <akira@vinelinux.org>
+- Applied patch: upgraded to cvs version (2001-01-09):
+  fixed minor bugs.
+
+* Sat Dec 30 2000 akira yamada <akira@vinelinux.org>
+- Applied bug fix patch.
+
+* Mon Dec 25 2000 akira yamada <akira@vinelinux.org>
+- Updated to new upstream version 1.6.2.
+
+* Fri Dec 22 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000122019.patch, added ruby_cvs.2000122215.patch
+  (upgraded ruby to latest cvs version, 1.6.2-preview4).
+
+* Wed Dec 20 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000121413.patch, added ruby_cvs.2000122019.patch
+  (upgraded ruby to latest cvs version).
+- new package: libruby
+
+* Thu Dec 14 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000101901.patch, added ruby_cvs.2000121413.patch
+  (upgraded ruby to latest cvs version).
+- Removed ruby-dev.11262.patch, ruby-dev.11265.patch,
+  and ruby-dev.11268.patch (included into above patch).
+
+* Sun Nov 12 2000 MACHINO, Satoshi <machino@vinelinux.org> 1.6.1-0vl9
+- build on gcc-2.95.3
+
+* Thu Oct 19 2000 akira yamada <akira@vinelinux.org>
+- Added ruby-dev.11268.patch.
+
+* Thu Oct 19 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000101117.patch and added ruby_cvs.2000101901.patch
+  (upgraded ruby to latest cvs version).
+- Added ruby-dev.11262.patch.
+- Added ruby-dev.11265.patch.
+
+* Wed Oct 11 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000100313.patch and added ruby_cvs.2000101117.patch
+  (upgraded ruby to latest cvs version).
+
+* Mon Oct 09 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000100313.patch and added ruby_cvs.2000100313.patch
+  (upgraded ruby to latest cvs version).
+
+* Tue Oct 03 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000100218.patch and added ruby_cvs.2000100313.patch
+  (upgraded ruby to latest cvs version).
+
+* Mon Oct 02 2000 akira yamada <akira@vinelinux.org>
+- Removed ruby_cvs.2000092718.patch and added ruby_cvs.2000100218.patch
+  (upgraded ruby to latest cvs version).
+
+* Wed Sep 27 2000 akira yamada <akira@vinelinux.org>
+- Updated to upstream version 1.6.1.
+- Removed ruby_cvs.2000082901.patch and added ruby_cvs.2000092718.patch
+  (upgraded ruby to latest cvs version).
+
+* Tue Aug 29 2000 akira yamada <akira@redhat.com>
+- Updated to version 1.4.6.
+- removed ruby-dev.10123.patch(included into ruby-1.4.6).
+- Added ruby_cvs.2000082901.patch(upgraded ruby to latest cvs version).
+
+* Tue Jun 27 2000 akira yamada <akira@redhat.com>
+- Updated manuals to version 1.4.5.
+
+* Sun Jun 25 2000 akira yamada <akira@redhat.com>
+- Added ruby-dev.10123.patch.
+
+* Sat Jun 24 2000 akira yamada <akira@redhat.com>
+- Updated to version 1.4.5.
+- Removed ruby_cvs.2000062401.patch(included into ruby-1.4.5).
+
+* Thu Jun 22 2000 akira yamada <akira@redhat.com>
+- Updated to version 1.4.4(06/22/2000 CVS).
+- Removed ruby-dev.10054.patch(included into ruby_cvs.patch).
+
+* Thu Jun 22 2000 akira yamada <akira@redhat.com>
+- Renamed to ruby_cvs20000620.patch from ruby_cvs.patch.
+
+* Tue Jun 20 2000 akira yamada <akira@redhat.com>
+- Updated to version 1.4.4(06/20/2000 CVS).
+- Removed ruby-list.23190.patch(included into ruby_cvs.patch).
+- Added ruby-dev.10054.patch.
+
+* Thu Jun 15 2000 akira yamada <akira@redhat.com>
+- Updated to version 1.4.4(06/12/2000 CVS).
+- Added manuals and FAQs.
+- Split into ruby, ruby-devel, ruby-tcltk, ruby-docs, irb.
+
+* Tue Jun 13 2000 Mitsuo Hamada <mhamada@redhat.com>
+- Updated to version 1.4.4
+
+* Wed Dec 08 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.4.3
+
+* Mon Sep 20 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.4.2 (Sep 18)
+
+* Fri Sep 17 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.4.2
+
+* Tue Aug 17 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.4.0
+
+* Fri Jul 23 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- 2nd release
+- Updated to version 1.2.6(15 Jul 1999)
+- striped %%{prefix}/bin/ruby
+
+* Mon Jun 28 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.2.6(21 Jun 1999)
+
+* Wed Apr 14 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.2.5
+
+* Fri Apr 09 1999 Atsushi Yamagata <yamagata@plathome.co.jp>
+- Updated to version 1.2.4
+
+* Fri Dec 25 1998 Toru Hoshina <hoshina@best.com>
+- Version up to 1.2 stable.
+
+* Fri Nov 27 1998 Toru Hoshina <hoshina@best.com>
+- Version up to 1.1c9.
+
+* Thu Nov 19 1998 Toru Hoshina <hoshina@best.com>
+- Version up to 1.1c8, however it appear short life :-P
+
+* Fri Nov 13 1998 Toru Hoshina <hoshina@best.com>
+- Version up.
+
+* Tue Sep 22 1998 Toru Hoshina <hoshina@best.com>
+- To make a libruby.so.
+
+* Mon Sep 21 1998 Toru Hoshina <hoshina@best.com>
+- Modified SPEC in order to install libruby.a so that it should be used by
+  another ruby entention.
+- 2nd release.
+
+* Mon Mar 9 1998 Shoichi OZAWA <shoch@jsdi.or.jp>
+- Added a powerPC arch part. Thanks, MURATA Nobuhiro <nob@makioka.y-min.or.jp>