[rubygem-json/el5/master] - Patch for EL-5 ruby 1.8.5 specific issue (bug 634380) - fix missing symbol issue for ruby 1.8.5

Mamoru Tasaka mtasaka at fedoraproject.org
Thu Sep 16 07:20:01 UTC 2010


commit 28293475dcac28f80927fadbdcb20a6d5db14d1b
Author: Mamoru Tasaka <tasaka1 at localhost.localdomain>
Date:   Thu Sep 16 16:19:57 2010 +0900

    - Patch for EL-5 ruby 1.8.5 specific issue (bug 634380)
      - fix missing symbol issue for ruby 1.8.5
      - fix test_utc_datetime failure
    - Enable %check

 json-1.4.3-for-ruby185.patch |   40 ++++++++++++++++++++++++++++++++++++++++
 rubygem-json.spec            |   23 +++++++++++++++++++----
 2 files changed, 59 insertions(+), 4 deletions(-)
---
diff --git a/json-1.4.3-for-ruby185.patch b/json-1.4.3-for-ruby185.patch
new file mode 100644
index 0000000..20385f2
--- /dev/null
+++ b/json-1.4.3-for-ruby185.patch
@@ -0,0 +1,40 @@
+--- json-1.4.3/ext/json/ext/parser/parser.h.debug	2010-09-16 02:59:45.000000000 +0900
++++ json-1.4.3/ext/json/ext/parser/parser.h	2010-09-16 04:49:41.000000000 +0900
+@@ -16,6 +16,15 @@
+ 
+ #define option_given_p(opts, key) RTEST(rb_funcall(opts, i_key_p, 1, key))
+ 
++/* see ext/generator/generator.h */
++/* Needed for ruby 1.8.5 */
++#ifndef RSTRING_PTR
++#define RSTRING_PTR(string) RSTRING(string)->ptr
++#endif
++#ifndef RSTRING_LEN
++#define RSTRING_LEN(string) RSTRING(string)->len
++#endif
++
+ /* unicode */
+ 
+ typedef unsigned long	UTF32;	/* at least 32 bits */
+--- json-1.4.3/lib/json/add/core.rb.debug	2010-09-16 02:59:45.000000000 +0900
++++ json-1.4.3/lib/json/add/core.rb	2010-09-16 04:54:14.000000000 +0900
+@@ -66,6 +66,19 @@
+     if of_b and of_b != '0'
+       args << Rational(of_a.to_i, of_b.to_i)
+     else
++      #
++      # Only hack for ruby 1.8.5
++      # Without the fix below, "rake test_ext (or rake test_pure) fails
++      # for test_utc_datetime(TC_JSONAddition) at tests/test_json_addition.rb:156
++      if RUBY_VERSION == "1.8.5"
++        if of_a.is_a?(String)
++          of_a = of_a.to_i
++        end
++      end
++      # The above fix is not needed for ruby 1.8.6 and above due to the change
++      # on civil() in date.rb
++      # Fix for ruby 1.8.5 end
++      #
+       args << of_a
+     end
+     args << object['sg']
diff --git a/rubygem-json.spec b/rubygem-json.spec
index 9afd8dc..aa6d1b7 100644
--- a/rubygem-json.spec
+++ b/rubygem-json.spec
@@ -9,7 +9,7 @@
 
 Name:           rubygem-%{gemname}
 Version:        1.4.3
-Release:        3%{?dist}
+Release:        3%{?dist}.1
 Summary:        A JSON implementation in Ruby
 
 Group:          Development/Languages
@@ -17,6 +17,7 @@ Group:          Development/Languages
 License:        Ruby or GPLv2
 URL:            http://json.rubyforge.org
 Source0:        http://gems.rubyforge.org/gems/%{gemname}-%{version}.gem
+Patch0:         json-1.4.3-for-ruby185.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  ruby, ruby-devel
@@ -64,6 +65,14 @@ export CONFIGURE_ARGS="--with-cflags='%{optflags}'"
 #pushd ./%{gemdir}
 gem install --local --install-dir .%{gemdir} -V --force %{SOURCE0}
 
+# change cflags to honor Fedora compiler flags correctly
+find . -name extconf.rb | xargs sed -e 's|-O3|-O2|'
+pushd .%{geminstdir}
+cat %PATCH0 | patch -s -p1 --fuzz=0
+# compile again
+rake clean
+rake
+
 %install
 rm -rf $RPM_BUILD_ROOT
 
@@ -150,9 +159,9 @@ create_symlink_rec %{geminstdir}/lib %{ruby_sitelib}
 rm -rf $RPM_BUILD_ROOT
 
 %check
-#pushd .%{geminstdir}
-#rake test --trace
-#popd
+pushd .%{geminstdir}
+rake test_ext --trace
+popd
 
 
 
@@ -183,6 +192,12 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Thu Sep 16 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 1.4.3-3.1
+- Patch for EL-5 ruby 1.8.5 specific issue (bug 634380)
+  - fix missing symbol issue for ruby 1.8.5
+  - fix test_utc_datetime failure
+- Enable %%check
+
 * Fri Jun 11 2010 Xavier Lamien <laxathom at fedoraproject.org> - 1.4.3-3
 - Fix gtk2-editor removal.
 


More information about the scm-commits mailing list