ports/109716: [UPDATE] devel/tcllib 1.9

Martin Matuska martin at matuska.org
Thu Mar 1 13:10:02 UTC 2007


>Number:         109716
>Category:       ports
>Synopsis:       [UPDATE] devel/tcllib 1.9
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 01 13:10:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Martin Matuska
>Release:        FreeBSD 6.2-RELEASE i386
>Organization:
>Environment:
System: FreeBSD 6.2-RELEASE i386 amd64
>Description:
Update of tcllib 1.9
- removed support for tcl83 (sak.tcl does not run tests)
- added support for tcl85
- added support for threaded tcl84 and tcl85 (WITH_THREADS)
    separate slave port tcllib-thread will be submitted
- added support for tcl85 via USE_TCL_VER=85
- updated to USE_TCL infrastructure
- added configure and pre-build dependencies for make test
- new patches (tcl 8.5 fixes for tests):

files/patch-modules-math-fuzzy.test:
URL: http://tcllib.cvs.sourceforge.net/tcllib/tcllib/modules/math/fuzzy.test?r1=1.5&r2=1.6

files/patch-modules-snit-snit.test:
fixed catch result for tcl 8.5 in: expose-1.1

files/patch-modules-struct-sets.test:
fixed catch result for tcl 8.5 in: set-1.0

Tinderbox log:
http://tinderbox.vx.sk/logs/6.2-FreeBSD-amd64/tcllib-1.9_2.log

portlint -A: no fatal errors

I am interested in maintaining the port so I am asking the maintainer
to pass maintainership to me, if he/she agrees.

>How-To-Repeat:
>Fix:
diff -Nbur devel/tcllib.orig/Makefile devel/tcllib/Makefile
--- devel/tcllib.orig/Makefile	Thu Mar  1 13:28:41 2007
+++ devel/tcllib/Makefile	Thu Mar  1 13:54:50 2007
@@ -7,24 +7,28 @@
 
 PORTNAME=		tcllib
 PORTVERSION=		1.9
