@@ -107,14 +107,24 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
107107 @locked_ruby_version = @locked_gems . ruby_version
108108 @locked_deps = @locked_gems . dependencies
109109 @originally_locked_specs = SpecSet . new ( @locked_gems . specs )
110+ @originally_locked_sources = @locked_gems . sources
110111 @locked_checksums = @locked_gems . checksums
111112
112113 if @unlocking_all
113114 @locked_specs = SpecSet . new ( [ ] )
114115 @locked_sources = [ ]
115116 else
116117 @locked_specs = @originally_locked_specs
117- @locked_sources = @locked_gems . sources
118+ @locked_sources = @originally_locked_sources
119+ end
120+
121+ locked_gem_sources = @originally_locked_sources . select { |s | s . is_a? ( Source ::Rubygems ) }
122+ multisource_lockfile = locked_gem_sources . size == 1 && locked_gem_sources . first . multiple_remotes?
123+
124+ if multisource_lockfile
125+ msg = "Your lockfile contains a single rubygems source section with multiple remotes, which is insecure. Make sure you run `bundle install` in non frozen mode and commit the result to make your lockfile secure."
126+
127+ Bundler ::SharedHelpers . feature_removed! msg
118128 end
119129 else
120130 @locked_gems = nil
@@ -123,24 +133,12 @@ def initialize(lockfile, dependencies, sources, unlock, ruby_version = nil, opti
123133 @platforms = [ ]
124134 @locked_deps = { }
125135 @locked_specs = SpecSet . new ( [ ] )
126- @originally_locked_specs = @locked_specs
127136 @locked_sources = [ ]
137+ @originally_locked_specs = @locked_specs
138+ @originally_locked_sources = @locked_sources
128139 @locked_checksums = Bundler . feature_flag . lockfile_checksums?
129140 end
130141
131- locked_gem_sources = @locked_sources . select { |s | s . is_a? ( Source ::Rubygems ) }
132- @multisource_allowed = locked_gem_sources . size == 1 && locked_gem_sources . first . multiple_remotes? && Bundler . frozen_bundle?
133-
134- if @multisource_allowed
135- unless sources . aggregate_global_source?
136- msg = "Your lockfile contains a single rubygems source section with multiple remotes, which is insecure. Make sure you run `bundle install` in non frozen mode and commit the result to make your lockfile secure."
137-
138- Bundler ::SharedHelpers . major_deprecation 2 , msg
139- end
140-
141- @sources . merged_gem_lockfile_sections! ( locked_gem_sources . first )
142- end
143-
144142 @unlocking_ruby ||= if @ruby_version && locked_ruby_version_object
145143 @ruby_version . diff ( locked_ruby_version_object )
146144 end
@@ -763,7 +761,7 @@ def start_resolution
763761 end
764762
765763 def precompute_source_requirements_for_indirect_dependencies?
766- sources . non_global_rubygems_sources . all? ( &:dependency_api_available? ) && ! sources . aggregate_global_source?
764+ sources . non_global_rubygems_sources . all? ( &:dependency_api_available? )
767765 end
768766
769767 def current_platform_locked?
@@ -954,7 +952,7 @@ def converge_sources
954952 sources . all_sources . each do |source |
955953 # has to be done separately, because we want to keep the locked checksum
956954 # store for a source, even when doing a full update
957- if @locked_checksums && @locked_gems && locked_source = @locked_gems . sources . find { |s | s == source && !s . equal? ( source ) }
955+ if @locked_checksums && @locked_gems && locked_source = @originally_locked_sources . find { |s | s == source && !s . equal? ( source ) }
958956 source . checksum_store . merge! ( locked_source . checksum_store )
959957 end
960958 # If the source is unlockable and the current command allows an unlock of
@@ -1137,7 +1135,7 @@ def lockfiles_equal?(current, proposed, preserve_unknown_sections)
11371135 end
11381136
11391137 def additional_base_requirements_to_prevent_downgrades ( resolution_base )
1140- return resolution_base unless @locked_gems && ! sources . expired_sources? ( @locked_gems . sources )
1138+ return resolution_base unless @locked_gems
11411139 @originally_locked_specs . each do |locked_spec |
11421140 next if locked_spec . source . is_a? ( Source ::Path ) || locked_spec . source_changed?
11431141
0 commit comments