Summary: | [UPDATE] devel/tcllib 1.9 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Martin Matuska <martin> | ||||||||||
Component: | Individual Port(s) | Assignee: | Mikhail Teterin <mi> | ||||||||||
Status: | Closed FIXED | ||||||||||||
Severity: | Affects Only Me | ||||||||||||
Priority: | Normal | ||||||||||||
Version: | Latest | ||||||||||||
Hardware: | Any | ||||||||||||
OS: | Any | ||||||||||||
Attachments: |
|
Description
Martin Matuska
2007-03-01 13:10:01 UTC
Responsible Changed From-To: freebsd-ports-bugs->miwi miwi@ wants this PRs State Changed From-To: open->feedback Awaiting maintainers feedback There was one more issue I did not adress (the apps did not work): - removed unnecessary subdirectory: scripts/ - fixed path to TCLSH in apps (bin/dtplite, bin/tcldocstrip, bin/page) Fetchable patch: http://www.matuska.org/martin/freebsd/ports/patches/devel-tcllib.patch The tinderbox log is updated (URL in original PR). Responsible Changed From-To: miwi->mi Hey. It is my port :-) Hi, Martin, and thank you very much for your work. I am not quite certain, what is the need for PKGNAMESUFFIX -- nothing is compiled by the port, so what do we care if TCL is threaded or not? Is it just that the three little applications installed by it require changes to their #!-lines? I've never ran the tests against 8.5 -- are the patches for tests (snit, struct-sets) triggered by problems there? If so, you may wish to notify the vendor: http://sourceforge.net/projects/tcllib/ Andreas is usually quite responsive. Thanks for your help. -mi I will issue bug reports in tcllib.sourceforge.net about the two tests. The reason for PKGNAMESUFFIX concerns packages only. It has nothing to do with the three little applications - the changes there are only about chosing tclsh8.4 or tclsh8.5. I maintain ports (www/openacs and www/openacs-dotlrn which are large web application frameworks based on TCL) that depend on a threaded tcl and the latest versions require tcllib, too. Without a separate package it will be impossible to install from packages - you always have to build from ports. The idea is that there will be a "dummy" tcllib-threads port, that looks like "lang/tcl84-thread" or "lang/xotcl-thread" so there will be a tcllib-threads package with tcl-threads-8.4.x (until 8.5 becomes standard) as a dependency. The package dependencies have to be unique, it is not possible to choose between dependencies (maybe a feature desirable for the future ports tree). Therefore ports that depend on threaded tcl cannot use the tcllib package (depends mismatch). You can install it from the ports tree (with a part of my patch it will have correct dependencies) but there will be no package built for the FreeBSD package repositories. Thats why I would like to see tcllib-1.x and tcllib-threads-1.x packages in the FreeBSD package tree. Maintainer suggested depending on USE_TCL_BUILD only To make our life easier with this I have managed the following: - new port lang/tcl-tk-wrapper that wraps tclsh and wish around (independent of tcl and tk) - tcl85, tcl84, tcl83, tcl82 do not pseudo-install tclsh anymore, the wrapper should be used instaed - now tcl scripts only can use this wrapper as dependency instead of whole tcl - therefore I suggest this wrapper as a run dependency (see patch) portlint -A: no fatal errors, tinderbox log: http://tinderbox.vx.sk/logs/6.2-FreeBSD-amd64/tcllib-1.9_2.log Here is a diff that "only" switches to USE_TCL. I guess this is the best move for the beginning. Tinderbox logs for i386 and amd64: http://i386.vx.sk/logs/5.5-FreeBSD-i386/tcllib-1.9_2.log http://i386.vx.sk/logs/6.2-FreeBSD-i386/tcllib-1.9_2.log http://i386.vx.sk/logs/7-FreeBSD-i386/tcllib-1.9_2.log http://amd64.vx.sk/logs/5.5-FreeBSD-amd64/tcllib-1.9_2.log http://amd64.vx.sk/logs/6.2-FreeBSD-amd64/tcllib-1.9_2.log http://amd64.vx.sk/logs/7-FreeBSD-amd64/tcllib-1.9_2.log This patch tells tcllib to use the new USE_TCL infrastructure. It can now be used e.g. with the WITH_TCL_THREADS option. Please consider commiting (and closing PR). Tinderbox tests: 5.5-i386: http://i386.vx.sk/logs/5.5-FreeBSD-i386/tcllib-1.9_2.log 6.2-i386: http://i386.vx.sk/logs/6.2-FreeBSD-i386/tcllib-1.9_2.log 7-i386: http://tb4.droso.net/logs/7-mm/tcllib-1.9_2.log 5.5-amd64: http://amd64.vx.sk/logs/5.5-FreeBSD-amd64/tcllib-1.9_2.log 6.2-amd64: http://amd64.vx.sk/logs/6.2-FreeBSD-amd64/tcllib-1.9_2.log 7-amd64: http://tb3.droso.net/logs/7-mm/tcllib-1.9_2.log Thank you, mm Index: ports/devel/tcllib/Makefile =================================================================== RCS file: /home/pcvs/ports/devel/tcllib/Makefile,v retrieving revision 1.25 diff -u -r1.25 Makefile --- ports/devel/tcllib/Makefile 12 Feb 2007 19:55:14 -0000 1.25 +++ ports/devel/tcllib/Makefile 26 Jun 2007 10:57:58 -0000 @@ -7,7 +7,7 @@ PORTNAME= tcllib PORTVERSION= 1.9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel tcl83 tcl84 MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= tcllib @@ -15,14 +15,13 @@ MAINTAINER= mi@aldan.algebra.com COMMENT= A collection of utility modules for Tcl -BUILD_DEPENDS= tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${TCL_VER:S/.//} +USE_TCL_BUILD= yes +USE_TCL_RUN= ${USE_TCL_BUILD} -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} @@ -58,6 +57,10 @@ MANCOMPRESSED= no +.include <bsd.port.pre.mk> + +CONFIGURE_ENV+= ac_cv_path_tclsh="${TCLSH}" + post-patch: # # Ensure, the detailed output of vendors' self-tests is @@ -65,8 +68,8 @@ # ${REINPLACE_CMD} -e 's,test run,test run -l testlog,' \ ${WRKSRC}/Makefile.in - -.include <bsd.port.pre.mk> + ${REINPLACE_CMD} -e 's,exec tclsh,exec ${TCLSH},' \ + ${WRKSRC}/apps/dtplite RUNTEST= ${SETENV} LANG=C DISPLAY= ${MAKE} -C ${WRKSRC} test MYID != ${ID} -u Index: ports/devel/tcllib/scripts/post-patch =================================================================== RCS file: ports/devel/tcllib/scripts/post-patch diff -N ports/devel/tcllib/scripts/post-patch --- ports/devel/tcllib/scripts/post-patch 18 Dec 2004 02:49:47 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,9 +0,0 @@ -#!/bin/sh - -${PATCH} -f ${WRKSRC}/apps/dtplite << EOP -@@ -1,3 +1,1 @@ --#! /bin/sh --# -*- tcl -*- --exec tclsh "$0" ${1+"$@"} -+#!${PREFIX}/bin/tclsh${TCL_VER} -EOP mi 2007-06-27 19:52:12 UTC FreeBSD ports repository Modified files: devel/tcllib Makefile Removed files: devel/tcllib/scripts post-patch Log: Convert to using the USE_TCL knobs instead of trying to guess the desired TCL-version. PR: 109716 (partial) Revision Changes Path 1.26 +8 -4 ports/devel/tcllib/Makefile 1.2 +0 -9 ports/devel/tcllib/scripts/post-patch (dead) _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org" Hi, Martin! I just committed the bsd.tcl.mk parts of your changes. Please, add the module patches you have and bump PORTREVISION yourself now. Thank you very much for your work and patience. -mi Thanks, Mikhail. So here is what I want to commit: - remove obsolete BUILD_DEPENDS line - change Makefile to support tcl 8.5 - add a patch that fixes some tests for tcl 8.5 (see below) All my tinderboxes (5.5,6.2,7)*(i386,amd64) build it correctly and manual tests using WITH_TCL_VER=85 and/or WITH_TCL_THREADS=yes pass, too. With this patch the port can be built against tcl84, tcl84-thread, tcl85, tcl85-thread :-) Index: ports/devel/tcllib/Makefile =================================================================== RCS file: /home/pcvs/ports/devel/tcllib/Makefile,v retrieving revision 1.26 diff -u -r1.26 Makefile --- ports/devel/tcllib/Makefile 27 Jun 2007 19:52:12 -0000 1.26 +++ ports/devel/tcllib/Makefile 28 Jun 2007 13:08:05 -0000 @@ -7,7 +7,7 @@ PORTNAME= tcllib PORTVERSION= 1.9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel tcl83 tcl84 MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= tcllib @@ -15,8 +15,7 @@ MAINTAINER= mi@aldan.algebra.com COMMENT= A collection of utility modules for Tcl -BUILD_DEPENDS= tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${TCL_VER:S/.//} -USE_TCL_BUILD= yes +USE_TCL_BUILD= 84+ USE_TCL_RUN= ${USE_TCL_BUILD} USE_BZIP2= yes Index: ports/devel/tcllib/files/patch-tcl85 =================================================================== RCS file: ports/devel/tcllib/files/patch-tcl85 diff -N ports/devel/tcllib/files/patch-tcl85 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ports/devel/tcllib/files/patch-tcl85 28 Jun 2007 13:08:05 -0000 @@ -0,0 +1,195 @@ +--- modules/cmdline/typedCmdline.test.orig Thu Jun 28 13:56:05 2007 ++++ modules/cmdline/typedCmdline.test Thu Jun 28 13:57:28 2007 +@@ -115,7 +115,7 @@ + catch {unset arg} + set argList {-foo 123} + list [catch {cmdline::typedGetopt argList {a.arg foo.bar b} opt arg} msg] $msg $argList $opt $arg +- } [list 1 {Illegal option type specification: must be one of alnum|alpha|ascii|control|boolean|digit|double|false|graph|integer|lower|print|punct|space|true|upper|wideinteger|wordchar|xdigit} {-foo 123} {} {}] ++ } [list 1 {Illegal option type specification: must be one of alnum|alpha|ascii|control|boolean|digit|double|false|graph|integer|list|lower|print|punct|space|true|upper|wideinteger|wordchar|xdigit} {-foo 123} {} {}] + } else { + test typed-cmdline-6.14 {cmdline::typedGetopt, integer options} { + catch {unset opt} +--- modules/grammar_me/me_tcl.test.orig Thu Jun 28 14:00:22 2007 ++++ modules/grammar_me/me_tcl.test Thu Jun 28 14:03:49 2007 +@@ -509,7 +509,17 @@ + grammar::me::tcl::ict_match_tokclass a b c + } -result {wrong # args: should be "grammar::me::tcl::ict_match_tokclass code msg"} + +-test mevmtcl-ict_match_tokclass-1.2a {Call with bad code} \ ++if {[::tcltest::testConstraint tcl8.5plus]} { ++ test mevmtcl-ict_match_tokclass-1.2a {Call with bad code} \ ++ -constraints tcl8.5plus \ ++ -returnCodes error \ ++ -setup { ++ grammar::me::tcl::init fake ++ } -body { ++ grammar::me::tcl::ict_match_tokclass gargle foo ++ } -result {bad class "gargle": must be alnum, alpha, ascii, control, boolean, digit, double, false, graph, integer, list, lower, print, punct, space, true, upper, wideinteger, wordchar, or xdigit} ++} else { ++ test mevmtcl-ict_match_tokclass-1.2a {Call with bad code} \ + -constraints tcl8.5plus \ + -returnCodes error \ + -setup { +@@ -517,6 +527,7 @@ + } -body { + grammar::me::tcl::ict_match_tokclass gargle foo + } -result {bad class "gargle": must be alnum, alpha, ascii, control, boolean, digit, double, false, graph, integer, lower, print, punct, space, true, upper, wideinteger, wordchar, or xdigit} ++} + + test mevmtcl-ict_match_tokclass-1.2b {Call with bad code} \ + -constraints {!tcl8.5plus} \ +--- 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 + + +--- modules/snit/snit.test.orig Thu Jun 28 14:48:15 2007 ++++ modules/snit/snit.test Thu Jun 28 14:48:17 2007 +@@ -693,7 +693,8 @@ + dog destroy + } -result {3} + +-test dtypemethod-1.6 {delegating unknown typemethod to existing typecomponent with error} -body { ++if {[::tcltest::testConstraint tcl8.5plus]} { ++ test dtypemethod-1.6 {delegating unknown typemethod to existing typecomponent with error} -body { + type dog { + delegate typemethod * to stringhandler + +@@ -703,9 +704,24 @@ + } + + dog foo bar +-} -returnCodes { ++ } -returnCodes { + error +-} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++ } -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++} else { ++ test dtypemethod-1.6 {delegating unknown typemethod to existing typecomponent with error} -body { ++ type dog { ++ delegate typemethod * to stringhandler ++ ++ typeconstructor { ++ set stringhandler string ++ } ++ } ++ ++ dog foo bar ++ } -returnCodes { ++ error ++ } -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++} + + test dtypemethod-1.7 {can't delegate local typemethod: order 1} -body { + type dog { +@@ -3218,7 +3234,8 @@ + dog destroy + } -result {3} + +-test dmethod-1.6 {delegating unknown method to existing component with error} -body { ++if {[::tcltest::testConstraint tcl8.5plus]} { ++ test dmethod-1.6 {delegating unknown method to existing component with error} -body { + type dog { + constructor {args} { + set stringhandler string +@@ -3229,11 +3246,29 @@ + + dog create spot + spot foo bar +-} -returnCodes { ++ } -returnCodes { + error +-} -cleanup { ++ } -cleanup { ++ dog destroy ++ } -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, reverse, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++} else { ++ test dmethod-1.6 {delegating unknown method to existing component with error} -body { ++ type dog { ++ constructor {args} { ++ set stringhandler string ++ } ++ ++ delegate method * to stringhandler ++ } ++ ++ dog create spot ++ spot foo bar ++ } -returnCodes { ++ error ++ } -cleanup { + dog destroy +-} -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++ } -result {bad option "foo": must be bytelength, compare, equal, first, index, is, last, length, map, match, range, repeat, replace, tolower, toupper, totitle, trim, trimleft, trimright, wordend, or wordstart} ++} + + test dmethod-1.7 {can't delegate local method: order 1} -body { + type cat { +@@ -5784,13 +5819,23 @@ + #----------------------------------------------------------------------- + # expose statement + +-test expose-1.1 {can't expose nothing} -body { ++if {[::tcltest::testConstraint tcl8.5plus]} { ++ test expose-1.1 {can't expose nothing} -body { + type dog { + expose + } +-} -returnCodes { ++ } -returnCodes { ++ error ++ } -result [tcltest::wrongNumArgs expose {component ?as? ?methodname?} 0] ++} else { ++ 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 ::snit::Comp.statement.expose {component ?as? ?methodname?} 0] ++} + + test expose-1.2 {expose a component that's never installed} -body { + type dog { +--- modules/struct/sets.test.orig Thu Jun 28 14:10:46 2007 ++++ modules/struct/sets.test Thu Jun 28 14:13:24 2007 +@@ -36,10 +36,17 @@ + + #---------------------------------------------------------------------- + +-test set-1.0 {nothing} { ++if {[::tcltest::testConstraint tcl8.5plus]} { ++ test set-1.0 {nothing} { + catch {setop} msg + set msg +-} [tcltest::wrongNumArgs {::struct::set::set} {cmd args} 0] ++ } [tcltest::wrongNumArgs {setop} {cmd args} 0] ++} else { ++ test set-1.0 {nothing} { ++ catch {setop} msg ++ set msg ++ } [tcltest::wrongNumArgs {::struct::set::set} {cmd args} 0] ++} + + test set-1.1 {bogus} { + catch {setop foo} msg mm 2007-06-28 13:44:37 UTC FreeBSD ports repository Modified files: devel/tcllib Makefile Added files: devel/tcllib/files patch-tcl85 Log: - remove BUILD_DEPENDS line (replaced by USE_TCL_*) - add patch to support tcl 8.5 PR: ports/109716 Submitted by: mm Approved by: mi (maintainer), garga (mentor) Revision Changes Path 1.27 +2 -3 ports/devel/tcllib/Makefile 1.1 +195 -0 ports/devel/tcllib/files/patch-tcl85 (new) _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org" State Changed From-To: feedback->closed The submitter, who is now a ports-committer too, has committed the proposed changes. Thanks. |