[DRE-maint] Bug#972702: ruby-bundler: dependency resolution fails for compiled gems

deivid deivid.rodriguez at riseup.net
Thu Oct 29 10:17:59 GMT 2020


Hi!

Just to clarify why I prefer the second solution, I think what debian does is shipping precompiled versions of extensions, so technically the gemspec shipped in the debian should include no extensions at all. This is something some upstream gems already do. Take, for example, google-protobuf. It has a precompiled version for linux: https://rubygems.org/gems/google-protobuf/versions/3.13.0-x86_64-linux. If we fetch and unpack this package, we can see it includes the prebuilt `.so` extension, but no extensions in its gemspec:

$ gem fetch google-protobuf
Fetching google-protobuf-3.13.0-x86_64-linux.gem
Downloaded google-protobuf-3.13.0-x86_64-linux

$ gem unpack google-protobuf-3.13.0-x86_64-linux.gem
Unpacked gem: '/home/deivid/Code/playground/google-protobuf-3.13.0-x86_64-linux'

$ find google-protobuf-3.13.0-x86_64-linux -name '*.so'
google-protobuf-3.13.0-x86_64-linux/lib/google/2.6/protobuf_c.so
google-protobuf-3.13.0-x86_64-linux/lib/google/2.4/protobuf_c.so
google-protobuf-3.13.0-x86_64-linux/lib/google/2.7/protobuf_c.so
google-protobuf-3.13.0-x86_64-linux/lib/google/2.5/protobuf_c.so
google-protobuf-3.13.0-x86_64-linux/lib/google/2.3/protobuf_c.so

$ gem unpack google-protobuf-3.13.0-x86_64-linux.gem --spec && grep extensions google-protobuf-3.13.0-x86_64-linux.gemspec
extensions: []

I think the cleanest solution would be for debian to do the same thing.



More information about the Pkg-ruby-extras-maintainers mailing list