From b610699f354597d2aabc5c8e05caf29f5115301a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Ondruch?= Date: Thu, 24 Jan 2019 17:18:59 +0100 Subject: [PATCH] Upstream fix adding -C flag instead of changing directory for gem build. --- ruby-2.6.0-No-chdir-for-build.patch | 95 ------------------- ruby.spec | 2 +- ...nd-introdcue-the-C-flag-to-gem-build.patch | 88 +++++++++++++++++ 3 files changed, 89 insertions(+), 96 deletions(-) delete mode 100644 ruby-2.6.0-No-chdir-for-build.patch create mode 100644 rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch diff --git a/ruby-2.6.0-No-chdir-for-build.patch b/ruby-2.6.0-No-chdir-for-build.patch deleted file mode 100644 index 25c6090..0000000 --- a/ruby-2.6.0-No-chdir-for-build.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 5168efc9ba0a0644c4fd1dbe09c1799f71301e42 Mon Sep 17 00:00:00 2001 -From: Pavel Valena -Date: Tue, 8 Jan 2019 14:51:46 +0100 -Subject: [PATCH] Revert 90e676886e681e16e34ef58e078bf0a0aae8b54f - ---- - lib/rubygems/commands/build_command.rb | 26 ++++++------- - .../test_gem_commands_build_command.rb | 37 ------------------- - 2 files changed, 12 insertions(+), 51 deletions(-) - -diff --git a/lib/rubygems/commands/build_command.rb b/lib/rubygems/commands/build_command.rb -index e59471e976..3120236f9f 100644 ---- a/lib/rubygems/commands/build_command.rb -+++ b/lib/rubygems/commands/build_command.rb -@@ -60,20 +60,18 @@ def execute - end - - if File.exist? gemspec -- Dir.chdir(File.dirname(gemspec)) do -- spec = Gem::Specification.load File.basename(gemspec) -- -- if spec -- Gem::Package.build( -- spec, -- options[:force], -- options[:strict], -- options[:output] -- ) -- else -- alert_error "Error loading gemspec. Aborting." -- terminate_interaction 1 -- end -+ spec = Gem::Specification.load gemspec -+ -+ if spec -+ Gem::Package.build( -+ spec, -+ options[:force], -+ options[:strict], -+ options[:output] -+ ) -+ else -+ alert_error "Error loading gemspec. Aborting." -+ terminate_interaction 1 - end - else - alert_error "Gemspec file not found: #{gemspec}" -diff --git a/test/rubygems/test_gem_commands_build_command.rb b/test/rubygems/test_gem_commands_build_command.rb -index ac82a408c7..fa5e7454f3 100644 ---- a/test/rubygems/test_gem_commands_build_command.rb -+++ b/test/rubygems/test_gem_commands_build_command.rb -@@ -192,43 +192,6 @@ def test_execute_missing_file - assert_equal "ERROR: Gemspec file not found: some_gem\n", @ui.error - end - -- def test_execute_outside_dir -- gemspec_dir = File.join @tempdir, 'build_command_gem' -- gemspec_file = File.join gemspec_dir, @gem.spec_name -- readme_file = File.join gemspec_dir, 'README.md' -- -- FileUtils.mkdir_p gemspec_dir -- -- File.open readme_file, 'w' do |f| -- f.write "My awesome gem" -- end -- -- File.open gemspec_file, 'w' do |gs| -- gs.write @gem.to_ruby -- end -- -- @cmd.options[:args] = [gemspec_file] -- -- use_ui @ui do -- @cmd.execute -- end -- -- output = @ui.output.split "\n" -- assert_equal " Successfully built RubyGem", output.shift -- assert_equal " Name: some_gem", output.shift -- assert_equal " Version: 2", output.shift -- assert_equal " File: some_gem-2.gem", output.shift -- assert_equal [], output -- -- gem_file = File.join gemspec_dir, File.basename(@gem.cache_file) -- assert File.exist?(gem_file) -- -- spec = Gem::Package.new(gem_file).spec -- -- assert_equal "some_gem", spec.name -- assert_equal "this is a summary", spec.summary -- end -- - def test_can_find_gemspecs_without_dot_gemspec - gemspec_file = File.join(@tempdir, @gem.spec_name) - diff --git a/ruby.spec b/ruby.spec index 2f1a9e0..f841b2a 100644 --- a/ruby.spec +++ b/ruby.spec @@ -146,7 +146,7 @@ Patch10: ruby-2.6.0-Try-to-update-cert.patch # `gem build ../foo.gemspec` changes directory, which does not play well with # gems unpacked by setup macro. # https://github.com/rubygems/rubygems/issues/2587 -Patch11: ruby-2.6.0-No-chdir-for-build.patch +Patch11: rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch # This allows to loosen the RDoc dependency again. # https://github.com/rubygems/rubygems/pull/2604 Patch12: rubygems-3.0.3-Avoid-rdoc-hook-when-its-failed-to-load-rdoc-library.patch diff --git a/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch b/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch new file mode 100644 index 0000000..fa4f0c3 --- /dev/null +++ b/rubygems-3.0.3-Restore-gem-build-behavior-and-introdcue-the-C-flag-to-gem-build.patch @@ -0,0 +1,88 @@ +From f4061357d812e9033f07ae3f8f44c4e26839f1e5 Mon Sep 17 00:00:00 2001 +From: bronzdoc +Date: Mon, 14 Jan 2019 09:46:29 -0600 +Subject: [PATCH] Restore gem build behavior and introdcue the "-C" flag to gem + build + +--- + lib/rubygems/commands/build_command.rb | 41 +++++++++++++------ + .../test_gem_commands_build_command.rb | 1 + + 2 files changed, 29 insertions(+), 13 deletions(-) + +diff --git a/lib/rubygems/commands/build_command.rb b/lib/rubygems/commands/build_command.rb +index e59471e976..761b80ee94 100644 +--- a/lib/rubygems/commands/build_command.rb ++++ b/lib/rubygems/commands/build_command.rb +@@ -18,6 +18,10 @@ def initialize + add_option '-o', '--output FILE', 'output gem with the given filename' do |value, options| + options[:output] = value + end ++ ++ add_option '-C PATH', '', 'Run as if gem build was started in instead of the current working directory.' do |value, options| ++ options[:build_path] = value ++ end + end + + def arguments # :nodoc: +@@ -60,25 +64,36 @@ def execute + end + + if File.exist? gemspec +- Dir.chdir(File.dirname(gemspec)) do +- spec = Gem::Specification.load File.basename(gemspec) +- +- if spec +- Gem::Package.build( +- spec, +- options[:force], +- options[:strict], +- options[:output] +- ) +- else +- alert_error "Error loading gemspec. Aborting." +- terminate_interaction 1 ++ spec = Gem::Specification.load(gemspec) ++ ++ if options[:build_path] ++ Dir.chdir(File.dirname(gemspec)) do ++ spec = Gem::Specification.load File.basename(gemspec) ++ build_package(spec) + end ++ else ++ build_package(spec) + end ++ + else + alert_error "Gemspec file not found: #{gemspec}" + terminate_interaction 1 + end + end + ++ private ++ ++ def build_package(spec) ++ if spec ++ Gem::Package.build( ++ spec, ++ options[:force], ++ options[:strict], ++ options[:output] ++ ) ++ else ++ alert_error "Error loading gemspec. Aborting." ++ terminate_interaction 1 ++ end ++ end + end +diff --git a/test/rubygems/test_gem_commands_build_command.rb b/test/rubygems/test_gem_commands_build_command.rb +index ac82a408c7..02d1b98e8f 100644 +--- a/test/rubygems/test_gem_commands_build_command.rb ++++ b/test/rubygems/test_gem_commands_build_command.rb +@@ -207,6 +207,7 @@ def test_execute_outside_dir + gs.write @gem.to_ruby + end + ++ @cmd.options[:build_path] = gemspec_dir + @cmd.options[:args] = [gemspec_file] + + use_ui @ui do