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