[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#683860: unblock: ruby-ffi/1.0.11debian-5



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package ruby-ffi

version -3.1 got into testing because a problem in the toolchain made so
that the tests were not run during the build, even thoug they failed in
armhf (#656809)

Version -4 was uploaded to unstable before the freeze, and fixed this
toolchain problem so that the tests got run during the build again.
Since these tests failed (only) on armhf, -4 didn't got into testing yet.

-5, just uploaded to unstable, fixes a known issue with calls to
variadic functions involving floating point arguments using libffi on
armhf. This makes the tests pass again on armhf, and therefore the build
succeeds (i.e. #656809 is closed with this upload, and the package
already built fine on armhf by now).

I am attaching the debdiff between the version in testing and the one
in unstable. The only change to the runtime is that one-line patch that
fixes the variadic function calls with floating point numbers thing, so
I believe that it should be OK to unblock this version.

unblock ruby-ffi/1.0.11debian-5

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=pt_BR.utf8, LC_CTYPE=pt_BR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
Antonio Terceiro <terceiro@debian.org>
diff -Nru ruby-ffi-1.0.11debian/debian/changelog ruby-ffi-1.0.11debian/debian/changelog
--- ruby-ffi-1.0.11debian/debian/changelog	2012-05-20 22:13:03.000000000 -0300
+++ ruby-ffi-1.0.11debian/debian/changelog	2012-08-04 16:44:18.000000000 -0300
@@ -1,3 +1,24 @@
+ruby-ffi (1.0.11debian-5) unstable; urgency=low
+
+  * debian/patches/0001-Fix-call-to-variadic-functions.patch: fixes calls to
+    variadic functions with floating point arguments, which currently only
+    breaks on armhf (Closes: #656809), but would also break on other
+    architectures with similar ABI for variadic functions.
+
+ -- Antonio Terceiro <terceiro@debian.org>  Sat, 04 Aug 2012 16:42:56 -0300
+
+ruby-ffi (1.0.11debian-4) unstable; urgency=low
+
+  * Bump standards version
+  * Bump build dependency on gem2deb to >= 0.3.0~
+  * debian/ruby-tests-rb: re-enable tests
+  * debian/patches/disable-rake-compiler.patch: disable rake-compiler
+    requirement in Rakefile, not needed.
+  * debian/rules: generate gemspec with rake before dh_auto_install (added
+    rake as build dependency)
+
+ -- Antonio Terceiro <terceiro@debian.org>  Sat, 30 Jun 2012 10:47:57 -0300
+
 ruby-ffi (1.0.11debian-3.1) unstable; urgency=low
 
   * Non maintainer upload.
diff -Nru ruby-ffi-1.0.11debian/debian/control ruby-ffi-1.0.11debian/debian/control
--- ruby-ffi-1.0.11debian/debian/control	2011-12-25 22:16:14.000000000 -0200
+++ ruby-ffi-1.0.11debian/debian/control	2012-06-30 10:43:49.000000000 -0300
@@ -4,8 +4,8 @@
 Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
 Uploaders: Antonio Terceiro <terceiro@debian.org>, Micah Anderson <micah@debian.org>
 DM-Upload-Allowed: yes
-Build-Depends: debhelper (>= 7.0.50~), gem2deb (>= 0.2.7~), libffi-dev, ruby-rspec
-Standards-Version: 3.9.2
+Build-Depends: debhelper (>= 7.0.50~), gem2deb (>= 0.3.0~), libffi-dev, ruby-rspec, rake
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/pkg-ruby-extras/ruby-ffi.git
 Vcs-Browser: http://git.debian.org/?p=pkg-ruby-extras/ruby-ffi.git;a=summary
 Homepage: http://wiki.github.com/ffi/ffi
diff -Nru ruby-ffi-1.0.11debian/debian/patches/0001-Fix-call-to-variadic-functions.patch ruby-ffi-1.0.11debian/debian/patches/0001-Fix-call-to-variadic-functions.patch
--- ruby-ffi-1.0.11debian/debian/patches/0001-Fix-call-to-variadic-functions.patch	1969-12-31 21:00:00.000000000 -0300
+++ ruby-ffi-1.0.11debian/debian/patches/0001-Fix-call-to-variadic-functions.patch	2012-08-04 16:41:28.000000000 -0300
@@ -0,0 +1,36 @@
+From ef717f8e16e5d20ad376ed99d11780bacacff16f Mon Sep 17 00:00:00 2001
+From: Antonio Terceiro <terceiro@softwarelivre.org>
+Date: Sat, 4 Aug 2012 16:30:17 -0300
+Subject: [PATCH] Fix call to variadic functions
+
+This changes the call to ffi_prep_cif into a call to ffi_prep_cif_var,
+which is the improved libffi API for calling variadic functions.
+
+Calling variadic functions with floating point arguments with
+ffi_prep_cif currently only breaks in armhf, but could also break on
+other architectures where the ABI for variadic functions is different
+from what you would expect.
+
+For more information, please check the following message to the libffi
+development mailing list:
+http://permalink.gmane.org/gmane.comp.lib.ffi.general/277
+---
+ ext/ffi_c/Variadic.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/ffi_c/Variadic.c b/ext/ffi_c/Variadic.c
+index ec5caf4..65b4dd6 100644
+--- a/ext/ffi_c/Variadic.c
++++ b/ext/ffi_c/Variadic.c
+@@ -219,7 +219,7 @@ variadic_invoke(VALUE self, VALUE parameterTypes, VALUE parameterValues)
+     if (ffiReturnType == NULL) {
+         rb_raise(rb_eArgError, "Invalid return type");
+     }
+-    ffiStatus = ffi_prep_cif(&cif, invoker->abi, paramCount, ffiReturnType, ffiParamTypes);
++    ffiStatus = ffi_prep_cif_var(&cif, invoker->abi, paramCount, paramCount, ffiReturnType, ffiParamTypes);
+     switch (ffiStatus) {
+         case FFI_BAD_ABI:
+             rb_raise(rb_eArgError, "Invalid ABI specified");
+-- 
+1.7.10.4
+
diff -Nru ruby-ffi-1.0.11debian/debian/patches/disable-rake-compiler.patch ruby-ffi-1.0.11debian/debian/patches/disable-rake-compiler.patch
--- ruby-ffi-1.0.11debian/debian/patches/disable-rake-compiler.patch	1969-12-31 21:00:00.000000000 -0300
+++ ruby-ffi-1.0.11debian/debian/patches/disable-rake-compiler.patch	2012-06-30 10:39:42.000000000 -0300
@@ -0,0 +1,23 @@
+Index: ruby-ffi/Rakefile
+===================================================================
+--- ruby-ffi.orig/Rakefile	2012-06-30 10:39:02.121931503 -0300
++++ ruby-ffi/Rakefile	2012-06-30 10:39:40.385929999 -0300
+@@ -1,12 +1,12 @@
+ require 'rubygems'
+ require 'rbconfig'
+ 
+-USE_RAKE_COMPILER = (RUBY_PLATFORM =~ /java/) ? false : true
+-if USE_RAKE_COMPILER
+-  gem 'rake-compiler', '>=0.6.0'
+-  require 'rake/extensiontask'
+-  ENV['RUBY_CC_VERSION'] = '1.8.7:1.9.2'
+-end
++USE_RAKE_COMPILER = false
++# if USE_RAKE_COMPILER
++#   gem 'rake-compiler', '>=0.6.0'
++#   require 'rake/extensiontask'
++#   ENV['RUBY_CC_VERSION'] = '1.8.7:1.9.2'
++# end
+ 
+ require 'date'
+ require 'fileutils'
diff -Nru ruby-ffi-1.0.11debian/debian/patches/series ruby-ffi-1.0.11debian/debian/patches/series
--- ruby-ffi-1.0.11debian/debian/patches/series	2012-05-20 22:11:18.000000000 -0300
+++ ruby-ffi-1.0.11debian/debian/patches/series	2012-08-04 16:42:36.000000000 -0300
@@ -1,3 +1,5 @@
 0001-Add-types.conf-files-for-missing-Debian-architecture.patch
 fix-test-on-sparc
 ftbfs-gcc-4.7.diff
+disable-rake-compiler.patch
+0001-Fix-call-to-variadic-functions.patch
diff -Nru ruby-ffi-1.0.11debian/debian/ruby-tests.rb ruby-ffi-1.0.11debian/debian/ruby-tests.rb
--- ruby-ffi-1.0.11debian/debian/ruby-tests.rb	2012-01-21 17:21:30.000000000 -0200
+++ ruby-ffi-1.0.11debian/debian/ruby-tests.rb	2012-06-30 10:19:39.000000000 -0300
@@ -1,7 +1,7 @@
 # build the test lib for this Ruby version
 system('make -f libtest/GNUmakefile') or raise("Failed to build test library")
 
-require 'rspec'
+require 'rspec/autorun'
 Dir.glob('spec/*/*_spec.rb').each do |spec|
   require spec
 end
diff -Nru ruby-ffi-1.0.11debian/debian/rules ruby-ffi-1.0.11debian/debian/rules
--- ruby-ffi-1.0.11debian/debian/rules	2012-01-22 19:25:00.000000000 -0200
+++ ruby-ffi-1.0.11debian/debian/rules	2012-06-30 10:41:59.000000000 -0300
@@ -15,6 +15,11 @@
 %:
 	dh $@ --buildsystem=ruby --with ruby
 
+override_dh_auto_install:
+	rake gem:spec
+	dh_auto_install
+
 override_dh_auto_clean:
 	dh_auto_clean
 	rm -rf build/
+	$(RM) ffi.gemspec

Attachment: signature.asc
Description: Digital signature


Reply to: