From 0a7e5e3b0d3f522778f80656395faaf24a9ad98d Mon Sep 17 00:00:00 2001 From: James Wen Date: Sat, 27 Feb 2016 00:13:43 -0500 Subject: Allow `Bundler::RubyVersion` to handle `RUBY_PATCHLEVEL` of -1 - Closes #4317 --- lib/bundler/ruby_version.rb | 3 +++ spec/bundler/ruby_version_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/lib/bundler/ruby_version.rb b/lib/bundler/ruby_version.rb index 800a4433f2..92f9d4c396 100644 --- a/lib/bundler/ruby_version.rb +++ b/lib/bundler/ruby_version.rb @@ -103,6 +103,9 @@ module Bundler private def matches?(requirements, version) + # Handles RUBY_PATCHLEVEL of -1 for instances like ruby-head + return requirements == version if requirements.to_s == "-1" || version.to_s == "-1" + Array(requirements).all? do |requirement| Gem::Requirement.create(requirement).satisfied_by?(Gem::Version.create(version)) end diff --git a/spec/bundler/ruby_version_spec.rb b/spec/bundler/ruby_version_spec.rb index ce68463029..08a7e0e8e4 100644 --- a/spec/bundler/ruby_version_spec.rb +++ b/spec/bundler/ruby_version_spec.rb @@ -328,6 +328,28 @@ describe "Bundler::RubyVersion and its subclasses" do it_behaves_like "there is a difference in the engine versions" end + + context "with a patchlevel of -1" do + let(:version) { ">= 2.0.0" } + let(:patchlevel) { "-1" } + let(:engine) { "ruby" } + let(:engine_version) { "~> 2.0.1" } + let(:other_version) { version } + let(:other_engine) { engine } + let(:other_engine_version) { engine_version } + + context "and comparing with another patchlevel of -1" do + let(:other_patchlevel) { patchlevel } + + it_behaves_like "there are no differences" + end + + context "and comparing with a patchlevel that is not -1" do + let(:other_patchlevel) { "642" } + + it_behaves_like "there is a difference in the patchlevels" + end + end end describe "#system" do -- cgit v1.2.1 From 9f222c976f07b805efc8c4482740961c7671f23d Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Sun, 28 Feb 2016 00:40:21 -0600 Subject: [Travis] Test against RubyGems 2.6.1 --- .travis.yml | 2 +- Rakefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0b6e02744f..9c7ca6ee1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ env: # We need to know if changes to rubygems will break bundler on release - RGV=master # Test the latest rubygems release with all of our supported rubies - - RGV=v2.6.0 + - RGV=v2.6.1 - RGV=v2.4.8 matrix: diff --git a/Rakefile b/Rakefile index f63081001b..647885265a 100644 --- a/Rakefile +++ b/Rakefile @@ -65,7 +65,7 @@ namespace :spec do sh "sudo apt-get install graphviz -y 2>&1 | tail -n 2" # Install the gems with a consistent version of RubyGems - sh "gem update --system 2.6.0" + sh "gem update --system 2.6.1" $LOAD_PATH.unshift("./spec") require "support/rubygems_ext" @@ -122,7 +122,7 @@ begin rubyopt = ENV["RUBYOPT"] # When editing this list, also edit .travis.yml! branches = %w(master) - releases = %w(v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.29 v2.0.14 v2.1.11 v2.2.5 v2.4.8 v2.6.0) + releases = %w(v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.29 v2.0.14 v2.1.11 v2.2.5 v2.4.8 v2.6.1) (branches + releases).each do |rg| desc "Run specs with Rubygems #{rg}" RSpec::Core::RakeTask.new(rg) do |t| -- cgit v1.2.1 From 9422b27c4a2d9299308451d44a1513811bf8cfc1 Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Sun, 28 Feb 2016 01:12:23 -0600 Subject: Handle quotes in PATH --- lib/bundler.rb | 10 +++++----- spec/bundler/bundler_spec.rb | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/lib/bundler.rb b/lib/bundler.rb index 2958e64cee..3516cf75d9 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -303,12 +303,12 @@ module Bundler def which(executable) if File.file?(executable) && File.executable?(executable) executable - elsif path = ENV["PATH"] - executable_path = path.split(File::PATH_SEPARATOR).find do |p| - abs_path = File.join(p, executable) - File.file?(abs_path) && File.executable?(abs_path) + elsif paths = ENV["PATH"] + paths.split(File::PATH_SEPARATOR).find do |path| + path = path[1..-2] if path[0] == '"' && path[-1] == '"' + executable_path = File.expand_path(executable, path) + return executable_path if File.file?(executable_path) && File.executable?(executable_path) end - executable_path && File.expand_path(executable, executable_path) end end diff --git a/spec/bundler/bundler_spec.rb b/spec/bundler/bundler_spec.rb index 84d2922f37..2ad3704db0 100644 --- a/spec/bundler/bundler_spec.rb +++ b/spec/bundler/bundler_spec.rb @@ -103,4 +103,41 @@ describe Bundler do end end end + + describe "#which" do + let(:executable) { "executable" } + let(:path) { %w(/a /b c ../d "/e") } + let(:expected) { "executable" } + + before do + ENV["PATH"] = path.join(File::PATH_SEPARATOR) + + allow(File).to receive(:file?).and_return(false) + allow(File).to receive(:executable?).and_return(false) + if expected + expect(File).to receive(:file?).with(expected).and_return(true) + expect(File).to receive(:executable?).with(expected).and_return(true) + end + end + + subject { described_class.which(executable) } + + shared_examples_for "it returns the correct executable" do + it "returns the expected file" do + expect(subject).to eq(expected) + end + end + + it_behaves_like "it returns the correct executable" + + context "when the executable in inside a quoted path" do + let(:expected) { "/e/executable" } + it_behaves_like "it returns the correct executable" + end + + context "when the executable is not found" do + let(:expected) { nil } + it_behaves_like "it returns the correct executable" + end + end end -- cgit v1.2.1 From badc5c2b69863d063b964a841f09d0286c59cd26 Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Mon, 29 Feb 2016 20:56:51 -0600 Subject: Fix which to compare quotes correctly on 1.8.7 --- lib/bundler.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/bundler.rb b/lib/bundler.rb index 3516cf75d9..dcb151b058 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -304,8 +304,9 @@ module Bundler if File.file?(executable) && File.executable?(executable) executable elsif paths = ENV["PATH"] + quote = '"'.freeze paths.split(File::PATH_SEPARATOR).find do |path| - path = path[1..-2] if path[0] == '"' && path[-1] == '"' + path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote) executable_path = File.expand_path(executable, path) return executable_path if File.file?(executable_path) && File.executable?(executable_path) end -- cgit v1.2.1 From 3e4ed38c17b095fb29830389bd5b203e133691a3 Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Mon, 29 Feb 2016 21:23:16 -0600 Subject: [Edgecases] Update for release of Rails 3.2.22.2 --- spec/realworld/edgecases_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/realworld/edgecases_spec.rb b/spec/realworld/edgecases_spec.rb index 8295669d19..2f0ba9866a 100644 --- a/spec/realworld/edgecases_spec.rb +++ b/spec/realworld/edgecases_spec.rb @@ -49,7 +49,7 @@ describe "real world edgecases", :realworld => true, :sometimes => true do gem 'rack-cache', '1.2.0' # last version that works on Ruby 1.9 G bundle :lock - expect(lockfile).to include("rails (3.2.22.1)") + expect(lockfile).to include("rails (3.2.22.2)") expect(lockfile).to include("capybara (2.2.1)") end -- cgit v1.2.1 From e5ac960acdaa76732e9fd5875f7b20a900f9b9db Mon Sep 17 00:00:00 2001 From: Samuel Giddins Date: Sat, 5 Mar 2016 15:59:04 -0600 Subject: [RubygemsIntegration] Add support for new activate_bin_path binstubs --- lib/bundler/cli/exec.rb | 3 ++- lib/bundler/rubygems_integration.rb | 36 +++++++++++++++++++++--------------- spec/commands/exec_spec.rb | 4 ++-- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/lib/bundler/cli/exec.rb b/lib/bundler/cli/exec.rb index 865ac20248..9162d54913 100644 --- a/lib/bundler/cli/exec.rb +++ b/lib/bundler/cli/exec.rb @@ -21,7 +21,7 @@ module Bundler validate_cmd! SharedHelpers.set_bundle_environment if bin_path = Bundler.which(cmd) - kernel_load(bin_path, *args) && return if ruby_shebang?(bin_path) + kernel_load(bin_path, *args) if ruby_shebang?(bin_path) # First, try to exec directly to something in PATH kernel_exec([bin_path, cmd], *args) else @@ -61,6 +61,7 @@ module Bundler Bundler.ui = nil require "bundler/setup" Kernel.load(file) + exit rescue SystemExit raise rescue Exception => e # rubocop:disable Lint/RescueException diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index 4e5ca7d1f8..8a0fdbaeeb 100644 --- a/lib/bundler/rubygems_integration.rb +++ b/lib/bundler/rubygems_integration.rb @@ -361,25 +361,31 @@ module Bundler # +specs+ def replace_bin_path(specs) gem_class = (class << Gem; self; end) - redefine_method(gem_class, :bin_path) do |name, *args| - exec_name = args.first - - return ENV["BUNDLE_BIN_PATH"] if exec_name == "bundle" - spec = nil + redefine_method(gem_class, :find_spec_for_exe) do |name, *args| + exec_name = args.first - if exec_name - spec = specs.find {|s| s.executables.include?(exec_name) } - raise(Gem::Exception, "can't find executable #{exec_name}") unless spec - unless spec.name == name - warn "Bundler is using a binstub that was created for a different gem.\n" \ - "This is deprecated, in future versions you may need to `bundle binstub #{name}` " \ - "to work around a system/bundle conflict." - end + spec = if exec_name + specs.find {|s| s.executables.include?(exec_name) } else - spec = specs.find {|s| s.name == name } - raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name = spec.default_executable + specs.find {|s| s.name == name } + end + raise(Gem::Exception, "can't find executable #{exec_name}") unless spec + raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name ||= spec.default_executable + unless spec.name == name + warn "Bundler is using a binstub that was created for a different gem.\n" \ + "This is deprecated, in future versions you may need to `bundle binstub #{name}` " \ + "to work around a system/bundle conflict." end + spec + end + + redefine_method(gem_class, :bin_path) do |name, *args| + exec_name = args.first + return ENV["BUNDLE_BIN_PATH"] if exec_name == "bundle" + + spec = find_spec_for_exe(name, *args) + exec_name ||= spec.default_executable gem_bin = File.join(spec.full_gem_path, spec.bindir, exec_name) gem_from_path_bin = File.join(File.dirname(spec.loaded_from), spec.bindir, exec_name) diff --git a/spec/commands/exec_spec.rb b/spec/commands/exec_spec.rb index be2f8aa2a5..29f5927c14 100644 --- a/spec/commands/exec_spec.rb +++ b/spec/commands/exec_spec.rb @@ -128,13 +128,13 @@ describe "bundle exec" do G end - bundle "exec rackup", :expect_err => true + bundle! "exec rackup", :expect_err => true expect(out).to eq("0.9.1") expect(err).to match("deprecated") Dir.chdir bundled_app2 do - bundle "exec rackup" + bundle! "exec rackup" expect(out).to eq("1.0.0") end end -- cgit v1.2.1 From 487c84f0d24179c69fb5eb2cf6d4dd908d50f0e3 Mon Sep 17 00:00:00 2001 From: James Wen Date: Thu, 10 Mar 2016 00:10:06 -0500 Subject: Fix the following warning in the test suite: ``` Bundler::Fetcher::Downloader fetch when the # requests counter is greater than the redirect limit WARNING: An expectation of `:body` was set on `nil`. To allow expectations on `nil` and suppress this message, set `config.allow_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `config.allow_expectations_on_nil` to `false`. Called from /home/travis/build/bundler/bundler/spec/bundler/fetcher/downloader_spec.rb:19:in `block (3 levels) in '. ``` --- spec/bundler/fetcher/downloader_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/bundler/fetcher/downloader_spec.rb b/spec/bundler/fetcher/downloader_spec.rb index ebfaf90534..bf6abd115a 100644 --- a/spec/bundler/fetcher/downloader_spec.rb +++ b/spec/bundler/fetcher/downloader_spec.rb @@ -12,7 +12,7 @@ describe Bundler::Fetcher::Downloader do describe "fetch" do let(:counter) { 0 } let(:httpv) { "1.1" } - let(:http_response) { nil } + let(:http_response) { double(:response) } before do allow(subject).to receive(:request).with(uri, options).and_return(http_response) -- cgit v1.2.1 From 1ff30decaddecc3d98daf9a9a3a473e33fc66d12 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sat, 12 Mar 2016 00:31:21 -0800 Subject: test HTTPS connections to index.rubygems.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit in my local testing, this causes failures… --- spec/other/ssl_cert_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/other/ssl_cert_spec.rb b/spec/other/ssl_cert_spec.rb index b1b27ebb89..4ed6ca53c1 100644 --- a/spec/other/ssl_cert_spec.rb +++ b/spec/other/ssl_cert_spec.rb @@ -13,6 +13,7 @@ describe "SSL Certificates", :rubygems_master do rubygems.global.ssl.fastly.net rubygems.org staging.rubygems.org + index.rubygems.org ) hosts.each do |host| -- cgit v1.2.1 From 28b86ac11c77cb199d65dfe8d7253f77a32f9668 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sat, 12 Mar 2016 01:22:03 -0800 Subject: add certs needed to validate index.rubygems.org --- lib/bundler/ssl_certs/Fastly.pem | 82 ++++++++++++++++++++++ .../GlobalSignOrganizationValidationCA.pem | 26 +++++++ lib/bundler/ssl_certs/GlobalSignRoot.pem | 18 +++++ 3 files changed, 126 insertions(+) create mode 100644 lib/bundler/ssl_certs/Fastly.pem create mode 100644 lib/bundler/ssl_certs/GlobalSignOrganizationValidationCA.pem create mode 100644 lib/bundler/ssl_certs/GlobalSignRoot.pem diff --git a/lib/bundler/ssl_certs/Fastly.pem b/lib/bundler/ssl_certs/Fastly.pem new file mode 100644 index 0000000000..9ea3429983 --- /dev/null +++ b/lib/bundler/ssl_certs/Fastly.pem @@ -0,0 +1,82 @@ +-----BEGIN CERTIFICATE----- +MIIO5DCCDcygAwIBAgISESFY8xfYRUgn/tM1S/rCQFqRMA0GCSqGSIb3DQEBCwUA +MGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTwwOgYD +VQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIC0gU0hB +MjU2IC0gRzIwHhcNMTYwMzEwMTc1NDA5WhcNMTgwMzEzMTQwNDA2WjBsMQswCQYD +VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5j +aXNjbzEVMBMGA1UECgwMRmFzdGx5LCBJbmMuMRkwFwYDVQQDDBBsLnNzbC5mYXN0 +bHkubmV0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy8dy9W+1kNgD +fZZaVm9OuB6aAcLysbODKUvHt7IvPEJjLZYMP5SLCB5+eo93Vb1Vl3I/lU+qdBIP +1Yzi9Oh8XB+DBA7YmgzyeuWvT07YBOJOfXrbQK9tx+dmcZQtU3oka0uqOUDeT8fE +qccufwxA0RoVPGEKCZjDr4NALIBL4ckKxWeibvwnX1rN1fqyMMiW36ML3A9gdSA5 +0YIy7vh9CDvaSt/hBn/pUt2xkhhwtdi/zr6BrpjsMSgB/0qT03GukZ7fsxLI7Kwa +yspUlhLUbY99pKiXrf6NNuTIHt57IuD3a1TnBnHkOs9uQny31o3ShPOnxo4hB0xj +d+bbz2GsuQIDAQABo4ILhDCCC4AwDgYDVR0PAQH/BAQDAgWgMEkGA1UdIARCMEAw +PgYGZ4EMAQICMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24u +Y29tL3JlcG9zaXRvcnkvMIIJyQYDVR0RBIIJwDCCCbyCEGwuc3NsLmZhc3RseS5u +ZXSCECouMXN0ZGlic2Nkbi5jb22CCiouYW1hbi5jb22CGCouYW5zd2Vyc2luZ2Vu +ZXNpcy5jby51a4IWKi5hbnN3ZXJzaW5nZW5lc2lzLm9yZ4IUKi5hcGkubGl2ZXN0 +cmVhbS5jb22CEiouYXJrZW5jb3VudGVyLmNvbYIUKi5hdHRyaWJ1dGlvbi5yZXBv +cnSCDSouYmVzdGVnZy5jb22CEyouYnV5aXRkaXJlY3QuY28udWuCESouY29udGVu +dGJvZHkuY29tghQqLmNyZWF0aW9ubXVzZXVtLm9yZ4IbKi5jdXJhdGlvbnMuYmF6 +YWFydm9pY2UuY29tgg4qLmRsc2FkYXB0LmNvbYIVKi5kb2xsYXJzaGF2ZWNsdWIu +Y29tghoqLmV4Y2l0ZW9ubGluZXNlcnZpY2VzLmNvbYIQKi5mYXN0bHlsYWJzLmNv +bYIPKi5maWxlcGlja2VyLmlvghIqLmZpbGVzdGFja2FwaS5jb22CESouZm9kLXNh +bmRib3guY29tghEqLmZvZC1zdGFnaW5nLmNvbYIKKi5mb2Q0LmNvbYIMKi5mdWxs +MzAuY29tgg4qLmZ1bmRwYWFzLmNvbYIPKi5mdW5rZXI1MzAuY29tghAqLmZ1bm55 +b3JkaWUuY29tgg8qLmdhbWViYXR0ZS5jb22CCCouaGZhLmlvghEqLmphY2t0aHJl +YWRzLmNvbYIMKi5rbm5sYWIuY29tgg8qLmxlYWRlcnNpbi5jb22CDCoubGV0ZW1w +cy5jaIIPKi5sb290Y3JhdGUuY29tghUqLm1hcmxldHRlZnVuZGluZy5jb22CDyou +bXliZXN0ZWdnLmNvbYIJKi5uZmwuY29tggsqLnBhdGNoLmNvbYIMKi5wZWJibGUu +Y29tghAqLnBvdHRlcm1vcmUuY29tghAqLnByaW1lc3BvcnQuY29tghgqLnByb3Rl +Y3RlZC1jaGVja291dC5uZXSCCyoucmNoZXJ5LnNlgg4qLnJ1YnlnZW1zLm9yZ4IP +Ki5yd2xpdmVjbXMuY29tghcqLnNhZmFyaWJvb2tzb25saW5lLmNvbYISKi5zbWFy +dHNwYXJyb3cuY29tgg0qLnRhYy1jZG4ubmV0gg8qLnRoZXJlZHBpbi5jb22CDyou +dGhyaWxsaXN0LmNvbYIPKi50b3RhbHdpbmUuY29tgg8qLnRyYXZpcy1jaS5jb22C +DyoudHJhdmlzLWNpLm9yZ4ISKi50cmVhc3VyZWRhdGEuY29tggwqLnR1cm5lci5j +b22CDyoudW5pdGVkd2F5Lm9yZ4IOKi51bml2ZXJzZS5jb22CCSoudXJ4LmNvbYIK +Ki52ZXZvLmNvbYIbKi52aWRlb2NyZWF0b3IueWFob28tbmV0LmpwghYqLndob2xl +Zm9vZHNtYXJrZXQuY29tghMqLnliaS5pZGNmY2xvdWQubmV0ghEqLnlvbmRlcm11 +c2ljLmNvbYIQYS4xc3RkaWJzY2RuLmNvbYINYWZyb3N0cmVhbS50doIPYXBpLmRv +bWFpbnIuY29tgg1hcGkubnltYWcuY29tghdhcHAuYmV0dGVyaW1wYWN0Y2RuLmNv +bYIaYXNzZXRzLmZsLm1hcmthdmlwLWNkbi5jb22CHGFzc2V0czAxLmN4LnN1cnZl +eW1vbmtleS5jb22CEmF0dHJpYnV0aW9uLnJlcG9ydIIYY2RuLmZpbGVzdGFja2Nv +bnRlbnQuY29tghZjZG4uaGlnaHRhaWxzcGFjZXMuY29tggxjZG4ua2V2eS5jb22C +C2RvbWFpbnIuY29tgh5lbWJlZC1wcmVwcm9kLnRpY2tldG1hc3Rlci5jb22CGGVt +YmVkLm9wdGltaXplcGxheWVyLmNvbYIWZW1iZWQudGlja2V0bWFzdGVyLmNvbYIO +ZmFzdGx5bGFicy5jb22CD2ZsLmVhdDI0Y2RuLmNvbYIKZnVsbDMwLmNvbYIMZnVu +ZHBhYXMuY29tgg1mdW5rZXI1MzAuY29tggtnZXRtb3ZpLmNvbYIZZ2l2aW5ndHVl +c2RheS5naXZlZ2FiLmNvbYIOaS51cHdvcnRoeS5jb22CGmltYWdlcy5mbC5tYXJr +YXZpcC1jZG4uY29tgg9qYWNrdGhyZWFkcy5jb22CFmpzaW4uYWRwbHVnY29tcGFu +eS5jb22CFWpzaW4uYmx1ZXBpeGVsYWRzLmNvbYIKa25ubGFiLmNvbYINbGVhZGVy +c2luLmNvbYINbG9vdGNyYXRlLmNvbYITbWVkaWEuYmFyZm9vdC5jby5ueoIVbWVk +aWEucmlnaHRtb3ZlLmNvLnVrgg1tZXJyeWphbmUuY29tgiBtaWdodHktZmxvd2Vy +cy00MjAubWVycnlqYW5lLmNvbYIgbmV4dGdlbi1hc3NldHMuZWRtdW5kcy1tZWRp +YS5jb22CCW55bWFnLmNvbYILKi5ueW1hZy5jb22CCXBhdGNoLmNvbYIKcGViYmxl +LmNvbYIPcGl4ZWwubnltYWcuY29tgg5wcmltZXNwb3J0LmNvbYIicHJvcXVlc3Qu +dGVjaC5zYWZhcmlib29rc29ubGluZS5kZYIMcnVieWdlbXMub3JnghVzYWZhcmli +b29rc29ubGluZS5jb22CEXNlYXJjaC5tYXB6ZW4uY29tghFzdGF0aWMudmVzZGlh +LmNvbYIOdGhlZ3VhcmRpYW4udHaCECoudGhlZ3VhcmRpYW4udHaCDXRocmlsbGlz +dC5jb22CDXRvdGFsd2luZS5jb22CB3VyeC5jb22CGXZpZGVvY3JlYXRvci55YWhv +by1uZXQuanCCGndlbGNvbWUtZGV2LmJhbmtzaW1wbGUuY29tghB3aWtpLXRlbXAu +Y2EuY29tgg13d3cuYmxpbnEuY29tggx3d3cuYnVscS5jb22CInd3dy5jcmlzdGlh +bm9yb25hbGRvZnJhZ3JhbmNlcy5jb22CGXd3dy5mcmVlZ2l2aW5ndHVlc2RheS5v +cmeCEXd3dy5mcmVlbG90dG8uY29tgg53d3cuaW9kaW5lLmNvbYIXd3d3LmxhcHRv +cHNkaXJlY3QuY28udWuCDnd3dy5sZXRlbXBzLmNoghF3d3cubWVycnlqYW5lLmNv +bYIkd3d3Lm1pZ2h0eS1mbG93ZXJzLTQyMC5tZXJyeWphbmUuY29tghh3d3cubWls +bHN0cmVhbWxvdDQ2LmluZm+CEnd3dy5wb3R0ZXJtb3JlLmNvbYITd3d3LnRyYWlu +b3JlZ29uLm9yZ4IQd3d3LnZzbGl2ZS5jby5uejAJBgNVHRMEAjAAMB0GA1UdJQQW +MBQGCCsGAQUFBwMBBggrBgEFBQcDAjBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8v +Y3JsLmdsb2JhbHNpZ24uY29tL2dzL2dzb3JnYW5pemF0aW9udmFsc2hhMmcyLmNy +bDCBoAYIKwYBBQUHAQEEgZMwgZAwTQYIKwYBBQUHMAKGQWh0dHA6Ly9zZWN1cmUu +Z2xvYmFsc2lnbi5jb20vY2FjZXJ0L2dzb3JnYW5pemF0aW9udmFsc2hhMmcycjEu +Y3J0MD8GCCsGAQUFBzABhjNodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vZ3Nv +cmdhbml6YXRpb252YWxzaGEyZzIwHQYDVR0OBBYEFExxRkNZ5ZAu1b3yysQe7R0J +p5v0MB8GA1UdIwQYMBaAFJbeYfG9HBYpUxzAzH07gwBA5hp8MA0GCSqGSIb3DQEB +CwUAA4IBAQAK0xY/KR6G9I6JJN1heilrcYEm71lrzxyAOrOq2YZV9l1L+qgSGxjV +vzvCNczZr76DD54+exBymDerBbwSI47JpSg3b5EzyiVvhz5r9rADYPBZBAkcTTUJ +std5fSbTMEKk+sB/DGdLr6v07kY+WRYbXMBuYNfRBVCoRXabzT5AMJEIYOudGFQC +1S/4tx3t1w7l4584Mr7uTAlDcMsNOkU4gs0Onghn6IAfuu1MN/0BYCuwO/qKdt5L +gN8rZB60W6VFOJGd1qJJv5erH/1j2nC8PBZQwl//IwW437uRNI5/ti3Fj/WR/0+T +dwT31o1uEbJZ0Mr5XmLQ/l8kal+xOiS0 +-----END CERTIFICATE----- diff --git a/lib/bundler/ssl_certs/GlobalSignOrganizationValidationCA.pem b/lib/bundler/ssl_certs/GlobalSignOrganizationValidationCA.pem new file mode 100644 index 0000000000..c846c09b0b --- /dev/null +++ b/lib/bundler/ssl_certs/GlobalSignOrganizationValidationCA.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw +MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW +YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc +C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj +SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj +mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt +Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl +2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B +Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT +HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0 +dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow +KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB +BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv +bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI +hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s +32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy +XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3 +30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA +SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G +K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg= +-----END CERTIFICATE----- diff --git a/lib/bundler/ssl_certs/GlobalSignRoot.pem b/lib/bundler/ssl_certs/GlobalSignRoot.pem new file mode 100644 index 0000000000..e0885addbc --- /dev/null +++ b/lib/bundler/ssl_certs/GlobalSignRoot.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- -- cgit v1.2.1 From 804e47d7bec44f35178049db5bce3c25c5bc1c33 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Sun, 13 Mar 2016 23:00:17 -0700 Subject: Version 1.12.0.rc with changelog --- CHANGELOG.md | 12 ++++++++++++ lib/bundler/version.rb | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 466e423815..a8d31ad863 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 1.12.0.rc (2016-03-13) + +Performance: + + - Download gem metadata from globally distributed CDN endpoints (#4358, @segiddins) + +Bugfixes: + + - handle Ruby pre-releases built from source (#4324, @RochesterinNYC) + - support binstubs from RubyGems 2.6 (#4341, @segiddins) + - handle quotes present in in PATH (#4326, @segiddins) + ## 1.12.0.pre.2 (2016-02-26) Performance: diff --git a/lib/bundler/version.rb b/lib/bundler/version.rb index 1aa11d0dc2..d4e2d19efb 100644 --- a/lib/bundler/version.rb +++ b/lib/bundler/version.rb @@ -7,5 +7,5 @@ module Bundler # We're doing this because we might write tests that deal # with other versions of bundler and we are unsure how to # handle this better. - VERSION = "1.12.0.pre.2" unless defined?(::Bundler::VERSION) + VERSION = "1.12.0.rc" unless defined?(::Bundler::VERSION) end -- cgit v1.2.1