From rebum@mail.vx.sk  Mon Feb 12 12:15:56 2007
Return-Path: <rebum@mail.vx.sk>
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id A3E6416A408
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 12 Feb 2007 12:15:56 +0000 (UTC)
	(envelope-from rebum@mail.vx.sk)
Received: from mail.vx.sk (neo.vx.sk [88.198.35.14])
	by mx1.freebsd.org (Postfix) with ESMTP id 3659313C471
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 12 Feb 2007 12:15:56 +0000 (UTC)
	(envelope-from rebum@mail.vx.sk)
Received: from localhost (localhost [127.0.0.1])
	by mail.vx.sk (Postfix) with ESMTP id B00813F449
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 12 Feb 2007 13:15:54 +0100 (CET)
Received: from mail.vx.sk ([127.0.0.1])
	by localhost (mail.vx.sk [127.0.0.1]) (amavisd-new, port 10024)
	with LMTP id zbS8R1+RAX5B for <FreeBSD-gnats-submit@freebsd.org>;
	Mon, 12 Feb 2007 13:15:51 +0100 (CET)
Received: by mail.vx.sk (Postfix, from userid 1001)
	id BA0B43F458; Mon, 12 Feb 2007 13:15:51 +0100 (CET)
Message-Id: <20070212121551.BA0B43F458@mail.vx.sk>
Date: Mon, 12 Feb 2007 13:15:51 +0100 (CET)
From: Martin Matuska <martin@matuska.org>
Reply-To:
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [PATCH] improved threads support for Mk/bsd.tcl.mk
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         109082
>Category:       ports
>Synopsis:       [PATCH] improved threads support for Mk/bsd.tcl.mk
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    portmgr
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 12 12:20:13 GMT 2007
>Closed-Date:    Mon Feb 12 18:23:04 GMT 2007
>Last-Modified:  Mon Feb 12 18:23:04 GMT 2007
>Originator:     Martin Matuska
>Release:        FreeBSD 6.2-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD 6.2-RELEASE amd64/i386
>Description:
Improved threads support for bsd.tcl.mk
>How-To-Repeat:
>Fix:
--- Mk/bsd.tcl.mk.orig	Mon Feb 12 10:30:50 2007
+++ Mk/bsd.tcl.mk	Mon Feb 12 12:13:00 2007
@@ -13,9 +13,9 @@
 #				  different TCL versions the version can be specified directly.
 #				  If version is not specified (USE_TCL=yes) then the latest
 #				  version is used (8.4 currently).
-#				  Available values are: 85, 85-thread, 84, 84-thread, 83, 82,
-#				  81 and 80.
+#				  Available values are: 85, 84, 83, 82, 81 and 80.
 # USE_TCL_BUILD	- Build time dependency on tcl. Same semantics as USE_TCL.
+# USE_TCL_THREADS 	- If set, a threaded build of TCL is required.
 #
 # USE_TK		- Depend on tk to run. In case of incompatible APIs of different
 #				  TK versions the version can be specified directly. If version
@@ -49,7 +49,23 @@
 
 .if defined(USE_TCL) || defined(USE_TCL_BUILD)
 
-_TCL_VERSIONS=	85 85-thread 84 84-thread 83 82 81 80
+_TCL_VERSIONS=	85 84 84 83 82 81 80
+_TCL_THREADED_VERSIONS= 85 84 81
+
+# Support for obsolete 84-thread and 85-thread definitions
+.if defined(USE_TCL)
+. if ${USE_TCL} == "84-thread" || ${USE_TCL} == "85-thread"
+USE_TCL=		${USE_TCL:S/-thread//}
+USE_TCL_THREADS=	yes
+. endif
+.endif
+
+.if defined(USE_TCL_BUILD)
+. if ${USE_TCL_BUILD} == "84-thread" || ${USE_TCL_BUILD} == "85-thread"
+USE_TCL_BUILD=		${USE_TCL_BUILD:S/-thread//}
+USE_TCL_THREADS=	yes
+. endif
+.endif
 
 .if defined(USE_TCL)
 _RUN=		yes
@@ -60,26 +76,36 @@
 _BUILD=		yes
 .endif
 
+
 .if ${USE_TCL} == "yes"
 USE_TCL=	84
 .endif
 
-TCL_VER:=	${USE_TCL:S/8/8./:S/-thread//}
+TCL_VER:=	${USE_TCL:S/8/8./}
 
 # Special case
 .if ${USE_TCL} == "81"
-USE_TCL=	tcl81-thread
+USE_TCL_THREADS=	yes
+.endif
+
+# Check if a tcl build with threads is required
+.if defined(USE_TCL_THREADS)
+_TCL_THREADED=		_THREADED
+_TCL_THREADED_PORT=	-thread
+_TCL_THREADED_IGNORE=	(with threads)
 .endif
 
 _FOUND=		no
-.for ver in ${_TCL_VERSIONS}
+
+_FOUND=		no
+.for ver in ${_TCL${_TCL_THREADED}_VERSIONS}
 . if ${USE_TCL} == "${ver}"
 _FOUND=		yes
 .  if defined(_BUILD)
-BUILD_DEPENDS+=	tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL}
+BUILD_DEPENDS+=	tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL}${_TCL_THREADED_PORT}
 .  endif
 .  if defined(_RUN)
-RUN_DEPENDS+=	tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL}
+RUN_DEPENDS+=	tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL}${_TCL_THREADED_PORT}
 .  endif
 TCL_INCLUDEDIR=	${LOCALBASE}/include/tcl${TCL_VER}
 TCL_LIBDIR=		${LOCALBASE}/lib/tcl${TCL_VER}
