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