openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2015
- 1 participants
- 1454 discussions
Hello community,
here is the log from the commit of package libvirt for openSUSE:13.1:Update checked in at 2015-01-02 09:32:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/libvirt (Old)
and /work/SRC/openSUSE:13.1:Update/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.zXGNg0/_old 2015-01-02 09:32:53.000000000 +0100
+++ /var/tmp/diff_new_pack.zXGNg0/_new 2015-01-02 09:32:53.000000000 +0100
@@ -1 +1 @@
-<link package='libvirt.3179' cicount='copy' />
+<link package='libvirt.3348' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ruby20 for openSUSE:13.1:Update checked in at 2015-01-02 09:32:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/ruby20 (Old)
and /work/SRC/openSUSE:13.1:Update/.ruby20.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ruby20"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.CibM8X/_old 2015-01-02 09:32:46.000000000 +0100
+++ /var/tmp/diff_new_pack.CibM8X/_new 2015-01-02 09:32:46.000000000 +0100
@@ -1 +1 @@
-<link package='ruby20.2701' cicount='copy' />
+<link package='ruby20.3338' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package patchinfo.3338 for openSUSE:13.1:Update checked in at 2015-01-02 09:32:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/patchinfo.3338 (Old)
and /work/SRC/openSUSE:13.1:Update/.patchinfo.3338.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.3338"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="3338">
<issue id="902851" tracker="bnc">VUL-0: CVE-2014-8080: ruby: ruby19: Denial Of Service XML Expansion</issue>
<issue id="905326" tracker="bnc">VUL-0: CVE-2014-8090: ruby: Another Denial Of Service XML Expansion</issue>
<issue id="CVE-2014-8080" tracker="cve" />
<issue id="CVE-2014-8090" tracker="cve" />
<category>security</category>
<rating>moderate</rating>
<packager>jordimassaguerpla</packager>
<description>This ruby update fixes the following two security issues:
- bnc#902851: fix CVE-2014-8080: Denial Of Service XML Expansion
- bnc#905326: fix CVE-2014-8090: Another Denial Of Service XML Expansion
- Enable tests to run during the build. This way we can compare
the results on different builds.
</description>
<summary>Security update for ruby20</summary>
</patchinfo>
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ruby20.3338 for openSUSE:13.1:Update checked in at 2015-01-02 09:32:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/ruby20.3338 (Old)
and /work/SRC/openSUSE:13.1:Update/.ruby20.3338.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ruby20.3338"
Changes:
--------
New Changes file:
--- /dev/null 2014-12-25 22:38:16.200041506 +0100
+++ /work/SRC/openSUSE:13.1:Update/.ruby20.3338.new/ruby20.changes 2015-01-02 09:32:43.000000000 +0100
@@ -0,0 +1,154 @@
+-------------------------------------------------------------------
+Thu Dec 18 17:34:24 UTC 2014 - jmassaguerpla(a)suse.com
+
+- fix CVE-2014-8090: ruby: Another Denial Of Service XML Expansion
+ (bnc#905326)
+
+ CVE-2014-8090.patch: contains the patch
+
+- fix CVE-2014-8080: ruby: ruby19: Denial Of Service XML Expansion
+ (bnc#902851)
+
+ CVE-2014-8080.patch: contains the patch
+
+- Enable tests to run during the build. This way we can compare
+ the results on different builds.
+
+-------------------------------------------------------------------
+Thu Mar 27 09:24:05 UTC 2014 - dmajda(a)suse.com
+
+- pkg_config: Do not replace $LDFLAGS with $libs (bnc#870546)
+ * fixes building of gems with native extensions such as Nokogiri
+ * pkg_config_ldflags_fix.patch
+
+-------------------------------------------------------------------
+Fri Jan 10 09:50:26 UTC 2014 - dmajda(a)suse.com
+
+- RubyGems: fix build info file location (bnc#858100)
+ * makes "bundle install" work
+ * rubygems_fix_build_info_location.patch
+
+-------------------------------------------------------------------
+Sat Nov 23 18:48:02 UTC 2013 - jmassaguerpla(a)suse.com
+
+- fix CVE-2013-4164: heap overflow in float point parsing (bnc#851803)
+ The file CVE-2013-4164.patch contains the patch
+
+-------------------------------------------------------------------
+Mon Oct 21 15:14:27 UTC 2013 - jmassaguerpla(a)suse.com
+
+- fix CVE-2013-4287 CVE-2013-4363: ruby19: Algorithmic complexity vulnerability (bnc#837457)
+ The file CVE-2013-4287-4363.patch contains the patch
+
+-------------------------------------------------------------------
+Thu Jul 18 08:43:59 UTC 2013 - coolo(a)suse.com
+
+- adding vm_debug.h to the extra header list (needed for perftools.rb)
+
+-------------------------------------------------------------------
+Sat Jun 29 04:26:18 UTC 2013 - coolo(a)suse.com
+
+- update to p247
+ * This release includes a security fix about bundled OpenSSL.
+ Hostname check bypassing vulnerability in SSL client (CVE-2013-4073)
+
+ * Updated to rubygems 2.0.3. See
+ http://rubygems.rubyforge.org/rubygems-update/History_txt.html#label-2.0.3+…
+ for release notes.
+
+ #8040 change priority between keyword arguments and mandatory arguments.
+ #8416 super does not forward either named or anonymous **
+ #8463 Proc auto-splat bug with named arguments
+ #8424 fix infinite loop when stack overflow with TH_PUSH_TAG()
+ #8436 __dir__ not working in eval with binding
+ #8489 Tracepoint API: B_RETURN_EVENT not triggered when “next” used
+ #8341 block_given? (and the actual block) persist between calls to a proc created from a method (using method().to_proc()).
+ #8531 block_given? (and the actual block) persist between calls to a proc created by Symbol#to_proc.
+
+-------------------------------------------------------------------
+Fri Jun 14 14:40:43 UTC 2013 - coolo(a)suse.com
+
+- remove vim and ca-certificates from buildrequires again, were removed
+ from ruby19 already before 12.3 and came back
+
+-------------------------------------------------------------------
+Tue Jun 4 05:51:46 UTC 2013 - coolo(a)suse.com
+
+- update to p195
+ Core - prepend
+
+ #7841 Module#prepend now detect cyclic prepend.
+ #7843 removing prepended methods causes exceptions.
+ #8357 Module#prepend breaks Module's comparison operators.
+ #7983 Module#prepend can't override Fixnum's operator methods.
+ #8005 methods made private/protected after definition become uncallable on prepended class.
+ #8025 Module#included_modules include classes when prepended.
+
+ Core - keyword arguments
+
+ #7922 unnamed keyword rest argument cause SyntaxError.
+ #7942 support define method only receive keyword arguments without paren.
+ #8008 fix a bug in super with keyword arguments.
+ #8236 fix a treatment of rest arguments and keyword arguments through `super'.
+ #8260 non-symbol key should not treated as keyword arguments.
+
+ Core - refinements
+
+ #7925 fix a bug of refinements with a method call super in a block.
+
+ Core - GC
+
+ #8092 improve accuracy of GC.stat[:heap_live_num]
+ #8146 avoid unnecessary heap growth.
+ #8145 fix unlimited memory growth with large values of RUBY_FREE_MIN.
+
+ Core - Regexp
+
+ #7972 Regexp POSIX space class is location sensitive.
+ #7974 Regexp case-insensitive group doesn't work.
+ #8023 Regexp lookbehind assertion fails with /m mode enabled
+ #8001 Regexp \Z matches where it shouldn't
+
+ Core - other
+
+ #8063 fix a potential memory violation and avoid abort on the environment _FORTIFY_SOURCE=2 (ex. Ubuntu).
+ #8175 ARGF#skip doesn't work as documented.
+ #8069 File.expand_path('something', '~') now support home path on Windows.
+ #8220 fix a Segmentation fault when defined? ().
+ #8367 fix a regression in defined?(super).
+ #8283 Dir.glob doesn't recurse hidden directories.
+ #8165 fix a bug of multiple require with non-ascii file path.
+ #8290 fix an incompatible String#inspect behavior with NUL character.
+ #8360 fix a Segmentation fault of Thread#join(Float::INFINITY) on some platforms.
+
+ RubyGems
+
+ Bundled RubyGems version is updated to 2.0.2+
+ #7698 fix an rubygems' incompatibility about installation of extension libraries.
+ #8019 fix a bug of gem list --remote doesn't work.
+
+ Libraries
+
+ #7911 File.fnmatch with US-ASCII pattern and UTF-8 path raise an exception.
+ #8240 fix a bug about OpenSSL::SSL::SSLSocket breaks other connections or files on GC.
+ #8183 CGI.unescapeHTML can't decode Numeric Character References with uppercase (&#Xnnnn).
+
+ Build/Platform specific
+
+ #7830 fix build failure with compiler warning.
+ #7950 fix a build failure on mswin/VC with --with-static-linked-ext.
+
+Removed thread_pthread.c-ruby_init_stack-ignore-STACK_END_ADDRESS.patch, which is from upstream
+Removed ruby-sort-rdoc-output.patch which was never useful
+
+-------------------------------------------------------------------
+Sat Apr 27 17:02:22 UTC 2013 - coolo(a)suse.com
+
+- refresh buildroot patch
+
+-------------------------------------------------------------------
+Tue Mar 5 00:14:14 CET 2013 - mhrusecky(a)suse.cz
+
+- new package forked from ruby19 - update to 2.0.0 p0
+ - patches disabled for now
+
New:
----
CVE-2013-4164.patch
CVE-2013-4287-4363.patch
CVE-2014-8080.patch
CVE-2014-8090.patch
pkg_config_ldflags_fix.patch
ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
ruby-2.0.0-p247.tar.bz2
ruby19-export_init_prelude.patch
ruby20-rpmlintrc
ruby20.changes
ruby20.macros
ruby20.spec
rubygems-1.5.0_buildroot.patch
rubygems_fix_build_info_location.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ruby20.spec ++++++
#
# spec file for package ruby20
#
# Copyright (c) 2014 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: ruby20
%define patch_level p247
Version: 2.0.0.%{patch_level}
Release: 0
#
%define pkg_version 2.0.0
# keep in sync with macro file!
%define rb_binary_suffix 2.0
%define rb_ver 2.0.0
%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!
#
# from valgrind.spec
%ifarch %ix86 x86_64 ppc ppc64
%define use_valgrind 1
%endif
%define run_tests 1
#
#
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: rubygem-rake = 0.9.2.2
Provides: ruby(abi) = %{rb_ver}
#
Url: http://www.ruby-lang.org/
Source: ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-%{pkg_version}-%{patch_level}.tar…
Source6: ruby20.macros
Patch0: rubygems-1.5.0_buildroot.patch
Patch1: ruby-1.9.2p290_tcl_no_stupid_rpaths.patch
Patch2: CVE-2013-4287-4363.patch
Patch3: CVE-2013-4164.patch
Patch4: rubygems_fix_build_info_location.patch
Patch5: pkg_config_ldflags_fix.patch
Patch6: CVE-2014-8080.patch
Patch7: CVE-2014-8090.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: rubygems20 = 1.3.7
Provides: rubygems20_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}
%patch0
%patch1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
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/ruby2.0$1|'
%build
%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.ruby20
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 eval_intern.h vm_debug.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.ruby20
%{_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.2.0*
%{_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 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-2.0.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
++++++ CVE-2013-4164.patch ++++++
diff -Naur a/ChangeLog b/ChangeLog
--- a/ChangeLog 2013-06-27 13:11:11.000000000 +0200
+++ b/ChangeLog 2013-11-23 19:43:53.298338061 +0100
@@ -1,3 +1,8 @@
+Fri Nov 22 12:46:08 2013 Nobuyoshi Nakada <nobu(a)ruby-lang.org>
+
+ * util.c (ruby_strtod): ignore too long fraction part, which does not
+ affect the result.
+
Thu Jun 27 20:10:56 2013 CHIKANAGA Tomoyuki <nagachika(a)ruby-lang.org>
* ext/openssl/lib/openssl/ssl.rb (verify_certificate_identity): fix
diff -Naur a/test/ruby/test_float.rb b/test/ruby/test_float.rb
--- a/test/ruby/test_float.rb 2012-11-07 08:03:53.000000000 +0100
+++ b/test/ruby/test_float.rb 2013-11-23 19:43:53.298338061 +0100
@@ -613,4 +613,10 @@
# always not flonum
assert_raise(TypeError) { a = Float::INFINITY; def a.foo; end }
end
+
+ def test_long_string
+ assert_separately([], <<-'end;')
+ assert_in_epsilon(10.0, ("1."+"1"*300000).to_f*9)
+ end;
+ end
end
diff -Naur a/util.c b/util.c
--- a/util.c 2012-05-17 04:48:59.000000000 +0200
+++ b/util.c 2013-11-23 19:43:53.299338061 +0100
@@ -715,6 +715,11 @@
#else
#define MALLOC malloc
#endif
+#ifdef FREE
+extern void FREE(void*);
+#else
+#define FREE free
+#endif
#ifndef Omit_Private_Memory
#ifndef PRIVATE_MEM
@@ -1005,7 +1010,7 @@
#endif
ACQUIRE_DTOA_LOCK(0);
- if ((rv = freelist[k]) != 0) {
+ if (k <= Kmax && (rv = freelist[k]) != 0) {
freelist[k] = rv->next;
}
else {
@@ -1015,7 +1020,7 @@
#else
len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
/sizeof(double);
- if (pmem_next - private_mem + len <= PRIVATE_mem) {
+ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
rv = (Bigint*)pmem_next;
pmem_next += len;
}
@@ -1034,6 +1039,10 @@
Bfree(Bigint *v)
{
if (v) {
+ if (v->k > Kmax) {
+ FREE(v);
+ return;
+ }
ACQUIRE_DTOA_LOCK(0);
v->next = freelist[v->k];
freelist[v->k] = v;
@@ -2097,6 +2106,7 @@
for (; c >= '0' && c <= '9'; c = *++s) {
have_dig:
nz++;
+ if (nf > DBL_DIG * 4) continue;
if (c -= '0') {
nf += nz;
for (i = 1; i < nz; i++)
++++++ CVE-2013-4287-4363.patch ++++++
diff -Naur a/lib/rubygems/version.rb b/lib/rubygems/version.rb
--- a/lib/rubygems/version.rb 2013-10-21 16:53:11.442939806 +0200
+++ b/lib/rubygems/version.rb 2013-10-21 17:20:41.741034852 +0200
@@ -148,7 +148,7 @@
# FIX: These are only used once, in .correct?. Do they deserve to be
# constants?
VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*' # :nodoc:
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
##
# A string representation of this Version.
diff -Naur a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb
--- a/test/rubygems/test_gem_requirement.rb 2013-10-21 16:53:11.412939804 +0200
+++ b/test/rubygems/test_gem_requirement.rb 2013-10-21 17:21:57.796039232 +0200
@@ -47,18 +47,23 @@
end
def test_parse_bad
- e = assert_raises Gem::Requirement::BadRequirementError do
- Gem::Requirement.parse nil
+ [
+ nil,
+ '',
+ '! 1',
+ '= junk',
+ '1..2',
+ ].each do |bad|
+ e = assert_raises Gem::Requirement::BadRequirementError do
+ Gem::Requirement.parse bad
+ end
+ assert_equal 'Illformed requirement [""]', e.message
end
- assert_equal 'Illformed requirement [nil]', e.message
-
e = assert_raises Gem::Requirement::BadRequirementError do
Gem::Requirement.parse ""
end
- assert_equal 'Illformed requirement [""]', e.message
-
assert_equal Gem::Requirement::BadRequirementError.superclass, ArgumentError
end
diff -Naur a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb
--- a/test/rubygems/test_gem_version.rb 2013-10-21 16:53:11.412939804 +0200
+++ b/test/rubygems/test_gem_version.rb 2013-10-21 17:20:41.741034852 +0200
@@ -67,12 +67,17 @@
end
def test_initialize_bad
- ["junk", "1.0\n2.0"].each do |bad|
- e = assert_raises ArgumentError do
+ %W[
+ junk
+ 1.0\n2.0
+ 1..2
+ 1.2\ 3.4
+ ].each do |bad|
+ e = assert_raises ArgumentError, bad do
Gem::Version.new bad
end
- assert_equal "Malformed version number string #{bad}", e.message
+ assert_equal "Malformed version number string #{bad}", e.message, bad
end
end
++++++ CVE-2014-8080.patch ++++++
diff -Naur a/lib/rexml/entity.rb b/lib/rexml/entity.rb
--- a/lib/rexml/entity.rb 2010-03-20 04:30:59.000000000 +0100
+++ b/lib/rexml/entity.rb 2014-12-18 18:17:52.905688800 +0100
@@ -138,8 +138,14 @@
matches = @value.scan(PEREFERENCE_RE)
rv = @value.clone
if @parent
+ sum = 0
matches.each do |entity_reference|
entity_value = @parent.entity( entity_reference[0] )
+ if sum + entity_value.bytesize > Document.entity_expansion_text_limit
+ raise "entity expansion has grown too large"
+ else
+ sum += entity_value.bytesize
+ end
rv.gsub!( /%#{entity_reference.join};/um, entity_value )
end
end
diff -Naur a/test/rexml/test_document.rb b/test/rexml/test_document.rb
--- a/test/rexml/test_document.rb 2012-11-03 06:42:40.000000000 +0100
+++ b/test/rexml/test_document.rb 2014-12-18 18:17:52.905688800 +0100
@@ -47,6 +47,20 @@
</member>
EOF
+ XML_WITH_NESTED_PARAMETER_ENTITY = <<EOF
+<!DOCTYPE root [
+ <!ENTITY % a "BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.">
+ <!ENTITY % b "%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;">
+ <!ENTITY % c "%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;">
+ <!ENTITY % d "%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;">
+ <!ENTITY % e "%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;">
+ <!ENTITY % f "%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;">
+ <!ENTITY % g "%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;">
+ <!ENTITY test "test %g;">
++]>
+<cd></cd>
+EOF
+
XML_WITH_4_ENTITY_EXPANSION = <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE member [
@@ -83,6 +97,19 @@
end
ensure
REXML::Document.entity_expansion_limit = 10000
+ end
+
+ def test_entity_expansion_limit_for_parameter_entity
+ assert_raise(REXML::ParseException) do
+ REXML::Document.new(XML_WITH_NESTED_PARAMETER_ENTITY)
+ end
+ REXML::Document.entity_expansion_limit = 100
+ assert_equal(100, REXML::Document.entity_expansion_limit)
+ assert_raise(REXML::ParseException) do
+ REXML::Document.new(XML_WITH_NESTED_PARAMETER_ENTITY)
+ end
+ ensure
+ REXML::Document.entity_expansion_limit = 10000
end
def test_tag_in_cdata_with_not_ascii_only_but_ascii8bit_encoding_source
diff -Naur a/test/rexml/test_entity.rb b/test/rexml/test_entity.rb
--- a/test/rexml/test_entity.rb 2013-02-22 11:22:20.000000000 +0100
+++ b/test/rexml/test_entity.rb 2014-12-18 18:17:52.906688800 +0100
@@ -122,6 +122,22 @@
end
end
+ def test_entity_string_limit_for_parameter_entity
+ template = '<!DOCTYPE bomb [ <!ENTITY % a "^" > <!ENTITY bomb "$" > ]><root/>'
+ len = 5120 # 5k per entity
+ template.sub!(/\^/, "B" * len)
+
+ # 10k is OK
+ entities = '%a;' * 2 # 5k entity * 2 = 10k
+ REXML::Document.new(template.sub(/\$/, entities))
+
+ # above 10k explodes
+ entities = '%a;' * 3 # 5k entity * 2 = 15k
+ assert_raises(REXML::ParseException) do
+ REXML::Document.new(template.sub(/\$/, entities))
+ end
+ end
+
def test_raw
source = '<!DOCTYPE foo [
<!ENTITY ent "replace">
++++++ CVE-2014-8090.patch ++++++
diff -Naur a/lib/rexml/document.rb b/lib/rexml/document.rb
--- a/lib/rexml/document.rb 2013-03-26 18:54:43.000000000 +0100
+++ b/lib/rexml/document.rb 2014-12-18 18:18:34.365691188 +0100
@@ -278,6 +278,10 @@
end
end
+ def document
+ self
+ end
+
private
def build( source )
Parsers::TreeParser.new( source, self ).parse
diff -Naur a/lib/rexml/entity.rb b/lib/rexml/entity.rb
--- a/lib/rexml/entity.rb 2014-12-18 18:18:23.830690581 +0100
+++ b/lib/rexml/entity.rb 2014-12-18 18:18:34.365691188 +0100
@@ -157,6 +157,7 @@
# This is a set of entity constants -- the ones defined in the XML
# specification. These are +gt+, +lt+, +amp+, +quot+ and +apos+.
+ # CAUTION: these entities does not have parent and document
module EntityConst
# +>+
GT = Entity.new( 'gt', '>' )
diff -Naur a/test/rexml/test_document.rb b/test/rexml/test_document.rb
--- a/test/rexml/test_document.rb 2014-12-18 18:18:23.830690581 +0100
+++ b/test/rexml/test_document.rb 2014-12-18 18:19:16.391693608 +0100
@@ -47,6 +47,22 @@
</member>
EOF
+ XML_WITH_NESTED_EMPTY_ENTITY = <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE member [
+ <!ENTITY a "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">
+ <!ENTITY b "&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;">
+ <!ENTITY c "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;">
+ <!ENTITY d "&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;">
+ <!ENTITY e "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;">
+ <!ENTITY f "&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;">
+ <!ENTITY g "">
+]>
+<member>
+&a;
+</member>
+EOF
+
XML_WITH_NESTED_PARAMETER_ENTITY = <<EOF
<!DOCTYPE root [
<!ENTITY % a "BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.BOOM.">
@@ -57,7 +73,21 @@
<!ENTITY % f "%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;">
<!ENTITY % g "%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;">
<!ENTITY test "test %g;">
-+]>
+]>
+<cd></cd>
+EOF
+
+ XML_WITH_NESTED_EMPTY_PARAMETER_ENTITY = <<EOF
+<!DOCTYPE root [
+ <!ENTITY % a "">
+ <!ENTITY % b "%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;%a;">
+ <!ENTITY % c "%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;%b;">
+ <!ENTITY % d "%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;%c;">
+ <!ENTITY % e "%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;">
+ <!ENTITY % f "%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;%e;">
+ <!ENTITY % g "%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;%f;">
+ <!ENTITY test "test %g;">
+]>
<cd></cd>
EOF
@@ -87,6 +117,18 @@
end
assert_equal(101, doc.entity_expansion_count)
+ doc = REXML::Document.new(XML_WITH_NESTED_EMPTY_ENTITY)
+ assert_raise(RuntimeError) do
+ doc.root.children.first.value
+ end
+ REXML::Document.entity_expansion_limit = 100
+ assert_equal(100, REXML::Document.entity_expansion_limit)
+ doc = REXML::Document.new(XML_WITH_NESTED_EMPTY_ENTITY)
+ assert_raise(RuntimeError) do
+ doc.root.children.first.value
+ end
+ assert_equal(101, doc.entity_expansion_count)
+
REXML::Document.entity_expansion_limit = 4
doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION)
assert_equal("\na\na a\n<\n", doc.root.children.first.value)
@@ -95,6 +137,15 @@
assert_raise(RuntimeError) do
doc.root.children.first.value
end
+
+ assert_raise(REXML::ParseException) do
+ REXML::Document.new(XML_WITH_NESTED_EMPTY_PARAMETER_ENTITY)
+ end
+ REXML::Document.entity_expansion_limit = 100
+ assert_equal(100, REXML::Document.entity_expansion_limit)
+ assert_raise(REXML::ParseException) do
+ REXML::Document.new(XML_WITH_NESTED_EMPTY_PARAMETER_ENTITY)
+ end
ensure
REXML::Document.entity_expansion_limit = 10000
end
++++++ pkg_config_ldflags_fix.patch ++++++
From: David Majda <dmajda(a)suse.cz>
Date: Wed, 27 Mar 2014 10:16:13 +0100
References: bnc#870546
Upstream: merged
Subject: pkg_config: Do not replace $LDFLAGS with $libs
This is a backport of upstream patch:
https://bugs.ruby-lang.org/attachments/download/3769/b.patch
See the upstream bug report for more details:
https://bugs.ruby-lang.org/issues/8595
The patch is needed because the bug broke correct building of gems with
native extensions such as Nokogiri in openSUSE 13.1. It is fixed in the
latest Ruby 2.0.0 (p451) and 2.1.1.
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 146225d..8179974 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1709,12 +1709,13 @@
# default to package specific config command, as a last resort.
get = proc {|opt| `#{pkgconfig} --#{opt}`.strip}
end
+ orig_ldflags = $LDFLAGS
if get and try_ldflags(ldflags = get['libs'])
cflags = get['cflags']
libs = get['libs-only-l']
ldflags = (Shellwords.shellwords(ldflags) - Shellwords.shellwords(libs)).quote.join(" ")
$CFLAGS += " " << cflags
- $LDFLAGS += " " << ldflags
+ $LDFLAGS = [orig_ldflags, ldflags].join(' ')
$libs += " " << libs
Logging::message "package configuration for %s\n", pkg
Logging::message "cflags: %s\nldflags: %s\nlibs: %s\n\n",
++++++ 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)
++++++ 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();
++++++ ruby20-rpmlintrc ++++++
addFilter("files-duplicate /usr/share/ri/.*")
addFilter("unexpanded-macro /usr/share/ri/.*")
++++++ ruby20.macros ++++++
%rb20_binary /usr/bin/ruby2.0
%rb20_arch %(%{rb20_binary} -e 'print RUBY_PLATFORM')
%rb20_ver %(%{rb20_binary} -r rbconfig -e 'print RbConfig::CONFIG["ruby_version"]')
#
#rb20_dir %{_libdir}/ruby/
#rb20_libdir %{_libdir}/ruby/%{rb20_ver}/
#rb20_archdir %{_libdir}/ruby/%{rb20_ver}/%{rb20_arch}
#
#rb20_sitedir %{_libdir}/ruby/site_ruby
#rb20_sitelib %{rb20_sitedir}/%{rb20_ver}
#rb20_sitearch %{rb20_sitedir}/%{rb20_ver}/%{rb20_arch}
#
#rb20_vendordir %{_libdir}/ruby/vendor_ruby
#rb20_vendorlib %{rb20_vendordir}/%{rb20_ver}
#rb20_vendorarch %{rb20_vendordir}/%{rb20_ver}/%{rb20_arch}
## Base
# "rubylibprefix"=>"/usr/lib64/ruby",
%rb20_dir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["rubylibprefix"]' )
# "rubylibdir" =>"/usr/lib64/ruby/1.9.1",
%rb20_libdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["rubylibdir"]' )
# "archdir" =>"/usr/lib64/ruby/1.9.1/x86_64-linux",
%rb20_archdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["archdir"]' )
## Site
# "sitedir" =>"/usr/lib64/ruby/site_ruby",
%rb20_sitedir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitedir"]' )
# "sitelibdir" =>"/usr/lib64/ruby/site_ruby/1.9.1",
%rb20_sitelibdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitelibdir"]' )
# "sitearchdir" =>"/usr/lib64/ruby/site_ruby/1.9.1/x86_64-linux",
%rb20_sitearchdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' )
## Vendor
# "vendordir" =>"/usr/lib64/ruby/vendor_ruby",
%rb20_vendordir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendordir"]' )
# "vendorlibdir" =>"/usr/lib64/ruby/vendor_ruby/1.9.1",
%rb20_vendorlibdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendorlibdir"]' )
# "vendorarchdir" =>"/usr/lib64/ruby/vendor_ruby/1.9.1/x86_64-linux",
%rb20_vendorarchdir %(%{rb20_binary} -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"]' )
%gem20_install /usr/lib/rpm/gem_install_wrapper.sh
%gem20_cleanup /usr/bin/gem_build_cleanup %{buildroot}%{_libdir}/ruby/gems/%{rb20_ver}/gems/%{mod_name}-%{version}/
%rubygems19_requires() \
%if 0%{?suse_version} > 1100 \
%{requires_ge ruby20} \
%else \
%{requires_eq ruby20} \
%endif
++++++ rubygems-1.5.0_buildroot.patch ++++++
Index: lib/rubygems/dependency_installer.rb
===================================================================
--- lib/rubygems/dependency_installer.rb.orig
+++ lib/rubygems/dependency_installer.rb
@@ -58,6 +58,7 @@ class Gem::DependencyInstaller
def initialize(options = {})
@install_dir = options[:install_dir] || Gem.dir
+ @build_root = options[:build_root]
if options[:install_dir] then
# HACK shouldn't change the global settings, needed for -i behavior
@@ -353,6 +354,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
@@ -555,8 +555,17 @@ class Gem::Installer
# (or use) a new bin dir under the gem_home.
@bin_dir = options[:bin_dir] || Gem.bindir(gem_home)
@development = options[:development]
+ @build_root = options[:build_root]
@build_args = options[:build_args] || Gem::Command.build_args
+
+ unless @build_root.nil?
+ require 'pathname'
+ @build_root = Pathname.new((a)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
# DOC: Missing docs or :nodoc:.
Index: lib/rubygems/install_update_options.rb
===================================================================
--- lib/rubygems/install_update_options.rb.orig
+++ lib/rubygems/install_update_options.rb
@@ -56,6 +56,12 @@ module Gem::InstallUpdateOptions
end
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", '-N', '--no-document',
'Disable documentation generation') do |value, options|
options[:document] = []
++++++ rubygems_fix_build_info_location.patch ++++++
From: David Majda <dmajda(a)suse.cz>
Date: Fri, 10 Jan 2014 09:35:17 +0100
References: bnc#858100
Upstream: merged
Subject: RubyGems: Fix build info file location
Gem::Specification#build_info_file didn't respect the :install_dir
option and saved the build info file into a wrong lovation during gem
installation. This caused permission problems when installing gems using
Bundler, making it pretty much useless.
This fix is a backport from upstream:
https://github.com/rubygems/rubygems/commit/26f8ed4aa7f1ac965aec8f5721ec97e…
The upstream fix is already included in RubyGems 2.0.4.
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index 4a41891..25438f9 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -773,7 +773,13 @@ def pre_install_checks
def write_build_info_file
return if @build_args.empty?
- open spec.build_info_file, 'w' do |io|
+ build_info_dir = File.join gem_home, 'build_info'
+
+ FileUtils.mkdir_p build_info_dir
+
+ build_info_file = File.join build_info_dir, "#{spec.full_name}.info"
+
+ open build_info_file, 'w' do |io|
@build_args.each do |arg|
io.puts arg
end
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index 0f9bfef..4778b8e 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -1364,6 +1364,20 @@ def test_write_build_args_empty
refute_path_exists @spec.build_info_file
end
+ def test_write_build_info_file_install_dir
+ installer = Gem::Installer.new @gem, :install_dir => "#{@gemhome}2"
+
+ installer.build_args = %w[
+ --with-libyaml-dir /usr/local/Cellar/libyaml/0.1.4
+ ]
+
+ installer.write_build_info_file
+
+ refute_path_exists @spec.build_info_file
+ assert_path_exists \
+ File.join("#{@gemhome}2", 'build_info', "#{(a)spec.full_name}.info")
+ end
+
def test_write_cache_file
cache_file = File.join @gemhome, 'cache', @spec.file_name
gem = File.join @gemhome, @spec.file_name
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0