import ruby-2.6.3-106.module+el8.1.0+3653+beb38eb0
This commit is contained in:
		
							parent
							
								
									fe28ff8ffe
								
							
						
					
					
						commit
						09d6bce6f8
					
				| @ -60,7 +60,7 @@ gem install \\\ | |||||||
| # | # | ||||||
| %gemspec_add_dep(g:s:d) \ | %gemspec_add_dep(g:s:d) \ | ||||||
| read -d '' gemspec_add_dep_script << 'EOR' || : \ | 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*}' \ |   name = '%{-g*}' \ | ||||||
|   requirements = %{*}%{!?1:nil} \ |   requirements = %{*}%{!?1:nil} \ | ||||||
| @ -97,7 +97,7 @@ unset -v gemspec_add_dep_script \ | |||||||
| # | # | ||||||
| %gemspec_remove_dep(g:s:d) \ | %gemspec_remove_dep(g:s:d) \ | ||||||
| read -d '' gemspec_remove_dep_script << 'EOR' || : \ | 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*}' \ |   name = '%{-g*}' \ | ||||||
|   requirements = %{*}%{!?1:nil} \ |   requirements = %{*}%{!?1:nil} \ | ||||||
| @ -144,7 +144,7 @@ unset -v gemspec_remove_dep_script \ | |||||||
| # | # | ||||||
| %gemspec_add_file(s:tr) \ | %gemspec_add_file(s:tr) \ | ||||||
| read -d '' gemspec_add_file_script << 'EOR' || : \ | 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" \ |   abort("gemspec_add_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \ | ||||||
|   \ |   \ | ||||||
| @ -177,7 +177,7 @@ unset -v gemspec_add_file_script \ | |||||||
| # | # | ||||||
| %gemspec_remove_file(s:tr) \ | %gemspec_remove_file(s:tr) \ | ||||||
| read -d '' gemspec_remove_file_script << 'EOR' || : \ | 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" \ |   abort("gemspec_remove_file: Use only one '-t' or '-r' at a time.") if "%{?-t}%{?-r}" == "-t-r" \ | ||||||
|   \ |   \ | ||||||
|  | |||||||
| @ -0,0 +1,61 @@ | |||||||
|  | diff --git a/ext/fiddle/closure.c b/ext/fiddle/closure.c
 | ||||||
|  | index 1a80b2b..b997e23 100644
 | ||||||
|  | --- a/ext/fiddle/closure.c
 | ||||||
|  | +++ b/ext/fiddle/closure.c
 | ||||||
|  | @@ -13,25 +13,11 @@ typedef struct {
 | ||||||
|  |      ffi_type **argv; | ||||||
|  |  } fiddle_closure; | ||||||
|  |   | ||||||
|  | -#if defined(USE_FFI_CLOSURE_ALLOC)
 | ||||||
|  | -#elif defined(__OpenBSD__) || defined(__APPLE__) || defined(__linux__)
 | ||||||
|  | -# define USE_FFI_CLOSURE_ALLOC 0
 | ||||||
|  | -#elif defined(RUBY_LIBFFI_MODVERSION) && RUBY_LIBFFI_MODVERSION < 3000005 && \
 | ||||||
|  | -	(defined(__i386__) || defined(__x86_64__) || defined(_M_IX86) || defined(_M_AMD64))
 | ||||||
|  | -# define USE_FFI_CLOSURE_ALLOC 0
 | ||||||
|  | -#else
 | ||||||
|  | -# define USE_FFI_CLOSURE_ALLOC 1
 | ||||||
|  | -#endif
 | ||||||
|  | -
 | ||||||
|  |  static void | ||||||
|  |  dealloc(void * ptr) | ||||||
|  |  { | ||||||
|  |      fiddle_closure * cls = (fiddle_closure *)ptr; | ||||||
|  | -#if USE_FFI_CLOSURE_ALLOC
 | ||||||
|  |      ffi_closure_free(cls->pcl); | ||||||
|  | -#else
 | ||||||
|  | -    munmap(cls->pcl, sizeof(*cls->pcl));
 | ||||||
|  | -#endif
 | ||||||
|  |      if (cls->argv) xfree(cls->argv); | ||||||
|  |      xfree(cls); | ||||||
|  |  } | ||||||
|  | @@ -205,12 +191,7 @@ allocate(VALUE klass)
 | ||||||
