Index: Uses/gem.mk =================================================================== --- Uses/gem.mk +++ Uses/gem.mk @@ -3,8 +3,9 @@ # Support rubygem packages # # Feature: gem -# Usage: USES=gem[:noautoplist] +# Usage: USES=gem[:noautoplist|:noflavors] # Valid args: noautoplist Don't generate the plist automatically +# noflavors Don't use flavors # # MAINTAINER: portmgr@FreeBSD.org @@ -12,7 +13,7 @@ _INCLUDE_USES_GEM_MK= yes -_valid_ARGS= noautoplist +_valid_ARGS= noautoplist noflavors # Sanity check .for arg in ${gem_ARGS} @@ -21,10 +22,22 @@ . endif .endfor -BUILD_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems -RUN_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems +.if empty(gem_ARGS:Mnoflavors) +_VALID_RUBY_VERSIONS= 2.4 2.5 2.6 +FLAVORS= ${RUBY_DEFAULT_VER:S/.//:S/^/rubygem/} +.for _VALID_RUBY_VERSION in ${_VALID_RUBY_VERSIONS} +.if !${_VALID_RUBY_VERSION:M${RUBY_DEFAULT_VER}} +FLAVORS+= ${_VALID_RUBY_VERSION:S/.//:S/^/rubygem/} +.endif +.endfor +PKGNAMEPREFIX?= ${FLAVOR}- +.else +PKGNAMEPREFIX?= rubygem${RUBY_VER:S/.//}- +.endif + +BUILD_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems@ruby${RUBY_VER:S/.//} +RUN_DEPENDS+= ${RUBYGEMBIN}:devel/ruby-gems@ruby${RUBY_VER:S/.//} -PKGNAMEPREFIX?= rubygem- EXTRACT_SUFX= .gem EXTRACT_ONLY= DIST_SUBDIR= rubygem Index: bsd.ruby.mk =================================================================== --- bsd.ruby.mk +++ bsd.ruby.mk @@ -48,6 +48,7 @@ # expression will be set to RUBY_PROVIDED, which is # left undefined if the result is nil, false or a # zero-length string. Implies USE_RUBY. +# USE_RUBY_FLAVORS - Set to build multiple flavors of ruby- port (not rubygem-) # USE_RUBYGEMS - Do not use this -- instead USES=gem # # [variables that each port should not (re)define] @@ -121,7 +122,21 @@ RUBY_DEFAULT_VER?= ${RUBY_DEFAULT} +.if empty(FLAVOR) RUBY_VER?= ${RUBY_DEFAULT_VER} +.else +RUBY_VER?= ${FLAVOR:S/^ruby//:S/^gem//:C/(.)/\1.\2/} +.endif + +_VALID_RUBY_VERSIONS= 2.4 2.5 2.6 +.if defined(USE_RUBY_FLAVORS) +FLAVORS= ${RUBY_DEFAULT_VER:S/.//:S/^/ruby/} +.for _VALID_RUBY_VERSION in ${_VALID_RUBY_VERSIONS} +.if !${_VALID_RUBY_VERSION:M${RUBY_DEFAULT_VER}} +FLAVORS+= ${_VALID_RUBY_VERSION:S/.//:S/^/ruby/} +.endif +.endfor +.endif .if defined(RUBY) .if !exists(${RUBY}) @@ -145,7 +160,7 @@ _RUBY_SITEDIR!= ${_RUBY_CONFIG} 'puts C["sitedir"]' _RUBY_VENDORDIR!= ${_RUBY_CONFIG} 'puts C["vendordir"]' .else -RUBY?= ${LOCALBASE}/bin/${RUBY_NAME} +RUBY?= ${LOCALBASE}/bin/ruby${RUBY_SUFFIX} .if defined(RUBY_VER) # When adding a version, please keep the comment in @@ -187,7 +202,7 @@ # Other versions # IGNORE= Only ruby 2.4, 2.5 and 2.6 are supported -_INVALID_RUBY_VER= 1 +_INVALID_RUBY_VER= ${RUBY_VER} . endif .endif # defined(RUBY_VER) Index: ruby-bio/Makefile =================================================================== --- ruby-bio/Makefile +++ ruby-bio/Makefile @@ -22,6 +22,7 @@ NO_ARCH= yes USES= shebangfix USE_RUBY= yes +USE_RUBY_FLAVORS= yes USE_RUBY_SETUP= yes SHEBANG_FILES= sample/biofetch.rb ruby_OLD_CMD= /usr/proj/bioruby/bin/ruby Index: ruby-bsearch/Makefile =================================================================== --- ruby-bsearch/Makefile +++ ruby-bsearch/Makefile @@ -14,6 +14,7 @@ COMMENT= Binary search library for Ruby USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_BUILD= yes Index: ruby-camellia/Makefile =================================================================== --- ruby-camellia/Makefile +++ ruby-camellia/Makefile @@ -16,6 +16,7 @@ LICENSE_FILE= ${WRKSRC}/License.txt USE_RUBY= yes +USE_RUBY_FLAVORS= yes USE_RUBY_SETUP= yes INSTALL_TARGET= site-install Index: ruby-escape/Makefile =================================================================== --- ruby-escape/Makefile +++ ruby-escape/Makefile @@ -13,6 +13,7 @@ COMMENT= Ruby library provides HTML/URI/shell escaping functions USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_BUILD= yes DOCS= ChangeLog README Index: ruby-format/Makefile =================================================================== --- ruby-format/Makefile +++ ruby-format/Makefile @@ -13,6 +13,7 @@ COMMENT= Perl like formats for Ruby USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_BUILD= yes Index: ruby-gd/Makefile =================================================================== --- ruby-gd/Makefile +++ ruby-gd/Makefile @@ -22,6 +22,7 @@ USE_RUBY= yes USE_RUBY_EXTCONF= yes +USE_RUBY_FLAVORS= yes RUBY_MODNAME= ${PORTNAME:tl} Index: ruby-gems/Makefile =================================================================== --- ruby-gems/Makefile +++ ruby-gems/Makefile @@ -5,6 +5,7 @@ PORTVERSION= 3.0.6 CATEGORIES= devel ruby MASTER_SITES= https://rubygems.org/rubygems/ +#PKGNAMEPREFIX= ${FLAVOR}- PKGNAMEPREFIX= ${RUBY_PKGNAMEPREFIX} DISTNAME= ruby${PORTNAME}-${PORTVERSION} DIST_SUBDIR= ruby @@ -19,6 +20,7 @@ USES= tar:tgz USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_ARCH= yes NO_BUILD= yes @@ -54,10 +56,20 @@ DOCS_VARS_OFF= RUBY_SETUP_OPTIONS+="--no-ri --no-rdoc" +.include + +.if ${RUBY_VER} == ${RUBY_DEFAULT_VER} +PLIST_SUB+= IF_DEFAULT="" +.else +PLIST_SUB+= IF_DEFAULT="@comment " +.endif + do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/${GEMS_VER_DIR} cd ${WRKSRC}/ && ${SETENV} ${GEMS_ENV} ${RUBY} ${RUBY_SETUP} ${RUBY_SETUP_OPTIONS} +.if ${RUBY_VER} == ${RUBY_DEFAULT_VER} ${LN} -sf gem${RUBY_VER_SHORT} ${STAGEDIR}${PREFIX}/bin/gem +.endif # # Find all RDOC and RI files @@ -65,4 +77,4 @@ post-install-DOCS-on: cd ${STAGEDIR}${PREFIX}/ && ${FIND} -ds ${GEMS_DOC_DIR}/ ! -type d >> ${TMPPLIST} -.include +.include Index: ruby-romkan/Makefile =================================================================== --- ruby-romkan/Makefile +++ ruby-romkan/Makefile @@ -13,6 +13,7 @@ COMMENT= Romaji <-> Kana conversion library for Ruby USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_BUILD= yes Index: ruby-setup.rb/Makefile =================================================================== --- ruby-setup.rb/Makefile +++ ruby-setup.rb/Makefile @@ -14,6 +14,7 @@ COMMENT= Common installer script for ruby packages USE_RUBY= yes +USE_RUBY_FLAVORS= yes NO_BUILD= yes Index: ruby-taglib/Makefile =================================================================== --- ruby-taglib/Makefile +++ ruby-taglib/Makefile @@ -20,6 +20,7 @@ NO_ARCH= yes NO_BUILD= yes USE_RUBY= yes +USE_RUBY_FLAVORS= yes USES= tar:bzip2 OPTIONS_DEFINE= DOCS Index: ruby-tokyocabinet/Makefile =================================================================== --- ruby-tokyocabinet/Makefile +++ ruby-tokyocabinet/Makefile @@ -16,6 +16,7 @@ USE_RUBY= yes USE_RUBY_EXTCONF= yes +USE_RUBY_FLAVORS= yes INSTALL_TARGET= site-install Index: ruby-uconv/Makefile =================================================================== --- ruby-uconv/Makefile +++ ruby-uconv/Makefile @@ -12,6 +12,7 @@ USE_RUBY= yes USE_RUBY_EXTCONF= yes +USE_RUBY_FLAVORS= yes WRKSRC= ${WRKDIR}/${PORTNAME} INSTALL_TARGET= site-install Index: ruby-xmlparser/Makefile =================================================================== --- ruby-xmlparser/Makefile +++ ruby-xmlparser/Makefile @@ -21,6 +21,7 @@ USES= perl5 USE_RUBY= yes USE_RUBY_EXTCONF= yes +USE_RUBY_FLAVORS= yes WRKSRC= ${WRKDIR}/${PORTNAME} CONFIGURE_ARGS= --with-perl-enc-map=${SITE_ARCH}/XML/Parser/Encodings Index: rubygem-glib2/Makefile =================================================================== --- rubygem-glib2/Makefile +++ rubygem-glib2/Makefile @@ -11,8 +11,8 @@ LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/COPYING.LIB -RUN_DEPENDS= rubygem-native-package-installer>=1.0.3:devel/rubygem-native-package-installer \ - rubygem-pkg-config>=1.3.5:devel/rubygem-pkg-config +RUN_DEPENDS= ${FLAVOR}-native-package-installer>=1.0.3:devel/rubygem-native-package-installer@${FLAVOR} \ + ${FLAVOR}-pkg-config>=1.3.5:devel/rubygem-pkg-config@${FLAVOR} USES= gem gnome USE_GNOME= glib20