ports/179830: MK/bsd.ruby.mk: RUBY_PROVIDED does not returned correct result

TAKATSU Tomonari tota at FreeBSD.org
Sat Jun 22 05:30:00 UTC 2013


>Number:         179830
>Category:       ports
>Synopsis:       MK/bsd.ruby.mk: RUBY_PROVIDED does not returned correct result
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jun 22 05:30:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     TAKATSU Tomonari
>Release:        FreeBSD 9.1-RELEASE-p3 i386
>Organization:
none (personal)
>Environment:
FreeBSD z210 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:11:52 UTC 2013 root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
>Description:
RUBY_VERSION has consisted of RUBY_RELVERSION and RUBY_PATCHLEVEL since r181277.

The value of RUBY_VERSION_CODE which is defined as RUBY_VERSION:S/.//g is
influenced by the number of digits of RUBY_PATCHLEVEL

For examples:

 In r312871
  RUBY_RELVERSION is 1.9.3, 
  RUBY_PATCHLEVEL is 385

  -> RUBY_VERSION_CODE is 193385

  RUBY_RELVERSION is 2.0.0, 
  RUBY_PATCHLEVEL is 0

  -> RUBY_VERSION_CODE is 2000

Consequently, RUBY_PROVIDED does not returned correct result
if RUBY_REQUIRE is defined as Ruby >= 193 in RUBY_DEFAULT_VER=2.0 environment.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

Index: bsd.ruby.mk
===================================================================
--- bsd.ruby.mk	(revision 321544)
+++ bsd.ruby.mk	(working copy)
@@ -69,10 +69,15 @@
 #
 # RUBY_PKGNAMEPREFIX	- Common PKGNAMEPREFIX for ruby ports
 #			  (default: ruby${RUBY_SUFFIX}-)
-# RUBY_VERSION		- Full version of ruby without preview/beta suffix in
+# RUBY_RELVERSION	- Full version of ruby without preview/beta suffix in
 #			  the form of `x.y.z' (see below for current value).
-# RUBY_VERSION_CODE	- Full integer version of ruby without preview/beta
-#			  suffix in the form of `xyz'.
+# RUBY_RELVERSION_CODE	- Integer version of RUBY_RELVERSION in the form of
+#			  `xyz'.
+# RUBY_VERSION		- Composite version of RUBY_RELVERSION and
+#			  RUBY_PATCHLEVEL in the form of `x.y.z.p'.
+#			  (default: ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL})
+# RUBY_VERSION_CODE	- Composite integer version of RUBY_VERSION in the form
+#			  of `xyzp'.
 # RUBY_PORTVERSION	- PORTVERSION for the standard ruby ports (ruby,
 #			  ruby-gdbm, etc.).
 # RUBY_PORTREVISION	- PORTREVISION for the standard ruby ports.
@@ -275,6 +280,7 @@
 
 RUBY_WRKSRC?=		${WRKDIR}/${RUBY_DISTNAME}
 
+RUBY_RELVERSION_CODE?=	${RUBY_RELVERSION:S/.//g}
 RUBY_VERSION_CODE?=	${RUBY_VERSION:S/.//g}
 RUBY_VER=		${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/}
 RUBY_SUFFIX=		${RUBY_VER:S/.//}
@@ -362,7 +368,7 @@
 
 .if exists(${RUBY})
 RUBY_PROVIDED!=		${RUBY} -e '\
-	Ruby = ${RUBY_VERSION_CODE}; \
+	Ruby = ${RUBY_RELVERSION_CODE}; \
 	value = begin; ${RUBY_REQUIRE}; end and puts value'
 .else
 RUBY_PROVIDED=		"should be"	# the latest version is going to be installed


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list