|  |      VALUE i = TypedData_Make_Struct(klass, fiddle_closure, | ||||||
|  |  	    &closure_data_type, closure); | ||||||
|  |   | ||||||
|  | -#if USE_FFI_CLOSURE_ALLOC
 | ||||||
|  |      closure->pcl = ffi_closure_alloc(sizeof(ffi_closure), &closure->code); | ||||||
|  | -#else
 | ||||||
|  | -    closure->pcl = mmap(NULL, sizeof(ffi_closure), PROT_READ | PROT_WRITE,
 | ||||||
|  | -        MAP_ANON | MAP_PRIVATE, -1, 0);
 | ||||||
|  | -#endif
 | ||||||
|  |   | ||||||
|  |      return i; | ||||||
|  |  } | ||||||
|  | @@ -257,17 +238,8 @@ initialize(int rbargc, VALUE argv[], VALUE self)
 | ||||||
|  |      if (FFI_OK != result) | ||||||
|  |  	rb_raise(rb_eRuntimeError, "error prepping CIF %d", result); | ||||||
|  |   | ||||||
|  | -#if USE_FFI_CLOSURE_ALLOC
 | ||||||
|  |      result = ffi_prep_closure_loc(pcl, cif, callback, | ||||||
|  |  		(void *)self, cl->code); | ||||||
|  | -#else
 | ||||||
|  | -    result = ffi_prep_closure(pcl, cif, callback, (void *)self);
 | ||||||
|  | -    cl->code = (void *)pcl;
 | ||||||
|  | -    i = mprotect(pcl, sizeof(*pcl), PROT_READ | PROT_EXEC);
 | ||||||
|  | -    if (i) {
 | ||||||
|  | -	rb_sys_fail("mprotect");
 | ||||||
|  | -    }
 | ||||||
|  | -#endif
 | ||||||
|  |   | ||||||
|  |      if (FFI_OK != result) | ||||||
|  |  	rb_raise(rb_eRuntimeError, "error prepping closure %d", result); | ||||||
| @ -0,0 +1,131 @@ | |||||||
|  | From 920b924e5652884064a9529ffbd80d458a46fbc6 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | ||||||
|  | Date: Tue, 5 Feb 2019 09:58:50 +0000 | ||||||
|  | Subject: [PATCH] Make sure to wait with IO.select before using | ||||||
|  |  Socket#recvfrom_nonblock | ||||||
|  | 
 | ||||||
|  | * On all platforms, as this is the recommended code pattern. | ||||||
|  | 
 | ||||||
|  | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e | ||||||
|  | ---
 | ||||||
|  |  spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb | 8 ++++---- | ||||||
|  |  1 file changed, 4 insertions(+), 4 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb b/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb
 | ||||||
|  | index c1239ae637e0..74fd286c42ad 100644
 | ||||||
|  | --- a/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb
 | ||||||
|  | +++ b/spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb
 | ||||||
|  | @@ -36,12 +36,11 @@
 | ||||||
|  |        describe 'with data available' do | ||||||
|  |          before do | ||||||
|  |            @client.write('hello') | ||||||
|  | -
 | ||||||
|  | -          platform_is(:darwin, :freebsd) { IO.select([@server]) }
 | ||||||
|  |          end | ||||||
|  |   | ||||||
|  |          platform_is_not :windows do | ||||||
|  |            it 'returns an Array containing the data and an Addrinfo' do | ||||||
|  | +            IO.select([@server])
 | ||||||
|  |              ret = @server.recvfrom_nonblock(1) | ||||||
|  |   | ||||||
|  |              ret.should be_an_instance_of(Array) | ||||||
|  | @@ -54,8 +53,7 @@
 | ||||||
