git: 438427bea8dd - main - lang/ruby34: Add new port

From: Yasuhiro Kimura <yasu_at_FreeBSD.org>
Date: Sun, 20 Apr 2025 03:21:39 UTC
The branch main has been updated by yasu:

URL: https://cgit.FreeBSD.org/ports/commit/?id=438427bea8dd10ba57f915bacf568319964ba94e

commit 438427bea8dd10ba57f915bacf568319964ba94e
Author:     Yasuhiro Kimura <yasu@FreeBSD.org>
AuthorDate: 2024-05-18 07:42:03 +0000
Commit:     Yasuhiro Kimura <yasu@FreeBSD.org>
CommitDate: 2025-04-20 03:20:18 +0000

    lang/ruby34: Add new port
    
    Add lang/ruby34, new 3.4 series of Ruby language.
    
    ReleaseNotes:   https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/
    ReleaseNotes:   https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-1-released/
    ReleaseNotes:   https://www.ruby-lang.org/en/news/2025/02/14/ruby-3-4-2-released/
    ReleaseNotes:   https://www.ruby-lang.org/en/news/2025/04/14/ruby-3-4-3-released/
---
 Mk/Uses/ruby.mk                                    |    11 +-
 Mk/bsd.default-versions.mk                         |     2 +-
 lang/Makefile                                      |     1 +
 lang/ruby34/Makefile                               |   203 +
 lang/ruby34/distinfo                               |     3 +
 lang/ruby34/files/patch-common.mk                  |    26 +
 lang/ruby34/files/patch-configure.ac               |    36 +
 lang/ruby34/files/patch-lib_mkmf.rb                |    11 +
 .../files/patch-lib_rdoc_generator_json__index.rb  |    20 +
 lang/ruby34/files/patch-tool_mkconfig.rb           |    14 +
 lang/ruby34/pkg-descr                              |    17 +
 lang/ruby34/pkg-message                            |    45 +
 lang/ruby34/pkg-plist                              | 16501 +++++++++++++++++++
 13 files changed, 16888 insertions(+), 2 deletions(-)

diff --git a/Mk/Uses/ruby.mk b/Mk/Uses/ruby.mk
index 520ef2e23d4e..73e20800fd61 100644
--- a/Mk/Uses/ruby.mk
+++ b/Mk/Uses/ruby.mk
@@ -158,13 +158,21 @@ RUBY_PORTREVISION=	0
 RUBY_DISTVERSION=	3.3.8
 RUBY_PORTREVISION=	0
 
+
+.      elif ${RUBY_VER} == 3.4
+#
+# Ruby 3.4
+#
+RUBY_DISTVERSION=	3.4.3
+RUBY_PORTREVISION=	0
+
 # When adding a version, please keep the comment in
 # Mk/bsd.default-versions.mk in sync.
 .      else
 #
 # Other versions
 #
-IGNORE=	Only ruby 3.2 and 3.3 are supported
+IGNORE=	Only ruby 3,2, 3.3 and 3.4 are supported
 _INVALID_RUBY_VER=	1
 .      endif
 RUBY_PORTEPOCH=		1
@@ -175,6 +183,7 @@ RUBY_VERSION=	${RUBY_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/}
 
 RUBY32?=		"@comment "
 RUBY33?=		"@comment "
+RUBY34?=		"@comment "
 
 .      if defined(BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E})
 .        if ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} == "yes"
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index fcd3db1a94e0..1b368dd9924e 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -144,7 +144,7 @@ PYCRYPTOGRAPHY_DEFAULT?=	legacy
 PYTHON_DEFAULT?=	3.11
 # Possible values: 2.7
 PYTHON2_DEFAULT?=	2.7
-# Possible values: 3.1, 3.2, 3.3
+# Possible values: 3.1, 3.2, 3.3, 3.4
 RUBY_DEFAULT?=		3.2
 # Possible values: rust, rust-nightly
 RUST_DEFAULT?=		rust
diff --git a/lang/Makefile b/lang/Makefile
index 6126c39cffd1..24d3577f3299 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -330,6 +330,7 @@
     SUBDIR += rizin-cutter
     SUBDIR += ruby32
     SUBDIR += ruby33
