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