bundler 2.3.15 → 2.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/cache.rb +1 -1
- data/lib/bundler/cli/install.rb +0 -2
- data/lib/bundler/cli.rb +2 -6
- data/lib/bundler/definition.rb +16 -20
- data/lib/bundler/dependency.rb +2 -0
- data/lib/bundler/dsl.rb +1 -3
- data/lib/bundler/errors.rb +2 -0
- data/lib/bundler/fetcher/base.rb +6 -8
- data/lib/bundler/fetcher.rb +4 -0
- data/lib/bundler/plugin/api/source.rb +3 -3
- data/lib/bundler/resolver.rb +10 -12
- data/lib/bundler/rubygems_gem_installer.rb +8 -0
- data/lib/bundler/rubygems_integration.rb +3 -21
- data/lib/bundler/source/git.rb +5 -7
- data/lib/bundler/source/rubygems.rb +77 -76
- data/lib/bundler/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0194bb060d38ce7786c704aca693890461b4866ee647d6931a8e3e8f738f4ad6'
|
|
4
|
+
data.tar.gz: d6e46c6028248ad29a24bfccd9df89facbcd57186e84be8499ec903f4989b88e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9bbc74e0583c0117895f09cc1da2ae5dc9592b09b52f70f70c8efba2743bec7449230b9fc8d7210725c804bb761f98bd9a0ec8a8e417bfc2b0573154ffaacab7
|
|
7
|
+
data.tar.gz: a27eea8f0ebceb3d0e9e8b413d2c50da519c36e565e08c26f0d22f6298f75515f0d11094da6c510b74805ceae2e18e25cd61eacd40e328b565878f4ad2c66a41
|
data/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,8 @@ module Bundler
|
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
|
5
5
|
module BuildMetadata
|
|
6
6
|
# begin ivars
|
|
7
|
-
@built_at = "2022-06-
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2022-06-15".freeze
|
|
8
|
+
@git_commit_sha = "324ee6e542".freeze
|
|
9
9
|
@release = true
|
|
10
10
|
# end ivars
|
|
11
11
|
|
data/lib/bundler/cli/cache.rb
CHANGED
|
@@ -14,7 +14,7 @@ module Bundler
|
|
|
14
14
|
Bundler.settings.set_command_option_if_given :cache_path, options["cache-path"]
|
|
15
15
|
|
|
16
16
|
setup_cache_all
|
|
17
|
-
install
|
|
17
|
+
install unless Bundler.settings[:no_install]
|
|
18
18
|
|
|
19
19
|
# TODO: move cache contents here now that all bundles are locked
|
|
20
20
|
custom_path = Bundler.settings[:path] if options[:path]
|
data/lib/bundler/cli/install.rb
CHANGED
|
@@ -161,8 +161,6 @@ module Bundler
|
|
|
161
161
|
|
|
162
162
|
Bundler.settings.set_command_option_if_given :no_prune, options["no-prune"]
|
|
163
163
|
|
|
164
|
-
Bundler.settings.set_command_option_if_given :no_install, options["no-install"]
|
|
165
|
-
|
|
166
164
|
Bundler.settings.set_command_option_if_given :clean, options["clean"]
|
|
167
165
|
|
|
168
166
|
normalize_groups if options[:without] || options[:with]
|
data/lib/bundler/cli.rb
CHANGED
|
@@ -251,9 +251,7 @@ module Bundler
|
|
|
251
251
|
remembered_negative_flag_deprecation("no-deployment")
|
|
252
252
|
|
|
253
253
|
require_relative "cli/install"
|
|
254
|
-
|
|
255
|
-
Install.new(options.dup).run
|
|
256
|
-
end
|
|
254
|
+
Install.new(options.dup).run
|
|
257
255
|
end
|
|
258
256
|
|
|
259
257
|
map aliases_for("install")
|
|
@@ -299,9 +297,7 @@ module Bundler
|
|
|
299
297
|
def update(*gems)
|
|
300
298
|
SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
|
|
301
299
|
require_relative "cli/update"
|
|
302
|
-
|
|
303
|
-
Update.new(options, gems).run
|
|
304
|
-
end
|
|
300
|
+
Update.new(options, gems).run
|
|
305
301
|
end
|
|
306
302
|
|
|
307
303
|
desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem"
|
data/lib/bundler/definition.rb
CHANGED
|
@@ -255,20 +255,18 @@ module Bundler
|
|
|
255
255
|
#
|
|
256
256
|
# @return [SpecSet] resolved dependencies
|
|
257
257
|
def resolve
|
|
258
|
-
@resolve ||=
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
Resolver.resolve(expanded_dependencies, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
|
|
271
|
-
end
|
|
258
|
+
@resolve ||= if Bundler.frozen_bundle?
|
|
259
|
+
Bundler.ui.debug "Frozen, using resolution from the lockfile"
|
|
260
|
+
@locked_specs
|
|
261
|
+
elsif !unlocking? && nothing_changed?
|
|
262
|
+
Bundler.ui.debug("Found no changes, using resolution from the lockfile")
|
|
263
|
+
SpecSet.new(filter_specs(@locked_specs, @dependencies.select {|dep| @locked_specs[dep].any? }))
|
|
264
|
+
else
|
|
265
|
+
last_resolve = converge_locked_specs
|
|
266
|
+
# Run a resolve against the locally available gems
|
|
267
|
+
Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
|
|
268
|
+
expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, true)
|
|
269
|
+
Resolver.resolve(expanded_dependencies, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
|
|
272
270
|
end
|
|
273
271
|
end
|
|
274
272
|
|
|
@@ -735,12 +733,10 @@ module Bundler
|
|
|
735
733
|
end
|
|
736
734
|
|
|
737
735
|
def metadata_dependencies
|
|
738
|
-
@metadata_dependencies ||=
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
]
|
|
743
|
-
end
|
|
736
|
+
@metadata_dependencies ||= [
|
|
737
|
+
Dependency.new("Ruby\0", RubyVersion.system.gem_version),
|
|
738
|
+
Dependency.new("RubyGems\0", Gem::VERSION),
|
|
739
|
+
]
|
|
744
740
|
end
|
|
745
741
|
|
|
746
742
|
def expand_dependencies(dependencies, remote = false)
|
data/lib/bundler/dependency.rb
CHANGED
|
@@ -9,6 +9,7 @@ module Bundler
|
|
|
9
9
|
attr_reader :autorequire
|
|
10
10
|
attr_reader :groups, :platforms, :gemfile, :git, :github, :branch, :ref
|
|
11
11
|
|
|
12
|
+
# rubocop:disable Naming/VariableNumber
|
|
12
13
|
PLATFORM_MAP = {
|
|
13
14
|
:ruby => Gem::Platform::RUBY,
|
|
14
15
|
:ruby_18 => Gem::Platform::RUBY,
|
|
@@ -91,6 +92,7 @@ module Bundler
|
|
|
91
92
|
:x64_mingw_30 => Gem::Platform::X64_MINGW,
|
|
92
93
|
:x64_mingw_31 => Gem::Platform::X64_MINGW,
|
|
93
94
|
}.freeze
|
|
95
|
+
# rubocop:enable Naming/VariableNumber
|
|
94
96
|
|
|
95
97
|
def initialize(name, version, options = {}, &blk)
|
|
96
98
|
type = options["type"] || :runtime
|
data/lib/bundler/dsl.rb
CHANGED
|
@@ -511,9 +511,7 @@ module Bundler
|
|
|
511
511
|
# be raised.
|
|
512
512
|
#
|
|
513
513
|
def contents
|
|
514
|
-
@contents ||=
|
|
515
|
-
dsl_path && File.exist?(dsl_path) && File.read(dsl_path)
|
|
516
|
-
end
|
|
514
|
+
@contents ||= dsl_path && File.exist?(dsl_path) && File.read(dsl_path)
|
|
517
515
|
end
|
|
518
516
|
|
|
519
517
|
# The message of the exception reports the content of podspec for the
|
data/lib/bundler/errors.rb
CHANGED
|
@@ -41,12 +41,14 @@ module Bundler
|
|
|
41
41
|
class GemspecError < BundlerError; status_code(14); end
|
|
42
42
|
class InvalidOption < BundlerError; status_code(15); end
|
|
43
43
|
class ProductionError < BundlerError; status_code(16); end
|
|
44
|
+
|
|
44
45
|
class HTTPError < BundlerError
|
|
45
46
|
status_code(17)
|
|
46
47
|
def filter_uri(uri)
|
|
47
48
|
URICredentialsFilter.credential_filtered_uri(uri)
|
|
48
49
|
end
|
|
49
50
|
end
|
|
51
|
+
|
|
50
52
|
class RubyVersionMismatch < BundlerError; status_code(18); end
|
|
51
53
|
class SecurityError < BundlerError; status_code(19); end
|
|
52
54
|
class LockfileError < BundlerError; status_code(20); end
|
data/lib/bundler/fetcher/base.rb
CHANGED
|
@@ -19,14 +19,12 @@ module Bundler
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def fetch_uri
|
|
22
|
-
@fetch_uri ||=
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
remote_uri
|
|
29
|
-
end
|
|
22
|
+
@fetch_uri ||= if remote_uri.host == "rubygems.org"
|
|
23
|
+
uri = remote_uri.dup
|
|
24
|
+
uri.host = "index.rubygems.org"
|
|
25
|
+
uri
|
|
26
|
+
else
|
|
27
|
+
remote_uri
|
|
30
28
|
end
|
|
31
29
|
end
|
|
32
30
|
|
data/lib/bundler/fetcher.rb
CHANGED
|
@@ -20,6 +20,7 @@ module Bundler
|
|
|
20
20
|
class TooManyRequestsError < HTTPError; end
|
|
21
21
|
# This error is raised if the API returns a 413 (only printed in verbose)
|
|
22
22
|
class FallbackError < HTTPError; end
|
|
23
|
+
|
|
23
24
|
# This is the error raised if OpenSSL fails the cert verification
|
|
24
25
|
class CertificateFailureError < HTTPError
|
|
25
26
|
def initialize(remote_uri)
|
|
@@ -33,6 +34,7 @@ module Bundler
|
|
|
33
34
|
" sources and change 'https' to 'http'."
|
|
34
35
|
end
|
|
35
36
|
end
|
|
37
|
+
|
|
36
38
|
# This is the error raised when a source is HTTPS and OpenSSL didn't load
|
|
37
39
|
class SSLError < HTTPError
|
|
38
40
|
def initialize(msg = nil)
|
|
@@ -42,6 +44,7 @@ module Bundler
|
|
|
42
44
|
"using RVM are available at rvm.io/packages/openssl."
|
|
43
45
|
end
|
|
44
46
|
end
|
|
47
|
+
|
|
45
48
|
# This error is raised if HTTP authentication is required, but not provided.
|
|
46
49
|
class AuthenticationRequiredError < HTTPError
|
|
47
50
|
def initialize(remote_uri)
|
|
@@ -52,6 +55,7 @@ module Bundler
|
|
|
52
55
|
"or by storing the credentials in the `#{Settings.key_for(remote_uri)}` environment variable"
|
|
53
56
|
end
|
|
54
57
|
end
|
|
58
|
+
|
|
55
59
|
# This error is raised if HTTP authentication is provided, but incorrect.
|
|
56
60
|
class BadAuthenticationError < HTTPError
|
|
57
61
|
def initialize(remote_uri)
|
|
@@ -258,7 +258,7 @@ module Bundler
|
|
|
258
258
|
@dependencies |= Array(names)
|
|
259
259
|
end
|
|
260
260
|
|
|
261
|
-
#
|
|
261
|
+
# NOTE: Do not override if you don't know what you are doing.
|
|
262
262
|
def can_lock?(spec)
|
|
263
263
|
spec.source == self
|
|
264
264
|
end
|
|
@@ -285,7 +285,7 @@ module Bundler
|
|
|
285
285
|
end
|
|
286
286
|
alias_method :identifier, :to_s
|
|
287
287
|
|
|
288
|
-
#
|
|
288
|
+
# NOTE: Do not override if you don't know what you are doing.
|
|
289
289
|
def include?(other)
|
|
290
290
|
other == self
|
|
291
291
|
end
|
|
@@ -294,7 +294,7 @@ module Bundler
|
|
|
294
294
|
SharedHelpers.digest(:SHA1).hexdigest(uri)
|
|
295
295
|
end
|
|
296
296
|
|
|
297
|
-
#
|
|
297
|
+
# NOTE: Do not override if you don't know what you are doing.
|
|
298
298
|
def gem_install_dir
|
|
299
299
|
Bundler.install_path
|
|
300
300
|
end
|
data/lib/bundler/resolver.rb
CHANGED
|
@@ -233,19 +233,17 @@ module Bundler
|
|
|
233
233
|
# before dependencies that are unconstrained
|
|
234
234
|
def amount_constrained(dependency)
|
|
235
235
|
@amount_constrained ||= {}
|
|
236
|
-
@amount_constrained[dependency.name] ||=
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
all = index_for(dependency).search(dependency.name).size
|
|
236
|
+
@amount_constrained[dependency.name] ||= if (base = @base[dependency.name]) && !base.empty?
|
|
237
|
+
dependency.requirement.satisfied_by?(base.first.version) ? 0 : 1
|
|
238
|
+
else
|
|
239
|
+
all = index_for(dependency).search(dependency.name).size
|
|
241
240
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
end
|
|
241
|
+
if all <= 1
|
|
242
|
+
all - 1_000_000
|
|
243
|
+
else
|
|
244
|
+
search = search_for(dependency)
|
|
245
|
+
search = @prerelease_specified[dependency.name] ? search.count : search.count {|s| !s.version.prerelease? }
|
|
246
|
+
search - all
|
|
249
247
|
end
|
|
250
248
|
end
|
|
251
249
|
end
|
|
@@ -90,6 +90,14 @@ module Bundler
|
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
+
def spec
|
|
94
|
+
if Bundler.rubygems.provides?("< 3.3.12") # RubyGems implementation rescues and re-raises errors before 3.3.12 and we don't want that
|
|
95
|
+
@package.spec
|
|
96
|
+
else
|
|
97
|
+
super
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
93
101
|
private
|
|
94
102
|
|
|
95
103
|
def strict_rm_rf(dir)
|
|
@@ -203,20 +203,9 @@ module Bundler
|
|
|
203
203
|
EXT_LOCK
|
|
204
204
|
end
|
|
205
205
|
|
|
206
|
-
def spec_from_gem(path
|
|
207
|
-
require "rubygems/
|
|
208
|
-
|
|
209
|
-
gem_from_path(path, security_policies[policy]).spec
|
|
210
|
-
rescue Exception, Gem::Exception, Gem::Security::Exception => e # rubocop:disable Lint/RescueException
|
|
211
|
-
if e.is_a?(Gem::Security::Exception) ||
|
|
212
|
-
e.message =~ /unknown trust policy|unsigned gem/i ||
|
|
213
|
-
e.message =~ /couldn't verify (meta)?data signature/i
|
|
214
|
-
raise SecurityError,
|
|
215
|
-
"The gem #{File.basename(path, ".gem")} can't be installed because " \
|
|
216
|
-
"the security policy didn't allow it, with the message: #{e.message}"
|
|
217
|
-
else
|
|
218
|
-
raise e
|
|
219
|
-
end
|
|
206
|
+
def spec_from_gem(path)
|
|
207
|
+
require "rubygems/package"
|
|
208
|
+
Gem::Package.new(path).spec
|
|
220
209
|
end
|
|
221
210
|
|
|
222
211
|
def build_gem(gem_dir, spec)
|
|
@@ -514,13 +503,6 @@ module Bundler
|
|
|
514
503
|
Gem::RemoteFetcher.new(proxy)
|
|
515
504
|
end
|
|
516
505
|
|
|
517
|
-
def gem_from_path(path, policy = nil)
|
|
518
|
-
require "rubygems/package"
|
|
519
|
-
p = Gem::Package.new(path)
|
|
520
|
-
p.security_policy = policy if policy
|
|
521
|
-
p
|
|
522
|
-
end
|
|
523
|
-
|
|
524
506
|
def build(spec, skip_validation = false)
|
|
525
507
|
require "rubygems/package"
|
|
526
508
|
Gem::Package.build(spec, skip_validation)
|
data/lib/bundler/source/git.rb
CHANGED
|
@@ -219,13 +219,11 @@ module Bundler
|
|
|
219
219
|
# across different projects, this cache will be shared.
|
|
220
220
|
# When using local git repos, this is set to the local repo.
|
|
221
221
|
def cache_path
|
|
222
|
-
@cache_path ||=
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
end.join("git", git_scope)
|
|
228
|
-
end
|
|
222
|
+
@cache_path ||= if Bundler.requires_sudo? || Bundler.feature_flag.global_gem_cache?
|
|
223
|
+
Bundler.user_cache
|
|
224
|
+
else
|
|
225
|
+
Bundler.bundle_path.join("cache", "bundler")
|
|
226
|
+
end.join("git", git_scope)
|
|
229
227
|
end
|
|
230
228
|
|
|
231
229
|
def app_cache_dirname
|
|
@@ -139,13 +139,9 @@ module Bundler
|
|
|
139
139
|
force = options[:force]
|
|
140
140
|
ensure_builtin_gems_cached = options[:ensure_builtin_gems_cached]
|
|
141
141
|
|
|
142
|
-
if ensure_builtin_gems_cached && spec.default_gem?
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
force = true
|
|
146
|
-
else
|
|
147
|
-
spec.loaded_from = loaded_from(spec)
|
|
148
|
-
end
|
|
142
|
+
if ensure_builtin_gems_cached && spec.default_gem? && !cached_path(spec)
|
|
143
|
+
cached_built_in_gem(spec) unless spec.remote
|
|
144
|
+
force = true
|
|
149
145
|
end
|
|
150
146
|
|
|
151
147
|
if installed?(spec) && !force
|
|
@@ -153,84 +149,90 @@ module Bundler
|
|
|
153
149
|
return nil # no post-install message
|
|
154
150
|
end
|
|
155
151
|
|
|
156
|
-
# Download the gem to get the spec, because some specs that are returned
|
|
157
|
-
# by rubygems.org are broken and wrong.
|
|
158
152
|
if spec.remote
|
|
159
153
|
# Check for this spec from other sources
|
|
160
|
-
uris = [spec.remote.anonymized_uri
|
|
161
|
-
uris += remotes_for_spec(spec).map(&:anonymized_uri)
|
|
162
|
-
uris.uniq!
|
|
154
|
+
uris = [spec.remote, *remotes_for_spec(spec)].map(&:anonymized_uri).uniq
|
|
163
155
|
Installer.ambiguous_gems << [spec.name, *uris] if uris.length > 1
|
|
164
156
|
|
|
165
157
|
path = fetch_gem(spec, options[:previous_spec])
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
158
|
+
else
|
|
159
|
+
path = cached_gem(spec)
|
|
160
|
+
raise GemNotFound, "Could not find #{spec.file_name} for installation" unless path
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
if requires_sudo?
|
|
164
|
+
install_path = Bundler.tmp(spec.full_name)
|
|
165
|
+
bin_path = install_path.join("bin")
|
|
166
|
+
else
|
|
167
|
+
install_path = rubygems_dir
|
|
168
|
+
bin_path = Bundler.system_bindir
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
Bundler.mkdir_p bin_path, :no_sudo => true unless spec.executables.empty? || Bundler.rubygems.provides?(">= 2.7.5")
|
|
172
|
+
|
|
173
|
+
require_relative "../rubygems_gem_installer"
|
|
174
|
+
|
|
175
|
+
installer = Bundler::RubyGemsGemInstaller.at(
|
|
176
|
+
path,
|
|
177
|
+
:security_policy => Bundler.rubygems.security_policies[Bundler.settings["trust-policy"]],
|
|
178
|
+
:install_dir => install_path.to_s,
|
|
179
|
+
:bin_dir => bin_path.to_s,
|
|
180
|
+
:ignore_dependencies => true,
|
|
181
|
+
:wrappers => true,
|
|
182
|
+
:env_shebang => true,
|
|
183
|
+
:build_args => options[:build_args],
|
|
184
|
+
:bundler_expected_checksum => spec.respond_to?(:checksum) && spec.checksum,
|
|
185
|
+
:bundler_extension_cache_path => extension_cache_path(spec)
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
if spec.remote
|
|
189
|
+
s = begin
|
|
190
|
+
installer.spec
|
|
169
191
|
rescue Gem::Package::FormatError
|
|
170
192
|
Bundler.rm_rf(path)
|
|
171
193
|
raise
|
|
194
|
+
rescue Gem::Security::Exception => e
|
|
195
|
+
raise SecurityError,
|
|
196
|
+
"The gem #{File.basename(path, ".gem")} can't be installed because " \
|
|
197
|
+
"the security policy didn't allow it, with the message: #{e.message}"
|
|
172
198
|
end
|
|
199
|
+
|
|
200
|
+
spec.__swap__(s)
|
|
173
201
|
end
|
|
174
202
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
Bundler.ui.confirm message
|
|
203
|
+
message = "Installing #{version_message(spec, options[:previous_spec])}"
|
|
204
|
+
message += " with native extensions" if spec.extensions.any?
|
|
205
|
+
Bundler.ui.confirm message
|
|
179
206
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
bin_path = install_path.join("bin")
|
|
185
|
-
else
|
|
186
|
-
install_path = rubygems_dir
|
|
187
|
-
bin_path = Bundler.system_bindir
|
|
188
|
-
end
|
|
207
|
+
installed_spec = installer.install
|
|
208
|
+
|
|
209
|
+
spec.full_gem_path = installed_spec.full_gem_path
|
|
210
|
+
spec.loaded_from = installed_spec.loaded_from
|
|
189
211
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
:env_shebang => true,
|
|
201
|
-
:build_args => options[:build_args],
|
|
202
|
-
:bundler_expected_checksum => spec.respond_to?(:checksum) && spec.checksum,
|
|
203
|
-
:bundler_extension_cache_path => extension_cache_path(spec)
|
|
204
|
-
).install
|
|
205
|
-
spec.full_gem_path = installed_spec.full_gem_path
|
|
206
|
-
|
|
207
|
-
# SUDO HAX
|
|
208
|
-
if requires_sudo?
|
|
209
|
-
Bundler.rubygems.repository_subdirectories.each do |name|
|
|
210
|
-
src = File.join(install_path, name, "*")
|
|
211
|
-
dst = File.join(rubygems_dir, name)
|
|
212
|
-
if name == "extensions" && Dir.glob(src).any?
|
|
213
|
-
src = File.join(src, "*/*")
|
|
214
|
-
ext_src = Dir.glob(src).first
|
|
215
|
-
ext_src.gsub!(src[0..-6], "")
|
|
216
|
-
dst = File.dirname(File.join(dst, ext_src))
|
|
217
|
-
end
|
|
218
|
-
SharedHelpers.filesystem_access(dst) do |p|
|
|
219
|
-
Bundler.mkdir_p(p)
|
|
220
|
-
end
|
|
221
|
-
Bundler.sudo "cp -R #{src} #{dst}" if Dir[src].any?
|
|
212
|
+
# SUDO HAX
|
|
213
|
+
if requires_sudo?
|
|
214
|
+
Bundler.rubygems.repository_subdirectories.each do |name|
|
|
215
|
+
src = File.join(install_path, name, "*")
|
|
216
|
+
dst = File.join(rubygems_dir, name)
|
|
217
|
+
if name == "extensions" && Dir.glob(src).any?
|
|
218
|
+
src = File.join(src, "*/*")
|
|
219
|
+
ext_src = Dir.glob(src).first
|
|
220
|
+
ext_src.gsub!(src[0..-6], "")
|
|
221
|
+
dst = File.dirname(File.join(dst, ext_src))
|
|
222
222
|
end
|
|
223
|
+
SharedHelpers.filesystem_access(dst) do |p|
|
|
224
|
+
Bundler.mkdir_p(p)
|
|
225
|
+
end
|
|
226
|
+
Bundler.sudo "cp -R #{src} #{dst}" if Dir[src].any?
|
|
227
|
+
end
|
|
223
228
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
end
|
|
228
|
-
Bundler.sudo "cp -R #{install_path}/bin/#{exe} #{Bundler.system_bindir}/"
|
|
229
|
+
spec.executables.each do |exe|
|
|
230
|
+
SharedHelpers.filesystem_access(Bundler.system_bindir) do |p|
|
|
231
|
+
Bundler.mkdir_p(p)
|
|
229
232
|
end
|
|
233
|
+
Bundler.sudo "cp -R #{install_path}/bin/#{exe} #{Bundler.system_bindir}/"
|
|
230
234
|
end
|
|
231
|
-
installed_spec.loaded_from = loaded_from(spec)
|
|
232
235
|
end
|
|
233
|
-
spec.loaded_from = loaded_from(spec)
|
|
234
236
|
|
|
235
237
|
spec.post_install_message
|
|
236
238
|
ensure
|
|
@@ -348,10 +350,6 @@ module Bundler
|
|
|
348
350
|
end
|
|
349
351
|
end
|
|
350
352
|
|
|
351
|
-
def loaded_from(spec)
|
|
352
|
-
"#{rubygems_dir}/specifications/#{spec.full_name}.gemspec"
|
|
353
|
-
end
|
|
354
|
-
|
|
355
353
|
def cached_gem(spec)
|
|
356
354
|
if spec.default_gem?
|
|
357
355
|
cached_built_in_gem(spec)
|
|
@@ -364,10 +362,14 @@ module Bundler
|
|
|
364
362
|
global_cache_path = download_cache_path(spec)
|
|
365
363
|
@caches << global_cache_path if global_cache_path
|
|
366
364
|
|
|
367
|
-
possibilities = @caches.map {|p|
|
|
365
|
+
possibilities = @caches.map {|p| package_path(p, spec) }
|
|
368
366
|
possibilities.find {|p| File.exist?(p) }
|
|
369
367
|
end
|
|
370
368
|
|
|
369
|
+
def package_path(cache_path, spec)
|
|
370
|
+
"#{cache_path}/#{spec.file_name}"
|
|
371
|
+
end
|
|
372
|
+
|
|
371
373
|
def normalize_uri(uri)
|
|
372
374
|
uri = uri.to_s
|
|
373
375
|
uri = "#{uri}/" unless uri =~ %r{/$}
|
|
@@ -459,12 +461,11 @@ module Bundler
|
|
|
459
461
|
end
|
|
460
462
|
|
|
461
463
|
def fetch_gem(spec, previous_spec = nil)
|
|
462
|
-
return false unless spec.remote
|
|
463
|
-
|
|
464
464
|
spec.fetch_platform
|
|
465
465
|
|
|
466
466
|
cache_path = download_cache_path(spec) || default_cache_path_for(rubygems_dir)
|
|
467
|
-
gem_path =
|
|
467
|
+
gem_path = package_path(cache_path, spec)
|
|
468
|
+
return gem_path if File.exist?(gem_path)
|
|
468
469
|
|
|
469
470
|
if requires_sudo?
|
|
470
471
|
download_path = Bundler.tmp(spec.full_name)
|
|
@@ -482,7 +483,7 @@ module Bundler
|
|
|
482
483
|
SharedHelpers.filesystem_access(cache_path) do |p|
|
|
483
484
|
Bundler.mkdir_p(p)
|
|
484
485
|
end
|
|
485
|
-
Bundler.sudo "mv #{download_cache_path
|
|
486
|
+
Bundler.sudo "mv #{package_path(download_cache_path, spec)} #{gem_path}"
|
|
486
487
|
end
|
|
487
488
|
|
|
488
489
|
gem_path
|
data/lib/bundler/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bundler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.3.
|
|
4
|
+
version: 2.3.16
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- André Arko
|
|
@@ -22,7 +22,7 @@ authors:
|
|
|
22
22
|
autorequire:
|
|
23
23
|
bindir: exe
|
|
24
24
|
cert_chain: []
|
|
25
|
-
date: 2022-06-
|
|
25
|
+
date: 2022-06-15 00:00:00.000000000 Z
|
|
26
26
|
dependencies: []
|
|
27
27
|
description: Bundler manages an application's dependencies through its entire life,
|
|
28
28
|
across many machines, systematically and repeatably
|
|
@@ -369,7 +369,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
369
369
|
- !ruby/object:Gem::Version
|
|
370
370
|
version: 2.5.2
|
|
371
371
|
requirements: []
|
|
372
|
-
rubygems_version: 3.3.
|
|
372
|
+
rubygems_version: 3.3.16
|
|
373
373
|
signing_key:
|
|
374
374
|
specification_version: 4
|
|
375
375
|
summary: The best way to manage your application's dependencies
|