+    SUBDIR += ruby34
     SUBDIR += rubygem-rb_sys
     SUBDIR += rubygem-ruby_language_server
     SUBDIR += runawk
diff --git a/lang/ruby34/Makefile b/lang/ruby34/Makefile
new file mode 100644
index 000000000000..9bbb90b62548
--- /dev/null
+++ b/lang/ruby34/Makefile
@@ -0,0 +1,203 @@
+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
+WWW=		https://www.ruby-lang.org/en/
+
+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 localbase ruby:none ssl tar:xz
+CPE_VENDOR=	ruby-lang
+CPE_VERSION=	${RUBY_RELVERSION}
+CPE_UPDATE=	p${RUBY_PATCHLEVEL}
+USE_LDCONFIG=	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=
+
+# Keep this, else ruby will fail to load libraries dependent of libpthread.
+LIBS+=		-lpthread
+
+EXTRACT_AFTER_ARGS=	--exclude ${DISTNAME}/bin/gem --exclude \
+			${DISTNAME}/ext/win32* --exclude \
+			${DISTNAME}/lib/bundler* --exclude ${DISTNAME}/lib/irb* \
+			--exclude ${DISTNAME}/man/erb.1 --exclude \
+			${DISTNAME}/man/irb.1 --exclude ${DISTNAME}/man/ri.1 \
+			--exclude ${DISTNAME}/sample/win32ole --no-same-owner \
+			--no-same-permissions
+
+WRKSRC=		${RUBY_WRKSRC}
+
+RUBY_VER=	3.4
+
+OPTIONS_DEFINE=		CAPIDOCS DEBUG DOCS EXAMPLES GMP RDOC YJIT
+OPTIONS_DEFAULT=	RDOC
+OPTIONS_SUB=		yes
+
+CAPIDOCS_DESC=	Build and install C API documents
+GMP_DESC=	Use GMP to accelerate Bignum operations
+RDOC_DESC=	Build and install Rdoc indexes
+YJIT_DESC=	Enable YJIT (Yet Another Ruby JIT)
+
+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
+RDOC_CONFIGURE_ENABLE=		install-rdoc
+YJIT_BUILD_DEPENDS=		${RUST_DEFAULT}>=1.58.0:lang/${RUST_DEFAULT}
+YJIT_CONFIGURE_ENABLE=		yjit
+
+.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} == powerpc || ${ARCH} == powerpc64 || ${ARCH} == \
+	powerpc64le
+LIB_DEPENDS+=	libunwind.so:devel/libunwind
+.endif
+
+.if ${ARCH} == armv6 || ${ARCH} == armv7 || ${ARCH} == powerpc
+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
+
+EXTDOCS=	ripper/README stringio/README.md
+
+# 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-extract-DOCS-on:
+	${MV} ${WRKSRC}/ChangeLog ${WRKSRC}/doc/ChangeLog
+
+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 "ruby31", etc.
+#
+. for FILE in ${INSTALLED_SCRIPTS}
+	${LN} -fs ${FILE}${RUBY_SUFFIX} ${STAGEDIR}${PREFIX}/bin/${FILE}
+. endfor
+#
+# Link "ruby.1.gz" to "ruby31.1.gz", etc.
+#
+. for FILE in ${INSTALLED_MANUALS}
+	${LN} -fs ${FILE}${RUBY_SUFFIX}.1.gz ${STAGEDIR}${PREFIX}/share/man/man1/${FILE}.1.gz
+. endfor
+.endif
+
+post-install-CAPIDOCS-on:
+	${RM} ${WRKSRC}/doc/capi/.timestamp ${STAGEDIR}${PREFIX}/share/doc/ruby${RUBY_SUFFIX}/capi/.timestamp
+	cd ${STAGEDIR}${PREFIX} && ${FIND} share/doc/ruby${RUBY_SUFFIX}/capi/ -type f >> ${TMPPLIST}
+
+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 available 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}/LEGAL		\
+			${WRKSRC}/README*	\
+			${STAGEDIR}${RUBY_DOCDIR}/
+
+post-install-EXAMPLES-on:
+	(cd ${WRKSRC}/sample/ && ${COPYTREE_SHARE} . ${STAGEDIR}${RUBY_EXAMPLESDIR}/)
+
+do-test:
+	cd ${WRKSRC} && ${MAKE_CMD} test
+
+.include <bsd.port.post.mk>
diff --git a/lang/ruby34/distinfo b/lang/ruby34/distinfo
new file mode 100644
index 000000000000..225374338ff7
--- /dev/null
+++ b/lang/ruby34/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1744946573
+SHA256 (ruby/ruby-3.4.3.tar.xz) = 174dcd8c516694f833fd3c93ea227fa6c3321464577a3882a6fc7e4fe20237fd
+SIZE (ruby/ruby-3.4.3.tar.xz) = 17230984
diff --git a/lang/ruby34/files/patch-common.mk b/lang/ruby34/files/patch-common.mk
new file mode 100644
index 000000000000..10e9abf6216c
--- /dev/null
+++ b/lang/ruby34/files/patch-common.mk
@@ -0,0 +1,26 @@
+--- common.mk.orig	2024-12-12 01:10:13 UTC
++++ common.mk
+@@ -487,17 +487,17 @@ install-all: pre-install-all do-install-all post-insta
+ $(ruby_pc): $(srcdir)/template/ruby.pc.in config.status
+ 
+ install-all: pre-install-all do-install-all post-install-all
+-pre-install-all:: all pre-install-local pre-install-ext pre-install-gem pre-install-doc
++pre-install-all:: all pre-install-local pre-install-ext pre-install-doc
+ do-install-all: pre-install-all $(DOT_WAIT) docs
+-	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all $(INSTALL_DOC_OPTS)
+-post-install-all:: post-install-local post-install-ext post-install-gem post-install-doc
++	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --exclude=gem $(INSTALL_DOC_OPTS)
++post-install-all:: post-install-local post-install-ext post-install-doc
+ 	@$(NULLCMD)
+ 
+ install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc
+-pre-install-nodoc:: pre-install-local pre-install-ext pre-install-gem
++pre-install-nodoc:: pre-install-local pre-install-ext
+ do-install-nodoc: main pre-install-nodoc
+-	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --exclude=doc
+-post-install-nodoc:: post-install-local post-install-ext post-install-gem
++	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=all --exclude=doc --exclude=gem
++post-install-nodoc:: post-install-local post-install-ext
+ 
+ install-local: pre-install-local do-install-local post-install-local
+ pre-install-local:: pre-install-bin pre-install-lib pre-install-man
diff --git a/lang/ruby34/files/patch-configure.ac b/lang/ruby34/files/patch-configure.ac
new file mode 100644
index 000000000000..2e3c608f9449
--- /dev/null
+++ b/lang/ruby34/files/patch-configure.ac
@@ -0,0 +1,36 @@
+--- configure.ac.orig	2024-12-12 01:10:13 UTC
++++ configure.ac
+@@ -1411,7 +1411,7 @@ AC_CHECK_HEADERS(stdatomic.h)
+ AC_CHECK_HEADERS(stdckdint.h)
+ AC_CHECK_HEADERS(stdatomic.h)
+ 
+-AS_CASE("$target_cpu", [x64|x86_64|[i[3-6]86*]], [
++AS_CASE("$target_cpu", [amd64|x64|x86_64|[i[3-6]86*]], [
+   AC_CHECK_HEADERS(x86intrin.h)
+ ])
+ RUBY_UNIVERSAL_CHECK_HEADER([x86_64, i386], x86intrin.h)
+@@ -3149,7 +3149,7 @@ AC_SUBST(EXTOBJS)
+ 			: ${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'
+ 			])
+@@ -3611,6 +3611,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=''
+@@ -4443,6 +4444,7 @@ AS_IF([test "${universal_binary-no}" = yes ], [
+         arch="${target_cpu}-mingw-ucrt"
+     ], [
+         arch="${target_cpu}-${target_os}"
++	AS_CASE(["$target_cpu-$target_os"], [x86_64-freebsd*],[arch=amd64-${target_os}])
+     ])
+     AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "$arch")
+ 
diff --git a/lang/ruby34/files/patch-lib_mkmf.rb b/lang/ruby34/files/patch-lib_mkmf.rb
new file mode 100644
index 000000000000..46ba529446e0
--- /dev/null
+++ b/lang/ruby34/files/patch-lib_mkmf.rb
@@ -0,0 +1,11 @@
+--- lib/mkmf.rb.orig	2024-05-16 04:54:44 UTC
++++ lib/mkmf.rb
+@@ -242,7 +242,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/ruby34/files/patch-lib_rdoc_generator_json__index.rb b/lang/ruby34/files/patch-lib_rdoc_generator_json__index.rb
new file mode 100644
index 000000000000..7f6277092c56
--- /dev/null
+++ b/lang/ruby34/files/patch-lib_rdoc_generator_json__index.rb
@@ -0,0 +1,20 @@
+--- lib/rdoc/generator/json_index.rb.orig	2023-05-12 09:25:10 UTC
++++ lib/rdoc/generator/json_index.rb
+@@ -178,7 +178,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
+@@ -196,7 +196,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/ruby34/files/patch-tool_mkconfig.rb b/lang/ruby34/files/patch-tool_mkconfig.rb
new file mode 100644
index 000000000000..24478cacbb7a
--- /dev/null
+++ b/lang/ruby34/files/patch-tool_mkconfig.rb
@@ -0,0 +1,14 @@
+--- tool/mkconfig.rb.orig	2024-12-12 01:10:13 UTC
++++ tool/mkconfig.rb
+@@ -170,8 +170,9 @@ end
+   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/ruby34/pkg-descr b/lang/ruby34/pkg-descr
new file mode 100644
index 000000000000..a537df18eb88
--- /dev/null
+++ b/lang/ruby34/pkg-descr
@@ -0,0 +1,17 @@
+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.)
diff --git a/lang/ruby34/pkg-message b/lang/ruby34/pkg-message
new file mode 100644
index 000000000000..f4cb45bbe6f4
--- /dev/null
+++ b/lang/ruby34/pkg-message
@@ -0,0 +1,45 @@
+[
+{ type: install
+  message: <<EOM
+Some of the standard commands and libraries are provided as separate
+ports for ease of upgrading:
+
+	converters/rubygem-base64:		base64 - Encode and decode binary data using a Base64 representation
+	devel/ruby-gems:			gem - RubyGems package manager
+	devel/rubygem-csv:			csv - Interface to CSV files and data
+	devel/rubygem-debug:			debug - Debugging functionality for Ruby
+	devel/rubygem-drb:			drb - Distributed object system for Ruby
+	devel/rubygem-erb:			erb - Templating system for Ruby
+	devel/rubygem-getoptlong:		getoptlong -GetoptLong for Ruby
+	devel/rubygem-irb:			irb - Interactive Ruby
+	devel/rubygem-minitest:			minitest - Complete suite of testing facilities
+	devel/rubygem-mutex_m:			mutex_m - Mixin to extend objects to be handled like a Mutex
+	devel/rubygem-observer:			observer - Implementation of the Observer object-oriented design pattern
+	devel/rubygem-power_assert:		power_assert - Power Assert for Ruby
+	devel/rubygem-racc:			racc - LALR(1) parser generator 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-repl_type_completor:	repl_type_completor - Type based completion for REPL
+	devel/rubygem-rinda:			rinda - Linda distributed computing paradigm in Ruby
+	devel/rubygem-syslog:			syslog - Ruby interface for the POSIX system logging facility
+	devel/rubygem-test-unit:		test-unit - Unit testing framework for Ruby
+	devel/rubygem-typeprof:			typeprof - Type analysis tool for Ruby code
+	dns/rubygem-resolv-replace:		resolv-replace - Replace Socket DNS with Resolv
+	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-bigdecimal:		bigdecimal - Arbitrary-precision decimal floating-point number class
+	math/rubygem-matrix:			matrix - Implementation of Matrix and Vector classes
+	math/rubygem-prime:			prime - Prime numbers and factorization library
+	net/rubygem-nkf:			nkf - Ruby extension for Network Kanji Filter
+	sysutils/rubygem-bundler:		bundler - Tool that manages gem dependencies for ruby applications
+	textproc/rubygem-abbrev:		abbrev - Calculate a set of unique abbreviations for a given set of strings
+	textproc/rubygem-rexml:			rexml - XML toolkit for Ruby
+	www/rubygem-rss:			rss - Family of libraries that support various formats of XML "feeds"
+
+Install them as occasion demands.
+EOM
+}
+]
diff --git a/lang/ruby34/pkg-plist b/lang/ruby34/pkg-plist
new file mode 100644
index 000000000000..443333d6dc6e
--- /dev/null
+++ b/lang/ruby34/pkg-plist
@@ -0,0 +1,16501 @@
+%%IF_DEFAULT%%bin/ruby
+bin/ruby%%RUBY_SUFFIX%%
+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/packed_struct.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/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/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/stdckdint.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_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%%/erb/escape.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%%/objspace.so
+%%RUBY_ARCHLIBDIR%%/openssl.so
+%%RUBY_ARCHLIBDIR%%/pathname.so
+%%RUBY_ARCHLIBDIR%%/psych.so
+%%RUBY_ARCHLIBDIR%%/pty.so
+%%RUBY_ARCHLIBDIR%%/rbconfig.rb
+%%RUBY_ARCHLIBDIR%%/rbconfig/sizeof.so
+%%RUBY_ARCHLIBDIR%%/ripper.so
+%%RUBY_ARCHLIBDIR%%/socket.so
+%%RUBY_ARCHLIBDIR%%/stringio.so
+%%RUBY_ARCHLIBDIR%%/strscan.so
+%%RUBY_ARCHLIBDIR%%/zlib.so
+%%RUBY_LIBDIR%%/benchmark.rb
+%%RUBY_LIBDIR%%/bundled_gems.rb
+%%RUBY_LIBDIR%%/cgi.rb
+%%RUBY_LIBDIR%%/cgi/cookie.rb
+%%RUBY_LIBDIR%%/cgi/core.rb
+%%RUBY_LIBDIR%%/cgi/html.rb
+%%RUBY_LIBDIR%%/cgi/session.rb
+%%RUBY_LIBDIR%%/cgi/session/pstore.rb
+%%RUBY_LIBDIR%%/cgi/util.rb
+%%RUBY_LIBDIR%%/coverage.rb
+%%RUBY_LIBDIR%%/date.rb
+%%RUBY_LIBDIR%%/delegate.rb
+%%RUBY_LIBDIR%%/did_you_mean.rb
+%%RUBY_LIBDIR%%/did_you_mean/core_ext/name_error.rb
+%%RUBY_LIBDIR%%/did_you_mean/experimental.rb
+%%RUBY_LIBDIR%%/did_you_mean/formatter.rb
+%%RUBY_LIBDIR%%/did_you_mean/formatters/plain_formatter.rb
+%%RUBY_LIBDIR%%/did_you_mean/formatters/verbose_formatter.rb
+%%RUBY_LIBDIR%%/did_you_mean/jaro_winkler.rb
+%%RUBY_LIBDIR%%/did_you_mean/levenshtein.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/key_error_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/method_name_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/name_error_checkers.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/null_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/pattern_key_name_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/spell_checkers/require_path_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/tree_spell_checker.rb
+%%RUBY_LIBDIR%%/did_you_mean/verbose.rb
+%%RUBY_LIBDIR%%/did_you_mean/version.rb
+%%RUBY_LIBDIR%%/digest.rb
+%%RUBY_LIBDIR%%/digest/loader.rb
+%%RUBY_LIBDIR%%/digest/sha2.rb
+%%RUBY_LIBDIR%%/digest/sha2/loader.rb
+%%RUBY_LIBDIR%%/digest/version.rb
+%%RUBY_LIBDIR%%/erb.rb
+%%RUBY_LIBDIR%%/erb/compiler.rb
+%%RUBY_LIBDIR%%/erb/def_method.rb
+%%RUBY_LIBDIR%%/erb/util.rb
+%%RUBY_LIBDIR%%/erb/version.rb
+%%RUBY_LIBDIR%%/error_highlight.rb
+%%RUBY_LIBDIR%%/error_highlight/base.rb
+%%RUBY_LIBDIR%%/error_highlight/core_ext.rb
+%%RUBY_LIBDIR%%/error_highlight/formatter.rb
+%%RUBY_LIBDIR%%/error_highlight/version.rb
+%%RUBY_LIBDIR%%/expect.rb
+%%RUBY_LIBDIR%%/fiddle.rb
+%%RUBY_LIBDIR%%/fiddle/closure.rb
+%%RUBY_LIBDIR%%/fiddle/cparser.rb
+%%RUBY_LIBDIR%%/fiddle/ffi_backend.rb
+%%RUBY_LIBDIR%%/fiddle/function.rb
+%%RUBY_LIBDIR%%/fiddle/import.rb
+%%RUBY_LIBDIR%%/fiddle/pack.rb
+%%RUBY_LIBDIR%%/fiddle/struct.rb
+%%RUBY_LIBDIR%%/fiddle/types.rb
+%%RUBY_LIBDIR%%/fiddle/value.rb
+%%RUBY_LIBDIR%%/fiddle/version.rb
+%%RUBY_LIBDIR%%/fileutils.rb
+%%RUBY_LIBDIR%%/find.rb
+%%RUBY_LIBDIR%%/forwardable.rb
+%%RUBY_LIBDIR%%/forwardable/impl.rb
+%%RUBY_LIBDIR%%/io/console/size.rb
+%%RUBY_LIBDIR%%/ipaddr.rb
+%%RUBY_LIBDIR%%/json.rb
+%%RUBY_LIBDIR%%/json/add/bigdecimal.rb
+%%RUBY_LIBDIR%%/json/add/complex.rb
+%%RUBY_LIBDIR%%/json/add/core.rb
+%%RUBY_LIBDIR%%/json/add/date.rb
+%%RUBY_LIBDIR%%/json/add/date_time.rb
+%%RUBY_LIBDIR%%/json/add/exception.rb
+%%RUBY_LIBDIR%%/json/add/ostruct.rb
+%%RUBY_LIBDIR%%/json/add/range.rb
+%%RUBY_LIBDIR%%/json/add/rational.rb
+%%RUBY_LIBDIR%%/json/add/regexp.rb
+%%RUBY_LIBDIR%%/json/add/set.rb
+%%RUBY_LIBDIR%%/json/add/struct.rb
+%%RUBY_LIBDIR%%/json/add/symbol.rb
+%%RUBY_LIBDIR%%/json/add/time.rb
+%%RUBY_LIBDIR%%/json/common.rb
+%%RUBY_LIBDIR%%/json/ext.rb
+%%RUBY_LIBDIR%%/json/ext/generator/state.rb
+%%RUBY_LIBDIR%%/json/generic_object.rb
+%%RUBY_LIBDIR%%/json/version.rb
+%%RUBY_LIBDIR%%/logger.rb
+%%RUBY_LIBDIR%%/logger/errors.rb
+%%RUBY_LIBDIR%%/logger/formatter.rb
+%%RUBY_LIBDIR%%/logger/log_device.rb
+%%RUBY_LIBDIR%%/logger/period.rb
+%%RUBY_LIBDIR%%/logger/severity.rb
+%%RUBY_LIBDIR%%/logger/version.rb
+%%RUBY_LIBDIR%%/mkmf.rb
+%%RUBY_LIBDIR%%/monitor.rb
+%%RUBY_LIBDIR%%/net/http.rb
+%%RUBY_LIBDIR%%/net/http/exceptions.rb
+%%RUBY_LIBDIR%%/net/http/generic_request.rb
+%%RUBY_LIBDIR%%/net/http/header.rb
+%%RUBY_LIBDIR%%/net/http/proxy_delta.rb
+%%RUBY_LIBDIR%%/net/http/request.rb
+%%RUBY_LIBDIR%%/net/http/requests.rb
+%%RUBY_LIBDIR%%/net/http/response.rb
+%%RUBY_LIBDIR%%/net/http/responses.rb
+%%RUBY_LIBDIR%%/net/http/status.rb
+%%RUBY_LIBDIR%%/net/https.rb
+%%RUBY_LIBDIR%%/net/protocol.rb
+%%RUBY_LIBDIR%%/objspace.rb
+%%RUBY_LIBDIR%%/objspace/trace.rb
+%%RUBY_LIBDIR%%/open-uri.rb
+%%RUBY_LIBDIR%%/open3.rb
+%%RUBY_LIBDIR%%/open3/version.rb
+%%RUBY_LIBDIR%%/openssl.rb
+%%RUBY_LIBDIR%%/openssl/asn1.rb
+%%RUBY_LIBDIR%%/openssl/bn.rb
+%%RUBY_LIBDIR%%/openssl/buffering.rb
+%%RUBY_LIBDIR%%/openssl/cipher.rb
+%%RUBY_LIBDIR%%/openssl/digest.rb
+%%RUBY_LIBDIR%%/openssl/hmac.rb
+%%RUBY_LIBDIR%%/openssl/marshal.rb
+%%RUBY_LIBDIR%%/openssl/pkcs5.rb
+%%RUBY_LIBDIR%%/openssl/pkey.rb
+%%RUBY_LIBDIR%%/openssl/ssl.rb
+%%RUBY_LIBDIR%%/openssl/version.rb
+%%RUBY_LIBDIR%%/openssl/x509.rb
+%%RUBY_LIBDIR%%/optionparser.rb
+%%RUBY_LIBDIR%%/optparse.rb
+%%RUBY_LIBDIR%%/optparse/ac.rb
+%%RUBY_LIBDIR%%/optparse/date.rb
+%%RUBY_LIBDIR%%/optparse/kwargs.rb
+%%RUBY_LIBDIR%%/optparse/shellwords.rb
+%%RUBY_LIBDIR%%/optparse/time.rb
+%%RUBY_LIBDIR%%/optparse/uri.rb
+%%RUBY_LIBDIR%%/optparse/version.rb
+%%RUBY_LIBDIR%%/ostruct.rb
+%%RUBY_LIBDIR%%/pathname.rb
+%%RUBY_LIBDIR%%/pp.rb
+%%RUBY_LIBDIR%%/prettyprint.rb
+%%RUBY_LIBDIR%%/prism.rb
+%%RUBY_LIBDIR%%/prism/compiler.rb
+%%RUBY_LIBDIR%%/prism/desugar_compiler.rb
+%%RUBY_LIBDIR%%/prism/dispatcher.rb
+%%RUBY_LIBDIR%%/prism/dsl.rb
+%%RUBY_LIBDIR%%/prism/ffi.rb
+%%RUBY_LIBDIR%%/prism/inspect_visitor.rb
+%%RUBY_LIBDIR%%/prism/lex_compat.rb
+%%RUBY_LIBDIR%%/prism/mutation_compiler.rb
+%%RUBY_LIBDIR%%/prism/node.rb
+%%RUBY_LIBDIR%%/prism/node_ext.rb
+%%RUBY_LIBDIR%%/prism/pack.rb
+%%RUBY_LIBDIR%%/prism/parse_result.rb
+%%RUBY_LIBDIR%%/prism/parse_result/comments.rb
+%%RUBY_LIBDIR%%/prism/parse_result/errors.rb
+%%RUBY_LIBDIR%%/prism/parse_result/newlines.rb
+%%RUBY_LIBDIR%%/prism/pattern.rb
+%%RUBY_LIBDIR%%/prism/polyfill/byteindex.rb
+%%RUBY_LIBDIR%%/prism/polyfill/unpack1.rb
+%%RUBY_LIBDIR%%/prism/reflection.rb
+%%RUBY_LIBDIR%%/prism/relocation.rb
+%%RUBY_LIBDIR%%/prism/serialize.rb
+%%RUBY_LIBDIR%%/prism/string_query.rb
+%%RUBY_LIBDIR%%/prism/translation.rb
+%%RUBY_LIBDIR%%/prism/translation/parser%%RUBY_SUFFIX%%.rb
+%%RUBY_LIBDIR%%/prism/translation/parser.rb
+%%RUBY_LIBDIR%%/prism/translation/parser/compiler.rb
+%%RUBY_LIBDIR%%/prism/translation/parser/lexer.rb
+%%RUBY_LIBDIR%%/prism/translation/parser33.rb
+%%RUBY_LIBDIR%%/prism/translation/ripper.rb
*** 16043 LINES SKIPPED ***