Benoit Daloze
Benoit Daloze
For comparison, nokogiri 1.10.9 takes 30 seconds to compile: ``` $ time gem install nokogiri Building native extensions. This could take a while... Successfully installed nokogiri-1.10.9 1 gem installed gem...
@bolandrm @glebm Thoughts on this? Which approaches do you think we should use to speed up the installation of this gem?
See https://github.com/sparklemotion/nokogiri/issues/1983#issuecomment-605657240 regarding what nokogiri does. I'm not sure what they do to deal with alpine but the binary gem seems to work with alpine/musl. @glebm Could you clarify the...
Right. It seems for Nokogiri they just dynamically link to glibc (the default) and apparently in that case it seems binary compatible with musl (I checked with `ldd` and require-ing+using...
Regarding precompiled binaries, see https://github.com/sass/sassc-ruby/issues/189#issuecomment-605687236 and before. In short, it seems musl [does not guarantee](https://www.musl-libc.org/faq.html#:~:text=Is%20musl%20compatible%20with%20glibc,bug%2Dcompatibility%2C%20with%20glibc.) to be binary compatible with glibc. Nokogiri seems to be lucky enough to only use...
A good way forward would be to consider the libc in RubyGems when checking for precompiled gems. That would be useful beyond just sassc. It seems there is already some...
A workaround until then could be to use separate release versions for "precompiled" and "not", like [libv8 does](https://github.com/rubyjs/libv8#source-and-binary-releases).
Tags added in https://github.com/jruby/jruby/pull/5385/commits/e08e97ead41afcf3104ae555c0c756c185c961c2 and should be removed when this is fixed.
> is it because of [openssl](https://github.com/ruby/openssl) in the standard library? Yes. The actual openssl requirements are here: https://github.com/rbenv/ruby-build/blob/a753b24551ed839fe25841adf3755a143797a14a/bin/ruby-build#L1104-L1129 And you can find in which definitions there are used to find...
FYI, you could follow an approach similar to https://github.com/ruby/ruby-builder It would need to be OS and OS version and architecture specific at minumum. More might be needed, e.g., if libssl...