[前][次][番号順一覧][スレッド一覧]

ruby-changes:70718

From: Nobuyoshi <ko1@a...>
Date: Tue, 4 Jan 2022 14:59:32 +0900 (JST)
Subject: [ruby-changes:70718] c2e8e1f6a4 (master): [rubygems/rubygems] Fix checksum

https://git.ruby-lang.org/ruby.git/commit/?id=c2e8e1f6a4

From c2e8e1f6a43b867c8e08efa55467bcabd0f6ab6b Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Tue, 4 Jan 2022 00:24:58 +0900
Subject: [rubygems/rubygems] Fix checksum

Calculate the checksum of the content, not the given pathname at
the build time itself.

https://github.com/rubygems/rubygems/commit/b60ee97ee9
---
 lib/bundler/gem_helper.rb               | 2 +-
 spec/bundler/bundler/gem_helper_spec.rb | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb
index 034f2e59602..4b09d200730 100644
--- a/lib/bundler/gem_helper.rb
+++ b/lib/bundler/gem_helper.rb
@@ -107,7 +107,7 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/gem_helper.rb#L107
       SharedHelpers.filesystem_access(File.join(base, "checksums")) {|p| FileUtils.mkdir_p(p) }
       file_name = "#{File.basename(built_gem_path)}.sha512"
       require "digest/sha2"
-      checksum = ::Digest::SHA512.new.hexdigest(built_gem_path.to_s)
+      checksum = ::Digest::SHA512.file(built_gem_path).hexdigest
       target = File.join(base, "checksums", file_name)
       File.write(target, checksum)
       Bundler.ui.confirm "#{name} #{version} checksum written to checksums/#{file_name}."
diff --git a/spec/bundler/bundler/gem_helper_spec.rb b/spec/bundler/bundler/gem_helper_spec.rb
index 2c43719aa17..f1bb9861cff 100644
--- a/spec/bundler/bundler/gem_helper_spec.rb
+++ b/spec/bundler/bundler/gem_helper_spec.rb
@@ -169,6 +169,12 @@ RSpec.describe Bundler::GemHelper do https://github.com/ruby/ruby/blob/trunk/spec/bundler/bundler/gem_helper_spec.rb#L169
     end
 
     describe "#build_checksum" do
+      it "calculates SHA512 of the content" do
+        subject.build_checksum(Pathname(IO::NULL))
+        sha_path = app_path.join("checksums", "#{File.basename(IO::NULL)}.sha512")
+        expect(File.read(sha_path)).to eql(Digest::SHA512.hexdigest(""))
+      end
+
       context "when build was successful" do
         it "creates .sha512 file" do
           mock_build_message app_name, app_version
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]