|  |              5.times do | ||||||
|  |                @client.write('hello') | ||||||
|  |   | ||||||
|  | -              platform_is(:darwin, :freebsd) { IO.select([@server]) }
 | ||||||
|  | -
 | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                msg, _ = @server.recvfrom_nonblock(5) | ||||||
|  |   | ||||||
|  |                msg.should == 'hello' | ||||||
|  | @@ -66,6 +64,7 @@
 | ||||||
|  |          platform_is_not :windows do | ||||||
|  |            describe 'the returned Array' do | ||||||
|  |              before do | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                @array = @server.recvfrom_nonblock(1) | ||||||
|  |              end | ||||||
|  |   | ||||||
|  | @@ -80,6 +79,7 @@
 | ||||||
|  |   | ||||||
|  |            describe 'the returned Addrinfo' do | ||||||
|  |              before do | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                @addr = @server.recvfrom_nonblock(1)[1] | ||||||
|  |              end | ||||||
|  |   | ||||||
|  | From c1f0daeb6ac5c5414c9a4a58bb778a118006ae1f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | ||||||
|  | Date: Tue, 5 Feb 2019 10:19:29 +0000 | ||||||
|  | Subject: [PATCH] Make sure to wait with IO.select before using | ||||||
|  |  Socket#accept_nonblock and recvfrom_nonblock | ||||||
|  | 
 | ||||||
|  | * On all platforms, as this is the recommended code pattern. | ||||||
|  | 
 | ||||||
|  | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e | ||||||
|  | ---
 | ||||||
|  |  spec/ruby/library/socket/socket/accept_nonblock_spec.rb      | 4 ++-- | ||||||
|  |  spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb | 5 +++-- | ||||||
|  |  2 files changed, 5 insertions(+), 4 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/spec/ruby/library/socket/socket/accept_nonblock_spec.rb b/spec/ruby/library/socket/socket/accept_nonblock_spec.rb
 | ||||||
|  | index 3ef219ed05a9..cde9e6a4b669 100644
 | ||||||
|  | --- a/spec/ruby/library/socket/socket/accept_nonblock_spec.rb
 | ||||||
|  | +++ b/spec/ruby/library/socket/socket/accept_nonblock_spec.rb
 | ||||||
|  | @@ -86,8 +86,6 @@
 | ||||||
|  |              @client = Socket.new(family, :STREAM, 0) | ||||||
|  |   | ||||||
|  |              @client.connect(addr) | ||||||
|  | -
 | ||||||
|  | -            platform_is(:darwin, :freebsd, :solaris) { IO.select([@server]) }
 | ||||||
|  |            end | ||||||
|  |   | ||||||
|  |            after do | ||||||
|  | @@ -96,6 +94,7 @@
 | ||||||
|  |            end | ||||||
|  |   | ||||||
|  |            it 'returns an Array containing a Socket and an Addrinfo' do | ||||||
|  | +            IO.select([@server])
 | ||||||
|  |              @socket, addrinfo = @server.accept_nonblock | ||||||
|  |   | ||||||
|  |              @socket.should be_an_instance_of(Socket) | ||||||
|  | @@ -104,6 +103,7 @@
 | ||||||
|  |   | ||||||
|  |            describe 'the returned Addrinfo' do | ||||||
|  |              before do | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                @socket, @addr = @server.accept_nonblock | ||||||
|  |              end | ||||||
|  |   | ||||||
|  | diff --git a/spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb b/spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb
 | ||||||
|  | index 015109a05200..62bbaf0dc93a 100644
 | ||||||
|  | --- a/spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb
 | ||||||
|  | +++ b/spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb
 | ||||||
|  | @@ -40,16 +40,16 @@
 | ||||||
|  |          describe 'with data available' do | ||||||
|  |            before do | ||||||
|  |              @client.write('hello') | ||||||
|  | -
 | ||||||
|  | -            platform_is(:darwin, :freebsd) { IO.select([@server]) }
 | ||||||
