On 10/10 08:49, Jeremy Evans wrote: > tl;dr: > > * Make ruby 2.4 default ruby version > * Remove ruby 1.8, 2.1, 2.2 > * Remove ruby-do_* and ruby-swift-db-*
Here's a diff for ruby.port.mk reflecting the changes proposed: * Remove support for ruby 1.8, 2.1, and 2.2 * Switch default version to ruby 2.4 * Remove support for ruby extconf and ruby setup CONFIGURE_STYLEs The ruby extconf CONFIGURE_STYLE is currently only used by databases/ruby-bdb, which will be removed soon (it was one of the dependencies for the recently removed gonzui). The ruby setup CONFIGURE_STYLE is currently only used by devel/ruby-gems, which will also be removed soon. Thanks, Jeremy Index: ruby.port.mk =================================================================== RCS file: /cvs/ports/lang/ruby/ruby.port.mk,v retrieving revision 1.90 diff -u -p -r1.90 ruby.port.mk --- ruby.port.mk 6 Jan 2017 16:03:54 -0000 1.90 +++ ruby.port.mk 15 Oct 2017 21:43:24 -0000 @@ -5,15 +5,15 @@ CATEGORIES+= lang/ruby # Whether the ruby module should automatically add FLAVORs. -# If left blank, does so only for gem and extconf ports. -.if ${CONFIGURE_STYLE:L:Mgem} || ${CONFIGURE_STYLE:L:Mextconf} +# If left blank, does so only for gem ports. +.if ${CONFIGURE_STYLE:L:Mgem} MODRUBY_HANDLE_FLAVORS ?= Yes .else MODRUBY_HANDLE_FLAVORS ?= No .endif # This allows you to build packages for multiple ruby versions and -# implementations using the same port directory for gem and extconf based +# implementations using the same port directory for gem # ports. It does this by adding FLAVORS automatically, unless FLAVORS are # already defined or the port defines MODRUBY_REV to tie the port to a specific # ruby version. For example, JDBC gem ports want to set FLAVOR=jruby, since @@ -24,16 +24,15 @@ 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 ruby24 -. if !${CONFIGURE_STYLE:L:Mext} && !${CONFIGURE_STYLE:L:Mextconf} -FLAVORS+= jruby +FLAVORS= ruby23 ruby24 +. if !${CONFIGURE_STYLE:L:Mext} +FLAVORS+= jruby . endif . endif # 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-* and jruby uses jruby-*. In most cases, +# Most ruby versions 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} @@ -46,39 +45,29 @@ FULLPKGNAME?= ${MODRUBY_PKG_PREFIX}-${P SUBST_VARS+= GEM_BIN_SUFFIX GEM_MAN_SUFFIX FLAVOR?= -# Without a FLAVOR, assume the use of ruby 2.3. +# Without a FLAVOR, assume the use of ruby 2.4. . if empty(FLAVOR) -FLAVOR = ruby23 +FLAVOR = ruby24 . endif # Check for conflicting FLAVORs and set MODRUBY_REV appropriately based # on the FLAVOR. -. for i in ruby18 ruby21 ruby22 ruby23 ruby24 jruby +. for i in 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} || \ +. if ${FLAVOR:N$i:Mruby23} || \ ${FLAVOR:N$i:Mruby24} || \ ${FLAVOR:N$i:Mjruby} ERRORS += "Fatal: Conflicting flavors used: ${FLAVOR}" . endif . endif . endfor - -. if ${FLAVOR:Mruby18} -# Handle updates from older ruby 1.8 ports that didn't use the ruby18 -# FLAVOR by adding a @pkgpath entry to the PLIST. -SUBST_VARS+= PKGPATH -PKG_ARGS+= -f ${PORTSDIR}/lang/ruby/ruby18.PLIST -. endif . endif .endif -# The default ruby version to use for non-gem/extconf ports. Defaults to ruby -# 2.3 for consistency with the default ruby23 FLAVOR for gem/extconf ports. -MODRUBY_REV?= 2.3 +# The default ruby version to use for non-gem ports. Defaults to ruby +# 2.4 for consistency with the default ruby24 FLAVOR for gem ports. +MODRUBY_REV?= 2.4 # Because the jruby FLAVORs use same binary names but in # different directories, GEM_MAN_SUFFIX is used for the man pages to avoid @@ -103,19 +92,14 @@ MODRUBY_SITEDIR = jruby/lib/ruby/site_ru RAKE= ${RUBY} -S rake RSPEC= ${RUBY} -S spec RUBY= ${LOCALBASE}/jruby/bin/jruby +MODRUBY_RUN_DEPENDS= lang/jruby -. if ${CONFIGURE_STYLE:L:Mext} || ${CONFIGURE_STYLE:L:Mextconf} +. if ${CONFIGURE_STYLE:L:Mext} ERRORS += "Fatal: Ruby C extensions are unsupported on JRuby" -. else -MODRUBY_RUN_DEPENDS= lang/jruby . endif .else # not jruby -. if ${MODRUBY_REV} == 1.8 -MODRUBY_PKG_PREFIX = ruby -. endif - GEM_BIN_SUFFIX = ${MODRUBY_BINREV} MODRUBY_ARCH= ${MACHINE_ARCH:S/amd64/x86_64/}-openbsd MODRUBY_BINREV = ${MODRUBY_LIBREV:S/.//} @@ -144,11 +128,9 @@ MODRUBY_RSPEC3_DEPENDS = devel/ruby-rspe ERRORS += "Fatal: Unsupported MODRUBY_TEST value: ${MODRUBY_TEST}" . endif .else -. if ${CONFIGURE_STYLE:L:Mextconf} || ${CONFIGURE_STYLE:L:Mgem} || \ - ${CONFIGURE_STYLE:L:Msetup} +. if ${CONFIGURE_STYLE:L:Mgem} . if !target(do-test) -# Disable regress for extconf, gem, and setup based ports, since they -# won't use make check for test. +# Disable regress for gem ports, since they won't use make check for test. NO_TEST = Yes . endif . endif @@ -177,9 +159,6 @@ BUILD_DEPENDS+= ${MODRUBY_BUILD_DEPENDS RUN_DEPENDS+= ${MODRUBY_RUN_DEPENDS} .endif -.if ${MODRUBY_TEST:L:Mrake} && ${MODRUBY_REV} == 1.8 -TEST_DEPENDS+= devel/ruby-rake -.endif .if ${MODRUBY_TEST:L:Mrspec} TEST_DEPENDS+= ${MODRUBY_RSPEC_DEPENDS} .endif @@ -200,12 +179,9 @@ MODRUBY_ADJ_REPLACE= for pat in ${MODRUB MODRUBY_pre-configure += ${MODRUBY_ADJ_REPLACE} .endif -MODRUBY_WANTLIB+= c m -.if ${MODRUBY_REV} != 1.8 -MODRUBY_WANTLIB+= gmp pthread -.endif +MODRUBY_WANTLIB+= c gmp m pthread -.if ${CONFIGURE_STYLE:L:Mext} || ${CONFIGURE_STYLE:L:Mextconf} +.if ${CONFIGURE_STYLE:L:Mext} # Ruby C exensions are specific to an arch and are loaded as # shared libraries (not compiled into ruby), so make sure PKG_ARCH=* # is not set. @@ -219,35 +195,21 @@ WANTLIB+= ${MODRUBY_WANTLIB} LIB_DEPENDS+= ${MODRUBY_LIB_DEPENDS} .endif -.if ${CONFIGURE_STYLE:L:Mextconf} -CONFIGURE_STYLE= simple -CONFIGURE_SCRIPT= ${SETENV} ${MAKE_ENV} ${RUBY} extconf.rb -.elif ${CONFIGURE_STYLE:L:Mgem} +.if ${CONFIGURE_STYLE:L:Mgem} # All gems should be in the same directory on rubygems.org. MASTER_SITES?= ${MASTER_SITE_RUBYGEMS} EXTRACT_SUFX= .gem -# Require versions that no longer create the .require_paths files. -. if ${MODRUBY_REV} == 1.8 -BUILD_DEPENDS+= devel/ruby-gems>=1.8.23p3 -RUN_DEPENDS+= devel/ruby-gems>=1.3.7p0 -. elif ${MODRUBY_REV} == jruby -BUILD_DEPENDS+= lang/jruby>=1.6.5 -. elif ${MODRUBY_REV} == 2.1 -# Require version that fixes extensions directory path -BUILD_DEPENDS+= lang/ruby/2.1>=2.1.0p0 -. endif - # Pure ruby gem ports without C extensions are arch-independent. -. if !${CONFIGURE_STYLE:L:Mext} -PKG_ARCH= * -. elif ${MODRUBY_REV} != 1.8 +. if ${CONFIGURE_STYLE:L:Mext} # 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 +. else +PKG_ARCH= * . endif # PLIST magic. Set variables so that the same PLIST will work for @@ -272,8 +234,7 @@ 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. -GEM_FLAGS+= --local --no-rdoc --no-ri --no-force --verbose --backtrace \ - --user-install +GEM_FLAGS+= --local -N --no-force --verbose --backtrace --user-install _GEM_CONTENT= ${WRKDIR}/gem-content _GEM_DATAFILE= ${_GEM_CONTENT}/data.tar.gz _GEM_PATCHED= ${DISTNAME}${EXTRACT_SUFX} @@ -334,32 +295,11 @@ do-build: do-install: ${MODRUBY_INSTALL_TARGET} . endif - -.elif ${CONFIGURE_STYLE:L:Msetup} -MODRUBY_configure= \ - cd ${WRKSRC}; ${SETENV} ${CONFIGURE_ENV} ${RUBY} setup.rb config \ - --prefix=${PREFIX} ${CONFIGURE_ARGS}; - -MODRUBY_BUILD_TARGET = \ - cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${RUBY} setup.rb setup - -MODRUBY_INSTALL_TARGET = \ - cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${RUBY} setup.rb install \ - --prefix=${DESTDIR} - -. if !target(do-build) -do-build: - ${MODRUBY_BUILD_TARGET} -. endif -. if !target(do-install) -do-install: - ${MODRUBY_INSTALL_TARGET} -. endif .endif # These are mostly used by the non-gem ports. -SUBST_VARS+= ^MODRUBY_SITEARCHDIR ^MODRUBY_SITEDIR MODRUBY_LIBREV \ - MODRUBY_ARCH +SUBST_VARS+= ^MODRUBY_SITEARCHDIR ^MODRUBY_SITEDIR MODRUBY_LIBREV \ + MODRUBY_ARCH # test stuff @@ -373,11 +313,7 @@ MODRUBY_TEST_BIN ?= ${RSPEC} . elif ${MODRUBY_TEST:L:Mrspec3} MODRUBY_TEST_BIN ?= ${MODRUBY_BIN_RSPEC} . elif ${MODRUBY_TEST:L:Mtestrb} -. if ${MODRUBY_REV} == "1.8" || ${MODRUBY_REV} == "2.1" -MODRUBY_TEST_BIN ?= ${MODRUBY_BIN_TESTRB} -. else MODRUBY_TEST_BIN ?= ${RUBY} ${PORTSDIR}/lang/ruby/files/testrb.rb -. endif . elif ${MODRUBY_TEST:L:Mruby} MODRUBY_TEST_BIN ?= ${RUBY} . endif