Package: ruby2.0
Version: 2.0.0.484+really457-3 
Severity: important

I see ruby2.0 is M-A:foreign, which seems wrong to me.

Consider a package "ruby-multiarch-example" that contains a ruby script
requiring an arch:any ruby module (ruby-bcrypt for instance), and a
compiled binary. This would be Architecture:any and Depend on ruby2.0,
ruby-bcrypt. Now it's possible to install ruby2.0:amd64, ruby-bcrypt:i386,
and ruby-multiarch-example:i386. This results in the ruby script failing
because the architectures of ruby-bcrypt and ruby2.0 don't match, even
though all the dependencies are satisfied.

I've put such a package available for testing at
 deb http://people.debian.org/~ntyni/multiarch-testing sid main
 deb-src http://people.debian.org/~ntyni/multiarch-testing sid main

which is signed with the key at
 http://people.debian.org/~ntyni/multiarch-testing.asc

(containing a signature from my DD key.)

To reproduce, do something like this in a clean amd64 chroot:

# dpkg --add-architecture i386
# apt-get update
# apt-get install ruby2.0:amd64 ruby-multiarch-example:i386
# ruby-multiarch-example
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot 
load such file -- bcrypt_ext (LoadError)
    from /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/vendor_ruby/bcrypt.rb:16:in `rescue in <top (required)>'
    from /usr/lib/ruby/vendor_ruby/bcrypt.rb:12:in `<top (required)>'
    from /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/bin/ruby-multiarch-example:3:in `<main>'


I believe 'Multi-Arch: allowed' was designed for this use case, and
that's what python is using. However, there are concerns that this
is still broken in some cases. See Guillem's message at
 https://lists.debian.org/debian-devel/2013/04/msg00578.html
and the current thread on debian-devel, around 
 https://lists.debian.org/debian-devel/2014/04/msg00464.html

(I still haven't enabled multi-arch in perl mainly because of those concerns,
 but maybe python has showed now that it's working well enough.)

Thanks for your work on ruby,
-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to