@@ -88,8 +114,16 @@
 .endfor
 
 .if ${_FOUND} == "no"
-IGNORE=		Unknown TCL version specified: ${USE_TCL}
+IGNORE=		Unknown TCL version specified: ${USE_TCL} ${_TCL_THREADED_IGNORE}
 .endif
+
+.if defined(USE_TCL_THREADS) && exists(${TCLSH})
+TCL_THREADED!=  echo 'puts [array names tcl_platform -exact threaded]' | ${TCLSH} || return 0
+. if empty(TCL_THREADED)
+IGNORE= TCL ${TCL_VER} with threads required. The installed version does not support threads
+. endif
+.endif
+
 .endif # defined(USE_TCL) || defined(USE_TCL_BUILD)
 
 .if defined(USE_TK) || defined(USE_TK_BUILD)
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->portmgr 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Mon Feb 12 13:04:06 UTC 2007 
Responsible-Changed-Why:  
This looks like this may need a testing run on the cluster. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=109082 

From: Martin Matuska <martin@matuska.org>
To: bug-followup@FreeBSD.org,  martin@matuska.org
Cc:  
Subject: Re: ports/109082: [PATCH] improved threads support for Mk/bsd.tcl.mk
Date: Mon, 12 Feb 2007 17:01:43 +0100

 This is a multi-part message in MIME format.
 --------------090802010205080809070503
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 7bit
 
 Here is an improved version of the patch attached. Please consider this
 one, it is backwards-compatible to previous Mk/bsd.tcl.mk knobs.
 The main problem is, that we can't have both threaded and non-threaded
 versions of TCL installed.
 This version enables ports to correctly use both threaded and
 non-threaded versions, depending on which one is installed.
 
 Thoughts:
 If the threaded version is installed, ports that do not explicitly want
 it install but depends on the non-threaded version,
 which is NOT installed (= WRONG BEHAIVIOUR)
 For the future, a structure with knobs like BDB in Mk/bsd.databases.mk
 might be desirable (e.g WITH_TCL=84+).
 I will try to write something like the it.
 
 Result:
 The patch the following behaiviour:
 
 1.) USE_TCL_THREADS is not set
   a) no TCL is installed: TCL without threads installs (= old behaiviour)
   b) TCL without threads is installed: port uses TCL without threads as
 a dependency
   c) TCL with threads is installed: port uses TCL with threads as a
 dependency
 
 2.) USE_TCL_THREADS is set to "no"
   a) no TCL is installed: TCL without threads installs
   b) TCL without threads is installed: port uses TCL without threads as
 a dependency
   c) TCL with threads is installed: port is marked as IGNORE
 
 3.) USE_TCL_THREADS is set to "yes" (or anything else)
   a) no TCL is installed: TCL with threads installs
   b) TCL without threads is installed: port is marked as IGNORE
   c) TCL with threads is installed: port uses TCL with threads as a
 dependency
 
 Related PR's (adding CONFLICTS between tcl and tcl-threads):
 ports/108971
 ports/108972
 
 --------------090802010205080809070503
 Content-Type: text/plain;
  name="tclmk.patch"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="tclmk.patch"
 
 LS0tIGJzZC50Y2wubWsub3JpZwlNb24gRmViIDEyIDEwOjMwOjUwIDIwMDcKKysrIGJzZC50
 Y2wubWsJTW9uIEZlYiAxMiAxNTozMjo0MCAyMDA3CkBAIC0xMywxMCArMTMsMTQgQEAKICMJ
 CQkJICBkaWZmZXJlbnQgVENMIHZlcnNpb25zIHRoZSB2ZXJzaW9uIGNhbiBiZSBzcGVjaWZp
 ZWQgZGlyZWN0bHkuCiAjCQkJCSAgSWYgdmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkIChVU0Vf
 VENMPXllcykgdGhlbiB0aGUgbGF0ZXN0CiAjCQkJCSAgdmVyc2lvbiBpcyB1c2VkICg4LjQg
 Y3VycmVudGx5KS4KLSMJCQkJICBBdmFpbGFibGUgdmFsdWVzIGFyZTogODUsIDg1LXRocmVh
 ZCwgODQsIDg0LXRocmVhZCwgODMsIDgyLAotIwkJCQkgIDgxIGFuZCA4MC4KKyMJCQkJICBB
 dmFpbGFibGUgdmFsdWVzIGFyZTogODUsIDg0LCA4MywgODIsIDgxIGFuZCA4MC4KICMgVVNF
 X1RDTF9CVUlMRAktIEJ1aWxkIHRpbWUgZGVwZW5kZW5jeSBvbiB0Y2wuIFNhbWUgc2VtYW50
 aWNzIGFzIFVTRV9UQ0wuCiAjCisjIFVTRV9UQ0xfVEhSRUFEUyAJLSBpZiB1bnNldCwgbm9u
 LXRocmVhZGVkIFRDTCBpcyByZXF1aXJlZCBieSBkZWZhdWx0LiAKKyMJCQkgIElmIGEgdGhy
 ZWFkZWQgdmVyc2lvbiBpcyBpbnN0YWxsZWQsIHBvcnQgdXNlcyB0aGUgdGhyZWFkZWQgdmVy
 c2lvbi4KKyMJCQkgIGlmIHNldCB0byAieWVzIiwgYSB0aHJlYWRlZCBidWlsZCBvZiBUQ0wg
 aXMgYWx3YXlzIHJlcXVpcmVkLgorIwkJCSAgaWYgc2V0IHRvICJubyIsIGEgbm9uLXRocmVh
 ZGVkIGJ1aWxkIG9mIFRDTCBpcyBhbHdheXMgcmVxdWlyZWQKKyMKICMgVVNFX1RLCQktIERl
 cGVuZCBvbiB0ayB0byBydW4uIEluIGNhc2Ugb2YgaW5jb21wYXRpYmxlIEFQSXMgb2YgZGlm
 ZmVyZW50CiAjCQkJCSAgVEsgdmVyc2lvbnMgdGhlIHZlcnNpb24gY2FuIGJlIHNwZWNpZmll
 ZCBkaXJlY3RseS4gSWYgdmVyc2lvbgogIwkJCQkgIGlzIG5vdCBzcGVjaWZpZWQgKFVTRV9U
 Sz15ZXMpIHRoZW4gdGhlIGxhdGVzdCB2ZXJzaW9uIGlzCkBAIC00OSw3ICs1MywyMyBAQAog
 CiAuaWYgZGVmaW5lZChVU0VfVENMKSB8fCBkZWZpbmVkKFVTRV9UQ0xfQlVJTEQpCiAKLV9U
 Q0xfVkVSU0lPTlM9CTg1IDg1LXRocmVhZCA4NCA4NC10aHJlYWQgODMgODIgODEgODAKK19U
 Q0xfVkVSU0lPTlM9CTg1IDg0IDg0IDgzIDgyIDgxIDgwCitfVENMX1RIUkVBREVEX1ZFUlNJ
 T05TPSA4NSA4NCA4MQorCisjIFN1cHBvcnQgZm9yIG9ic29sZXRlIDg0LXRocmVhZCBhbmQg
 ODUtdGhyZWFkIGRlZmluaXRpb25zCisuaWYgZGVmaW5lZChVU0VfVENMKQorLiBpZiAke1VT
 RV9UQ0x9ID09ICI4NC10aHJlYWQiIHx8ICR7VVNFX1RDTH0gPT0gIjg1LXRocmVhZCIKK1VT
 RV9UQ0w9CQkke1VTRV9UQ0w6Uy8tdGhyZWFkLy99CitVU0VfVENMX1RIUkVBRFM9CXllcwor
 LiBlbmRpZgorLmVuZGlmCisKKy5pZiBkZWZpbmVkKFVTRV9UQ0xfQlVJTEQpCisuIGlmICR7
 VVNFX1RDTF9CVUlMRH0gPT0gIjg0LXRocmVhZCIgfHwgJHtVU0VfVENMX0JVSUxEfSA9PSAi
 ODUtdGhyZWFkIgorVVNFX1RDTF9CVUlMRD0JCSR7VVNFX1RDTF9CVUlMRDpTLy10aHJlYWQv
 L30KK1VTRV9UQ0xfVEhSRUFEUz0JeWVzCisuIGVuZGlmCisuZW5kaWYKIAogLmlmIGRlZmlu
 ZWQoVVNFX1RDTCkKIF9SVU49CQl5ZXMKQEAgLTYwLDM2ICs4MCw2MyBAQAogX0JVSUxEPQkJ
 eWVzCiAuZW5kaWYKIAorCiAuaWYgJHtVU0VfVENMfSA9PSAieWVzIgogVVNFX1RDTD0JODQK
 IC5lbmRpZgogCi1UQ0xfVkVSOj0JJHtVU0VfVENMOlMvOC84Li86Uy8tdGhyZWFkLy99CitU
 Q0xfVkVSOj0JJHtVU0VfVENMOlMvOC84Li99CiAKICMgU3BlY2lhbCBjYXNlCiAuaWYgJHtV
 U0VfVENMfSA9PSAiODEiCi1VU0VfVENMPQl0Y2w4MS10aHJlYWQKK1VTRV9UQ0xfVEhSRUFE
 Uz0JeWVzCisuZW5kaWYKKworIyBDaGVjayBpZiBhIHRjbCBidWlsZCB3aXRoIHRocmVhZHMg
 aXMgcmVxdWlyZWQKKy5pZiBkZWZpbmVkKFVTRV9UQ0xfVEhSRUFEUykgJiYgJHtVU0VfVENM
 X1RIUkVBRFN9ICE9ICJubyIKK19UQ0xfVEhSRUFERUQ9CQlfVEhSRUFERUQKK19UQ0xfVEhS
 RUFERURfUE9SVD0JLXRocmVhZAorX1RDTF9USFJFQURFRF9JR05PUkU9CSh3aXRoIHRocmVh
 ZHMpCiAuZW5kaWYKIAogX0ZPVU5EPQkJbm8KLS5mb3IgdmVyIGluICR7X1RDTF9WRVJTSU9O
 U30KKy5mb3IgdmVyIGluICR7X1RDTCR7X1RDTF9USFJFQURFRH1fVkVSU0lPTlN9CiAuIGlm
 ICR7VVNFX1RDTH0gPT0gIiR7dmVyfSIKIF9GT1VORD0JCXllcworCitUQ0xfSU5DTFVERURJ
 Uj0JCSR7TE9DQUxCQVNFfS9pbmNsdWRlL3RjbCR7VENMX1ZFUn0KK1RDTF9MSUJESVI9CQkk
 e0xPQ0FMQkFTRX0vbGliL3RjbCR7VENMX1ZFUn0KK1RDTFNIPQkJCSR7TE9DQUxCQVNFfS9i
 aW4vdGNsc2gke1RDTF9WRVJ9CisKKyMgQ2hlY2sgaWYgYSB0aHJlYWRlZCBvciBub24tdGhy
 ZWFkZWQgVENMIGlzIGluc3RhbGxlZAorLiAgaWYgZXhpc3RzKCR7VENMU0h9KQorX1RDTF9J
 U19USFJFQURFRCE9ICBlY2hvICdwdXRzIFthcnJheSBuYW1lcyB0Y2xfcGxhdGZvcm0gLWV4
 YWN0IHRocmVhZGVkXScgfCAke1RDTFNIfSB8fCByZXR1cm4gMAorLiAgIGlmICR7X1RDTF9J
 U19USFJFQURFRH0gIT0gInRocmVhZGVkIgorLiAgICBpZiBkZWZpbmVkKFVTRV9UQ0xfVEhS
 RUFEUykgJiYgJHtVU0VfVENMX1RIUkVBRFN9ICE9ICJubyIKK0lHTk9SRT0gVENMICR7VENM
 X1ZFUn0gd2l0aCB0aHJlYWRzIHJlcXVpcmVkLiBUaGUgaW5zdGFsbGVkIHZlcnNpb24gZG9l
 cyBub3Qgc3VwcG9ydCB0aHJlYWRzCisuICAgIGVuZGlmCisuICAgZWxzZQorLiAgICBpZiBk
 ZWZpbmVkKFVTRV9UQ0xfVEhSRUFEUykgJiYgJHtVU0VfVENMX1RIUkVBRFN9ID09ICJubyIK
 K0lHTk9SRT0gVENMICR7VENMX1ZFUn0gd2l0aG91dCB0aHJlYWRzIHJlcXVpcmVkLiBUaGUg
 aW5zdGFsbGVkIHZlcnNpb24gdXNlcyB0aHJlYWRzCisuICAgIGVsc2UKK19UQ0xfVEhSRUFE
 RURfUE9SVD0JLXRocmVhZAorLiAgICBlbmRpZgorLiAgIGVuZGlmCisuICBlbmRpZgorCiAu
 ICBpZiBkZWZpbmVkKF9CVUlMRCkKLUJVSUxEX0RFUEVORFMrPQl0Y2xzaCR7VENMX1ZFUn06
 JHtQT1JUU0RJUn0vbGFuZy90Y2wke1VTRV9UQ0x9CitCVUlMRF9ERVBFTkRTKz0JdGNsc2gk
 e1RDTF9WRVJ9OiR7UE9SVFNESVJ9L2xhbmcvdGNsJHtVU0VfVENMfSR7X1RDTF9USFJFQURF
 RF9QT1JUfQogLiAgZW5kaWYKIC4gIGlmIGRlZmluZWQoX1JVTikKLVJVTl9ERVBFTkRTKz0J
 dGNsc2gke1RDTF9WRVJ9OiR7UE9SVFNESVJ9L2xhbmcvdGNsJHtVU0VfVENMfQorUlVOX0RF
 UEVORFMrPQl0Y2xzaCR7VENMX1ZFUn06JHtQT1JUU0RJUn0vbGFuZy90Y2wke1VTRV9UQ0x9
 JHtfVENMX1RIUkVBREVEX1BPUlR9CiAuICBlbmRpZgotVENMX0lOQ0xVREVESVI9CSR7TE9D
 QUxCQVNFfS9pbmNsdWRlL3RjbCR7VENMX1ZFUn0KLVRDTF9MSUJESVI9CQkke0xPQ0FMQkFT
 RX0vbGliL3RjbCR7VENMX1ZFUn0KLVRDTFNIPQkJCSR7TE9DQUxCQVNFfS9iaW4vdGNsc2gk
 e1RDTF9WRVJ9CiAuIGVuZGlmCiAuZW5kZm9yCiAKIC5pZiAke19GT1VORH0gPT0gIm5vIgot
 SUdOT1JFPQkJVW5rbm93biBUQ0wgdmVyc2lvbiBzcGVjaWZpZWQ6ICR7VVNFX1RDTH0KK0lH
 Tk9SRT0JCVVua25vd24gVENMIHZlcnNpb24gc3BlY2lmaWVkOiAke1VTRV9UQ0x9ICR7X1RD
 TF9USFJFQURFRF9JR05PUkV9CiAuZW5kaWYKKwogLmVuZGlmICMgZGVmaW5lZChVU0VfVENM
 KSB8fCBkZWZpbmVkKFVTRV9UQ0xfQlVJTEQpCiAKIC5pZiBkZWZpbmVkKFVTRV9USykgfHwg
 ZGVmaW5lZChVU0VfVEtfQlVJTEQpCg==
 --------------090802010205080809070503--

