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

Reply via email to