summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2022-10-15 16:25:26 +0900
committernagachika <nagachika@ruby-lang.org>2022-10-15 16:25:26 +0900
commitf2c28e90698d6d9e8321237d3510d1737fc166ca (patch)
tree4983ced5a337aca785ecafff0b8a852bb4770e76
parentef7cf5304eeb1835d4bf50f0001f7fd889b630a7 (diff)
merge revision(s) bb0a22a8c05994396aa316c242ff8816d8d0a259:
Obey spec file locations to rubygems --- common.mk | 3 ++- defs/gmake.mk | 2 +- tool/gem-unpack.rb | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-)
-rw-r--r--common.mk3
-rw-r--r--defs/gmake.mk2
-rw-r--r--tool/gem-unpack.rb5
-rw-r--r--version.h2
4 files changed, 7 insertions, 5 deletions
diff --git a/common.mk b/common.mk
index 4886667645..71771bf16b 100644
--- a/common.mk
+++ b/common.mk
@@ -1361,10 +1361,11 @@ extract-gems$(gnumake:yes=-nongnumake): PHONY
$(Q) $(RUNRUBY) -C "$(srcdir)" \
-Itool -rgem-unpack -answ \
-e 'BEGIN {FileUtils.mkdir_p(d = ".bundle/gems")}' \
+ -e 'BEGIN {FileUtils.mkdir_p(s = ".bundle/specifications")}' \
-e 'gem, ver = *$$F' \
-e 'next if !ver or /^#/=~gem' \
-e 'g = "#{gem}-#{ver}"' \
- -e 'File.directory?("#{d}/#{g}") or Gem.unpack("gems/#{g}.gem", d)' \
+ -e 'File.directory?("#{d}/#{g}") or Gem.unpack("gems/#{g}.gem", d, s)' \
gems/bundled_gems
update-bundled_gems: PHONY
diff --git a/defs/gmake.mk b/defs/gmake.mk
index dd7da5f770..b4e12d1385 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -290,7 +290,7 @@ extract-gems: | $(patsubst %,.bundle/gems/%,$(bundled-gems))
$(ECHO) Extracting bundle gem $*...
$(Q) $(BASERUBY) -C "$(srcdir)" \
-Itool -rgem-unpack \
- -e 'Gem.unpack("gems/$(@F).gem", ".bundle/gems")'
+ -e 'Gem.unpack("gems/$(@F).gem", ".bundle/gems", ".bundle/specifications")'
$(srcdir)/.bundle/gems:
$(MAKEDIRS) $@
diff --git a/tool/gem-unpack.rb b/tool/gem-unpack.rb
index cb05719463..fe10b0e420 100644
--- a/tool/gem-unpack.rb
+++ b/tool/gem-unpack.rb
@@ -5,13 +5,14 @@ require 'rubygems/package'
# This library is used by "make extract-gems" to
# unpack bundled gem files.
-def Gem.unpack(file, dir = nil)
+def Gem.unpack(file, dir = nil, spec_dir = nil)
pkg = Gem::Package.new(file)
spec = pkg.spec
target = spec.full_name
target = File.join(dir, target) if dir
pkg.extract_files target
- spec_file = File.join(target, "#{spec.name}-#{spec.version}.gemspec")
+ FileUtils.mkdir_p(spec_dir ||= target)
+ spec_file = File.join(spec_dir, "#{spec.name}-#{spec.version}.gemspec")
open(spec_file, 'wb') do |f|
f.print spec.to_ruby
end
diff --git a/version.h b/version.h
index e24dfabf6d..961e6ae59c 100644
--- a/version.h
+++ b/version.h
@@ -11,7 +11,7 @@
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
#define RUBY_VERSION_TEENY 3
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
-#define RUBY_PATCHLEVEL 75
+#define RUBY_PATCHLEVEL 76
#define RUBY_RELEASE_YEAR 2022
#define RUBY_RELEASE_MONTH 10