diff --git a/SOURCES/macros.rubygems b/SOURCES/macros.rubygems index 532ea6c9..b55a402a 100644 --- a/SOURCES/macros.rubygems +++ b/SOURCES/macros.rubygems @@ -32,16 +32,6 @@ gem install \\\ %{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$ \ -} - - # The 'read' command in %%gemspec_* macros is not essential, but it is usefull # to make the sript appear in build log. @@ -60,7 +50,7 @@ gem install \\\ # %gemspec_add_dep(g:s:d) \ read -d '' gemspec_add_dep_script << 'EOR' || : \ - gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}.gemspec}' \ + gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \ \ name = '%{-g*}' \ requirements = %{*}%{!?1:nil} \ @@ -97,7 +87,7 @@ unset -v gemspec_add_dep_script \ # %gemspec_remove_dep(g:s:d) \ read -d '' gemspec_remove_dep_script << 'EOR' || : \ - gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}.gemspec}' \ + gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \ \ name = '%{-g*}' \ requirements = %{*}%{!?1:nil} \ @@ -144,7 +134,7 @@ unset -v gemspec_remove_dep_script \ # %gemspec_add_file(s:tr) \ read -d '' gemspec_add_file_script << 'EOR' || : \ - gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}.gemspec}' \ + gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \ \ abort("gemspec_add_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \ \ @@ -177,7 +167,7 @@ unset -v gemspec_add_file_script \ # %gemspec_remove_file(s:tr) \ read -d '' gemspec_remove_file_script << 'EOR' || : \ - gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}.gemspec}' \ + gemspec_file = '%{-s*}%{!?-s:%{_builddir}/%{gem_name}-%{version}%{?prerelease}.gemspec}' \ \ abort("gemspec_remove_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \ \ diff --git a/SOURCES/ruby-1.9.3-mkmf-verbose.patch b/SOURCES/ruby-1.9.3-mkmf-verbose.patch index dc8e9da7..b9c2c6fa 100644 --- a/SOURCES/ruby-1.9.3-mkmf-verbose.patch +++ b/SOURCES/ruby-1.9.3-mkmf-verbose.patch @@ -11,7 +11,7 @@ diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 682eb46..e6b1445 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb -@@ -1911,7 +1911,7 @@ def configuration(srcdir) +@@ -1930,7 +1930,7 @@ def configuration(srcdir) SHELL = /bin/sh # V=0 quiet, V=1 verbose. other values don't work. diff --git a/SOURCES/ruby-2.1.0-Enable-configuration-of-archlibdir.patch b/SOURCES/ruby-2.1.0-Enable-configuration-of-archlibdir.patch index 116bb66c..6352db34 100644 --- a/SOURCES/ruby-2.1.0-Enable-configuration-of-archlibdir.patch +++ b/SOURCES/ruby-2.1.0-Enable-configuration-of-archlibdir.patch @@ -8,10 +8,10 @@ Subject: [PATCH] Allow to configure libruby.so placement. 1 file changed, 5 insertions(+) diff --git a/configure.ac b/configure.ac -index 11fc237552..b77e88fc37 100644 +index d261ea57b5..3c13076b82 100644 --- a/configure.ac +++ b/configure.ac -@@ -3085,6 +3085,11 @@ AS_IF([test ${multiarch+set}], [ +@@ -3102,6 +3102,11 @@ AS_IF([test ${multiarch+set}], [ ]) archlibdir='${libdir}/${arch}' @@ -24,5 +24,5 @@ index 11fc237552..b77e88fc37 100644 archincludedir='${includedir}/${arch}' sitearchincludedir='${includedir}/${sitearch}' -- -1.8.3.1 +2.22.0 diff --git a/SOURCES/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch b/SOURCES/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch index bfb197f5..d48f74e4 100644 --- a/SOURCES/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch +++ b/SOURCES/ruby-2.1.0-Prevent-duplicated-paths-when-empty-version-string-i.patch @@ -11,10 +11,10 @@ Subject: [PATCH] Prevent duplicated paths when empty version string is 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index 999e2d6d5d..11fc237552 100644 +index c42436c23d..d261ea57b5 100644 --- a/configure.ac +++ b/configure.ac -@@ -3710,7 +3710,8 @@ AS_CASE(["$ruby_version_dir_name"], +@@ -3740,7 +3740,8 @@ AS_CASE(["$ruby_version_dir_name"], ruby_version_dir=/'${ruby_version_dir_name}' if test -z "${ruby_version_dir_name}"; then diff --git a/SOURCES/ruby-2.1.0-always-use-i386.patch b/SOURCES/ruby-2.1.0-always-use-i386.patch index d63752ab..d156a733 100644 --- a/SOURCES/ruby-2.1.0-always-use-i386.patch +++ b/SOURCES/ruby-2.1.0-always-use-i386.patch @@ -8,10 +8,10 @@ Subject: [PATCH] Always use i386. 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac -index b77e88fc37..6bba453e3c 100644 +index 3c13076b82..93af30321d 100644 --- a/configure.ac +++ b/configure.ac -@@ -3774,6 +3774,8 @@ AC_SUBST(vendorarchdir)dnl +@@ -3804,6 +3804,8 @@ AC_SUBST(vendorarchdir)dnl AC_SUBST(CONFIGURE, "`echo $0 | sed 's|.*/||'`")dnl AC_SUBST(configure_args, "`echo "${ac_configure_args}" | sed 's/\\$/$$/g'`")dnl diff --git a/SOURCES/ruby-2.1.0-custom-rubygems-location.patch b/SOURCES/ruby-2.1.0-custom-rubygems-location.patch index c4893da8..14e20ecd 100644 --- a/SOURCES/ruby-2.1.0-custom-rubygems-location.patch +++ b/SOURCES/ruby-2.1.0-custom-rubygems-location.patch @@ -12,10 +12,10 @@ Subject: [PATCH] Allow to install RubyGems into custom location, outside of 4 files changed, 22 insertions(+) diff --git a/configure.ac b/configure.ac -index 6bba453e3c..028ef7ca3e 100644 +index 93af30321d..bc13397e0e 100644 --- a/configure.ac +++ b/configure.ac -@@ -3746,6 +3746,10 @@ AC_ARG_WITH(vendorarchdir, +@@ -3776,6 +3776,10 @@ AC_ARG_WITH(vendorarchdir, [vendorarchdir=$withval], [vendorarchdir=${multiarch+'${rubysitearchprefix}/vendor_ruby'${ruby_version_dir}}${multiarch-'${vendorlibdir}/${sitearch}'}]) @@ -26,7 +26,7 @@ index 6bba453e3c..028ef7ca3e 100644 AS_IF([test "${LOAD_RELATIVE+set}"], [ AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) RUBY_EXEC_PREFIX='' -@@ -3770,6 +3774,7 @@ AC_SUBST(sitearchdir)dnl +@@ -3800,6 +3804,7 @@ AC_SUBST(sitearchdir)dnl AC_SUBST(vendordir)dnl AC_SUBST(vendorlibdir)dnl AC_SUBST(vendorarchdir)dnl @@ -67,7 +67,7 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index b47b6e1..0b99408 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb -@@ -334,6 +334,7 @@ def CONFIG.[](name, mandatory = false) +@@ -338,6 +338,7 @@ def CONFIG.[](name, mandatory = false) sitearchlibdir = CONFIG["sitearchdir"] vendorlibdir = CONFIG["vendorlibdir"] vendorarchlibdir = CONFIG["vendorarchdir"] @@ -75,7 +75,7 @@ index b47b6e1..0b99408 100755 mandir = CONFIG["mandir", true] docdir = CONFIG["docdir", true] enable_shared = CONFIG["ENABLE_SHARED"] == 'yes' -@@ -560,7 +561,16 @@ def stub +@@ -565,7 +566,16 @@ def stub install?(:local, :comm, :lib) do prepare "library scripts", rubylibdir noinst = %w[*.txt *.rdoc *.gemspec] diff --git a/SOURCES/ruby-2.3.0-ruby_version.patch b/SOURCES/ruby-2.3.0-ruby_version.patch index a74fb74d..11f73f36 100644 --- a/SOURCES/ruby-2.3.0-ruby_version.patch +++ b/SOURCES/ruby-2.3.0-ruby_version.patch @@ -17,10 +17,10 @@ string. 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/configure.ac b/configure.ac -index 8ea969412f..a00f2b6776 100644 +index 80b137e380..63cd3b4f8b 100644 --- a/configure.ac +++ b/configure.ac -@@ -3661,9 +3661,6 @@ AS_CASE(["$target_os"], +@@ -3691,9 +3691,6 @@ AS_CASE(["$target_os"], rubyw_install_name='$(RUBYW_INSTALL_NAME)' ]) @@ -30,7 +30,7 @@ index 8ea969412f..a00f2b6776 100644 rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_BASE_NAME}'}${multiarch-'${rubylibprefix}/${arch}'} AC_ARG_WITH(rubyarchprefix, AS_HELP_STRING([--with-rubyarchprefix=DIR], -@@ -3686,56 +3683,62 @@ AC_ARG_WITH(ridir, +@@ -3716,56 +3713,62 @@ AC_ARG_WITH(ridir, AC_SUBST(ridir) AC_SUBST(RI_BASE_NAME) @@ -120,7 +120,7 @@ index 8ea969412f..a00f2b6776 100644 AS_IF([test "${LOAD_RELATIVE+set}"], [ AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE) -@@ -3752,6 +3755,7 @@ AC_SUBST(sitearchincludedir)dnl +@@ -3782,6 +3785,7 @@ AC_SUBST(sitearchincludedir)dnl AC_SUBST(arch)dnl AC_SUBST(sitearch)dnl AC_SUBST(ruby_version)dnl @@ -171,7 +171,7 @@ diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb index d4c110e..d39c9a6 100755 --- a/tool/rbinstall.rb +++ b/tool/rbinstall.rb -@@ -424,7 +424,7 @@ def CONFIG.[](name, mandatory = false) +@@ -428,7 +428,7 @@ def CONFIG.[](name, mandatory = false) install?(:doc, :rdoc) do if $rdocdir @@ -181,48 +181,40 @@ index d4c110e..d39c9a6 100755 install_recursive($rdocdir, ridatadir, :no_install => rdoc_noinst, :mode => $data_mode) end -- -2.1.0 +2.23.0 -From f8d136f9a46d1fe87eba622ab9665935d05e981b Mon Sep 17 00:00:00 2001 +From 9f0ec0233f618cbb862629816b22491c3df79578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Tue, 31 Mar 2015 16:37:44 +0200 Subject: [PATCH 3/4] Add ruby_version_dir_name support for RubyGems. --- - lib/rubygems/defaults.rb | 11 ++++++----- - test/rubygems/test_gem.rb | 5 +++-- - 2 files changed, 9 insertions(+), 7 deletions(-) + lib/rubygems/defaults.rb | 9 +++++---- + test/rubygems/test_gem.rb | 5 +++-- + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb -index 55ca080..75eea2b 100644 +index d4ff4a262c..3f9a5bf590 100644 --- a/lib/rubygems/defaults.rb +++ b/lib/rubygems/defaults.rb -@@ -32,20 +32,20 @@ def self.default_dir +@@ -32,13 +32,13 @@ def self.default_dir [ File.dirname(RbConfig::CONFIG['sitedir']), 'Gems', - RbConfig::CONFIG['ruby_version'] -+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] - ] - elsif RbConfig::CONFIG['rubylibprefix'] - [ - RbConfig::CONFIG['rubylibprefix'], - 'gems', -- RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] ] else [ - RbConfig::CONFIG['libdir'], - ruby_engine, + RbConfig::CONFIG['rubylibprefix'], 'gems', - RbConfig::CONFIG['ruby_version'] + RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] ] end -@@ -75,7 +75,8 @@ def self.default_rubygems_dirs +@@ -75,7 +75,8 @@ def self.default_specifications_dir def self.user_dir parts = [Gem.user_home, '.gem', ruby_engine] @@ -232,7 +224,7 @@ index 55ca080..75eea2b 100644 File.join parts end -@@ -172,7 +173,7 @@ def self.vendor_dir # :nodoc: +@@ -158,7 +159,7 @@ def self.vendor_dir # :nodoc: return nil unless RbConfig::CONFIG.key? 'vendordir' File.join RbConfig::CONFIG['vendordir'], 'gems', @@ -242,10 +234,10 @@ index 55ca080..75eea2b 100644 ## diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb -index 0428bea..b6e090e 100644 +index b25068405d..e9fef4a311 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb -@@ -1288,7 +1288,8 @@ def test_self_use_paths +@@ -1353,7 +1353,8 @@ def test_self_use_paths def test_self_user_dir parts = [@userhome, '.gem', Gem.ruby_engine] @@ -255,15 +247,15 @@ index 0428bea..b6e090e 100644 assert_equal File.join(parts), Gem.user_dir end -@@ -1365,7 +1366,7 @@ def test_self_gzip - def test_self_vendor_dir - expected = - File.join RbConfig::CONFIG['vendordir'], 'gems', -- RbConfig::CONFIG['ruby_version'] -+ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] +@@ -1429,7 +1430,7 @@ def test_self_vendor_dir + vendordir(File.join(@tempdir, 'vendor')) do + expected = + File.join RbConfig::CONFIG['vendordir'], 'gems', +- RbConfig::CONFIG['ruby_version'] ++ RbConfig::CONFIG['ruby_version_dir_name'] || RbConfig::CONFIG['ruby_version'] - assert_equal expected, Gem.vendor_dir - end + assert_equal expected, Gem.vendor_dir + end -- 2.1.0 @@ -282,7 +274,7 @@ diff --git a/configure.ac b/configure.ac index a00f2b6776..999e2d6d5d 100644 --- a/configure.ac +++ b/configure.ac -@@ -101,7 +101,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` +@@ -98,7 +98,7 @@ RUBY_BASE_NAME=`echo ruby | sed "$program_transform_name"` RUBYW_BASE_NAME=`echo rubyw | sed "$program_transform_name"` AC_SUBST(RUBY_BASE_NAME) AC_SUBST(RUBYW_BASE_NAME) diff --git a/SOURCES/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch b/SOURCES/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch index 1e6f83f9..4d81a842 100644 --- a/SOURCES/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch +++ b/SOURCES/ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch @@ -8,14 +8,14 @@ on Red Hat platforms. This workaround rhbz#1361037 --- - test/fiddle/helper.rb | 89 ------------------------------------------- - 1 file changed, 89 deletions(-) + test/fiddle/helper.rb | 105 ------------------------------------------ + 1 file changed, 105 deletions(-) diff --git a/test/fiddle/helper.rb b/test/fiddle/helper.rb index 1da3d93..65148a1 100644 --- a/test/fiddle/helper.rb +++ b/test/fiddle/helper.rb -@@ -6,95 +6,6 @@ +@@ -6,111 +6,6 @@ libc_so = libm_so = nil @@ -23,12 +23,28 @@ index 1da3d93..65148a1 100644 -when /cygwin/ - libc_so = "cygwin1.dll" - libm_so = "cygwin1.dll" +-when /android/ +- libdir = '/system/lib' +- if [0].pack('L!').size == 8 +- libdir = '/system/lib64' +- end +- libc_so = File.join(libdir, "libc.so") +- libm_so = File.join(libdir, "libm.so") -when /linux/ - libdir = '/lib' -- case [0].pack('L!').size +- case RbConfig::SIZEOF['void*'] - when 4 - # 32-bit ruby -- libdir = '/lib32' if File.directory? '/lib32' +- case RUBY_PLATFORM +- when /armv\w+-linux/ +- # In the ARM 32-bit libc package such as libc6:armhf libc6:armel, +- # libc.so and libm.so are installed to /lib/arm-linux-gnu*. +- # It's not installed to /lib32. +- dirs = Dir.glob('/lib/arm-linux-gnu*') +- libdir = dirs[0] if dirs && File.directory?(dirs[0]) +- else +- libdir = '/lib32' if File.directory? '/lib32' +- end - when 8 - # 64-bit ruby - libdir = '/lib64' if File.directory? '/lib64' @@ -59,7 +75,7 @@ index 1da3d93..65148a1 100644 - libm_so = "/usr/lib/libm.so" -when /solaris/ - libdir = '/lib' -- case [0].pack('L!').size +- case RbConfig::SIZEOF['void*'] - when 4 - # 32-bit ruby - libdir = '/lib' if File.directory? '/lib' @@ -110,7 +126,7 @@ index 1da3d93..65148a1 100644 - if !libc_so || !libm_so ruby = EnvUtil.rubybin - ldd = `ldd #{ruby}` + # When the ruby binary is 32-bit and the host is 64-bit, -- 2.9.2 diff --git a/SOURCES/ruby-2.7.0-Initialize-ABRT-hook.patch b/SOURCES/ruby-2.7.0-Initialize-ABRT-hook.patch new file mode 100644 index 00000000..58c92cfc --- /dev/null +++ b/SOURCES/ruby-2.7.0-Initialize-ABRT-hook.patch @@ -0,0 +1,77 @@ +From eca084e4079c77c061045df9c21b219175b05228 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= +Date: Mon, 6 Jan 2020 13:56:04 +0100 +Subject: [PATCH] Initialize ABRT hook. + +The ABRT hook used to be initialized by preludes via patches [[1], [2]]. +Unfortunately, due to [[3]] and especially since [[4]], this would +require boostrapping [[5]]. + +To keep the things simple for now, load the ABRT hook via C. + +[1]: https://bugs.ruby-lang.org/issues/8566 +[2]: https://bugs.ruby-lang.org/issues/15306 +[3]: https://bugs.ruby-lang.org/issues/16254 +[4]: https://github.com/ruby/ruby/pull/2735 +[5]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/ +--- + abrt.c | 12 ++++++++++++++ + common.mk | 3 ++- + ruby.c | 4 ++++ + 3 files changed, 18 insertions(+), 1 deletion(-) + create mode 100644 abrt.c + +diff --git a/abrt.c b/abrt.c +new file mode 100644 +index 0000000000..74b0bd5c0f +--- /dev/null ++++ b/abrt.c +@@ -0,0 +1,12 @@ ++#include "internal.h" ++ ++void ++Init_abrt(void) ++{ ++ rb_eval_string( ++ " begin\n" ++ " require 'abrt'\n" ++ " rescue LoadError\n" ++ " end\n" ++ ); ++} +diff --git a/common.mk b/common.mk +index b2e5b2b6d0..f39f81da5c 100644 +--- a/common.mk ++++ b/common.mk +@@ -81,7 +81,8 @@ ENC_MK = enc.mk + MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \ + RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags) + +-COMMONOBJS = array.$(OBJEXT) \ ++COMMONOBJS = abrt.$(OBJEXT) \ ++ array.$(OBJEXT) \ + ast.$(OBJEXT) \ + bignum.$(OBJEXT) \ + class.$(OBJEXT) \ +diff --git a/ruby.c b/ruby.c +index 60c57d6259..1eec16f2c8 100644 +--- a/ruby.c ++++ b/ruby.c +@@ -1439,10 +1439,14 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) + + void Init_builtin_features(void); + ++/* abrt.c */ ++void Init_abrt(void); ++ + static void + ruby_init_prelude(void) + { + Init_builtin_features(); ++ Init_abrt(); + rb_const_remove(rb_cObject, rb_intern_const("TMP_RUBY_PREFIX")); + } + +-- +2.24.1 + diff --git a/SOURCES/ruby-2.7.0-Remove-RubyGems-dependency.patch b/SOURCES/ruby-2.7.0-Remove-RubyGems-dependency.patch new file mode 100644 index 00000000..42052178 --- /dev/null +++ b/SOURCES/ruby-2.7.0-Remove-RubyGems-dependency.patch @@ -0,0 +1,32 @@ +From 6532dbecf36d1f24dab1f2143afd171e0b7699eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= +Date: Wed, 4 Sep 2019 15:07:07 +0200 +Subject: [PATCH] Remove RubyGems dependency. + +Since `Process::RLIMIT_NOFILE` is platform specific, better to use Ruby +introspection than detecting platform. +--- + .../vendor/net-http-persistent/lib/net/http/persistent.rb | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +index a54be2a..06739f1 100644 +--- a/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb ++++ b/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +@@ -202,10 +202,10 @@ class Bundler::Persistent::Net::HTTP::Persistent + ## + # The default connection pool size is 1/4 the allowed open files. + +- if Gem.win_platform? then +- DEFAULT_POOL_SIZE = 256 +- else ++ if Process.const_defined? :RLIMIT_NOFILE + DEFAULT_POOL_SIZE = Process.getrlimit(Process::RLIMIT_NOFILE).first / 4 ++ else ++ DEFAULT_POOL_SIZE = 256 + end + + ## +-- +2.23.0 + diff --git a/SOURCES/test_systemtap.rb b/SOURCES/test_systemtap.rb new file mode 100644 index 00000000..5784e2da --- /dev/null +++ b/SOURCES/test_systemtap.rb @@ -0,0 +1,65 @@ +require 'set' + +LIBRUBY_SO = 'libruby.so' +PROBES_D = 'probes.d' + +# These probes are excluded by VM_COLLECT_USAGE_DETAILS ifdef. +EXCLUDE_PROBES = Set.new %w(insn insn__operand) + +## Detect SystemTap section headers presence + +stap_headers = [ + '\.stapsdt\.base', + '\.note\.stapsdt' +] + +header_regexp = %r{ (#{stap_headers.join('|')}) } + +section_headers = `readelf -S "#{LIBRUBY_SO}"` +detected_stap_headers = section_headers.scan(header_regexp).flatten + +# Assume there are both headers until this is proven wrong ;) +unless detected_stap_headers.size == 2 + puts 'ERROR: SystemTap (DTrace) headers were not detected in resulting library.' + exit false +end + +## Find if every declared probe is propagated to resulting library + +# Colect probes specified in probes.d file. +probes_declared = [] + +File.open(PROBES_D) do |file| + file.each_line do |line| + if probe = line[/probe (\S+)\(.*\);/, 1] + probes_declared << probe + end + end +end + +probes_declared = Set.new probes_declared + +unless EXCLUDE_PROBES.subset? probes_declared + puts 'ERROR: Change in SystemTap (DTrace) probes definition file detected.' + exit false +end + +probes_declared -= EXCLUDE_PROBES + +# Detect probes in resulting library. +get_probes_detected = %r{ +^\s*Provider:\s+ruby,\s+Name:\s+(\S+),\s+.*$ +} + +probes_detected = `eu-readelf -n "#{LIBRUBY_SO}"` + +probes_detected = Set.new probes_detected.scan(get_probes_detected).flatten + +# Both sets must be equal, otherwise something is wrong. +unless probes_declared == probes_detected + puts 'ERROR: SystemTap (DTrace) probes were not correctly propagated into resulting library.' + puts " Undetected probes: #{(probes_declared - probes_detected).sort.join(', ')}\n", + " Additional detected probes: #{(probes_detected - probes_declared).sort.join(', ')}" + + exit false +end diff --git a/SPECS/ruby.spec b/SPECS/ruby.spec index 67057553..c4c5978b 100644 --- a/SPECS/ruby.spec +++ b/SPECS/ruby.spec @@ -1,56 +1,59 @@ %global major_version 2 -%global minor_version 6 -%global teeny_version 5 +%global minor_version 7 +%global teeny_version 0 %global major_minor_version %{major_version}.%{minor_version} %global ruby_version %{major_minor_version}.%{teeny_version} %global ruby_release %{ruby_version} # Specify the named version. It has precedense to revision. -#%%global milestone rc2 +#%%global milestone rc1 # Keep the revision enabled for pre-releases from SVN. -#%%global revision 66252 +#%%global revision af11efd377 %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}}} +%global ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision}} +%define ruby_archive_timestamp %(stat --printf='@%Y' %{ruby_archive}.tar.xz | date -f - +"%Y%m%d") +%define development_release %{?milestone}%{?!milestone:%{?revision:%{ruby_archive_timestamp}git%{revision}}} %endif -%global release 124 -%{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} +%global release 127 +%{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} # The RubyGems library has to stay out of Ruby directory tree, since the # RubyGems should be share by all Ruby implementations. %global rubygems_dir %{_datadir}/rubygems # Bundled libraries versions -%global rubygems_version 3.0.3 +%global rubygems_version 3.1.2 %global rubygems_molinillo_version 0.5.7 -%global bundler_version 1.17.2 -%global bundler_fileutils_version 1.1.0 +%global bundler_version 2.1.2 +%global bundler_connection_pool_version 2.2.2 +%global bundler_fileutils_version 1.3.0 %global bundler_molinillo_version 0.6.6 -%global bundler_net_http_persistent_version 2.9.4 -%global bundler_thor_version 0.20.0 - -%global bigdecimal_version 1.4.1 -%global did_you_mean_version 1.3.0 -%global io_console_version 0.4.7 -%global irb_version 1.0.0 -%global json_version 2.1.0 -%global minitest_version 5.11.3 +%global bundler_net_http_persistent_version 3.1.0 +%global bundler_thor_version 1.0.0 + +%global bigdecimal_version 2.0.0 +%global did_you_mean_version 1.4.0 +%global io_console_version 0.5.3 +%global irb_version 1.2.1 +%global json_version 2.3.0 +%global minitest_version 5.13.0 %global net_telnet_version 0.2.0 %global openssl_version 2.1.2 -%global power_assert_version 1.1.3 +%global power_assert_version 1.1.5 %global psych_version 3.1.0 -%global rake_version 12.3.2 -%global rdoc_version 6.1.2 -%global test_unit_version 3.2.9 +%global racc_version 1.4.16 +%global rake_version 13.0.1 +%global rdoc_version 6.2.1 +%global test_unit_version 3.3.4 %global xmlrpc_version 0.3.0 # Might not be needed in the future, if we are lucky enough. @@ -92,7 +95,6 @@ Source2: libruby.stp Source3: ruby-exercise.stp Source4: macros.ruby Source5: macros.rubygems -Source6: abrt_prelude.rb # RPM dependency generators. Source8: rubygems.attr Source9: rubygems.req @@ -125,24 +127,22 @@ Patch3: ruby-2.1.0-always-use-i386.patch Patch4: ruby-2.1.0-custom-rubygems-location.patch # Make mkmf verbose by default Patch5: ruby-1.9.3-mkmf-verbose.patch -# Adds support for '--with-prelude' configuration option. This allows to built -# in support for ABRT. -# http://bugs.ruby-lang.org/issues/8566 -Patch6: ruby-2.1.0-Allow-to-specify-additional-preludes-by-configuratio.patch -# Use miniruby to regenerate prelude.c. +# The ABRT hook used to be initialized by preludes via following patches: +# https://bugs.ruby-lang.org/issues/8566 # https://bugs.ruby-lang.org/issues/15306 -Patch7: ruby-2.2.3-Generate-preludes-using-miniruby.patch +# Unfortunately, due to https://bugs.ruby-lang.org/issues/16254 +# and especially since https://github.com/ruby/ruby/pull/2735 +# this would require boostrapping: +# https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/LH6L6YJOYQT4Y5ZNOO4SLIPTUWZ5V45Q/ +# For now, load the ABRT hook via this simple patch: +Patch6: ruby-2.7.0-Initialize-ABRT-hook.patch # Workaround "an invalid stdio handle" error on PPC, due to recently introduced # hardening features of glibc (rhbz#1361037). # https://bugs.ruby-lang.org/issues/12666 Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch -# `gem build ../foo.gemspec` changes directory, which does not play well with -# gems unpacked by setup macro. -# https://github.com/rubygems/rubygems/issues/2587 -Patch11: rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch -# This allows to loosen the RDoc dependency again. -# https://github.com/rubygems/rubygems/pull/2604 -Patch12: rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch +# Revert commit which breaks bundled net-http-persistent version check. +# https://github.com/drbrain/net-http-persistent/pull/109 +Patch10: ruby-2.7.0-Remove-RubyGems-dependency.patch # Add support for .include directive used by OpenSSL config files. # https://github.com/ruby/openssl/pull/216 @@ -150,10 +150,13 @@ Patch22: ruby-2.6.0-config-support-include-directive.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} #Suggests: rubypick -Requires: ruby(rubygems) >= %{rubygems_version} -Requires: rubygem(bigdecimal) >= %{bigdecimal_version} +#Recommends: ruby(rubygems) >= %{rubygems_version} +#Recommends: rubygem(bigdecimal) >= %{bigdecimal_version} +# Change this to requires, hopefully just as temporary measure. +# https://bugs.ruby-lang.org/issues/16431 Requires: rubygem(did_you_mean) >= %{did_you_mean_version} -Requires: rubygem(openssl) >= %{openssl_version} +#Recommends: rubygem(openssl) >= %{openssl_version} +#Recommends: rubygem(racc) >= %{racc_version} BuildRequires: autoconf BuildRequires: gdbm-devel @@ -226,8 +229,9 @@ Summary: The Ruby standard for packaging ruby libraries Version: %{rubygems_version} License: Ruby or MIT Requires: ruby(release) -Requires: rubygem(rdoc) >= %{rdoc_version} -Requires: rubygem(io-console) >= %{io_console_version} +#Recommends: rubygem(bundler) >= %{bundler_version} +#Recommends: rubygem(rdoc) >= %{rdoc_version} +#Recommends: rubygem(io-console) >= %{io_console_version} Requires: rubygem(openssl) >= %{openssl_version} Requires: rubygem(psych) >= %{psych_version} Provides: gem = %{version}-%{release} @@ -509,6 +513,7 @@ Requires: ruby(rubygems) >= %{rubygems_version} Requires: rubygem(io-console) Provides: rubygem(bundler) = %{version}-%{release} # https://github.com/bundler/bundler/issues/3647 +Provides: bundled(connection_pool) = %{bundler_connection_pool_version} Provides: bundled(rubygem-fileutils) = %{bundler_fileutils_version} Provides: bundled(rubygem-molinillo) = %{bundler_molinillo_version} Provides: bundled(rubygem-net-http-persisntent) = %{bundler_net_http_persistent_version} @@ -520,6 +525,19 @@ Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably. +%package -n rubygem-racc +Summary: Racc is a LALR(1) parser generator +Version: %{racc_version} +License: MIT +Requires: ruby(release) +Requires: ruby(rubygems) >= %{rubygems_version} +Provides: rubygem(racc) = %{version}-%{release} + +%description -n rubygem-racc +Racc is a LALR(1) parser generator. It is written in Ruby itself, and +generates Ruby program. + + %prep %setup -q -n %{ruby_archive} @@ -534,20 +552,13 @@ rm -rf ext/fiddle/libffi* %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 %patch9 -p1 -%patch11 -p1 -%patch12 -p1 +%patch10 -p1 %patch22 -p1 # 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 @@ -570,7 +581,6 @@ autoconf --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. @@ -583,7 +593,7 @@ make install DESTDIR=%{buildroot} # Rename ruby/config.h to ruby/config-.h to avoid file conflicts on # multilib systems and install config.h wrapper %multilib_fix_c_header --file %{_includedir}/%{name}/config.h -# TODO: The correct patch should be %%{_includedir}/%%{name}/rb_mjit_min_header-%{ruby_version}.h +# TODO: The correct patch should be %%{_includedir}/%%{name}/rb_mjit_min_header-%%{ruby_version}.h # https://bugs.ruby-lang.org/issues/15425 %multilib_fix_c_header --file %{_includedir}/rb_mjit_min_header-%{ruby_version}.h @@ -602,13 +612,9 @@ for cert in \ do rm %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert rm -r $(dirname %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/$cert) - rm %{buildroot}%{ruby_libdir}/bundler/ssl_certs/$cert - rm -r $(dirname %{buildroot}%{ruby_libdir}/bundler/ssl_certs/$cert) done # Ensure there is not forgotten any certificate. test ! "$(ls -A %{buildroot}%{rubygems_dir}/rubygems/ssl_certs/ 2>/dev/null)" -test "$(ls -A %{buildroot}%{ruby_libdir}/bundler/ssl_certs/ 2>/dev/null)" \ - = "certificate_manager.rb" # Move macros file into proper place and replace the %%{name} macro, since it # would be wrongly evaluated during build of other packages. @@ -630,7 +636,7 @@ 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} +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, @@ -642,9 +648,7 @@ mkdir -p %{buildroot}%{_exec_prefix}/lib{,64}/gems/%{name} # make symlinks for io-console and bigdecimal, which are considered to be part of stdlib by other Gems mkdir -p %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib mv %{buildroot}%{ruby_libdir}/irb* %{buildroot}%{gem_dir}/gems/irb-%{irb_version}/lib -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/irb-%{irb_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif ln -s %{gem_dir}/gems/irb-%{irb_version}/lib/irb.rb %{buildroot}%{ruby_libdir}/irb.rb # TODO: This should be possible to replaced by simple directory symlink # after ~ F31 EOL (rhbz#1691039). @@ -656,38 +660,33 @@ popd mkdir -p %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib mv %{buildroot}%{ruby_libdir}/rdoc* %{buildroot}%{gem_dir}/gems/rdoc-%{rdoc_version}/lib -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/rdoc-%{rdoc_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif mkdir -p %{buildroot}%{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal 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} -mv %{buildroot}%{ruby_libarchdir}/bigdecimal/util.so %{buildroot}%{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/bigdecimal-%{bigdecimal_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif ln -s %{gem_dir}/gems/bigdecimal-%{bigdecimal_version}/lib/bigdecimal %{buildroot}%{ruby_libdir}/bigdecimal ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal.so %{buildroot}%{ruby_libarchdir}/bigdecimal.so -ln -s %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version}/bigdecimal/util.so %{buildroot}%{ruby_libarchdir}/bigdecimal/util.so # TODO: Put help files into proper location. # https://bugs.ruby-lang.org/issues/15359 mkdir -p %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib mv %{buildroot}%{ruby_libdir}/bundler.rb %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib mv %{buildroot}%{ruby_libdir}/bundler %{buildroot}%{gem_dir}/gems/bundler-%{bundler_version}/lib -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/bundler-%{bundler_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif + +mkdir -p %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/lib +mv %{buildroot}%{ruby_libdir}/did_you_mean.rb %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/lib +mv %{buildroot}%{ruby_libdir}/did_you_mean %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/lib +mv %{buildroot}%{gem_dir}/specifications/default/did_you_mean-%{did_you_mean_version}.gemspec %{buildroot}%{gem_dir}/specifications mkdir -p %{buildroot}%{gem_dir}/gems/io-console-%{io_console_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/io-console-%{io_console_version}/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}/io -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/io-console-%{io_console_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif 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}/io/console.so %{buildroot}%{ruby_libarchdir}/io/console.so @@ -695,9 +694,7 @@ mkdir -p %{buildroot}%{gem_dir}/gems/json-%{json_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/json-%{json_version} 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}/ -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/json-%{json_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif ln -s %{gem_dir}/gems/json-%{json_version}/lib/json.rb %{buildroot}%{ruby_libdir}/json.rb ln -s %{gem_dir}/gems/json-%{json_version}/lib/json %{buildroot}%{ruby_libdir}/json ln -s %{_libdir}/gems/%{name}/json-%{json_version}/json/ %{buildroot}%{ruby_libarchdir}/json @@ -706,9 +703,7 @@ mkdir -p %{buildroot}%{gem_dir}/gems/openssl-%{openssl_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/openssl-%{openssl_version} mv %{buildroot}%{ruby_libdir}/openssl* %{buildroot}%{gem_dir}/gems/openssl-%{openssl_version}/lib mv %{buildroot}%{ruby_libarchdir}/openssl.so %{buildroot}%{_libdir}/gems/%{name}/openssl-%{openssl_version}/ -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/openssl-%{openssl_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif # This used to be directory when OpenSSL was integral part of StdLib => Keep # it as directory and link everything in it to prevent directory => symlink # conversion RPM issues. @@ -722,29 +717,43 @@ mkdir -p %{buildroot}%{gem_dir}/gems/psych-%{psych_version}/lib mkdir -p %{buildroot}%{_libdir}/gems/%{name}/psych-%{psych_version} 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}/ -%ifnarch x86_64 mv %{buildroot}%{gem_dir}/specifications/default/psych-%{psych_version}.gemspec %{buildroot}%{gem_dir}/specifications -%endif 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}/psych.so %{buildroot}%{ruby_libarchdir}/psych.so +# These have wrong shebangs. Exclude them for now and let's see what upstream +# thinks about them. +# https://bugs.ruby-lang.org/issues/15982 +rm %{buildroot}%{_bindir}/{racc2y,y2racc} +rm %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/bin/{racc2y,y2racc} +# The 'rdoc' directory is empty and useless ATM. +# https://bugs.ruby-lang.org/issues/16596 +rm -r %{buildroot}%{ruby_libdir}/racc/rdoc +mkdir -p %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/lib +mkdir -p %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version} +mv %{buildroot}%{ruby_libdir}/racc* %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/lib +mv %{buildroot}%{ruby_libarchdir}/racc/ %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version}/ +touch %{buildroot}%{_libdir}/gems/%{name}/racc-%{racc_version}/gem.build_complete +mv %{buildroot}%{gem_dir}/specifications/default/racc-%{racc_version}.gemspec %{buildroot}%{gem_dir}/specifications +# This used to be directories when racc was integral part of StdLib => Keep +# them as directories and link everything in them to prevent directory => +# symlink conversion RPM issues. +mkdir -p %{buildroot}%{ruby_libdir}/racc +mkdir -p %{buildroot}%{ruby_libarchdir}/racc +find %{buildroot}%{gem_dir}/gems/racc-%{racc_version}/lib/racc -maxdepth 1 -type f -exec \ + sh -c 'ln -s %{gem_dir}/gems/racc-%{racc_version}/lib/racc/`basename {}` %{buildroot}%{ruby_libdir}/racc' \; +ln -s %{gem_dir}/gems/racc-%{racc_version}/lib/racc.rb %{buildroot}%{ruby_libdir}/racc.rb +ln -s %{_libdir}/gems/%{name}/racc-%{racc_version}/racc/cparse.so %{buildroot}%{ruby_libarchdir}/racc/cparse.so + # Move the binary extensions into proper place (if no gem has binary extension, # the extensions directory might be empty). find %{buildroot}%{gem_dir}/extensions/*-%{_target_os}/%{ruby_version}/* -maxdepth 0 \ -exec mv '{}' %{buildroot}%{_libdir}/gems/%{name}/ \; \ || echo "No gem binary extensions to move." -%ifnarch x86_64 -# Adjust the gemspec files so that the gems will load properly -sed -i '/^end$/ i\ - s.extensions = ["json/ext/parser.so", "json/ext/generator.so"]' %{buildroot}%{gem_dir}/specifications/json-%{json_version}.gemspec -%endif - -%ifnarch x86_64 # Move man pages into proper location mv %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/doc/rake.1 %{buildroot}%{_mandir}/man1 -%endif %if %{with systemtap} # Install a tapset and fix up the path to the library. @@ -767,16 +776,14 @@ echo 'doc/pty' >> .ruby-doc.ja sed -i 's/^/%doc /' .ruby-doc.* sed -i 's/^/%lang(ja) /' .ruby-doc.ja -# https://github.com/yuki24/did_you_mean/issues/122 -rm -rf %{buildroot}%{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/tmp/ - -# https://github.com/ruby/rake/issues/316 -rm -f %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.gitignore +# Remove useless .github directory from Rake. +# https://github.com/ruby/rake/pull/333 +rm -rf %{buildroot}%{gem_dir}/gems/rake-%{rake_version}/.github %check %if 0%{?with_hardening_test} # Check Ruby hardening. -checksec -f libruby.so.%{ruby_version} | \ +checksec --file=libruby.so.%{ruby_version} | \ grep "Full RELRO.*Canary found.*NX enabled.*DSO.*No RPATH.*No RUNPATH.*Yes.*\d*.*\d*.*libruby.so.%{ruby_version}" %endif @@ -794,9 +801,19 @@ checksec -f libruby.so.%{ruby_version} | \ # Check Bundler bundled dependencies versions. +# connection_pool. +[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ + module Bundler; end; \ + require 'bundler/vendor/connection_pool/lib/connection_pool/version'; \ + puts Bundler::ConnectionPool::VERSION\\\"\" | tail -1`" \ + == '%{bundler_connection_pool_version}' ] + # FileUtils. -# TODO: There is no version in bundled FileUtils yet. -#%%{global bundler_fileutils_version} +[ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ + module Bundler; end; \ + require 'bundler/vendor/fileutils/lib/fileutils/version'; \ + puts Bundler::FileUtils::VERSION\\\"\" | tail -1`" \ + == '%{bundler_fileutils_version}' ] # Molinillo. [ "`make runruby TESTRUN_SCRIPT=\"-e \\\" \ @@ -839,16 +856,17 @@ MSPECOPTS="" # Avoid `hostname' dependency. %{!?with_hostname:MSPECOPTS="-P 'Socket.gethostname returns the host name'"} -# SIGSEV handler does not provide correct output on AArch64. -# https://bugs.ruby-lang.org/issues/13758 -%ifarch aarch64 -DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\|loaded_features\)/" -%endif +# Disable "File.utime allows Time instances in the far future to set +# mtime and atime". +# https://bugs.ruby-lang.org/issues/16410 +MSPECOPTS="$MSPECOPTS -P 'File.utime allows Time instances in the far future to set mtime and atime'" -# Disable failing TestResolvMDNS#test_mdns_each_address test, -# which fails on Koji. -# https://bugs.ruby-lang.org/issues/14175 -sed -i '/def test_mdns_each_address$/,/^ end$/ s/^/#/' test/resolv/test_mdns.rb +# Increase timeout for TestBugReporter#test_bug_reporter_add test, which fails +# quite often. +# https://bugs.ruby-lang.org/issues/16492 +%ifarch s390x +sed -i '/assert_in_out_err/ s/)/, timeout: 30)/' test/-ext-/bug_reporter/test_bug_reporter.rb +%endif make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" @@ -898,25 +916,32 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %exclude %{ruby_libdir}/json.rb %exclude %{ruby_libdir}/openssl.rb %exclude %{ruby_libdir}/psych.rb +%exclude %{ruby_libdir}/racc.rb +%{ruby_libdir}/benchmark %{ruby_libdir}/cgi %{ruby_libdir}/csv +%{ruby_libdir}/delegate %{ruby_libdir}/digest %{ruby_libdir}/drb -%{ruby_libdir}/e2mmap %{ruby_libdir}/fiddle -%{ruby_libdir}/fileutils %{ruby_libdir}/forwardable +%{ruby_libdir}/getoptlong +%{ruby_libdir}/logger %{ruby_libdir}/matrix %{ruby_libdir}/net +%{ruby_libdir}/observer +%{ruby_libdir}/open3 %{ruby_libdir}/optparse -%{ruby_libdir}/racc +%{ruby_libdir}/ostruct +%{ruby_libdir}/pstore +%{ruby_libdir}/reline %{ruby_libdir}/rexml %{ruby_libdir}/rinda %{ruby_libdir}/ripper %{ruby_libdir}/rss -%{ruby_libdir}/shell +%{ruby_libdir}/singleton %{ruby_libdir}/syslog -%{ruby_libdir}/thwait +%{ruby_libdir}/timeout %{ruby_libdir}/tracer %{ruby_libdir}/unicode_normalize %{ruby_libdir}/uri @@ -941,6 +966,7 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{ruby_libarchdir}/digest/sha2.so %dir %{ruby_libarchdir}/enc %{ruby_libarchdir}/enc/big5.so +%{ruby_libarchdir}/enc/cesu_8.so %{ruby_libarchdir}/enc/cp949.so %{ruby_libarchdir}/enc/emacs_mule.so %{ruby_libarchdir}/enc/encdb.so @@ -970,6 +996,7 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{ruby_libarchdir}/enc/shift_jis.so %dir %{ruby_libarchdir}/enc/trans %{ruby_libarchdir}/enc/trans/big5.so +%{ruby_libarchdir}/enc/trans/cesu_8.so %{ruby_libarchdir}/enc/trans/chinese.so %{ruby_libarchdir}/enc/trans/ebcdic.so %{ruby_libarchdir}/enc/trans/emoji.so @@ -1008,12 +1035,11 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %dir %{ruby_libarchdir}/io %{ruby_libarchdir}/io/nonblock.so %{ruby_libarchdir}/io/wait.so +%{ruby_libarchdir}/monitor.so %{ruby_libarchdir}/nkf.so %{ruby_libarchdir}/objspace.so %{ruby_libarchdir}/pathname.so %{ruby_libarchdir}/pty.so -%dir %{ruby_libarchdir}/racc -%{ruby_libarchdir}/racc/cparse.so %dir %{ruby_libarchdir}/rbconfig %{ruby_libarchdir}/rbconfig.rb %{ruby_libarchdir}/rbconfig/sizeof.so @@ -1037,7 +1063,6 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" # Explicitly include only RubyGems directory strucure to avoid accidentally # packaged content. %dir %{gem_dir} -%ifnarch x86_64 %dir %{gem_dir}/build_info %dir %{gem_dir}/cache %dir %{gem_dir}/doc @@ -1045,46 +1070,51 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %dir %{gem_dir}/gems %dir %{gem_dir}/specifications %dir %{gem_dir}/specifications/default -%endif %dir %{_exec_prefix}/lib*/gems %dir %{_exec_prefix}/lib*/gems/ruby -%ifnarch x86_64 %exclude %{gem_dir}/cache/* -%endif -%ifnarch x86_64 # TODO: Gemify these libraries -%{gem_dir}/specifications/default/cmath-1.0.0.gemspec -%{gem_dir}/specifications/default/csv-3.0.9.gemspec -%{gem_dir}/specifications/default/date-2.0.0.gemspec -%{gem_dir}/specifications/default/dbm-1.0.0.gemspec -%{gem_dir}/specifications/default/e2mmap-0.1.0.gemspec -%{gem_dir}/specifications/default/etc-1.0.1.gemspec +%{gem_dir}/specifications/default/benchmark-0.1.0.gemspec +%{gem_dir}/specifications/default/cgi-0.1.0.gemspec +%{gem_dir}/specifications/default/csv-3.1.2.gemspec +%{gem_dir}/specifications/default/date-3.0.0.gemspec +%{gem_dir}/specifications/default/dbm-1.1.0.gemspec +%{gem_dir}/specifications/default/delegate-0.1.0.gemspec +%{gem_dir}/specifications/default/etc-1.1.0.gemspec %{gem_dir}/specifications/default/fcntl-1.0.0.gemspec %{gem_dir}/specifications/default/fiddle-1.0.0.gemspec -%{gem_dir}/specifications/default/fileutils-1.1.0.gemspec -%{gem_dir}/specifications/default/forwardable-1.2.0.gemspec -%{gem_dir}/specifications/default/gdbm-2.0.0.gemspec +%{gem_dir}/specifications/default/fileutils-1.4.1.gemspec +%{gem_dir}/specifications/default/forwardable-1.3.1.gemspec +%{gem_dir}/specifications/default/gdbm-2.1.0.gemspec +%{gem_dir}/specifications/default/getoptlong-0.1.0.gemspec %{gem_dir}/specifications/default/ipaddr-1.2.2.gemspec -%{gem_dir}/specifications/default/logger-1.3.0.gemspec -%{gem_dir}/specifications/default/matrix-0.1.0.gemspec +%{gem_dir}/specifications/default/logger-1.4.2.gemspec +%{gem_dir}/specifications/default/matrix-0.2.0.gemspec %{gem_dir}/specifications/default/mutex_m-0.1.0.gemspec -%{gem_dir}/specifications/default/ostruct-0.1.0.gemspec -%{gem_dir}/specifications/default/prime-0.1.0.gemspec -%{gem_dir}/specifications/default/rexml-3.1.9.gemspec -%{gem_dir}/specifications/default/rss-0.2.7.gemspec -%{gem_dir}/specifications/default/scanf-1.0.0.gemspec +%{gem_dir}/specifications/default/net-pop-0.1.0.gemspec +%{gem_dir}/specifications/default/net-smtp-0.1.0.gemspec +%{gem_dir}/specifications/default/observer-0.1.0.gemspec +%{gem_dir}/specifications/default/open3-0.1.0.gemspec +%{gem_dir}/specifications/default/ostruct-0.2.0.gemspec +%{gem_dir}/specifications/default/prime-0.1.1.gemspec +%{gem_dir}/specifications/default/pstore-0.1.0.gemspec +%{gem_dir}/specifications/default/readline-0.0.2.gemspec +%{gem_dir}/specifications/default/readline-ext-0.1.0.gemspec +%{gem_dir}/specifications/default/reline-0.1.2.gemspec +%{gem_dir}/specifications/default/rexml-3.2.3.gemspec +%{gem_dir}/specifications/default/rss-0.2.8.gemspec %{gem_dir}/specifications/default/sdbm-1.0.0.gemspec -%{gem_dir}/specifications/default/shell-0.7.gemspec -%{gem_dir}/specifications/default/stringio-0.0.2.gemspec -%{gem_dir}/specifications/default/strscan-1.0.0.gemspec -%{gem_dir}/specifications/default/sync-0.5.0.gemspec -%{gem_dir}/specifications/default/thwait-0.1.0.gemspec +%{gem_dir}/specifications/default/singleton-0.1.0.gemspec +%{gem_dir}/specifications/default/stringio-0.1.0.gemspec +%{gem_dir}/specifications/default/strscan-1.0.3.gemspec +%{gem_dir}/specifications/default/timeout-0.1.0.gemspec %{gem_dir}/specifications/default/tracer-0.1.0.gemspec -%{gem_dir}/specifications/default/webrick-1.4.2.gemspec -%{gem_dir}/specifications/default/zlib-1.0.0.gemspec -%endif +%{gem_dir}/specifications/default/uri-0.10.0.gemspec +%{gem_dir}/specifications/default/webrick-1.6.0.gemspec +%{gem_dir}/specifications/default/yaml-0.1.0.gemspec +%{gem_dir}/specifications/default/zlib-1.1.0.gemspec %files -n rubygems-devel %{_rpmconfigdir}/macros.d/macros.rubygems @@ -1095,28 +1125,22 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %files -n rubygem-rake %{_bindir}/rake -%ifnarch x86_64 %{gem_dir}/gems/rake-%{rake_version} %{gem_dir}/specifications/rake-%{rake_version}.gemspec %{_mandir}/man1/rake.1* -%endif %files -n rubygem-irb %{_bindir}/irb %{ruby_libdir}/irb* %{gem_dir}/gems/irb-%{irb_version} -%ifnarch x86_64 %{gem_dir}/specifications/irb-%{irb_version}.gemspec -%endif %{_mandir}/man1/irb.1* %files -n rubygem-rdoc %{_bindir}/rdoc %{_bindir}/ri %{gem_dir}/gems/rdoc-%{rdoc_version} -%ifnarch x86_64 %{gem_dir}/specifications/rdoc-%{rdoc_version}.gemspec -%endif %{_mandir}/man1/ri* %files doc -f .ruby-doc.en -f .ruby-doc.ja @@ -1130,41 +1154,31 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{ruby_libarchdir}/bigdecimal* %{_libdir}/gems/%{name}/bigdecimal-%{bigdecimal_version} %{gem_dir}/gems/bigdecimal-%{bigdecimal_version} -%ifnarch x86_64 %{gem_dir}/specifications/bigdecimal-%{bigdecimal_version}.gemspec -%endif %files -n rubygem-did_you_mean -%ifnarch x86_64 %{gem_dir}/gems/did_you_mean-%{did_you_mean_version} %exclude %{gem_dir}/gems/did_you_mean-%{did_you_mean_version}/.* %{gem_dir}/specifications/did_you_mean-%{did_you_mean_version}.gemspec -%endif %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} -%ifnarch x86_64 %{gem_dir}/specifications/io-console-%{io_console_version}.gemspec -%endif %files -n rubygem-json %{ruby_libdir}/json* %{ruby_libarchdir}/json* %{_libdir}/gems/%{name}/json-%{json_version} %{gem_dir}/gems/json-%{json_version} -%ifnarch x86_64 %{gem_dir}/specifications/json-%{json_version}.gemspec -%endif %files -n rubygem-minitest -%ifnarch x86_64 %{gem_dir}/gems/minitest-%{minitest_version} %exclude %{gem_dir}/gems/minitest-%{minitest_version}/.* %{gem_dir}/specifications/minitest-%{minitest_version}.gemspec -%endif %files -n rubygem-openssl %{ruby_libdir}/openssl @@ -1172,16 +1186,12 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{ruby_libarchdir}/openssl.so %{_libdir}/gems/%{name}/openssl-%{openssl_version} %{gem_dir}/gems/openssl-%{openssl_version} -%ifnarch x86_64 %{gem_dir}/specifications/openssl-%{openssl_version}.gemspec -%endif %files -n rubygem-power_assert -%ifnarch x86_64 %{gem_dir}/gems/power_assert-%{power_assert_version} %exclude %{gem_dir}/gems/power_assert-%{power_assert_version}/.* %{gem_dir}/specifications/power_assert-%{power_assert_version}.gemspec -%endif %files -n rubygem-psych %{ruby_libdir}/psych @@ -1189,25 +1199,18 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{ruby_libarchdir}/psych.so %{_libdir}/gems/%{name}/psych-%{psych_version} %{gem_dir}/gems/psych-%{psych_version} -%ifnarch x86_64 %{gem_dir}/specifications/psych-%{psych_version}.gemspec -%endif %files -n rubygem-net-telnet -%ifnarch x86_64 %{gem_dir}/gems/net-telnet-%{net_telnet_version} %exclude %{gem_dir}/gems/net-telnet-%{net_telnet_version}/.* %{gem_dir}/specifications/net-telnet-%{net_telnet_version}.gemspec -%endif %files -n rubygem-test-unit -%ifnarch x86_64 %{gem_dir}/gems/test-unit-%{test_unit_version} %{gem_dir}/specifications/test-unit-%{test_unit_version}.gemspec -%endif %files -n rubygem-xmlrpc -%ifnarch x86_64 %license %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/LICENSE.txt %dir %{gem_dir}/gems/xmlrpc-%{xmlrpc_version} %exclude %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/.* @@ -1218,26 +1221,47 @@ make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS" %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/lib %{gem_dir}/gems/xmlrpc-%{xmlrpc_version}/xmlrpc.gemspec %{gem_dir}/specifications/xmlrpc-%{xmlrpc_version}.gemspec -%endif %files -n rubygem-bundler %{_bindir}/bundle %{_bindir}/bundler %{gem_dir}/gems/bundler-%{bundler_version} -%ifnarch x86_64 %{gem_dir}/specifications/bundler-%{bundler_version}.gemspec -%endif %{_mandir}/man1/bundle*.1* %{_mandir}/man5/gemfile.5* -%ifarch x86_64 -%exclude /home/basebuilder/.gem/* -%endif +%files -n rubygem-racc +%{ruby_libdir}/racc* +%{ruby_libarchdir}/racc +%{_bindir}/racc +%{_libdir}/gems/%{name}/racc-%{racc_version} +%{gem_dir}/gems/racc-%{racc_version} +%{gem_dir}/specifications/racc-%{racc_version}.gemspec %changelog -* Wed Oct 09 2019 Pavel Valena - 2.6.5-124 +* Tue Jan 28 2020 Vít Ondruch - 2.7.0-127 +- Provide StdLib links for Racc and install it by default. + +* Thu Jan 16 2020 Vít Ondruch - 2.7.0-126 +- Make rubygem(did_you_mean) hard dependency. + +* Tue Jan 07 2020 Vít Ondruch - 2.7.0-125 +- Upgrade to Ruby 2.7.0. +- Drop useless %%{rubygems_default_filter}. + +* Tue Oct 08 2019 Slava Kardakov - 2.6.5-124 - Update to Ruby 2.6.5. +* Fri Aug 30 2019 Pavel Valena - 2.6.4-123 +- Update to Ruby 2.6.4. +- Fix checksec 2.0+ compatibility. + +* Fri Jul 26 2019 Fedora Release Engineering - 2.6.3-122 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jun 25 2019 Vít Ondruch - 2.6.3-121 +- Properly support %%prerelease in %%gemspec_ macros. + * Thu Apr 25 2019 Pavel Valena - 2.6.3-120 - Update to Ruby 2.6.3.