This updates ruby.port.mk so that it builds packages for ruby 2.0
using the ruby20 FLAVOR, and works after the upgrade of jruby to
1.7.
Tested on amd64 and i386. Looking for OKs to commit this when
ruby 2.0 and jruby 1.7 are committed.
Thanks,
Jeremy
Index: ruby.port.mk
===================================================================
RCS file: /cvs/ports/lang/ruby/ruby.port.mk,v
retrieving revision 1.55
diff -u -p -r1.55 ruby.port.mk
--- ruby.port.mk 9 Feb 2013 14:49:51 -0000 1.55
+++ ruby.port.mk 25 Feb 2013 20:33:20 -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 ruby19 rbx jruby
+FLAVORS?= ruby18 ruby19 ruby20 rbx jruby
. endif
# Instead of adding flavors to the end of the package name, we use
@@ -53,8 +53,9 @@ FLAVOR = ruby19
# Check for conflicting FLAVORs and set MODRUBY_REV appropriately based
# on the FLAVOR.
-. if ${FLAVOR:Mruby18}
-. if ${FLAVOR:Mruby19} || ${FLAVOR:Mjruby} || ${FLAVOR:Mrbx}
+. if ${FLAVOR:L:Mruby18}
+. if ${FLAVOR:L:Mruby19} || ${FLAVOR:L:Mruby20} || ${FLAVOR:L:Mjruby} \
+ || ${FLAVOR:L:Mrbx}
ERRORS+= "Fatal: Conflicting flavors used: ${FLAVOR}"
. endif
MODRUBY_REV= 1.8
@@ -64,20 +65,30 @@ MODRUBY_REV= 1.8
SUBST_VARS+= PKGPATH
PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/ruby18.PLIST
-. elif ${FLAVOR:Mruby19}
-. if ${FLAVOR:Mruby18} || ${FLAVOR:Mjruby} || ${FLAVOR:Mrbx}
+. elif ${FLAVOR:L:Mruby19}
+. if ${FLAVOR:L:Mruby18} || ${FLAVOR:L:Mruby20} || ${FLAVOR:L:Mjruby} \
+ || ${FLAVOR:L:Mrbx}
ERRORS+= "Fatal: Conflicting flavors used: ${FLAVOR}"
. endif
MODRUBY_REV= 1.9
-. elif ${FLAVOR:Mjruby}
-. if ${FLAVOR:Mruby18} || ${FLAVOR:Mruby19} || ${FLAVOR:Mrbx}
+. elif ${FLAVOR:L:Mruby20}
+. if ${FLAVOR:L:Mruby18} || ${FLAVOR:L:Mruby19} || ${FLAVOR:L:Mjruby} \
+ || ${FLAVOR:L:Mrbx}
+ERRORS+= "Fatal: Conflicting flavors used: ${FLAVOR}"
+. endif
+MODRUBY_REV= 2.0
+
+. elif ${FLAVOR:L:Mjruby}
+. if ${FLAVOR:L:Mruby18} || ${FLAVOR:L:Mruby19} || ${FLAVOR:L:Mruby20} \
+ || ${FLAVOR:L:Mrbx}
ERRORS+= "Fatal: Conflicting flavors used: ${FLAVOR}"
. endif
MODRUBY_REV= jruby
-. elif ${FLAVOR:Mrbx}
-. if ${FLAVOR:Mruby18} || ${FLAVOR:Mruby19} || ${FLAVOR:Mjruby}
+. elif ${FLAVOR:L:Mrbx}
+. if ${FLAVOR:L:Mruby18} || ${FLAVOR:L:Mruby19} || ${FLAVOR:L:Mruby20} \
+ || ${FLAVOR:L:Mjruby}
ERRORS+= "Fatal: Conflicting flavors used: ${FLAVOR}"
. endif
MODRUBY_REV= rbx
@@ -116,10 +127,15 @@ MODRUBY_LIBREV= 1.9.1
MODRUBY_BINREV= 19
MODRUBY_FLAVOR = ruby19
GEM_BIN_SUFFIX= 19
-# Have the ruby 1.9 manpage match the binary name.
+GEM_MAN_SUFFIX = ${GEM_BIN_SUFFIX}
+.elif ${MODRUBY_REV} == 2.0
+MODRUBY_LIBREV= 2.0
+MODRUBY_BINREV= 20
+MODRUBY_FLAVOR = ruby20
+GEM_BIN_SUFFIX= 20
GEM_MAN_SUFFIX = ${GEM_BIN_SUFFIX}
.elif ${MODRUBY_REV} == jruby
-MODRUBY_LIBREV= 1.8
+MODRUBY_LIBREV= 1.9
# Set these during development of ruby.port.mk to make sure
# nothing is broken. However, turn them off before committing,
@@ -149,9 +165,6 @@ RAKE= ${RUBY} -S rake
RSPEC= ${RUBY} -S spec
MODRUBY_BIN_RSPEC = ${RUBY} -S rspec
MODRUBY_BIN_TESTRB = ${RUBY} -S testrb
-
-# Without this, JRuby often fails with a memory error.
-MAKE_ENV+= JAVA_MEM='-Xms256m -Xmx256m'
.elif ${MODRUBY_REV} == rbx
RUBY= ${LOCALBASE}/bin/rbx
RAKE= ${RUBY} -S rake
@@ -346,7 +359,7 @@ SUBST_VARS+= ^GEM_LIB ^GEM_BIN DISTNAME
. if ${MODRUBY_REV} == jruby
GEM= ${RUBY} -S gem
GEM_BIN = jruby/bin
-GEM_LIB = jruby/lib/ruby/gems/${MODRUBY_LIBREV}
+GEM_LIB = jruby/lib/ruby/gems/1.8
GEM_BASE_LIB= ${GEM_BASE}/jruby/${MODRUBY_LIBREV}
. elif ${MODRUBY_REV} == rbx
GEM= ${RUBY} -S gem
@@ -362,6 +375,7 @@ GEM_BASE_LIB= ${GEM_BASE}/ruby/${MODRUBY
GEM_BASE= ${WRKDIR}/gem-tmp/.gem
GEM_ABS_PATH= ${PREFIX}/${GEM_LIB}
GEM_BASE_BIN= ${GEM_BASE_LIB}/bin
+
# We purposely do not install documentation for ruby gems, because
# the filenames are generated differently on different ruby versions,
# and most use 1 file per method, which is insane.
@@ -394,7 +408,7 @@ MODRUBY_BUILD_TARGET = \
pax -wz -s '/^\.\///' -f ${_GEM_DATAFILE}; \
cd ${_GEM_CONTENT} && tar -cf ${WRKDIR}/${_GEM_PATCHED} *.gz; \
mkdir -p ${GEM_BASE}; \
- env -i ${MAKE_ENV} HOME=${GEM_BASE}/.. GEM_HOME=${GEM_BASE} \
+ env -i ${MAKE_ENV} HOME=`dirname ${GEM_BASE}` GEM_HOME=${GEM_BASE} \
make="make V=1" \
${GEM} install ${GEM_FLAGS} ${WRKDIR}/${_GEM_PATCHED} \
-- ${CONFIGURE_ARGS}
@@ -477,9 +491,7 @@ MODRUBY_REGRESS_TARGET ?= test
. endif
MODRUBY_REGRESS_ENV ?=
-. if ${MODRUBY_REV} == 1.9
MODRUBY_REGRESS_ENV += RUBYLIB=.:"$$RUBYLIB"
-. endif
MODRUBY_REGRESS_DIR ?= ${WRKSRC}
do-regress:
cd ${MODRUBY_REGRESS_DIR} && ${SETENV} ${MAKE_ENV} HOME=${WRKBUILD} \