32 lines
1.2 KiB
Diff
32 lines
1.2 KiB
Diff
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
|
|
@@ -764,7 +764,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
|