git: add80dec1ab9 - main - lang/ruby32: Add new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 13 Apr 2022 03:04:55 UTC
The branch main has been updated by yasu:
URL: https://cgit.FreeBSD.org/ports/commit/?id=add80dec1ab9913292b08ca8a9968728c755c222
commit add80dec1ab9913292b08ca8a9968728c755c222
Author: Yasuhiro Kimura <yasu@FreeBSD.org>
AuthorDate: 2022-04-03 18:05:05 +0000
Commit: Yasuhiro Kimura <yasu@FreeBSD.org>
CommitDate: 2022-04-13 03:04:02 +0000
lang/ruby32: Add new port
Add preview1 of Ruby 3.2 series.
ReleaseNotes: https://www.ruby-lang.org/en/news/2022/04/03/ruby-3-2-0-preview1-released/
PR: 263030
Approved by: sunpoet (ruby)
---
Mk/bsd.default-versions.mk | 2 +-
Mk/bsd.ruby.mk | 15 +-
lang/Makefile | 1 +
lang/ruby32/Makefile | 218 +
lang/ruby32/distinfo | 3 +
lang/ruby32/files/patch-configure.ac | 19 +
lang/ruby32/files/patch-lib_mkmf.rb | 11 +
.../files/patch-lib_rdoc_generator_json__index.rb | 20 +
lang/ruby32/files/patch-tool_mkconfig.rb | 14 +
lang/ruby32/files/patch-tool_rbinstall.rb | 191 +
lang/ruby32/pkg-descr | 19 +
lang/ruby32/pkg-message | 37 +
lang/ruby32/pkg-plist | 15184 +++++++++++++++++++
13 files changed, 15731 insertions(+), 3 deletions(-)
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index 1f991e608c70..0c6bff24d655 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -115,7 +115,7 @@ PYTHON_DEFAULT?= 3.8
PYTHON2_DEFAULT?= 2.7
# Possible values: 3.7, 3.8, 3.9, 3.10, 3.11
PYTHON3_DEFAULT?= 3.8
-# Possible values: 2.7, 3.0, 3.1
+# Possible values: 2.7, 3.0, 3.1, 3.2
RUBY_DEFAULT?= 2.7
# Possible values: rust, rust-nightly
RUST_DEFAULT?= rust
diff --git a/Mk/bsd.ruby.mk b/Mk/bsd.ruby.mk
index 1d3788ee5db4..47c2eaa1ac5a 100644
--- a/Mk/bsd.ruby.mk
+++ b/Mk/bsd.ruby.mk
@@ -157,13 +157,22 @@ RUBY_PORTREVISION= 0
RUBY_PORTEPOCH= 1
RUBY31= "" # PLIST_SUB helpers
+. elif ${RUBY_VER} == 3.2
+#
+# Ruby 3.2
+#
+RUBY_DISTVERSION= 3.2.0-preview1
+RUBY_PORTREVISION= 0
+RUBY_PORTEPOCH= 1
+RUBY32= "" # PLIST_SUB helpers
+
# When adding a version, please keep the comment in
# Mk/bsd.default-versions.mk in sync.
. else
#
# Other versions
#
-IGNORE= Only ruby 2.7, 3.0 and 3.1 are supported
+IGNORE= Only ruby 2.7, 3.0, 3.1 and 3.2 are supported
_INVALID_RUBY_VER= 1
. endif
RUBY_VERSION= ${RUBY_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/}
@@ -174,6 +183,7 @@ RUBY_VERSION= ${RUBY_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/}
RUBY27?= "@comment "
RUBY30?= "@comment "
RUBY31?= "@comment "
+RUBY32?= "@comment "
.if defined(BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E})
.if ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} == "yes"
@@ -279,7 +289,8 @@ PLIST_SUB+= ${PLIST_RUBY_DIRS:C,DIR="(${LOCALBASE}|${PREFIX})/,DIR=",} \
RUBY_DEFAULT_SUFFIX="${RUBY_DEFAULT_SUFFIX}" \
RUBY27=${RUBY27} \
RUBY30=${RUBY30} \
- RUBY31=${RUBY31}
+ RUBY31=${RUBY31} \
+ RUBY32=${RUBY32}
.if ${PORT_OPTIONS:MDEBUG}
RUBY_FLAGS+= -d
diff --git a/lang/Makefile b/lang/Makefile
index d1fc2033fd90..147002e5ebc6 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -301,6 +301,7 @@
SUBDIR += ruby27
SUBDIR += ruby30
SUBDIR += ruby31
+ SUBDIR += ruby32
SUBDIR += rubygem-ruby_language_server
SUBDIR += runawk
SUBDIR += rust
diff --git a/lang/ruby32/Makefile b/lang/ruby32/Makefile
new file mode 100644
index 000000000000..da3e596dabca
--- /dev/null
+++ b/lang/ruby32/Makefile
@@ -0,0 +1,218 @@
+PORTNAME= ruby
+DISTVERSION= ${RUBY_DISTVERSION}
+PORTREVISION= ${RUBY_PORTREVISION}
+PORTEPOCH= ${RUBY_PORTEPOCH}
+CATEGORIES= lang ruby
+MASTER_SITES= RUBY/${MASTER_SITE_SUBDIR_RUBY}
+DIST_SUBDIR= ruby
+
+MAINTAINER= ruby@FreeBSD.org
+COMMENT= Object-oriented interpreted scripting language
+
+LICENSE= BSD2CLAUSE RUBY
+LICENSE_COMB= dual
+LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/BSDL
+LICENSE_FILE_RUBY= ${WRKSRC}/COPYING
+
+# Using LIB_DEPENDS finds the libffi from gcc which causes problems
+BUILD_DEPENDS= libffi>=0:devel/libffi
+LIB_DEPENDS= libyaml.so:textproc/libyaml
+RUN_DEPENDS= libffi>=0:devel/libffi
+
+USES= autoreconf cpe ssl tar:xz
+CPE_VENDOR= ruby-lang
+CPE_VERSION= ${RUBY_RELVERSION}
+CPE_UPDATE= p${RUBY_PATCHLEVEL}
+USE_LDCONFIG= yes
+USE_RUBY= yes
+RUBY_NO_BUILD_DEPENDS= yes
+RUBY_NO_RUN_DEPENDS= yes
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS= ${RUBY_CONFIGURE_ARGS} \
+ --disable-rpath \
+ --enable-install-static-library \
+ --enable-pthread \
+ --enable-shared \
+ --with-ruby-version="${RUBY_VER}" \
+ --with-sitedir="${PREFIX}/lib/ruby/site_ruby" \
+ --with-vendordir="${PREFIX}/lib/ruby/vendor_ruby"
+CONFIGURE_ENV= debugflags=
+
+CPPFLAGS+= -I${LOCALBASE}/include
+# Keep this, else ruby will fail to load libraries dependent of libpthread.
+LIBS+= -lpthread -L${LOCALBASE}/lib
+WRKSRC= ${RUBY_WRKSRC}
+
+RUBY_VER= 3.2
+
+OPTIONS_DEFINE= CAPIDOCS DEBUG DOCS EXAMPLES GMP RDOC
+OPTIONS_DEFAULT= LIBEDIT RDOC
+OPTIONS_SINGLE= EDIT
+OPTIONS_SINGLE_EDIT= LIBEDIT READLINE
+OPTIONS_SUB= yes
+
+CAPIDOCS_DESC= Build and install C API documents
+EDIT_DESC= Which line editing lib to use
+GMP_DESC= Use GMP to accelerate Bignum operations
+LIBEDIT_DESC= Use libedit
+RDOC_DESC= Build and install Rdoc indexes
+READLINE_DESC= Use libreadline
+
+CAPIDOCS_BUILD_DEPENDS= dot:graphics/graphviz \
+ doxygen>=1.8.13,2:devel/doxygen
+CAPIDOCS_CONFIGURE_ENABLE= install-capi
+GMP_LIB_DEPENDS= libgmp.so:math/gmp
+GMP_CONFIGURE_WITH= gmp
+LIBEDIT_USES= libedit
+LIBEDIT_CONFIGURE_ON= --enable-libedit \
+ --with-libedit-dir=${LOCALBASE}
+RDOC_CONFIGURE_ENABLE= install-rdoc
+READLINE_USES= readline
+READLINE_CONFIGURE_ON= --disable-libedit \
+ --with-readline-dir=${LOCALBASE}
+
+.include <bsd.port.pre.mk>
+
+# PORTREVISION/PORTEPOCH hack
+
+.if ${PORTREVISION} != 0
+_SUF1= _${PORTREVISION}
+.endif
+
+.if ${PORTEPOCH} != 0
+_SUF2= ,${PORTEPOCH}
+.endif
+
+#.if ${OPSYS} == "FreeBSD"
+#.if exists(/usr/sbin/dtrace) && (${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == powerpc64le || ${ARCH} == powerpc64 || ${ARCH} == powerpc)
+#CONFIGURE_ARGS+=--enable-dtrace
+#.else
+#CONFIGURE_ARGS+=--disable-dtrace
+#.endif
+#.endif
+
+# keep in sync with all platforms where libunwind is available
+.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == armv7 || ${ARCH} == \
+ i386 || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le
+LIB_DEPENDS+= libunwind.so:devel/libunwind
+.endif
+
+.if (defined(PPC_ABI) && ${PPC_ABI} == ELFv1) || ${ARCH} == powerpc
+USE_GCC= yes
+.endif
+
+.if ${ARCH} == armv6 || ${ARCH} == armv7
+CONFIGURE_ARGS+= --with-setjmp-type=_setjmp
+CONFIGURE_ENV+= ac_cv_func__setjmp=yes
+.endif
+
+.if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
+PLIST_SUB+= IF_DEFAULT=""
+.else
+PKGNAMESUFFIX= ${RUBY_SUFFIX}
+PLIST_SUB+= IF_DEFAULT="@comment "
+.endif
+
+INSTALLED_SCRIPTS= ruby
+INSTALLED_MANUALS= ruby
+
+EXTSAMPLES= bigdecimal/sample/*.rb
+
+EXTDOCS= readline/README ripper/README stringio/README.md \
+ syslog/syslog.txt
+
+# Macros to change variables in rbconfig.rb
+RB_SET_CONF_VAR= ${SH} -c \
+ '${REINPLACE_CMD} -E -e "s,(CONFIG\[\"$$0\"\][[:space:]]*=[[:space:]]*)(\(?)(.*)(\)?),\1\2$$1\4," ${WRKSRC}/rbconfig.rb' \
+ --
+
+post-patch:
+# We get these from other ports
+.for d in bin/* ext/dbm ext/gdbm ext/win32* lib/bundler* libexec/bundler* \
+ man/bundle* man/erb.1 man/gemfile* man/irb.1 man/ri.1
+ @${RM} -r ${BUILD_WRKSRC}/${d}
+.endfor
+
+post-build:
+#
+# Hack to allow modules to be installed into separate PREFIX and/or under user
+# privileges
+#
+ @${RB_SET_CONF_VAR} "prefix" "ENV['PREFIX'] || \3"
+ @${RB_SET_CONF_VAR} "INSTALL" "'/usr/bin/install -c'"
+ @${RB_SET_CONF_VAR} "INSTALL_PROGRAM" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} ${STRIP} -m ${BINMODE}' : '${INSTALL_PROGRAM}'"
+ @${RB_SET_CONF_VAR} "INSTALL_SCRIPT" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${BINMODE}' : '${INSTALL_SCRIPT}'"
+ @${RB_SET_CONF_VAR} "INSTALL_DATA" "ENV['RB_USER_INSTALL'] ? '${INSTALL} ${COPY} -m ${SHAREMODE}' : '${INSTALL_DATA}'"
+
+post-build-CAPIDOCS-on:
+ @${FIND} ${WRKSRC}/doc -type d -empty -delete
+
+pre-install:
+ ${MKDIR} ${STAGEDIR}${RUBY_SITEARCHLIBDIR}
+ ${MKDIR} ${STAGEDIR}${RUBY_VENDORARCHLIBDIR}
+
+pre-install-DOCS-on:
+ ${MKDIR} ${STAGEDIR}${RUBY_DOCDIR}
+
+pre-install-EXAMPLES-on:
+ ${MKDIR} ${STAGEDIR}${RUBY_EXAMPLESDIR}
+
+pre-install-RDOC-on:
+ ${MKDIR} ${STAGEDIR}${RUBY_RIDIR}
+ ${MKDIR} ${STAGEDIR}${RUBY_SITERIDIR}
+
+post-install:
+.if ${RUBY_VER} == ${RUBY_DEFAULT_VER}
+#
+# Link just installed "ruby" to "ruby27", etc.
+#
+. for FILE in ${INSTALLED_SCRIPTS}
+ ${LN} -fs ${FILE}${RUBY_SUFFIX} ${STAGEDIR}${PREFIX}/bin/${FILE}
+. endfor
+#
+# Link "ruby.1.gz" to "ruby27.1.gz", etc.
+#
+. for FILE in ${INSTALLED_MANUALS}
+ ${LN} -fs ${FILE}${RUBY_SUFFIX}.1.gz ${STAGEDIR}${MANPREFIX}/man/man1/${FILE}.1.gz
+. endfor
+.endif
+
+post-install-DEBUG-off:
+#
+# XXX: hack to strip ruby binary. Ruby uses its own install script that seems
+# bogus to hack.
+#
+.if defined(STRIP) && ${STRIP} == -s
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/ruby${RUBY_SUFFIX}
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libruby${RUBY_SHLIBVER}.so.${RUBY_SHLIBVER}
+ ${FIND} ${STAGEDIR}${RUBY_ARCHLIBDIR} -type f -name '*\.so' -exec ${STRIP_CMD} {} \;
+.endif
+
+post-install-DOCS-on:
+# Create all dirs required (":u" isn't avaiable in STABLE yet :-()
+ ${MKDIR} ${EXTDOCS:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_DOCDIR}/|}
+.for FILE in ${EXTDOCS}
+ ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
+ ${STAGEDIR}${RUBY_DOCDIR}/${FILE:C|^([^/]+)/.*|\1|}/
+.endfor
+ @(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} \* ${STAGEDIR}${RUBY_DOCDIR}/)
+ ${INSTALL_DATA} ${WRKSRC}/COPYING* \
+ ${WRKSRC}/ChangeLog \
+ ${WRKSRC}/LEGAL \
+ ${WRKSRC}/README* \
+ ${STAGEDIR}${RUBY_DOCDIR}/
+
+post-install-EXAMPLES-on:
+# Create all dirs required (":u" isn't avaiable in STABLE yet :-()
+ ${MKDIR} ${EXTSAMPLES:C|^([^/]+)/.*|\1|:S|^|${STAGEDIR}${RUBY_EXAMPLESDIR}/|}
+.for FILE in ${EXTSAMPLES}
+ ${INSTALL_DATA} ${WRKSRC}/ext/${FILE} \
+ ${STAGEDIR}${RUBY_EXAMPLESDIR}/${FILE:C|^([^/]+)/.*|\1|}/
+.endfor
+ (cd ${WRKSRC}/sample/ && ${COPYTREE_SHARE} . ${STAGEDIR}${RUBY_EXAMPLESDIR}/)
+
+do-test:
+ cd ${WRKSRC} && ${MAKE_CMD} test
+
+.include <bsd.port.post.mk>
diff --git a/lang/ruby32/distinfo b/lang/ruby32/distinfo
new file mode 100644
index 000000000000..76f2810d0c45
--- /dev/null
+++ b/lang/ruby32/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1649009344
+SHA256 (ruby/ruby-3.2.0-preview1.tar.xz) = 6d28477f7fa626b63bf139afd37bcfeb28fce6847b203fa10f37cb3615d0c35d
+SIZE (ruby/ruby-3.2.0-preview1.tar.xz) = 15011400
diff --git a/lang/ruby32/files/patch-configure.ac b/lang/ruby32/files/patch-configure.ac
new file mode 100644
index 000000000000..170a9f3a9fe8
--- /dev/null
+++ b/lang/ruby32/files/patch-configure.ac
@@ -0,0 +1,19 @@
+--- configure.ac.orig 2018-12-28 12:03:09 UTC
++++ configure.ac
+@@ -2678,7 +2678,7 @@ AS_IF([test "$with_dln_a_out" != yes], [
+ : ${LDSHARED='$(CC) -shared'}
+ AS_IF([test "$rb_cv_binary_elf" = yes], [
+ LDFLAGS="$LDFLAGS -rdynamic"
+- DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$@'
++ DLDFLAGS="$DLDFLAGS "'-Wl,-E'
+ ], [
+ test "$GCC" = yes && test "$rb_cv_prog_gnu_ld" = yes || LDSHARED='$(LD) -Bshareable'
+ ])
+@@ -3163,6 +3163,7 @@ AS_CASE("$enable_shared", [yes], [
+ [freebsd*|dragonfly*], [
+ LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)'
+ LIBRUBY_SONAME='$(LIBRUBY_SO)'
++ RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,${LIBRUBY_SO}'])
+ AS_IF([test "$rb_cv_binary_elf" != "yes" ], [
+ LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"
+ LIBRUBY_ALIASES=''
diff --git a/lang/ruby32/files/patch-lib_mkmf.rb b/lang/ruby32/files/patch-lib_mkmf.rb
new file mode 100644
index 000000000000..f333fdfd2e67
--- /dev/null
+++ b/lang/ruby32/files/patch-lib_mkmf.rb
@@ -0,0 +1,11 @@
+--- lib/mkmf.rb.orig 2018-10-09 14:09:35 UTC
++++ lib/mkmf.rb
+@@ -234,7 +234,7 @@ module MakeMakefile
+ end
+ $extmk ||= false
+ if not $extmk and File.exist?(($hdrdir = RbConfig::CONFIG["rubyhdrdir"]) + "/ruby/ruby.h")
+- $topdir = $hdrdir
++ $topdir = $hdrdir + "/" + "#{CONFIG['arch']}/ruby/"
+ $top_srcdir = $hdrdir
+ $arch_hdrdir = RbConfig::CONFIG["rubyarchhdrdir"]
+ elsif File.exist?(($hdrdir = ($top_srcdir ||= topdir) + "/include") + "/ruby.h")
diff --git a/lang/ruby32/files/patch-lib_rdoc_generator_json__index.rb b/lang/ruby32/files/patch-lib_rdoc_generator_json__index.rb
new file mode 100644
index 000000000000..1152e4201544
--- /dev/null
+++ b/lang/ruby32/files/patch-lib_rdoc_generator_json__index.rb
@@ -0,0 +1,20 @@
+--- lib/rdoc/generator/json_index.rb.orig 2017-11-27 10:45:24 UTC
++++ lib/rdoc/generator/json_index.rb
+@@ -175,7 +175,7 @@ class RDoc::Generator::JsonIndex
+ debug_msg "Writing gzipped search index to %s" % outfile
+
+ Zlib::GzipWriter.open(outfile) do |gz|
+- gz.mtime = File.mtime(search_index_file)
++ gz.mtime = 1
+ gz.orig_name = search_index_file.basename.to_s
+ gz.write search_index
+ gz.close
+@@ -193,7 +193,7 @@ class RDoc::Generator::JsonIndex
+ debug_msg "Writing gzipped file to %s" % outfile
+
+ Zlib::GzipWriter.open(outfile) do |gz|
+- gz.mtime = File.mtime(dest)
++ gz.mtime = 1
+ gz.orig_name = dest.basename.to_s
+ gz.write data
+ gz.close
diff --git a/lang/ruby32/files/patch-tool_mkconfig.rb b/lang/ruby32/files/patch-tool_mkconfig.rb
new file mode 100644
index 000000000000..2b9c106e5a61
--- /dev/null
+++ b/lang/ruby32/files/patch-tool_mkconfig.rb
@@ -0,0 +1,14 @@
+--- tool/mkconfig.rb.orig 2019-12-25 09:50:58 UTC
++++ tool/mkconfig.rb
+@@ -160,8 +160,9 @@ def vars.expand(val, config = self)
+ val.replace(newval) unless newval == val
+ val
+ end
+-prefix = vars.expand(vars["prefix"] ||= "")
+-rubyarchdir = vars.expand(vars["rubyarchdir"] ||= "")
++prefix = vars.expand(vars["rubyarchdir"])
++major, minor, *rest = RUBY_VERSION.split('.')
++rubyarchdir = "/lib/ruby/#{major}.#{minor}/#{arch}"
+ relative_archdir = rubyarchdir.rindex(prefix, 0) ? rubyarchdir[prefix.size..-1] : rubyarchdir
+
+ puts %[\
diff --git a/lang/ruby32/files/patch-tool_rbinstall.rb b/lang/ruby32/files/patch-tool_rbinstall.rb
new file mode 100644
index 000000000000..50ab2bccec13
--- /dev/null
+++ b/lang/ruby32/files/patch-tool_rbinstall.rb
@@ -0,0 +1,191 @@
+--- tool/rbinstall.rb.orig 2021-12-25 12:23:14 UTC
++++ tool/rbinstall.rb
+@@ -923,188 +923,6 @@ end
+
+ # :startdoc:
+
+-install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do
+- install_default_gem('lib', srcdir, bindir)
+-end
+-install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do
+- install_default_gem('ext', srcdir, bindir)
+-end
+-
+-def load_gemspec(file, expanded = false)
+- file = File.realpath(file)
+- code = File.read(file, encoding: "utf-8:-")
+- code.gsub!(/(?:`git[^\`]*`|%x\[git[^\]]*\])\.split\([^\)]*\)/m) do
+- files = []
+- if expanded
+- base = File.dirname(file)
+- Dir.glob("**/*", File::FNM_DOTMATCH, base: base) do |n|
+- case File.basename(n); when ".", ".."; next; end
+- next if File.directory?(File.join(base, n))
+- files << n.dump
+- end
+- end
+- "[" + files.join(", ") + "]"
+- end
+- spec = eval(code, binding, file)
+- unless Gem::Specification === spec
+- raise TypeError, "[#{file}] isn't a Gem::Specification (#{spec.class} instead)."
+- end
+- spec.loaded_from = file
+- spec.files.reject! {|n| n.end_with?(".gemspec") or n.start_with?(".git")}
+-
+- spec
+-end
+-
+-def install_default_gem(dir, srcdir, bindir)
+- gem_dir = Gem.default_dir
+- install_dir = with_destdir(gem_dir)
+- prepare "default gems from #{dir}", gem_dir
+- RbInstall.no_write do
+- makedirs(Gem.ensure_default_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
+- end
+-
+- options = {
+- :install_dir => with_destdir(gem_dir),
+- :bin_dir => with_destdir(bindir),
+- :ignore_dependencies => true,
+- :dir_mode => $dir_mode,
+- :data_mode => $data_mode,
+- :prog_mode => $script_mode,
+- :wrappers => true,
+- :format_executable => true,
+- :install_as_default => true,
+- }
+- default_spec_dir = Gem.default_specifications_dir
+-
+- gems = Dir.glob("#{srcdir}/#{dir}/**/*.gemspec").map {|src|
+- spec = load_gemspec(src)
+- file_collector = RbInstall::Specs::FileCollector.new(src)
+- files = file_collector.collect
+- if file_collector.skip_install?(files)
+- next
+- end
+- spec.files = files
+- spec
+- }
+- gems.compact.sort_by(&:name).each do |gemspec|
+- old_gemspecs = Dir[File.join(with_destdir(default_spec_dir), "#{gemspec.name}-*.gemspec")]
+- if old_gemspecs.size > 0
+- old_gemspecs.each {|spec| rm spec }
+- end
+-
+- full_name = "#{gemspec.name}-#{gemspec.version}"
+-
+- gemspec.loaded_from = File.join srcdir, gemspec.spec_name
+-
+- package = RbInstall::DirPackage.new gemspec, {gemspec.bindir => 'libexec'}
+- ins = RbInstall::UnpackedInstaller.new(package, options)
+- puts "#{INDENT}#{gemspec.name} #{gemspec.version}"
+- ins.install
+- end
+-end
+-
+-install?(:ext, :comm, :gem, :'bundled-gems') do
+- if CONFIG['CROSS_COMPILING'] == 'yes'
+- # The following hacky steps set "$ruby = BASERUBY" in tool/fake.rb
+- $hdrdir = ''
+- $extmk = nil
+- $ruby = nil # ...
+- ruby_path = $ruby + " -I#{Dir.pwd}" # $baseruby + " -I#{Dir.pwd}"
+- else
+- # ruby_path = File.expand_path(with_destdir(File.join(bindir, ruby_install_name)))
+- ENV['RUBYLIB'] = nil
+- ENV['RUBYOPT'] = nil
+- ruby_path = File.expand_path(with_destdir(File.join(bindir, ruby_install_name))) + " --disable=gems -I#{with_destdir(archlibdir)}"
+- end
+- Gem.instance_variable_set(:@ruby, ruby_path) if Gem.ruby != ruby_path
+-
+- gem_dir = Gem.default_dir
+- install_dir = with_destdir(gem_dir)
+- prepare "bundled gems", gem_dir
+- RbInstall.no_write do
+- makedirs(Gem.ensure_gem_subdirectories(install_dir, $dir_mode).map {|d| File.join(gem_dir, d)})
+- end
+-
+- installed_gems = {}
+- options = {
+- :install_dir => install_dir,
+- :bin_dir => with_destdir(bindir),
+- :domain => :local,
+- :ignore_dependencies => true,
+- :dir_mode => $dir_mode,
+- :data_mode => $data_mode,
+- :prog_mode => $script_mode,
+- :wrappers => true,
+- :format_executable => true,
+- }
+- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}"
+- extensions_dir = with_destdir(Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir)
+-
+- File.foreach("#{srcdir}/gems/bundled_gems") do |name|
+- next if /^\s*(?:#|$)/ =~ name
+- next unless /^(\S+)\s+(\S+).*/ =~ name
+- gem_name = "#$1-#$2"
+- path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem_name}.gemspec"
+- if File.exist?(path)
+- spec = load_gemspec(path)
+- else
+- path = "#{srcdir}/.bundle/gems/#{gem_name}/#$1.gemspec"
+- next unless File.exist?(path)
+- spec = load_gemspec(path, true)
+- end
+- next unless spec.platform == Gem::Platform::RUBY
+- next unless spec.full_name == gem_name
+- if !spec.extensions.empty? && CONFIG["EXTSTATIC"] == "static"
+- puts "skip installation of #{spec.name} #{spec.version}; bundled gem with an extension library is not supported on --with-static-linked-ext"
+- next
+- end
+- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}"
+- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}")
+- spec.extensions[0] ||= "-"
+- end
+- package = RbInstall::DirPackage.new spec
+- ins = RbInstall::UnpackedInstaller.new(package, options)
+- puts "#{INDENT}#{spec.name} #{spec.version}"
+- ins.install
+- unless $dryrun
+- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec"))
+- end
+- unless spec.extensions.empty?
+- install_recursive(ext, spec.extension_dir)
+- end
+- installed_gems[spec.full_name] = true
+- end
+- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))}
+- unless installed_gems.empty?
+- prepare "bundled gem cache", gem_dir+"/cache"
+- install installed_gems, gem_dir+"/cache"
+- end
+- next if gems.empty?
+- if defined?(Zlib)
+- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name)))
+- silent = Gem::SilentUI.new
+- gems.each do |gem|
+- package = Gem::Package.new(gem)
+- inst = RbInstall::GemInstaller.new(package, options)
+- inst.spec.extension_dir = "#{extensions_dir}/#{inst.spec.full_name}"
+- begin
+- Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
+- rescue Gem::InstallError
+- next
+- end
+- gemname = File.basename(gem)
+- puts "#{INDENT}#{gemname}"
+- end
+- # fix directory permissions
+- # TODO: Gem.install should accept :dir_mode option or something
+- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/"))
+- # fix .gemspec permissions
+- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec"))
+- else
+- puts "skip installing bundled gems because of lacking zlib"
+- end
+-end
+-
+ parse_args()
+
+ include FileUtils
diff --git a/lang/ruby32/pkg-descr b/lang/ruby32/pkg-descr
new file mode 100644
index 000000000000..f7694c58f475
--- /dev/null
+++ b/lang/ruby32/pkg-descr
@@ -0,0 +1,19 @@
+Ruby is the interpreted scripting language for quick and
+easy object-oriented programming. It has many features to
+process text files and to do system management tasks (as in
+Perl). It is simple, straight-forward, and extensible.
+
+Features of Ruby are shown below.
+
+ + Simple Syntax
+ + *Normal* Object-Oriented features(ex. class, method calls)
+ + *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
+ + Operator Overloading
+ + Exception Handling
+ + Iterators and Closures
+ + Garbage Collection
+ + Dynamic Loading of Object files(on some architecture)
+ + Highly Portable(works on many UNIX machines, and on DOS,
+ Windows, Mac, BeOS etc.)
+
+WWW: https://www.ruby-lang.org/en/
diff --git a/lang/ruby32/pkg-message b/lang/ruby32/pkg-message
new file mode 100644
index 000000000000..d1c7209d19ff
--- /dev/null
+++ b/lang/ruby32/pkg-message
@@ -0,0 +1,37 @@
+[
+{ type: install
+ message: <<EOM
+Some of the standard commands and libraries are provided as separate
+ports for ease of upgrading:
+
+ devel/ruby-gems: gem - RubyGems package manager
+ devel/rubygem-debug: debug - Debugging functionality for Ruby
+ devel/rubygem-erb: erb - Templating system for Ruby
+ devel/rubygem-irb: irb - Interactive Ruby
+ devel/rubygem-minitest: minitest - Complete suite of testing facilities
+ devel/rubygem-power_assert: power_assert - Power Assert for Ruby
+ devel/rubygem-rake: rake - Ruby Make
+ devel/rubygem-rbs: rbs - Language for type signatures for Ruby and standard library definitions
+ devel/rubygem-rdoc: rdoc - Ruby Documentation System
+ devel/rubygem-test-unit: test-unit - Unit testing framework for Ruby
+ devel/rubygem-typeprof: typeprof - Type analysis tool for Ruby code
+ ftp/rubygem-net-ftp: net-ftp - Support for the File Transfer Protocol
+ mail/rubygem-net-imap: net-imap - Ruby client api for Internet Message Access Protocol
+ mail/rubygem-net-pop: net-pop - Ruby client library for POP3
+ mail/rubygem-net-smtp: net-smtp - Simple Mail Transfer Protocol client library for Ruby
+ math/rubygem-matrix: matrix - Implementation of Matrix and Vector classes
+ math/rubygem-prime: prime - Prime numbers and factorization library
+ sysutils/rubygem-bundler: bundler - Tool that manages gem dependencies for ruby applications
+ textproc/rubygem-rexml: rexml - XML toolkit for Ruby
+ www/rubygem-rss: rss - Family of libraries that support various formats of XML "feeds"
+
+And some of the standard libraries are provided as separate ports
+since they require extra dependencies:
+
+ databases/rubygem-dbm: DBM module
+ databases/rubygem-gdbm: GDBM module
+
+Install them as occasion demands.
+EOM
+}
+]
diff --git a/lang/ruby32/pkg-plist b/lang/ruby32/pkg-plist
new file mode 100644
index 000000000000..33b3172f30db
--- /dev/null
+++ b/lang/ruby32/pkg-plist
@@ -0,0 +1,15184 @@
+%%IF_DEFAULT%%bin/ruby
+bin/ruby%%RUBY_SUFFIX%%
+include/ruby-%%RUBY_VER%%/%%RUBY_ARCH%%/rb_mjit_min_header-%%RUBY_VERSION%%.h
+include/ruby-%%RUBY_VER%%/%%RUBY_ARCH%%/ruby/config.h
+include/ruby-%%RUBY_VER%%/ruby.h
+include/ruby-%%RUBY_VER%%/ruby/assert.h
+include/ruby-%%RUBY_VER%%/ruby/atomic.h
+include/ruby-%%RUBY_VER%%/ruby/backward.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/assume.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/attributes.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/bool.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/gcc_version_since.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/inttypes.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/limits.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/long_long.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/r_cast.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/rmodule.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/stdalign.h
+include/ruby-%%RUBY_VER%%/ruby/backward/2/stdarg.h
+include/ruby-%%RUBY_VER%%/ruby/backward/cxxanyargs.hpp
+include/ruby-%%RUBY_VER%%/ruby/debug.h
+include/ruby-%%RUBY_VER%%/ruby/defines.h
+include/ruby-%%RUBY_VER%%/ruby/digest.h
+include/ruby-%%RUBY_VER%%/ruby/encoding.h
+include/ruby-%%RUBY_VER%%/ruby/fiber/scheduler.h
+include/ruby-%%RUBY_VER%%/ruby/intern.h
+include/ruby-%%RUBY_VER%%/ruby/internal/abi.h
+include/ruby-%%RUBY_VER%%/ruby/internal/anyargs.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/char.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/double.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/fixnum.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/gid_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/int.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/intptr_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/long.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/long_long.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/mode_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/off_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/pid_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/short.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/size_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/st_data_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/arithmetic/uid_t.h
+include/ruby-%%RUBY_VER%%/ruby/internal/assume.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/alloc_size.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/artificial.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/cold.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/const.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/constexpr.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/deprecated.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/diagnose_if.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/enum_extensibility.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/error.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/flag_enum.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/forceinline.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/format.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/maybe_unused.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/noalias.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/nodiscard.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/noexcept.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/noinline.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/nonnull.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/noreturn.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/pure.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/restrict.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/returns_nonnull.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/warning.h
+include/ruby-%%RUBY_VER%%/ruby/internal/attr/weakref.h
+include/ruby-%%RUBY_VER%%/ruby/internal/cast.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/apple.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/clang.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/gcc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/intel.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/msvc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_is/sunpro.h
+include/ruby-%%RUBY_VER%%/ruby/internal/compiler_since.h
+include/ruby-%%RUBY_VER%%/ruby/internal/config.h
+include/ruby-%%RUBY_VER%%/ruby/internal/constant_p.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rarray.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rbasic.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rbignum.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rclass.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rdata.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rfile.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rhash.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rmatch.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/robject.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rregexp.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rstring.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rstruct.h
+include/ruby-%%RUBY_VER%%/ruby/internal/core/rtypeddata.h
+include/ruby-%%RUBY_VER%%/ruby/internal/ctype.h
+include/ruby-%%RUBY_VER%%/ruby/internal/dllexport.h
+include/ruby-%%RUBY_VER%%/ruby/internal/dosish.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/coderange.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/ctype.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/encoding.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/pathname.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/re.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/sprintf.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/string.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/symbol.h
+include/ruby-%%RUBY_VER%%/ruby/internal/encoding/transcode.h
+include/ruby-%%RUBY_VER%%/ruby/internal/error.h
+include/ruby-%%RUBY_VER%%/ruby/internal/eval.h
+include/ruby-%%RUBY_VER%%/ruby/internal/event.h
+include/ruby-%%RUBY_VER%%/ruby/internal/fl_type.h
+include/ruby-%%RUBY_VER%%/ruby/internal/gc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/glob.h
+include/ruby-%%RUBY_VER%%/ruby/internal/globals.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/attribute.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/builtin.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/c_attribute.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/cpp_attribute.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/declspec_attribute.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/extension.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/feature.h
+include/ruby-%%RUBY_VER%%/ruby/internal/has/warning.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/array.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/bignum.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/class.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/compar.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/complex.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/cont.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/dir.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/enum.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/enumerator.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/error.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/eval.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/file.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/gc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/hash.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/io.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/load.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/marshal.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/numeric.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/object.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/parse.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/proc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/process.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/random.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/range.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/rational.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/re.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/ruby.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/select.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/select/largesize.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/select/posix.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/signal.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/sprintf.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/string.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/struct.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/thread.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/time.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/variable.h
+include/ruby-%%RUBY_VER%%/ruby/internal/intern/vm.h
+include/ruby-%%RUBY_VER%%/ruby/internal/interpreter.h
+include/ruby-%%RUBY_VER%%/ruby/internal/iterator.h
+include/ruby-%%RUBY_VER%%/ruby/internal/memory.h
+include/ruby-%%RUBY_VER%%/ruby/internal/method.h
+include/ruby-%%RUBY_VER%%/ruby/internal/module.h
+include/ruby-%%RUBY_VER%%/ruby/internal/newobj.h
+include/ruby-%%RUBY_VER%%/ruby/internal/rgengc.h
+include/ruby-%%RUBY_VER%%/ruby/internal/scan_args.h
+include/ruby-%%RUBY_VER%%/ruby/internal/special_consts.h
+include/ruby-%%RUBY_VER%%/ruby/internal/static_assert.h
+include/ruby-%%RUBY_VER%%/ruby/internal/stdalign.h
+include/ruby-%%RUBY_VER%%/ruby/internal/stdbool.h
+include/ruby-%%RUBY_VER%%/ruby/internal/symbol.h
+include/ruby-%%RUBY_VER%%/ruby/internal/value.h
+include/ruby-%%RUBY_VER%%/ruby/internal/value_type.h
+include/ruby-%%RUBY_VER%%/ruby/internal/variable.h
+include/ruby-%%RUBY_VER%%/ruby/internal/warning_push.h
+include/ruby-%%RUBY_VER%%/ruby/internal/xmalloc.h
+include/ruby-%%RUBY_VER%%/ruby/io.h
+include/ruby-%%RUBY_VER%%/ruby/io/buffer.h
+include/ruby-%%RUBY_VER%%/ruby/memory_view.h
+include/ruby-%%RUBY_VER%%/ruby/missing.h
+include/ruby-%%RUBY_VER%%/ruby/onigmo.h
+include/ruby-%%RUBY_VER%%/ruby/oniguruma.h
+include/ruby-%%RUBY_VER%%/ruby/ractor.h
+include/ruby-%%RUBY_VER%%/ruby/random.h
+include/ruby-%%RUBY_VER%%/ruby/re.h
+include/ruby-%%RUBY_VER%%/ruby/regex.h
+include/ruby-%%RUBY_VER%%/ruby/ruby.h
+include/ruby-%%RUBY_VER%%/ruby/st.h
+include/ruby-%%RUBY_VER%%/ruby/subst.h
+include/ruby-%%RUBY_VER%%/ruby/thread.h
+include/ruby-%%RUBY_VER%%/ruby/thread_native.h
+include/ruby-%%RUBY_VER%%/ruby/util.h
+include/ruby-%%RUBY_VER%%/ruby/version.h
+include/ruby-%%RUBY_VER%%/ruby/vm.h
+lib/libruby%%RUBY_SHLIBVER%%-static.a
+lib/libruby%%RUBY_SHLIBVER%%.so
+lib/libruby%%RUBY_SHLIBVER%%.so.%%RUBY_SHLIBVER%%
+%%RUBY_LIBDIR%%/English.rb
+%%RUBY_LIBDIR%%/abbrev.rb
+%%RUBY_ARCHLIBDIR%%/bigdecimal.so
+%%RUBY_ARCHLIBDIR%%/cgi/escape.so
+%%RUBY_ARCHLIBDIR%%/continuation.so
+%%RUBY_ARCHLIBDIR%%/coverage.so
+%%RUBY_ARCHLIBDIR%%/date_core.so
+%%RUBY_ARCHLIBDIR%%/digest.so
+%%RUBY_ARCHLIBDIR%%/digest/bubblebabble.so
+%%RUBY_ARCHLIBDIR%%/digest/md5.so
+%%RUBY_ARCHLIBDIR%%/digest/rmd160.so
+%%RUBY_ARCHLIBDIR%%/digest/sha1.so
+%%RUBY_ARCHLIBDIR%%/digest/sha2.so
+%%RUBY_ARCHLIBDIR%%/enc/big5.so
+%%RUBY_ARCHLIBDIR%%/enc/cesu_8.so
+%%RUBY_ARCHLIBDIR%%/enc/cp949.so
+%%RUBY_ARCHLIBDIR%%/enc/emacs_mule.so
+%%RUBY_ARCHLIBDIR%%/enc/encdb.so
+%%RUBY_ARCHLIBDIR%%/enc/euc_jp.so
+%%RUBY_ARCHLIBDIR%%/enc/euc_kr.so
+%%RUBY_ARCHLIBDIR%%/enc/euc_tw.so
+%%RUBY_ARCHLIBDIR%%/enc/gb18030.so
+%%RUBY_ARCHLIBDIR%%/enc/gb2312.so
+%%RUBY_ARCHLIBDIR%%/enc/gbk.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_1.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_10.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_11.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_13.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_14.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_15.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_16.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_2.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_3.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_4.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_5.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_6.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_7.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_8.so
+%%RUBY_ARCHLIBDIR%%/enc/iso_8859_9.so
+%%RUBY_ARCHLIBDIR%%/enc/koi8_r.so
+%%RUBY_ARCHLIBDIR%%/enc/koi8_u.so
+%%RUBY_ARCHLIBDIR%%/enc/shift_jis.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/big5.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/cesu_8.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/chinese.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/ebcdic.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/emoji.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/emoji_iso2022_kddi.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/emoji_sjis_docomo.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/emoji_sjis_kddi.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/emoji_sjis_softbank.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/escape.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/gb18030.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/gbk.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/iso2022.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/japanese.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/japanese_euc.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/japanese_sjis.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/korean.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/single_byte.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/transdb.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/utf8_mac.so
+%%RUBY_ARCHLIBDIR%%/enc/trans/utf_16_32.so
+%%RUBY_ARCHLIBDIR%%/enc/utf_16be.so
+%%RUBY_ARCHLIBDIR%%/enc/utf_16le.so
+%%RUBY_ARCHLIBDIR%%/enc/utf_32be.so
+%%RUBY_ARCHLIBDIR%%/enc/utf_32le.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1250.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1251.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1252.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1253.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1254.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_1257.so
+%%RUBY_ARCHLIBDIR%%/enc/windows_31j.so
+%%RUBY_ARCHLIBDIR%%/etc.so
+%%RUBY_ARCHLIBDIR%%/fcntl.so
+%%RUBY_ARCHLIBDIR%%/fiddle.so
+%%RUBY_ARCHLIBDIR%%/io/console.so
+%%RUBY_ARCHLIBDIR%%/io/nonblock.so
+%%RUBY_ARCHLIBDIR%%/io/wait.so
+%%RUBY_ARCHLIBDIR%%/json/ext/generator.so
+%%RUBY_ARCHLIBDIR%%/json/ext/parser.so
+%%RUBY_ARCHLIBDIR%%/monitor.so
+%%RUBY_ARCHLIBDIR%%/nkf.so
+%%RUBY_ARCHLIBDIR%%/objspace.so
+%%RUBY_ARCHLIBDIR%%/openssl.so
+%%RUBY_ARCHLIBDIR%%/pathname.so
+%%RUBY_ARCHLIBDIR%%/psych.so
+%%RUBY_ARCHLIBDIR%%/pty.so
+%%RUBY_ARCHLIBDIR%%/racc/cparse.so
+%%RUBY_ARCHLIBDIR%%/rbconfig.rb
+%%RUBY_ARCHLIBDIR%%/rbconfig/sizeof.so
+%%RUBY_ARCHLIBDIR%%/readline.so
*** 14893 LINES SKIPPED ***