Don't change directory for gem build.
This allows to continue to use `gem build ../foo.gemspec`. https://github.com/rubygems/rubygems/issues/2587
This commit is contained in:
parent
9ce6d473c9
commit
d5441fabc0
2 changed files with 100 additions and 0 deletions
95
ruby-2.6.0-No-chdir-for-build.patch
Normal file
95
ruby-2.6.0-No-chdir-for-build.patch
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
From 5168efc9ba0a0644c4fd1dbe09c1799f71301e42 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Valena <pvalena@redhat.com>
|
||||
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)
|
||||
|
||||
|
|
@ -143,6 +143,10 @@ Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
|
|||
# Refresh expired certificates.
|
||||
# https://bugs.ruby-lang.org/issues/15502
|
||||
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
|
||||
|
||||
# Add support for .include directive used by OpenSSL config files.
|
||||
# https://github.com/ruby/openssl/pull/216
|
||||
|
|
@ -561,6 +565,7 @@ rm -rf ext/fiddle/libffi*
|
|||
%patch7 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue