1234567891011121314151617181920212223242526272829303132 |
- From: Jakub Jirutka <jakub@jirutka.cz>
- Date: Fri, 19 May 2017 19:56:00 +0200
- Subject: [PATCH] Rubygems: don't install platform-specific gems
- Gems with native extensions typically contain just source code that is
- built during installation on user's system. However, Rubygems allows to
- publish even platform-specific gems with prebuilt binaries for specific
- platform. The problem is that Rubygems uses only short platform
- identification like x86_64-linux; it does not identify used libc.
- And sadly platform-specific gems for linux are built against glibc, so
- they may not work on musl libc.
- This patch is a workaround for the aforesaid problem. It removes local
- platform from Rubygems' supported platforms to force it always pick
- a platform-agnostic (source) gem. Users can override it using
- `--platform` option.
- --- a/lib/rubygems.rb
- +++ b/lib/rubygems.rb
- @@ -759,7 +759,10 @@
- def self.platforms
- @platforms ||= []
- if @platforms.empty?
- - @platforms = [Gem::Platform::RUBY, Gem::Platform.local]
- + # XXX: Patched to avoid installing platform-specific gems with binaries
- + # linked against glibc.
- + @platforms = [Gem::Platform::RUBY]
- + #@platforms = [Gem::Platform::RUBY, Gem::Platform.local]
- end
- @platforms
- end
|