From: Pav Lucistnik <pav@FreeBSD.org>
To: Martin Matuska <martin@matuska.org>
Cc: portmgr@FreeBSD.org, bug-followup@FreeBSD.org
Subject: Re: ports/109082: [PATCH] improved threads support for
	Mk/bsd.tcl.mk
Date: Mon, 12 Feb 2007 17:14:56 +0100

 >  2.) USE_TCL_THREADS is set to "no"
 
 This is wrong. We never evaluate the value of variables. It's all
 isset/notset only.
 
 -- 
 Pav Lucistnik <pav@oook.cz>
               <pav@FreeBSD.org>
 
 The number you dialed is imaginary.
 Please turn your phone by 90 degrees and try again.

From: Martin Matuska <martin@matuska.org>
To: bug-followup@FreeBSD.org,  martin@matuska.org
Cc:  
Subject: Re: ports/109082: [PATCH] improved threads support for Mk/bsd.tcl.mk
Date: Mon, 12 Feb 2007 18:43:05 +0100

 I've fixed that and added new functionality.
 See ports/109097
 
 Please close this PR.
State-Changed-From-To: open->closed 
State-Changed-By: pav 
State-Changed-When: Mon Feb 12 18:22:47 UTC 2007 
State-Changed-Why:  
Closed on submitter's request 

http://www.freebsd.org/cgi/query-pr.cgi?pr=109082 
>Unformatted:
