Thank you for the update!
I'm testing on 6.0.
1. doas make worked fine
2. doas make test worked partially:
cd /usr/ports/pobj/ruby-2.4.0/ruby-2.4.0 && make test-sample
...
test succeeded
cd /usr/ports/pobj/ruby-2.4.0/ruby-2.4.0 && make btest-ruby
...
PASS all 1010 tests
cd /usr/ports/pobj/ruby-2.4.0/ruby-2.4.0 && make test-all TESTOPTS="-v
-q" ->
CC = cc
LD = ld
LDSHARED = cc -shared
CFLAGS = -O2 -pipe -fPIC
XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector
-fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -DOPENSSL_NO_STATIC_ENGINE -I/usr/local/include
-I. -I.ext/include/x86_64-openbsd -I./include -I. -I./enc/unicode/9.0.0
DLDFLAGS = -L/usr/local/lib -fstack-protector
SOLIBS = -pthread -lgmp -lm
cc (GCC) 4.2.1 20070719
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common
./tool/runruby.rb --extout=.ext -- --disable-gems"
--excludes-dir=./test/excludes --name=!/memory_le
ak/ -v -q
# Running tests:
[ 1/16992] BufferedSocketTest#test_gets_empty = 0.00 s
[ 2/16992] BufferedSocketTest#test_gets_one_line = 0.00 s
[ 3/16992] BufferedSocketTest#test_gets_one_line_without_term = 0.00
s
[ 4/16992] BufferedSocketTest#test_gets_two_lines = 0.00 s
[ 5/16992] BufferedSocketTest#test_gets_two_lines_without_term =
0.00 s
[ 6/16992] Bug::Marshal::TestInternalIVar#test_marshal = 0.00 s
[ 7/16992] Bug::Marshal::TestUsrMarshal#test_compat = 0.22 s
[ 8/16992] Bug::Marshal::TestUsrMarshal#test_incompat = 0.10 s
[ 9/16992] Bug::Marshal::TestUsrMarshal#test_marshal = 0.00 s
[ 10/16992] Bug::StNumHash::Test_NumHash#test_check = 0.00 s
[ 11/16992]
Bug::StNumHash::Test_NumHash#test_delete_safe_on_iteration = 0.00 s
[ 12/16992] Bug::StNumHash::Test_NumHash#test_size_after_delete_safe
= 0.00 s
[ 13/16992] Bug::StNumHash::Test_NumHash#test_update = 0.00 s
[ 14/16992] Bug::StTable::Test_Update#test_continue = 0.00 s
[ 15/16992] Bug::StTable::Test_Update#test_delete = 0.00 s
[ 16/16992] Bug::StTable::Test_Update#test_notfound = 0.00 s
[ 17/16992] Bug::StTable::Test_Update#test_pass_objects_in_st_table =
0.00 s
[ 18/16992] Bug::StTable::Test_Update#test_update = 0.00 s
[ 19/16992] Bug::Struct::Test_Duplicate#test_new_dupilicate = 0.00 s
[ 20/16992] Bug::Struct::Test_Duplicate#test_new_dupilicate_under =
0.00 s
[ 21/16992] Bug::Struct::Test_Member#test_member_get = 0.01 s
[ 22/16992] Bug::TestException#test_cleanup_data_error = 0.10 s
[ 23/16992] Bug::TestException#test_enc_raise = 0.00 s
[ 24/16992] Bug::TestException#test_ensured = 0.11 s
[ 25/16992] Bug::Time::Test_New#test_nano_new = 0.00 s
[ 26/16992] Bug::Time::Test_New#test_timespec_new = 0.00 s
[ 27/16992] Bug::Time::Test_New#test_timespec_now = 0.00 s
[ 28/16992] CGICookieTest#test_cgi_cookie_arrayinterface = 0.00 s
[ 29/16992] CGICookieTest#test_cgi_cookie_new_complex = 0.00 s
[ 30/16992] CGICookieTest#test_cgi_cookie_new_simple = 0.00 s
[ 31/16992] CGICookieTest#test_cgi_cookie_parse = 0.00 s
[ 32/16992] CGICookieTest#test_cgi_cookie_scriptname = 0.00 s
[ 33/16992] CGICoreTest#test_cgi_core_cookie = 0.00 s
[ 34/16992] CGICoreTest#test_cgi_core_environs = 0.00 s
[ 35/16992] CGICoreTest#test_cgi_core_htmltype_header = 0.01 s
[ 36/16992] CGICoreTest#test_cgi_core_out = 0.00 s
[ 37/16992] CGICoreTest#test_cgi_core_params_GET = 0.00 s
[ 38/16992] CGICoreTest#test_cgi_core_params_POST = 0.00 s
[ 39/16992] CGICoreTest#test_cgi_core_params_encoding_check = 0.00 s
[ 40/16992] CGICoreTest#test_cgi_core_print = 0.00 s
[ 41/16992] CGICoreTest#test_cgi_parse_illegal_query = 0.00 s
[ 42/16992] CGIHeaderTest#test_cgi_http_header_argerr = 0.00 s
[ 43/16992] CGIHeaderTest#test_cgi_http_header_complex = 0.00 s
[ 44/16992] CGIHeaderTest#test_cgi_http_header_cookie = 0.00 s
[ 45/16992] CGIHeaderTest#test_cgi_http_header_nph = 0.00 s
[ 46/16992] CGIHeaderTest#test_cgi_http_header_output_cookies = 0.00
s
[ 47/16992] CGIHeaderTest#test_cgi_http_header_simple = 0.00 s
[ 48/16992] CGIModrubyTest#test_cgi_modruby_complex = 0.00 s
[ 49/16992] CGIModrubyTest#test_cgi_modruby_location = 0.00 s
[ 50/16992] CGIModrubyTest#test_cgi_modruby_requestparams = 0.00 s
[ 51/16992] CGIModrubyTest#test_cgi_modruby_simple = 0.00 s
[ 52/16992] CGIMultipartTest#test_cgi_multipart_badbody = 0.01 s
[ 53/16992] CGIMultipartTest#test_cgi_multipart_boundary_10240 = 0.00
s
[ 54/16992] CGIMultipartTest#test_cgi_multipart_maxmultipartcount =
0.17 s/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/lib/tempfile.rb:221:in
`path': undefined method `path' for nil:NilClass (NoMethodError)
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:117:in
`block in find_tempfiles'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:117:in
`each_object'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:117:in
`each'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:117:in
`find_all'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:117:in
`find_tempfiles'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:125:in
`check_tempfile_leak'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/leakchecker.rb:14:in
`check'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:948:in
`block in _run_suite'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:934:in
`map'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:934:in
`_run_suite'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:915:in
`_run_suite'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:494:in
`block in _run_suites'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:492:in
`each'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:492:in
`_run_suites'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:530:in
`_run_suites'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:885:in
`_run_anything'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:1096:in
`run_tests'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:1083:in
`block in _run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:1082:in
`each'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:1082:in
`_run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/minitest/unit.rb:1070:in
`run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:682:in `run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:33:in`run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:992:in `run'
from
/usr/ports/pobj/ruby-2.4.0/ruby-2.4.0/test/lib/test/unit.rb:996:in `run'
from ./test/runner.rb:40:in `<main>'
*** Error 1 in /usr/ports/pobj/ruby-2.4.0/ruby-2.4.0 (Makefile:1177
'yes-test-all': @exec ./miniruby -I./lib -I. -I.ext/common
./tool/runru...)
*** Error 1 in . (Makefile:92 'do-test')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2702
'/usr/ports/pobj/ruby-2.4.0/.test_done')
*** Error 1 in /usr/ports/mystuff/lang/ruby/2.4
(/usr/ports/infrastructure/mk/bsd.port.mk:2396 'test')
3. Anyway I continued with:
# ln -sf /usr/local/bin/ruby24 /usr/local/bin/ruby
# ln -sf /usr/local/bin/erb24 /usr/local/bin/erb
# ln -sf /usr/local/bin/irb24 /usr/local/bin/irb
# ln -sf /usr/local/bin/rdoc24 /usr/local/bin/rdoc
# ln -sf /usr/local/bin/ri24 /usr/local/bin/ri
# ln -sf /usr/local/bin/rake24 /usr/local/bin/rake
# ln -sf /usr/local/bin/gem24 /usr/local/bin/gem
# gem update --system
Latest version currently installed. Aborting.
$ QMAKE=qmake-qt5 make=gmake MAKE=gmake doas gem pristine --all
...
$ doas gem install bundler
$ doas ln -sf /usr/local/bin/bundle24 /usr/local/bin/bundle
Worked fine
4. I could install rails with:
$ doas gem install pkg-config -v "~> 1.1.7"
$ doas gem install nokogiri -v 1.6.8.1 -- --use-system-libraries
$ doas gem install rails
$ doas ln -sf /usr/local/bin/rails24 /usr/local/bin/rails
5. A new rails application with gems in /var/www/bundler/ruby/2.4:
$ doas mkdir -p /var/www/bundler/ruby/2.4/
$ doas chown -R $USER:www /var/www/bundler
$ rails new ap
$ cd ap
$ mkdir .bundle
$ cat > .bundle/config << EOF
---
BUNDLE_PATH: "/var/www/bundler"
BUNDLE_DISABLE_SHARED_GEMS: "true"
EOF
By resticting nokogiri to 1.6.8.1 I could start the server:
$ echo "gem 'nokogiri', '1.6.8.1'" >> Gemfile
$ gem install nokogiri --install-dir /var/www/bundler/ruby/2.4/ -v
'1.6.8.1' -- --use-system-libraries
$ bundle install
$ rails s
I will continue testing applications. Again thank you. Merry christmas
and happy new year.
El 2016-12-25 01:59, Jeremy Evans escribió:
The attached tarball contains a port for ruby 2.4.0, released today.
Release announcement at
https://www.ruby-lang.org/en/news/2016/12/25/ruby-2-4-0-released/
Ports-wise, not much changed compared to ruby 2.3. The tk library no
longer ships with ruby and was spun off into its own project, which
I'll
submit a port for later.
Inline is a diff for ruby.port.mk which adds support for building
ruby
ports with ruby 2.4 using the ruby24 FLAVOR. It also removes some
cruft
that still mentioned rubinius, and it refactors the code to make
things
simpler.
I've been running a variant of the port since June when ruby 2.4.0
preview 1 was released, as well as run with the ruby.port.mk diff
locally since then.
Tested on amd64. Looking for OKs to import.
Thanks,
Jeremy
Index: lang/ruby/ruby.port.mk
===================================================================
RCS file: /cvs/ports/lang/ruby/ruby.port.mk,v
retrieving revision 1.89
diff -u -p -r1.89 ruby.port.mk
--- lang/ruby/ruby.port.mk 6 Sep 2016 15:23:26 -0000 1.89
+++ lang/ruby/ruby.port.mk 25 Dec 2016 06:54:19 -0000
@@ -24,7 +24,7 @@ MODRUBY_HANDLE_FLAVORS ?= No
# If ruby.pork.mk should handle FLAVORs, define a separate FLAVOR
# for each ruby interpreter
. if !defined(FLAVORS)
-FLAVORS= ruby18 ruby21 ruby22 ruby23
+FLAVORS= ruby18 ruby21 ruby22 ruby23 ruby24
. if !${CONFIGURE_STYLE:L:Mext} &&
!${CONFIGURE_STYLE:L:Mextconf}
FLAVORS+= jruby
. endif
@@ -33,7 +33,7 @@ FLAVORS+= jruby
# Instead of adding flavors to the end of the package name, we use
# different package stems for different ruby versions and
implementations.
# ruby 1.8 uses the historical ruby-* package stem, newer ruby
versions
-# use rubyXY-*, jruby uses jruby-*, and rubinius uses rbx-*. In
most cases,
+# use rubyXY-* and jruby uses jruby-*. In most cases,
# PKGNAME in the port should be set to the same as DISTNAME, and
this
# will insert the correct package prefix.
FULLPKGNAME?= ${MODRUBY_PKG_PREFIX}-${PKGNAME}
@@ -53,12 +53,14 @@ FLAVOR = ruby23
# Check for conflicting FLAVORs and set MODRUBY_REV appropriately
based
# on the FLAVOR.
-. for i in ruby18 ruby21 ruby22 ruby23 jruby
+. for i in ruby18 ruby21 ruby22 ruby23 ruby24 jruby
. if ${FLAVOR:M$i}
MODRUBY_REV = ${i:C/ruby([0-9])/\1./}
. if ${FLAVOR:N$i:Mruby18} || \
${FLAVOR:N$i:Mruby21} || \
- ${FLAVOR:N$i:Mruby22} || ${FLAVOR:N$i:Mruby23} || \
+ ${FLAVOR:N$i:Mruby22} || \
+ ${FLAVOR:N$i:Mruby23} || \
+ ${FLAVOR:N$i:Mruby24} || \
${FLAVOR:N$i:Mjruby}
ERRORS += "Fatal: Conflicting flavors used: ${FLAVOR}"
. endif
@@ -78,7 +80,7 @@ PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/ruby
# 2.3 for consistency with the default ruby23 FLAVOR for gem/extconf
ports.
MODRUBY_REV?= 2.3
-# Because the rbx and jruby FLAVORs use same binary names but in
+# Because the jruby FLAVORs use same binary names but in
# different directories, GEM_MAN_SUFFIX is used for the man pages to
avoid
# conflicts since all man files go in the same directory.
GEM_MAN_SUFFIX = ${GEM_BIN_SUFFIX}
@@ -86,66 +88,55 @@ GEM_MAN_SUFFIX = ${GEM_BIN_SUFFIX}
# Use the FLAVOR as the prefix for the package, to avoid conflicts.
MODRUBY_PKG_PREFIX = ${MODRUBY_FLAVOR}
-.if ${MODRUBY_REV} == 1.8
-MODRUBY_LIBREV = 1.8
-MODRUBY_BINREV = 18
-MODRUBY_PKG_PREFIX = ruby
-MODRUBY_FLAVOR = ruby18
-GEM_BIN_SUFFIX = 18
-.elif ${MODRUBY_REV} == 2.1
-MODRUBY_LIBREV = 2.1
-MODRUBY_BINREV = 21
-MODRUBY_FLAVOR = ruby21
-GEM_BIN_SUFFIX = 21
-.elif ${MODRUBY_REV} == 2.2
-MODRUBY_LIBREV = 2.2
-MODRUBY_BINREV = 22
-MODRUBY_FLAVOR = ruby22
-GEM_BIN_SUFFIX = 22
-.elif ${MODRUBY_REV} == 2.3
-MODRUBY_LIBREV = 2.3
-MODRUBY_BINREV = 23
-MODRUBY_FLAVOR = ruby23
-GEM_BIN_SUFFIX = 23
-.elif ${MODRUBY_REV} == jruby
+# Set MODRUBY_* variables as well as the path for the ruby
interpreter and
+# related commands used by MODRUBY_TEST and manually in some port
targets.
+.if ${MODRUBY_REV} == jruby
+GEM_MAN_SUFFIX = -${MODRUBY_FLAVOR}
+MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x86_64/}-java
+MODRUBY_BIN_RSPEC = ${RUBY} -S rspec
+MODRUBY_BIN_TESTRB = ${RUBY} -S testrb
+MODRUBY_FLAVOR = jruby
+MODRUBY_LIBDIR= ${LOCALBASE}/jruby/lib/ruby
MODRUBY_LIBREV = 2.3.0
+MODRUBY_SITEARCHDIR = ${MODRUBY_SITEDIR}/java
+MODRUBY_SITEDIR = jruby/lib/ruby/site_ruby/${MODRUBY_LIBREV}
+RAKE= ${RUBY} -S rake
+RSPEC= ${RUBY} -S spec
+RUBY= ${LOCALBASE}/jruby/bin/jruby
-# Set these during development of ruby.port.mk to make sure
-# nothing is broken. However, turn them off before committing,
-# since they result in bad error messages when, for example, an
-# invalid flavor is used.
-#.poison MODRUBY_BINREV
-#.poison MODRUBY_WANTLIB
+. if ${CONFIGURE_STYLE:L:Mext} || ${CONFIGURE_STYLE:L:Mextconf}
+ERRORS += "Fatal: Ruby C extensions are unsupported on JRuby"
+. else
+MODRUBY_RUN_DEPENDS= lang/jruby
+. endif
-MODRUBY_FLAVOR = jruby
-GEM_MAN_SUFFIX = -${MODRUBY_FLAVOR}
-.endif
+.else # not jruby
-MODRUBY_RSPEC_DEPENDS = devel/ruby-rspec/1,${MODRUBY_FLAVOR}<2.0
-MODRUBY_RSPEC3_DEPENDS =
devel/ruby-rspec/3/rspec,${MODRUBY_FLAVOR}>=3.0
+. if ${MODRUBY_REV} == 1.8
+MODRUBY_PKG_PREFIX = ruby
+. endif
-# Set the path for the ruby interpreter and the rake and rspec
-# commands used by MODRUBY_TEST and manually in some port
-# targets.
-.if ${MODRUBY_REV} == jruby
-RUBY= ${LOCALBASE}/jruby/bin/jruby
-RAKE= ${RUBY} -S rake
-RSPEC= ${RUBY} -S spec
-MODRUBY_BIN_RSPEC = ${RUBY} -S rspec
-MODRUBY_BIN_TESTRB = ${RUBY} -S testrb
-.else
-RUBY= ${LOCALBASE}/bin/ruby${MODRUBY_BINREV}
-RAKE= ${LOCALBASE}/bin/rake${MODRUBY_BINREV}
+GEM_BIN_SUFFIX = ${MODRUBY_BINREV}
+MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x86_64/}-openbsd
+MODRUBY_BINREV = ${MODRUBY_LIBREV:S/.//}
+MODRUBY_BIN_RSPEC = ${LOCALBASE}/bin/rspec${MODRUBY_BINREV}
MODRUBY_BIN_TESTRB = ${LOCALBASE}/bin/testrb${MODRUBY_BINREV}
-. if ${MODRUBY_REV} == 1.8
-RSPEC= ${LOCALBASE}/bin/spec
-MODRUBY_BIN_RSPEC = ${LOCALBASE}/bin/rspec
-. else
+MODRUBY_FLAVOR = ruby${MODRUBY_BINREV}
+MODRUBY_LIBDIR= ${LOCALBASE}/lib/ruby
+MODRUBY_LIBREV = ${MODRUBY_REV}
+MODRUBY_LIB_DEPENDS= ${MODRUBY_RUN_DEPENDS}
+MODRUBY_RUN_DEPENDS= lang/ruby/${MODRUBY_REV}
+MODRUBY_SITEARCHDIR = ${MODRUBY_SITEDIR}/${MODRUBY_ARCH}
+MODRUBY_SITEDIR = lib/ruby/site_ruby/${MODRUBY_LIBREV}
+MODRUBY_WANTLIB= ruby${MODRUBY_BINREV}
+RAKE= ${LOCALBASE}/bin/rake${MODRUBY_BINREV}
RSPEC= ${LOCALBASE}/bin/spec${MODRUBY_BINREV}
-MODRUBY_BIN_RSPEC = ${LOCALBASE}/bin/rspec${MODRUBY_BINREV}
-. endif
+RUBY= ${LOCALBASE}/bin/ruby${MODRUBY_BINREV}
.endif
+MODRUBY_RSPEC_DEPENDS = devel/ruby-rspec/1,${MODRUBY_FLAVOR}<2.0
+MODRUBY_RSPEC3_DEPENDS =
devel/ruby-rspec/3/rspec,${MODRUBY_FLAVOR}>=3.0
+
.if defined(MODRUBY_TEST)
. if !${MODRUBY_TEST:L:Mrspec} && !${MODRUBY_TEST:L:Mrspec3} && \
!${MODRUBY_TEST:L:Mrake} && !${MODRUBY_TEST:L:Mruby} && \
@@ -164,27 +155,8 @@ NO_TEST = Yes
MODRUBY_TEST?=
.endif
-.if ${MODRUBY_REV} == jruby
-. if ${CONFIGURE_STYLE:L:Mext} || ${CONFIGURE_STYLE:L:Mextconf}
-ERRORS += "Fatal: Ruby C extensions are unsupported on JRuby"
-. else
-MODRUBY_RUN_DEPENDS= lang/jruby
-. endif
-.else
-MODRUBY_WANTLIB= ruby${MODRUBY_BINREV}
-MODRUBY_RUN_DEPENDS= lang/ruby/${MODRUBY_REV}
-MODRUBY_LIB_DEPENDS= ${MODRUBY_RUN_DEPENDS}
-.endif
-
MODRUBY_BUILD_DEPENDS= ${MODRUBY_RUN_DEPENDS}
-# location of ruby libraries
-.if ${MODRUBY_REV} == jruby
-MODRUBY_LIBDIR= ${LOCALBASE}/jruby/lib/ruby
-.else
-MODRUBY_LIBDIR= ${LOCALBASE}/lib/ruby
-.endif
-
# common directories for ruby extensions
# used to create docs and examples install path
MODRUBY_RELDOCDIR= share/doc/${MODRUBY_PKG_PREFIX}
@@ -193,16 +165,6 @@ MODRUBY_DOCDIR= ${PREFIX}/${MODRUBY_REL
MODRUBY_EXAMPLEDIR= ${PREFIX}/${MODRUBY_RELEXAMPLEDIR}
SUBST_VARS += ^MODRUBY_RELDOCDIR ^MODRUBY_RELEXAMPLEDIR
-.if ${MODRUBY_REV} == jruby
-MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x86_64/}-java
-MODRUBY_SITEDIR = jruby/lib/ruby/site_ruby/${MODRUBY_LIBREV}
-MODRUBY_SITEARCHDIR = ${MODRUBY_SITEDIR}/java
-.else
-MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x86_64/}-openbsd
-MODRUBY_SITEDIR = lib/ruby/site_ruby/${MODRUBY_LIBREV}
-MODRUBY_SITEARCHDIR = ${MODRUBY_SITEDIR}/${MODRUBY_ARCH}
-.endif
-
# Assume that we want to automatically add ruby to BUILD_DEPENDS
# and RUN_DEPENDS unless the port specifically requests not to.
MODRUBY_BUILDDEP?= Yes
@@ -283,6 +245,7 @@ PKG_ARCH= *
# Add build complete file to package so rubygems doesn't complain
# or build extensions at runtime
GEM_EXTENSIONS_DIR ?=
${GEM_LIB}/extensions/${MODRUBY_ARCH:S/i386/x86/}/${MODRUBY_REV}/${DISTNAME}
+GEM_EXTENSIONS_FILE ?= ${GEM_EXTENSIONS_DIR}/gem.build_complete
SUBST_VARS+= GEM_EXTENSIONS_DIR
PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/rubygems-ext.PLIST
. endif
@@ -357,6 +320,10 @@ MODRUBY_INSTALL_TARGET = \
fi; \
${INSTALL_DATA_DIR} ${GEM_ABS_PATH}; \
cd ${GEM_BASE_LIB} && mv * ${GEM_ABS_PATH}; \
+ if [ 'X' != "X${GEM_EXTENSIONS_FILE}" ]; then \
+ mkdir -p ${PREFIX}/${GEM_EXTENSIONS_DIR}; \
+ touch ${PREFIX}/${GEM_EXTENSIONS_FILE}; \
+ fi
chown -R ${SHAREOWN}:${SHAREGRP} ${GEM_ABS_PATH}
. if !target(do-build)