-PORTREVISION=		1
-CATEGORIES=		devel tcl83 tcl84
+PORTREVISION=		2
+CATEGORIES=		devel tcl84
 MASTER_SITES=		${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	tcllib
+PKGNAMESUFFIX?=		${THREADS_SUFFIX}
 
 MAINTAINER=	mi at aldan.algebra.com
 COMMENT=	A collection of utility modules for Tcl
 
-BUILD_DEPENDS=	tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${TCL_VER:S/.//}
-
-TCL_VER?=	8.4
 USE_BZIP2=	yes
 GNU_CONFIGURE=	yes
 ALL_TARGET=	all
 MAKE_ENV+=	LANG=C
-SCRIPTS_ENV+=	TCL_VER=${TCL_VER} PATCH="${PATCH}"
 
-PLIST_SUB+=	PORTVERSION=${PORTVERSION}
+USE_TCL_VER?=	84
+
+.if ${USE_TCL_VER} != 84 && ${USE_TCL_VER} != 85
+IGNORE=	supported values for USE_TCL_VER are only 84 and 85
+.endif
+
+USE_TCL=	${USE_TCL_VER}
+USE_TCL_BUILD=	${USE_TCL_VER}
 
 MANN=	aes.n asn.n ansi_cmacros.n ansi_cctrl.n ansi_cattr.n           \
 	ansi_code.n ansi_ctrlu.n ansi_send.n autoproxy.n base32hex.n   \
@@ -58,7 +62,38 @@
 
 MANCOMPRESSED=	no
 
+PLIST_SUB+=	PORTVERSION=${PORTVERSION}
+
+.include <bsd.port.pre.mk>
+
+. if exists(${TCLSH})
+_TCL_IS_THREADED!=	${ECHO_CMD} 'puts [array names tcl_platform -exact threaded]' | ${TCLSH} || return 0
+.  if !defined(TCL_WITH_THREADS) && !defined(WITH_THREADS) && !empty(_TCL_IS_THREADED)
+TCL_WITH_THREADS=	yes
+.  endif
+. endif
+
+.if defined(TCL_WITH_THREADS) || defined(WITH_THREADS)
+. if defined(_TCL_IS_THREADED) && empty(_TCL_IS_THREADED)
+IGNORE=	tcl with threads is required. Please install tcl with WITH_THREADS defined or from lang/tcl${USE_TCL} port and try again
+. endif
+THREADS_SUFFIX=		-threads
+USE_TCL=	${USE_TCL_VER}-thread
+USE_TCL_BUILD=	${USE_TCL_VER}-thread
+CONFLICTS=	tcllib-1.*
+.include "${PORTSDIR}/Mk/bsd.tcl.mk"
+.else
+CONFLICTS=	tcllib-threads-1.*
+.endif
+
+LATEST_LINK=	tcllib${THREADS_SUFFIX}
+
+SCRIPTS_ENV+=	TCL_VER=${TCL_VER} PATCH="${PATCH}"
+
 post-patch:
+	# Ensure that configure looks for the right tclsh
+	@${REINPLACE_CMD} -e 's|\$$dir/tclsh\[8-9\]\*\$${EXEEXT}|${TCLSH}|g' \
+		-e 's|\$$dir/tclsh\*\$${EXEEXT}|${TCLSH}|g' ${WRKSRC}/configure
 	#
 	# Ensure, the detailed output of vendors' self-tests is
 	# available in addition to the pretty progress report:
@@ -66,12 +101,11 @@
 	${REINPLACE_CMD} -e 's,test run,test run -l testlog,' \
 		${WRKSRC}/Makefile.in
 
-.include <bsd.port.pre.mk>
-
 RUNTEST=	${SETENV} LANG=C DISPLAY= ${MAKE} -C ${WRKSRC} test
 MYID	!=	${ID} -u
 .if ${MYID} == 0
 RUNTEST:=	${SU_CMD:S/root/-m nobody/} "${RUNTEST}"
+
 pre-build:
 	#
 	# Preparing to run the tests as `nobody'
@@ -79,7 +113,7 @@
 	${FIND} ${WRKSRC} -type d | ${XARGS} ${CHOWN} nobody
 .endif
 
-test:
+test: configure pre-build
 	@set -x ; if ! ${RUNTEST};	\
 	then	\
 		${AWK} '$$NF == "FAILED" { echo = 1 }	\
diff -Nbur devel/tcllib.orig/files/patch-modules-math-fuzzy.test devel/tcllib/files/patch-modules-math-fuzzy.test
--- devel/tcllib.orig/files/patch-modules-math-fuzzy.test	Thu Jan  1 01:00:00 1970
+++ devel/tcllib/files/patch-modules-math-fuzzy.test	Wed Feb 28 18:21:24 2007
@@ -0,0 +1,24 @@
+--- modules/math/fuzzy.test	2006/01/24 05:10:01	1.5
++++ modules/math/fuzzy.test	2006/11/07 20:02:34	1.6
+@@ -168,6 +168,12 @@
+    set tol_le 0
+    set tol_lt 0
+ 
++   #
++   # Force Tcl8.4 or earlier behaviour in expanding numbers
++   #
++   set org_tcl_precision $tcl_precision
++   set tcl_precision 12
++
+    for { set i -1000 } { $i <= 1000 } { incr i } {
+       if { $i == 0 } continue
+ 
+@@ -192,6 +198,7 @@
+          set equal 0
+       }
+    }
++   set tcl_precision $org_tcl_precision
+    set equal
+ } 0
+ 
+
diff -Nbur devel/tcllib.orig/files/patch-modules-snit-snit.test devel/tcllib/files/patch-modules-snit-snit.test
--- devel/tcllib.orig/files/patch-modules-snit-snit.test	Thu Jan  1 01:00:00 1970
+++ devel/tcllib/files/patch-modules-snit-snit.test	Thu Mar  1 12:52:47 2007
@@ -0,0 +1,23 @@
+--- modules/snit/snit.test.orig	Thu Mar  1 12:39:28 2007
++++ modules/snit/snit.test	Thu Mar  1 12:52:09 2007
+@@ -5784,13 +5784,19 @@
+ #-----------------------------------------------------------------------
+ # expose statement
+ 
++if {[package vsatisfies [package present Tcl] 8.5]} {
++    set expose_msg "expose"
++} else {
++    set expose_msg "::snit::Comp.statement.expose"
++}
++
+ test expose-1.1 {can't expose nothing} -body {
+     type dog {
+ 	expose
+     }
+ } -returnCodes {
+     error
+-} -result [tcltest::wrongNumArgs ::snit::Comp.statement.expose {component ?as? ?methodname?} 0]
++} -result [tcltest::wrongNumArgs $expose_msg {component ?as? ?methodname?} 0]
+ 
+ test expose-1.2 {expose a component that's never installed} -body {
+     type dog {
diff -Nbur devel/tcllib.orig/files/patch-modules-struct-sets.test devel/tcllib/files/patch-modules-struct-sets.test
--- devel/tcllib.orig/files/patch-modules-struct-sets.test	Thu Jan  1 01:00:00 1970
+++ devel/tcllib/files/patch-modules-struct-sets.test	Thu Mar  1 12:59:16 2007
@@ -0,0 +1,20 @@
+--- modules/struct/sets.test.orig	Tue Jan 31 05:57:40 2006
++++ modules/struct/sets.test	Thu Mar  1 12:58:55 2007
+@@ -36,10 +36,16 @@
+ 
+ #----------------------------------------------------------------------
+ 
++if {[package vsatisfies [package present Tcl] 8.5]} {
++    set setop_msg setop
++} else {
++    set setop_msg ::struct::set::set
++}
++
+ test set-1.0 {nothing} {
+     catch {setop} msg
+     set msg
+-} [tcltest::wrongNumArgs {::struct::set::set} {cmd args} 0]
++} [tcltest::wrongNumArgs $setop_msg {cmd args} 0]
+ 
+ test set-1.1 {bogus} {
+     catch {setop foo} msg
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list