|  |            end | ||||||
|  |   | ||||||
|  |            it 'returns an Array containing the data and an Array' do | ||||||
|  | +            IO.select([@server])
 | ||||||
|  |              @server.recvfrom_nonblock(1).should be_an_instance_of(Array) | ||||||
|  |            end | ||||||
|  |   | ||||||
|  |            describe 'the returned Array' do | ||||||
|  |              before do | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                @array = @server.recvfrom_nonblock(1) | ||||||
|  |              end | ||||||
|  |   | ||||||
|  | @@ -64,6 +64,7 @@
 | ||||||
|  |   | ||||||
|  |            describe 'the returned address Array' do | ||||||
|  |              before do | ||||||
|  | +              IO.select([@server])
 | ||||||
|  |                @addr = @server.recvfrom_nonblock(1)[1] | ||||||
|  |              end | ||||||
|  |   | ||||||
| @ -21,7 +21,7 @@ | |||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %global release 105 | %global release 106 | ||||||
| %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} | %{!?release_string:%global release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}} | ||||||
| 
 | 
 | ||||||
| # The RubyGems library has to stay out of Ruby directory tree, since the | # The RubyGems library has to stay out of Ruby directory tree, since the | ||||||
| @ -154,6 +154,18 @@ Patch22: ruby-2.6.0-config-support-include-directive.patch | |||||||
| # https://github.com/ruby/openssl/pull/217 | # https://github.com/ruby/openssl/pull/217 | ||||||
| Patch23: ruby-2.6.0-use-larger-keys-for-SSL-tests.patch | Patch23: ruby-2.6.0-use-larger-keys-for-SSL-tests.patch | ||||||
| 
 | 
 | ||||||
|  | # IO.select on all platforms to wait for input with recvfrom_nonblock | ||||||
|  | # and accept_nonblock | ||||||
|  | # https://bugzilla.redhat.com/show_bug.cgi?id=1719743 | ||||||
|  | # https://github.com/ruby/ruby/commit/920b924e5652884064a9529ffbd80d458a46fbc6 | ||||||
|  | # https://github.com/ruby/ruby/commit/c1f0daeb6ac5c5414c9a4a58bb778a118006ae1f | ||||||
|  | Patch24: ruby-2.7.0-preview1-IO.select-on-all-platforms-to-wait-for-input-with-recvfr.patch | ||||||
|  | # Use ffi_closure_alloc to avoid segmentation fault by libffi on aarch64. | ||||||
|  | # https://bugzilla.redhat.com/show_bug.cgi?id=1727832 | ||||||
|  | # https://bugzilla.redhat.com/show_bug.cgi?id=1721569 | ||||||
|  | # https://github.com/ruby/fiddle/pull/20 | ||||||
|  | Patch25: ruby-2.6.3-fiddle-1.0.0-ffi-closure-alloc-default.patch | ||||||
|  | 
 | ||||||
| Requires: %{name}-libs%{?_isa} = %{version}-%{release} | Requires: %{name}-libs%{?_isa} = %{version}-%{release} | ||||||
| Suggests: rubypick | Suggests: rubypick | ||||||
| Recommends: ruby(rubygems) >= %{rubygems_version} | Recommends: ruby(rubygems) >= %{rubygems_version} | ||||||
| @ -546,6 +558,8 @@ rm -rf ext/fiddle/libffi* | |||||||
| %patch12 -p1 | %patch12 -p1 | ||||||
| %patch22 -p1 | %patch22 -p1 | ||||||
| %patch23 -p1 | %patch23 -p1 | ||||||
|  | %patch24 -p1 | ||||||
|  | %patch25 -p1 | ||||||
| 
 | 
 | ||||||
| # Provide an example of usage of the tapset: | # Provide an example of usage of the tapset: | ||||||
| cp -a %{SOURCE3} . | cp -a %{SOURCE3} . | ||||||
| @ -558,17 +572,6 @@ cp -a %{SOURCE6} . | |||||||
| %build | %build | ||||||
| autoconf | autoconf | ||||||
| 
 | 
 | ||||||
