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} \