Hello community, here is the log from the commit of package ruby19.1838 for openSUSE:12.3:Update checked in at 2013-07-11 10:00:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.3:Update/ruby19.1838 (Old) and /work/SRC/openSUSE:12.3:Update/.ruby19.1838.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ruby19.1838" Changes: -------- New Changes file: --- /dev/null 2013-07-10 19:42:08.835707958 +0200 +++ /work/SRC/openSUSE:12.3:Update/.ruby19.1838.new/ruby19.changes 2013-07-11 10:00:53.000000000 +0200 @@ -0,0 +1,305 @@ +------------------------------------------------------------------- +Tue Jul 2 14:56:51 UTC 2013 - jmassaguer...@suse.com + +- fix cve-2013-4073 (bnc#827265) + The fix_cve-2013-4073.patch contains the patch for + cve-2013-4073 (bnc#827265) adapted from + https://github.com/ruby/ruby/commit/2669b84d407ab431e965145c827db66c91158f89 + +------------------------------------------------------------------- +Mon Mar 25 17:54:45 UTC 2013 - mrueck...@suse.de + +- update to 1.9.3 p392 (bnc#808137 bnc#803342) + - update json intree to 1.5.5: + Denial of Service and Unsafe Object Creation Vulnerability in + JSON CVE-2013-0269 + - limit entity expansion text limit to 10kB CVE-2013-1821 + - get rid of a SEGV when calling rb_iter_break() from some + extention libraries. + - some warning suppressed and smaller fixes + +------------------------------------------------------------------- +Fri Feb 8 12:21:05 UTC 2013 - kkae...@suse.com + +- replace bind_stack.patch with upstream patch (bnc#796757) + (thread_pthread.c-ruby_init_stack-ignore-STACK_END_ADDRESS.patch) + * thread_pthread.c (ruby_init_stack): ignore `STACK_END_ADDRESS' + if Ruby interpreter is running on co-routine. + +------------------------------------------------------------------- +Wed Feb 6 16:27:34 UTC 2013 - mrueck...@suse.de + +- update to 1.9.3 p385 (bnc#802406) + XSS exploit of RDoc documentation generated by rdoc + (CVE-2013-0256) + + for other changes see /usr/share/doc/packages/ruby19/Changelog + +------------------------------------------------------------------- +Tue Jan 8 20:35:50 UTC 2013 - co...@suse.com + +- readd the private header *atomic.h + +------------------------------------------------------------------- +Fri Jan 4 13:33:09 UTC 2013 - kkae...@suse.com + +- added bind_stack.patch: (bnc#796757) + Fixes stack boundary issues when embedding Ruby into + threaded C code (Ruby bug #2294) + +------------------------------------------------------------------- +Sun Dec 30 11:51:20 UTC 2012 - co...@suse.com + +- update to 1.9.3 p362 + * many bug fixes. + +------------------------------------------------------------------- +Tue Nov 13 14:09:45 UTC 2012 - co...@suse.com + +- update to 1.9.3 p327 (bnc#789983) + CVE-2012-5371 and plenty of other fixes + +------------------------------------------------------------------- +Tue Nov 6 05:31:47 UTC 2012 - co...@suse.com + +- make sure the rdoc output is more stable for build-compare + (new patch ruby-sort-rdoc-output.patch) + +------------------------------------------------------------------- +Sat Nov 3 08:12:18 UTC 2012 - co...@suse.com + +- update to 1.9.3 p286 (bnc#783511, bnc#791199) + This release includes some security fixes, and many other bug fixes. + + $SAFE escaping vulnerability about Exception#to_s / NameError#to_s + (CVE-2012-4464, CVE-2012-4466) + Unintentional file creation caused by inserting an illegal NUL character + many other bug fixes. (CVE-2012-4522) + + See Changelog for the complete set +- remove ruby-1.8.7_safe_level_bypass.patch as it's upstream + +------------------------------------------------------------------- +Fri Oct 26 14:27:36 UTC 2012 - mrueck...@suse.de + +- added ruby-1.8.7_safe_level_bypass.patch: (bnc#783511) + Fixes a SAFE_LEVEL bypass in name_err_to_s and exc_to_s. + CVE-2012-4464 + +------------------------------------------------------------------- +Thu Oct 18 10:10:55 UTC 2012 - co...@suse.com + +- remove build depencency on ca certificates - only causing cycles + +------------------------------------------------------------------- +Thu Sep 13 05:04:39 UTC 2012 - co...@suse.com + +- one more header needed for rubygem-ruby-debug-base19 + +------------------------------------------------------------------- +Fri Sep 7 11:08:42 UTC 2012 - co...@suse.com + +- install vm_core.h and its dependencies as ruby-devel-extra + +------------------------------------------------------------------- +Wed Aug 1 11:54:11 UTC 2012 - co...@suse.com + +- move the provides to the ruby package instead + +------------------------------------------------------------------- +Fri Jul 27 07:22:48 UTC 2012 - co...@suse.com + +- add provides for the internal gems + +------------------------------------------------------------------- +Thu Jul 26 09:52:41 UTC 2012 - co...@suse.com + +- fix macros + +------------------------------------------------------------------- +Mon Jul 9 05:20:30 UTC 2012 - co...@suse.com + +- gem_install_wrapper no longer necessary + +------------------------------------------------------------------- +Mon Jun 4 11:03:08 UTC 2012 - idon...@suse.com + +- Add patch to export ruby_init_prelude, ruby bug #5174 + +------------------------------------------------------------------- +Fri May 11 10:03:11 UTC 2012 - co...@suse.com + +- there is no obvious use for the vim buildrequires and it's causing + a build cycle (because vim really requires ruby) - so remove it + +------------------------------------------------------------------- +Fri May 11 05:02:13 UTC 2012 - co...@suse.com + +- rubygem-rake is still named like this + +------------------------------------------------------------------- +Thu May 10 18:35:48 UTC 2012 - co...@suse.com + +- update to 1.9.3 p194 + - update rubygems to 1.8.23 to verify ssl certificates + - other bug fixes + +------------------------------------------------------------------- +Tue May 8 11:37:06 UTC 2012 - co...@suse.com + +- readd the requires on ruby-common to fix gems suffix + +------------------------------------------------------------------- +Sun Mar 11 18:21:23 UTC 2012 - co...@suse.com + +- let gems of 1.9 install bins without suffix + +------------------------------------------------------------------- +Fri Mar 9 07:20:21 UTC 2012 - co...@suse.com + +- remove provides for ruby and ruby-devel, only generates conflicts + with wrapper package + +------------------------------------------------------------------- +Wed Mar 7 15:45:53 UTC 2012 - mrueck...@suse.de + +- update license: + Ruby is licensed under BSD 2 Clause or Ruby License now. + +------------------------------------------------------------------- +Wed Mar 7 15:09:46 UTC 2012 - co...@suse.com + +- update to 1.9.3 p125 + - Fix for Ruby OpenSSL module: Allow "0/n splitting" as a + prevention for the TLS BEAST attack + - Fixed: LLVM/clang support [Bug #5076] + - Fixed: GCC 4.7 support [Bug #5851] + - other bug fixes + +------------------------------------------------------------------- +Mon Oct 31 16:27:48 UTC 2011 - mrueck...@suse.de + +- update to 1.9.3 preview 0 + +------------------------------------------------------------------- +Mon Jul 18 15:36:36 UTC 2011 - mrueck...@suse.de + +- override rb_arch macro from the rpm in the spec file + rb_arch in rpm is still using host_cpu instead of target_cpu. for + older distros we will need the override anyway. this allows us to + reduce the sed part in the marco to just ppc/powerpc. +- related to the first change: + pass --target={_target_platform} to configure (we used to do that + on 1.8 already) +- provide unversioned package names +- rip out bleakhouse support for now to make merging easier +- install macros file +- reorder some file list lines to make merging easier ++++ 108 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.3:Update/.ruby19.1838.new/ruby19.changes New: ---- fix_cve-2013-4073.patch ruby-1.9.2p290_tcl_no_stupid_rpaths.patch ruby-1.9.3-p392.tar.bz2 ruby-sort-rdoc-output.patch ruby19-export_init_prelude.patch ruby19-rpmlintrc ruby19.changes ruby19.macros ruby19.spec rubygems-1.5.0_buildroot.patch thread_pthread.c-ruby_init_stack-ignore-STACK_END_ADDRESS.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ruby19.spec ++++++ # # spec file for package ruby19 # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: ruby19 Version: 1.9.3.p392 Release: 0 # %define pkg_version 1.9.3 %define patch_level p392 # keep in sync with macro file! %define rb_binary_suffix 1.9 %define rb_ver 1.9.1 %define rb_arch %(echo %{_target_cpu}-linux | sed -e "s/ppc/powerpc/") %define rb_libdir %{_libdir}/ruby/%{rb_ver}/ %define rb_archdir %{_libdir}/ruby/%{rb_ver}/%{rb_arch} # keep in sync with macro file! # %if 0%{?suse_version} == 1100 %define needs_optimization_zero 1 %endif # from valgrind.spec %ifarch %ix86 x86_64 ppc ppc64 %define use_valgrind 1 %endif %define run_tests 0 # # BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: gdbm-devel BuildRequires: libffi-devel BuildRequires: libyaml-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: pkg-config BuildRequires: readline-devel BuildRequires: tk-devel BuildRequires: zlib-devel # this requires is needed as distros older than 11.3 have a buildignore on freetype2, without this the detection of the tk extension fails BuildRequires: freetype2-devel %if 0%{?suse_version} > 1010 BuildRequires: xorg-x11-libX11-devel %else BuildRequires: xorg-x11-devel %endif %if 0%{?use_valgrind} %if 0%{?suse_version} > 1020 BuildRequires: valgrind-devel %else BuildRequires: valgrind %endif %endif # Provides: ruby(abi) = %{rb_ver} # Url: http://www.ruby-lang.org/ Source: ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-%{pkg_version}-%{patch_level}.tar.bz2 Source6: ruby19.macros Patch: rubygems-1.5.0_buildroot.patch Patch1: ruby-1.9.2p290_tcl_no_stupid_rpaths.patch Patch2: ruby19-export_init_prelude.patch Patch3: ruby-sort-rdoc-output.patch # backport of http://bugs.ruby-lang.org/issues/show/2294 to 1.9.3 Patch4: thread_pthread.c-ruby_init_stack-ignore-STACK_END_ADDRESS.patch Patch5: fix_cve-2013-4073.patch # Summary: An Interpreted Object-Oriented Scripting Language License: BSD-2-Clause or Ruby Group: Development/Languages/Ruby %description Ruby is an interpreted scripting language for quick and easy object-oriented programming. It has many features for processing text files and performing system management tasks (as in Perl). It is simple, straight-forward, and extensible. * Ruby features: - Simple Syntax - *Normal* Object-Oriented features (class, method calls, for example) - *Advanced* Object-Oriented features(Mix-in, Singleton-method, for example) - Operator Overloading - Exception Handling - Iterators and Closures - Garbage Collection - Dynamic Loading of Object Files (on some architectures) - Highly Portable (works on many UNIX machines; DOS, Windows, Mac, BeOS, and more) %package devel Summary: Development files to link against Ruby Group: Development/Languages/Ruby Requires: %{name} = %{version} Provides: rubygems19 = 1.3.7 Provides: rubygems19_with_buildroot_patch Requires: ruby-common %description devel Development files to link against Ruby. %package devel-extra Summary: Special development files of ruby, normally not installed Group: Development/Languages/Ruby Requires: %{name}-devel = %{version} %description devel-extra Development files to link against Ruby. %package tk Summary: TCL/TK bindings for Ruby Group: Development/Languages/Ruby Requires: %{name} = %{version} %description tk TCL/TK bindings for Ruby %package doc-ri Summary: Ruby Interactive Documentation Group: Development/Languages/Ruby Requires: %{name} = %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-ri This package contains the RI docs for ruby %package doc-html Summary: This package contains the HTML docs for ruby Group: Development/Languages/Ruby Requires: %{name} = %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description doc-html This package contains the HTML docs for ruby %package examples Summary: Example scripts for ruby Group: Development/Languages/Ruby Requires: %{name} = %{version} %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description examples Example scripts for ruby %package test-suite Requires: %{name} = %{version} Summary: An Interpreted Object-Oriented Scripting Language Group: Development/Languages/Ruby %if 0%{?suse_version} >= 1120 BuildArch: noarch %endif %description test-suite Ruby is an interpreted scripting language for quick and easy object-oriented programming. It has many features for processing text files and performing system management tasks (as in Perl). It is simple, straight-forward, and extensible. * Ruby features: - Simple Syntax - *Normal* Object-Oriented features (class, method calls, for example) - *Advanced* Object-Oriented features(Mix-in, Singleton-method, for example) - Operator Overloading - Exception Handling - Iterators and Closures - Garbage Collection - Dynamic Loading of Object Files (on some architectures) - Highly Portable (works on many UNIX machines; DOS, Windows, Mac, BeOS, and more) %prep %setup -q -n ruby-%{pkg_version}-%{patch_level} %patch %patch1 %patch2 -p1 %patch3 -p1 %patch4 %patch5 -p1 %if 0%{?needs_optimization_zero} touch -r configure configure.timestamp perl -p -i.bak -e 's|-O2|-O0|g' configure diff -urN configure{.bak,} ||: touch -r configure.timestamp configure %endif find sample -type f -print0 | xargs -r0 chmod a-x grep -Erl '^#! */' benchmark bootstraptest ext lib sample test \ | xargs -r perl -p -i -e 's|^#!\s*\S+(\s+.*)?$|#!/usr/bin/ruby1.9$1|' %build %if 0%{?needs_optimization_zero} export CFLAGS="%{optflags}" export CFLAGS="${CFLAGS//-O2/}" export CXXFLAGS="$CFLAGS" export FFLAGS="$CFLAGS" %endif %configure \ --program-suffix=%{rb_binary_suffix} \ --with-soname=ruby%{rb_binary_suffix} \ --target=%{_target_platform} \ %if 0%{?use_valgrind} --with-valgrind \ %endif --with-mantype=man \ --enable-shared \ --disable-static \ --disable-rpath %{__make} all V=1 %install %makeinstall V=1 %{__install} -D -m 0644 %{S:6} %{buildroot}/etc/rpm/macros.ruby19 echo "%defattr(-,root,root,-)" > devel-extra-excludes echo "%defattr(-,root,root,-)" > devel-extra-list for i in iseq.h insns.inc insns_info.inc revision.h version.h thread_pthread.h \ ruby_atomic.h method.h id.h vm_core.h vm_opts.h node.h debug.h eval_intern.h; do install -m 644 $i %{buildroot}%{_includedir}/ruby-%{rb_ver}/ echo "%exclude %{_includedir}/ruby-%{rb_ver}/$i" >> devel-extra-excludes echo "%{_includedir}/ruby-%{rb_ver}/$i" >> devel-extra-list done %if 0%{?run_tests} %check export LD_LIBRARY_PATH="$PWD" # we know some tests will fail when they do not find a /usr/bin/ruby make check V=1 ||: %endif %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %config(noreplace) /etc/rpm/macros.ruby19 %{_bindir}/erb%{rb_binary_suffix} %{_bindir}/gem%{rb_binary_suffix} %{_bindir}/irb%{rb_binary_suffix} %{_bindir}/rake%{rb_binary_suffix} %{_bindir}/rdoc%{rb_binary_suffix} %{_bindir}/ri%{rb_binary_suffix} %{_bindir}/ruby%{rb_binary_suffix} %{_bindir}/testrb%{rb_binary_suffix} %{_libdir}/libruby%{rb_binary_suffix}.so.1.9* %{_libdir}/ruby/ %exclude %{rb_libdir}/multi-tk.rb %exclude %{rb_libdir}/remote-tk.rb %exclude %{rb_libdir}/tcltk.rb %exclude %{rb_libdir}/tk*.rb %exclude %{rb_libdir}/tk/ %exclude %{rb_libdir}/tkextlib/ %exclude %{rb_archdir}/tcltklib.so %exclude %{rb_archdir}/tkutil.so %{_mandir}/man1/ri%{rb_binary_suffix}.1* %{_mandir}/man1/irb%{rb_binary_suffix}.1* %{_mandir}/man1/erb%{rb_binary_suffix}.1* %{_mandir}/man1/rake%{rb_binary_suffix}.1* %{_mandir}/man1/ruby%{rb_binary_suffix}.1* %doc ChangeLog COPYING COPYING.ja GPL KNOWNBUGS.rb LEGAL NEWS README README.EXT README.EXT.ja README.ja ToDo doc/* sample/ %files devel -f devel-extra-excludes %defattr(-,root,root,-) %{_includedir}/ruby-%{rb_ver} %{_libdir}/libruby%{rb_binary_suffix}.so %{_libdir}/libruby%{rb_binary_suffix}-static.a %{_libdir}/pkgconfig/ruby-1.9.pc %files devel-extra -f devel-extra-list %files tk %defattr(-,root,root,-) %{rb_libdir}/multi-tk.rb %{rb_libdir}/remote-tk.rb %{rb_libdir}/tcltk.rb %{rb_libdir}/tk*.rb %{rb_libdir}/tk/ %{rb_libdir}/tkextlib/ %{rb_archdir}/tcltklib.so %{rb_archdir}/tkutil.so %files doc-ri %defattr(-,root,root,-) %dir %{_datadir}/ri/ %{_datadir}/ri/%{rb_ver}/ %changelog ++++++ fix_cve-2013-4073.patch ++++++ diff --git a/ext/openssl/lib/openssl/ssl-internal.rb b/ext/openssl/lib/openssl/ssl-internal.rb index c70b5b8..356d4e8 100644 --- a/ext/openssl/lib/openssl/ssl-internal.rb +++ b/ext/openssl/lib/openssl/ssl-internal.rb @@ -88,14 +88,22 @@ module OpenSSL should_verify_common_name = true cert.extensions.each{|ext| next if ext.oid != "subjectAltName" - ext.value.split(/,\s+/).each{|general_name| - if /\ADNS:(.*)/ =~ general_name + id, ostr = OpenSSL::ASN1.decode(ext.to_der).value + sequence = OpenSSL::ASN1.decode(ostr.value) + sequence.value.each{|san| + case san.tag + when 2 # dNSName in GeneralName (RFC5280) should_verify_common_name = false - reg = Regexp.escape($1).gsub(/\\\*/, "[^.]+") + reg = Regexp.escape(san.value).gsub(/\\\*/, "[^.]+") return true if /\A#{reg}\z/i =~ hostname - elsif /\AIP Address:(.*)/ =~ general_name + when 7 # iPAddress in GeneralName (RFC5280) should_verify_common_name = false - return true if $1 == hostname + # follows GENERAL_NAME_print() in x509v3/v3_alt.c + if san.value.size == 4 + return true if san.value.unpack('C*').join('.') == hostname + elsif san.value.size == 16 + return true if san.value.unpack('n*').map { |e| sprintf("%X", e) }.join(':') == hostname + end end } } diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb index cf0f1b7..58493bf 100644 --- a/test/openssl/test_ssl.rb +++ b/test/openssl/test_ssl.rb @@ -351,6 +351,28 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase } end + def test_verify_certificate_identity + # creating NULL byte SAN certificate + ef = OpenSSL::X509::ExtensionFactory.new + cert = OpenSSL::X509::Certificate.new + cert.subject = OpenSSL::X509::Name.parse "/DC=some/DC=site/CN=Some Site" + ext = ef.create_ext('subjectAltName', 'DNS:placeholder,IP:192.168.7.1,IP:13::17') + ext_asn1 = OpenSSL::ASN1.decode(ext.to_der) + san_list_der = ext_asn1.value.reduce(nil) { |memo,val| val.tag == 4 ? val.value : memo } + san_list_asn1 = OpenSSL::ASN1.decode(san_list_der) + san_list_asn1.value[0].value = 'www.example.com\0.evil.com' + ext_asn1.value[1].value = san_list_asn1.to_der + real_ext = OpenSSL::X509::Extension.new ext_asn1 + cert.add_extension(real_ext) + + assert_equal(false, OpenSSL::SSL.verify_certificate_identity(cert, 'www.example.com')) + assert_equal(true, OpenSSL::SSL.verify_certificate_identity(cert, 'www.example.com\0.evil.com')) + assert_equal(false, OpenSSL::SSL.verify_certificate_identity(cert, '192.168.7.255')) + assert_equal(true, OpenSSL::SSL.verify_certificate_identity(cert, '192.168.7.1')) + assert_equal(false, OpenSSL::SSL.verify_certificate_identity(cert, '13::17')) + assert_equal(true, OpenSSL::SSL.verify_certificate_identity(cert, '13:0:0:0:0:0:0:17')) + end + def test_tlsext_hostname return unless OpenSSL::SSL::SSLSocket.instance_methods.include?(:hostname) ++++++ ruby-1.9.2p290_tcl_no_stupid_rpaths.patch ++++++ Index: ext/tk/extconf.rb =================================================================== --- ext/tk/extconf.rb.orig +++ ext/tk/extconf.rb @@ -215,9 +215,7 @@ def get_shlib_path_head else [ - '/opt', '/pkg', '/share', - '/usr/local/opt', '/usr/local/pkg', '/usr/local/share', '/usr/local', - '/usr/opt', '/usr/pkg', '/usr/share', '/usr/contrib', '/usr' + '/usr' ].each{|dir| next unless File.directory?(dir) ++++++ ruby-sort-rdoc-output.patch ++++++ Index: ruby-1.9.3-p194/lib/rdoc/generator/template/darkfish/classpage.rhtml =================================================================== --- ruby-1.9.3-p194.orig/lib/rdoc/generator/template/darkfish/classpage.rhtml +++ ruby-1.9.3-p194/lib/rdoc/generator/template/darkfish/classpage.rhtml @@ -33,7 +33,7 @@ <h3 class="section-header">In Files</h3> <div class="section-body"> <ul> - <% klass.in_files.each do |tl| %> + <% klass.in_files.sort.each do |tl| %> <li><a href="<%= rel_prefix %>/<%= h tl.path %>?TB_iframe=true&height=550&width=785" class="thickbox" title="<%= h tl.absolute_name %>"><%= h tl.absolute_name %></a></li> <% end %> Index: ruby-1.9.3-p194/lib/rdoc/stats.rb =================================================================== --- ruby-1.9.3-p194.orig/lib/rdoc/stats.rb +++ ruby-1.9.3-p194/lib/rdoc/stats.rb @@ -288,7 +288,7 @@ class RDoc::Stats else report << '# in files:' - cm.in_files.each do |file| + cm.in_files.sort.each do |file| report << "# #{file.full_name}" end ++++++ ruby19-export_init_prelude.patch ++++++ Index: ruby-1.9.3-p194/include/ruby/ruby.h =================================================================== --- ruby-1.9.3-p194.orig/include/ruby/ruby.h +++ ruby-1.9.3-p194/include/ruby/ruby.h @@ -1225,6 +1225,7 @@ void ruby_init_stack(volatile VALUE*); VALUE variable_in_this_stack_frame; \ ruby_init_stack(&variable_in_this_stack_frame); void ruby_init(void); +void ruby_init_prelude(void); void *ruby_options(int, char**); int ruby_run_node(void *); int ruby_exec_node(void *); Index: ruby-1.9.3-p194/ruby.c =================================================================== --- ruby-1.9.3-p194.orig/ruby.c +++ ruby-1.9.3-p194/ruby.c @@ -1091,7 +1091,7 @@ proc_options(long argc, char **argv, str return argc0 - argc; } -static void +void ruby_init_prelude(void) { Init_prelude(); ++++++ ruby19-rpmlintrc ++++++ addFilter("files-duplicate /usr/share/ri/.*") addFilter("unexpanded-macro /usr/share/ri/.*") ++++++ ruby19.macros ++++++ %rb19_binary /usr/bin/ruby1.9 %gem19_binary /usr/bin/gem1.9 %rb19_arch %(%{rb19_binary} -e 'print RUBY_PLATFORM') %rb19_ver %(%{rb19_binary} -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]') # #rb19_dir %{_libdir}/ruby/ #rb19_libdir %{_libdir}/ruby/%{rb19_ver}/ #rb19_archdir %{_libdir}/ruby/%{rb19_ver}/%{rb19_arch} # #rb19_sitedir %{_libdir}/ruby/site_ruby #rb19_sitelib %{rb19_sitedir}/%{rb19_ver} #rb19_sitearch %{rb19_sitedir}/%{rb19_ver}/%{rb19_arch} # #rb19_vendordir %{_libdir}/ruby/vendor_ruby #rb19_vendorlib %{rb19_vendordir}/%{rb19_ver} #rb19_vendorarch %{rb19_vendordir}/%{rb19_ver}/%{rb19_arch} ## Base # "rubylibprefix"=>"/usr/lib64/ruby", %rb19_dir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["rubylibprefix"]' ) # "rubylibdir" =>"/usr/lib64/ruby/1.9.1", %rb19_libdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["rubylibdir"]' ) # "archdir" =>"/usr/lib64/ruby/1.9.1/x86_64-linux", %rb19_archdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["archdir"]' ) ## Site # "sitedir" =>"/usr/lib64/ruby/site_ruby", %rb19_sitedir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitedir"]' ) # "sitelibdir" =>"/usr/lib64/ruby/site_ruby/1.9.1", %rb19_sitelibdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitelibdir"]' ) # "sitearchdir" =>"/usr/lib64/ruby/site_ruby/1.9.1/x86_64-linux", %rb19_sitearchdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' ) ## Vendor # "vendordir" =>"/usr/lib64/ruby/vendor_ruby", %rb19_vendordir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendordir"]' ) # "vendorlibdir" =>"/usr/lib64/ruby/vendor_ruby/1.9.1", %rb19_vendorlibdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendorlibdir"]' ) # "vendorarchdir" =>"/usr/lib64/ruby/vendor_ruby/1.9.1/x86_64-linux", %rb19_vendorarchdir %(%{rb19_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"]' ) ++++++ rubygems-1.5.0_buildroot.patch ++++++ Index: lib/rubygems/dependency_installer.rb =================================================================== --- lib/rubygems/dependency_installer.rb.orig +++ lib/rubygems/dependency_installer.rb @@ -69,6 +69,7 @@ class Gem::DependencyInstaller @installed_gems = [] @install_dir = options[:install_dir] || Gem.dir + @build_root = options[:build_root] @cache_dir = options[:cache_dir] || @install_dir # Set with any errors that SpecFetcher finds while search through @@ -290,6 +291,7 @@ class Gem::DependencyInstaller :format_executable => @format_executable, :ignore_dependencies => @ignore_dependencies, :install_dir => @install_dir, + :build_root => @build_root, :security_policy => @security_policy, :user_install => @user_install, :wrappers => @wrappers Index: lib/rubygems/installer.rb =================================================================== --- lib/rubygems/installer.rb.orig +++ lib/rubygems/installer.rb @@ -427,9 +427,18 @@ class Gem::Installer @wrappers = options[:wrappers] @bin_dir = options[:bin_dir] @development = options[:development] + @build_root = options[:build_root] raise "NOTE: Installer option :source_index is dead" if options[:source_index] + + unless @build_root.nil? + require 'pathname' + @build_root = Pathname.new(@build_root).expand_path + @bin_dir = File.join(@build_root, options[:bin_dir] || Gem.bindir(@gem_home)) + @gem_home = File.join(@build_root,@gem_home) + alert_warning "You build with buildroot.\n Build root: #{@build_root}\n Bin dir: #{@bin_dir}\n Gem home: #{@gem_home}" + end end def check_that_user_bin_dir_is_in_path Index: lib/rubygems/install_update_options.rb =================================================================== --- lib/rubygems/install_update_options.rb.orig +++ lib/rubygems/install_update_options.rb @@ -44,6 +44,12 @@ module Gem::InstallUpdateOptions options[:bin_dir] = File.expand_path(value) end + add_option(:"Install/Update", '--build-root DIR', + 'Temporary installation root. Useful for building', + 'packages. Do not use this when installing remote gems.') do |value, options| + options[:build_root] = File.expand_path(value) + end + add_option(:"Install/Update", '-d', '--[no-]rdoc', 'Generate RDoc documentation for the gem on', 'install') do |value, options| ++++++ thread_pthread.c-ruby_init_stack-ignore-STACK_END_ADDRESS.patch ++++++ diff -wruN -x '*~' -x '*.o' -x '*.a' -x '*.so' -x '*.so.[0-9]' -x autom4te.cache -x .deps -x .libs -x Makefile -x Makefile.in ../orig-ruby-1.9.3-p362/thread_pthread.c ./thread_pthread.c --- ../orig-ruby-1.9.3-p362/thread_pthread.c 2012-09-20 16:34:12.000000000 +0200 +++ ./thread_pthread.c 2013-02-08 13:19:46.609491143 +0100 @@ -593,6 +593,27 @@ #endif native_main_thread.stack_maxsize = size - space; } + + /* If addr is out of range of main-thread stack range estimation, */ + /* it should be on co-routine (alternative stack). [Feature #2294] */ + { + void *start, *end; + + if (STACK_DIR_UPPER(1,0)) { + start = native_main_thread.stack_start; + end = (char *)native_main_thread.stack_start + native_main_thread.stack_maxsize; + } + else { + start = (char *)native_main_thread.stack_start - native_main_thread.stack_maxsize; + end = native_main_thread.stack_start; + } + + if ((void *)addr < start || (void *)addr > end) { + /* out of range */ + native_main_thread.stack_start = (VALUE *)addr; + native_main_thread.stack_maxsize = 0; /* unknown */ + } + } } #define CHECK_ERR(expr) \ -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org