summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2021-11-24 22:01:45 +0100
committergit <svn-admin@ruby-lang.org>2021-11-27 05:31:54 +0900
commit59439446d9432cabf106c700943b29773b4a264f (patch)
tree364910499db3696aca9c7d36c06a622554c2ef59
parent9537e65562fad11061e4c59235328ce27e59f5d1 (diff)
[rubygems/rubygems] Fix missing locked specs when depended on other platform
https://github.com/rubygems/rubygems/commit/0396e899db
-rw-r--r--lib/bundler/definition.rb2
-rw-r--r--spec/bundler/install/gemfile/platform_spec.rb43
2 files changed, 44 insertions, 1 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index d88436bdbd..97b592da7e 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -751,7 +751,7 @@ module Bundler
s.dependencies.replace(new_spec.dependencies)
end
- if dep.nil? && @dependencies.find {|d| s.name == d.name }
+ if dep.nil? && requested_dependencies.find {|d| s.name == d.name }
@unlock[:gems] << s.name
else
converged << s
diff --git a/spec/bundler/install/gemfile/platform_spec.rb b/spec/bundler/install/gemfile/platform_spec.rb
index 221c52c448..35a3872c03 100644
--- a/spec/bundler/install/gemfile/platform_spec.rb
+++ b/spec/bundler/install/gemfile/platform_spec.rb
@@ -358,6 +358,49 @@ RSpec.describe "bundle install with platform conditionals" do
expect(the_bundle).not_to include_gems "nokogiri 1.4.2"
end
+ it "installs gems tagged w/ another platform but also dependent on the current one transitively" do
+ build_repo4 do
+ build_gem "activesupport", "6.1.4.1" do |s|
+ s.add_dependency "tzinfo", "~> 2.0"
+ end
+
+ build_gem "tzinfo", "2.0.4"
+ end
+
+ gemfile <<~G
+ source "#{file_uri_for(gem_repo4)}"
+
+ gem "activesupport"
+
+ platforms :#{not_local_tag} do
+ gem "tzinfo", "~> 1.2"
+ end
+ G
+
+ lockfile <<~L
+ GEM
+ remote: #{file_uri_for(gem_repo4)}/
+ specs:
+ activesupport (6.1.4.1)
+ tzinfo (~> 2.0)
+ tzinfo (2.0.4)
+
+ PLATFORMS
+ #{specific_local_platform}
+
+ DEPENDENCIES
+ activesupport
+ tzinfo (~> 1.2)
+
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ L
+
+ bundle "install --verbose"
+
+ expect(the_bundle).to include_gems "tzinfo 2.0.4"
+ end
+
it "installs gems tagged w/ the current platforms inline" do
skip "platform issues" if Gem.win_platform?