ports/67171: [PATCH] bsd.port.mk: new variable DISTVERSION

Oliver Eikemeier eikemeier at fillmore-labs.com
Tue May 25 11:20:53 UTC 2004

>Number:         67171
>Category:       ports
>Synopsis:       [PATCH] bsd.port.mk: new variable DISTVERSION
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 25 04:20:26 PDT 2004
>Originator:     Oliver Eikemeier
>Release:        FreeBSD 4.10-STABLE i386
Fillmore Labs - http://www.fillmore-labs.com
System: FreeBSD nuuk.fillmore-labs.com 4.10-STABLE


It seems to be a FAQ how to make a vendor version number conforming
to the FreeBSD version numbering system. This patch introduces a new
variable DISTVERSION, that can be set instead of PORTVERSION and is
automagically converted in a conforming PORTVERSION. A colon quotes
the following character, which is useful to avoid automatically
inserted dots, e.g. 10beta3 would be interpreted as 10.b3, whereas
10:brelease3 is 10b3.


10Alpha3	-> 10.a3
3Beta7-pre2	-> 3.b7.p2
8:f_17		-> 8f.17


Since no current port sets DISTVERSION without setting DISTNAME, this
change should be unobtrusive.

Index: bsd.port.mk
RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.488
diff -u -r1.488 bsd.port.mk
--- bsd.port.mk	19 Apr 2004 23:39:52 -0000	1.488
+++ bsd.port.mk	25 May 2004 10:47:01 -0000
@@ -53,7 +53,7 @@
 # These variables are used to identify your port.
 # PORTNAME		- Name of software.  Mandatory.
-# PORTVERSION	- Version of software.  Mandatory.
+# PORTVERSION	- Version of software.  Mandatory when no DISTVERSION is given.
 # PORTREVISION	- Version of port.  Optional.  Commonly used to indicate
 #				  that an update has happened that affects the port
 #				  framework itself, but not the distributed software
@@ -72,9 +72,10 @@
 # UNIQUENAME	- A name for your port that is globally unique.  By default,
 # 				  this is set to ${LATEST_LINK} when LATEST_LINK is set,
 # 				  and to ${PKGNAMEPREFIX}${PORTNAME} otherwise.
+# DISTVERSION	- Vendor version of the distribution (default: ${PORTVERSION})
 # DISTNAME		- Name of port or distribution used in generating
 #				  WRKSRC and DISTFILES below (default:
 # CATEGORIES	- A list of descriptive categories into which this port falls.
 #				  Mandatory.
@@ -958,7 +959,7 @@
 # check for old, crufty, makefile types, part 1:
-.if !defined(PORTNAME) || !defined(PORTVERSION) || defined(PKGNAME)
+.if !defined(PORTNAME) || !( defined(PORTVERSION) || defined (DISTVERSION) ) || defined(PKGNAME)
 	@${ECHO_CMD} "Makefile error: you need to define PORTNAME and PORTVERSION instead of PKGNAME."
 	@${ECHO_CMD} "(This port is too old for your bsd.port.mk, please update it to match"
@@ -970,6 +971,9 @@
 .if ${PORTVERSION:M*[-_,]*}x != x
 BROKEN=			"PORTVERSION ${PORTVERSION} may not contain '-' '_' or ','"
+.elif defined(DISTVERSION)
+PORTVERSION=	${DISTVERSION:L:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^a-z0-9+]+/./g}
@@ -987,7 +991,7 @@
 .if !defined(PKGNAME)
 # These need to be absolute since we don't know how deep in the ports
 # tree we are and thus can't go relative.  They can, of course, be overridden


More information about the freebsd-ports-bugs mailing list