| # Overide CFLAGS to avoid below error on aarch64, |  | ||||||
| # removing "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" option. |  | ||||||
| # rpm 4.14.2 is used on rhel-8.1.0. |  | ||||||
| # https://src.osci.redhat.com/rpms/rpm/blob/rhel-8.1.0/f/rpm.spec#_31 |  | ||||||
| # https://github.com/rpm-software-management/rpm/blob/rpm-4.14.2-release/macros.in#L1008 |  | ||||||
| # gcc failed with "annobin: conftest.c: ICE: Should be 64-bit target" |  | ||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1720179 |  | ||||||
| %ifarch aarch64 |  | ||||||
| %define optflags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fasynchronous-unwind-tables -fstack-clash-protection |  | ||||||
| %endif |  | ||||||
| 
 |  | ||||||
| %configure \ | %configure \ | ||||||
|         --with-rubylibprefix='%{ruby_libdir}' \ |         --with-rubylibprefix='%{ruby_libdir}' \ | ||||||
|         --with-archlibdir='%{_libdir}' \ |         --with-archlibdir='%{_libdir}' \ | ||||||
| @ -848,13 +851,6 @@ DISABLE_TESTS="$DISABLE_TESTS -n !/test_segv_\(setproctitle\|test\|loaded_featur | |||||||
| # https://bugs.ruby-lang.org/issues/14175 | # https://bugs.ruby-lang.org/issues/14175 | ||||||
| sed -i '/def test_mdns_each_address$/,/^  end$/ s/^/#/' test/resolv/test_mdns.rb | sed -i '/def test_mdns_each_address$/,/^  end$/ s/^/#/' test/resolv/test_mdns.rb | ||||||
| 
 | 
 | ||||||
| # Skip random failed UDPSocket#recvfrom_nonblock tests |  | ||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1719743 |  | ||||||
| sed -i "/^        describe 'with data available' do$/,/^        end$/ s/^/#/" \ |  | ||||||
|   spec/ruby/library/socket/udpsocket/recvfrom_nonblock_spec.rb |  | ||||||
| sed -i "/^      describe 'with data available' do$/,/^      end$/ s/^/#/" \ |  | ||||||
|   spec/ruby/library/socket/socket/recvfrom_nonblock_spec.rb |  | ||||||
| 
 |  | ||||||
| # RHEL8 is using stronger crypto policies then Fedora ATM and upstream does | # RHEL8 is using stronger crypto policies then Fedora ATM and upstream does | ||||||
| # not support them yet. Disable the RHEL8 configuration for the moment. | # not support them yet. Disable the RHEL8 configuration for the moment. | ||||||
| # https://github.com/ruby/openssl/issues/215 | # https://github.com/ruby/openssl/issues/215 | ||||||
| @ -1204,6 +1200,12 @@ OPENSSL_SYSTEM_CIPHERS_OVERRIDE=xyz_nonexistent_file OPENSSL_CONF='' \ | |||||||
| %{_mandir}/man5/gemfile.5* | %{_mandir}/man5/gemfile.5* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Jul 04 2019 Jun Aruga <jaruga@redhat.com> - 2.6.3-106 | ||||||
|  | - Use ffi_closure_alloc to avoid segmentation fault by libffi on aarch64. | ||||||
|  |   Resolves: rhbz#1727832 | ||||||
|  | - Properly support %%prerelease in %%gemspec_ macros. | ||||||
|  |   Related: rhbz#1672575 | ||||||
|  | 
 | ||||||
| * Tue Jun 11 2019 Jun Aruga <jaruga@redhat.com> - 2.6.3-105 | * Tue Jun 11 2019 Jun Aruga <jaruga@redhat.com> - 2.6.3-105 | ||||||
| - Update to Ruby 2.6.3 by merging Fedora master branch (commit: 1cc2a49) | - Update to Ruby 2.6.3 by merging Fedora master branch (commit: 1cc2a49) | ||||||
|   * Properly generate "ruby(rubygems)" versioned dependencies. |   * Properly generate "ruby(rubygems)" versioned dependencies. | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user