aboutsummaryrefslogtreecommitdiffstats
path: root/lang/itcl
diff options
context:
space:
mode:
authormi <mi@FreeBSD.org>2010-06-12 11:57:42 +0800
committermi <mi@FreeBSD.org>2010-06-12 11:57:42 +0800
commit33e4306781426df636f536bb5ad3db53ddfd5f57 (patch)
tree443e044348f3d6378b780b5b8f31a2f6f2511e8b /lang/itcl
parenta639d3604caed2f2b8867bac5045e4e6a1e0e192 (diff)
downloadfreebsd-ports-gnome-33e4306781426df636f536bb5ad3db53ddfd5f57.tar.gz
freebsd-ports-gnome-33e4306781426df636f536bb5ad3db53ddfd5f57.tar.zst
freebsd-ports-gnome-33e4306781426df636f536bb5ad3db53ddfd5f57.zip
Upgrade itcl to 3.4b1 -- the last version in the 3.x branch.
itk, interestingly, remains at 3.3-RC, so only minor changes there. Allow both to compile against Tcl-8.5. Both will now need to be upgraded to branch 4.x -- a much more involved undertaking. Approved by: maintainer (in January)
Diffstat (limited to 'lang/itcl')
-rw-r--r--lang/itcl/Makefile18
-rw-r--r--lang/itcl/distinfo6
-rw-r--r--lang/itcl/files/Makefile.lib1
-rw-r--r--lang/itcl/files/patch-test26
-rw-r--r--lang/itcl/files/patch-warnings153
5 files changed, 189 insertions, 15 deletions
diff --git a/lang/itcl/Makefile b/lang/itcl/Makefile
index 440b0f31aaa5..5041a0ee5e3d 100644
--- a/lang/itcl/Makefile
+++ b/lang/itcl/Makefile
@@ -6,33 +6,30 @@
#
PORTNAME= itcl
-PORTVERSION= 3.3
-PORTREVISION= 2
+PORTVERSION= 3.4b1
CATEGORIES= lang tcl
-MASTER_SITES= SF/incrtcl/%5BIncr%20Tcl_Tk%5D-source/${PORTVERSION}-RC
+MASTER_SITES= SF/incrtcl/%5BIncr%20Tcl_Tk%5D-source/3.4
DISTNAME= itcl${PORTVERSION}
MAINTAINER= erik@smluc.org
COMMENT= Object-oriented extension to Tcl [incr Tcl]
-USE_TCL= 84
+USE_TCL= 84+
USE_LDCONFIG= yes
MAKE_ENV+= ${PLIST_SUB} \
SHLIB_MAJOR=${SHLIB_MAJOR} SHLIB_MINOR=${SHLIB_MINOR} \
USE_TCL=${USE_TCL} TCL_INCLUDEDIR=${TCL_INCLUDEDIR}
-.if defined(MAKE_JOBS)
-MAKE_ARGS+= -j${MAKE_JOBS}
-.endif
-
+MAKE_JOBS_SAFE= yes
SHLIB_MAJOR= ${MAJOR}
SHLIB_MINOR= ${MINOR}
MAJOR= ${PORTVERSION:R}
-MINOR= ${PORTVERSION:E}
+MINOR= ${PORTVERSION:E:C/[a-z].*//}
PLIST_SUB+= MAJOR=${MAJOR} MINOR=${MINOR}
ITCL_LIB= libitcl.so
MAKEFILE= ${FILESDIR}/Makefile.lib
+WRKSRC= ${WRKDIR}/itcl3.4
MANCOMPRESSED= no
MANN= body.n class.n code.n configbody.n delete.n ensemble.n find.n
@@ -46,9 +43,6 @@ ITCL_LIB_FILE= ${ITCL_LIB}.${SHLIB_MAJOR}
post-build test:
cd ${WRKSRC} && ${SETENV} ITCL_LIBRARY=${WRKSRC}/library \
${TCLSH} tests/all.tcl -load "load ./${ITCL_LIB}"
-.if ${USE_TCL} == 85
- @${ECHO} "ensemble.test fails due to changed error message. It's OK."
-.endif
post-install:
${INSTALL_DATA} ${WRKSRC}/doc/*.n ${PREFIX}/man/mann/
diff --git a/lang/itcl/distinfo b/lang/itcl/distinfo
index 20829a0a16ec..d213c44d9df5 100644
--- a/lang/itcl/distinfo
+++ b/lang/itcl/distinfo
@@ -1,3 +1,3 @@
-MD5 (itcl3.3.tar.gz) = d958b3d1c52fa5336b5aacc1251b5ce3
-SHA256 (itcl3.3.tar.gz) = 7829b5ea39d0ed0eea43a071cd39e7477343d59e1d2ea9c810fa53e257fcb55c
-SIZE (itcl3.3.tar.gz) = 306364
+MD5 (itcl3.4b1.tar.gz) = e4c97750c08ab47e960b91911fdd0132
+SHA256 (itcl3.4b1.tar.gz) = dc99fcf6c00b00774dbfb94ccc437ea3e6315a198645b6d2acf8acba8fdb4608
+SIZE (itcl3.4b1.tar.gz) = 306342
diff --git a/lang/itcl/files/Makefile.lib b/lang/itcl/files/Makefile.lib
index a469c9bb98e4..7c669fa80f19 100644
--- a/lang/itcl/files/Makefile.lib
+++ b/lang/itcl/files/Makefile.lib
@@ -11,6 +11,7 @@ CFLAGS+= -I. -I./../generic \
-DHAVE_SYS_FILIO_H=1 \
-DRETSIGTYPE=void \
-DITCL_LIBRARY=\"${ITCL_LIBRARY}\"
+CFLAGS+= -Werror
LDADD+= -L${PREFIX}/lib -ltcl${USE_TCL}
.if ${USE_TCL} >= 85
diff --git a/lang/itcl/files/patch-test b/lang/itcl/files/patch-test
new file mode 100644
index 000000000000..4f8554bbfd81
--- /dev/null
+++ b/lang/itcl/files/patch-test
@@ -0,0 +1,26 @@
+--- tests/ensemble.test 2004-02-12 13:09:50.000000000 -0500
++++ tests/ensemble.test 2010-01-24 14:57:20.000000000 -0500
+@@ -97,12 +97,19 @@
+ "itcl::ensemble test_numbers {part foo}"}}
+
+-test ensemble-1.11 {part argument errors are handled gracefully} {
+- list [catch "itcl::ensemble test_numbers {part foo {{}} {}}" msg] $msg $errorInfo
+-} {1 {procedure "foo" has argument with no name} {procedure "foo" has argument with no name
++if {$tcl_version < 8.5} {
++ set errmsg111 {procedure "foo" has argument with no name}
++} else {
++ set errmsg111 {argument with no name}
++}
++set errmsg111 [format {1 {%s} {%s
+ while executing
+ "part foo {{}} {}"
+ ("ensemble" body line 1)
+ invoked from within
+-"itcl::ensemble test_numbers {part foo {{}} {}}"}}
++"itcl::ensemble test_numbers {part foo {{}} {}}"}} $errmsg111 $errmsg111]
++
++test ensemble-1.11 {part argument errors are handled gracefully} {
++ list [catch "itcl::ensemble test_numbers {part foo {{}} {}}" msg] $msg $errorInfo
++} $errmsg111
+
+ test ensemble-2.0 {defining subensembles} {
diff --git a/lang/itcl/files/patch-warnings b/lang/itcl/files/patch-warnings
new file mode 100644
index 000000000000..9563345fbac6
--- /dev/null
+++ b/lang/itcl/files/patch-warnings
@@ -0,0 +1,153 @@
+--- generic/itcl_bicmds.c 2008-10-04 11:22:39.000000000 -0400
++++ generic/itcl_bicmds.c 2010-01-24 14:39:45.000000000 -0500
+@@ -1022,5 +1022,5 @@
+ Tcl_Obj *objPtr = NULL;
+
+- static char *options[] = {
++ static const char *options[] = {
+ "-args", "-body", "-name", "-protection", "-type",
+ (char*)NULL
+@@ -1213,9 +1213,9 @@
+ Tcl_Obj *CONST objv[]; /* argument objects */
+ {
+- char *varName = NULL;
++ const char *varName = NULL;
+ Tcl_Obj *resultPtr = NULL;
+ Tcl_Obj *objPtr = NULL;
+
+- static char *options[] = {
++ static const char *options[] = {
+ "-config", "-init", "-name", "-protection", "-type",
+ "-value", (char*)NULL
+--- generic/itcl_cmds.c 2008-12-15 15:02:58.000000000 -0500
++++ generic/itcl_cmds.c 2010-01-24 14:41:33.000000000 -0500
+@@ -30,4 +30,5 @@
+ */
+ #include "itclInt.h"
++#include <stdint.h>
+
+ /*
+@@ -883,5 +884,5 @@
+ Tcl_Obj *CONST objv[]; /* argument objects */
+ {
+- int pLevel = (int)clientData;
++ int pLevel = (intptr_t)clientData;
+
+ int result;
+--- generic/itcl_ensemble.c 2008-12-15 15:02:58.000000000 -0500
++++ generic/itcl_ensemble.c 2010-01-24 14:47:49.000000000 -0500
+@@ -103,5 +103,5 @@
+
+ static int CreateEnsemble _ANSI_ARGS_((Tcl_Interp *interp,
+- Ensemble *parentEnsData, char *ensName));
++ Ensemble *parentEnsData, const char *ensName));
+
+ static int AddEnsemblePart _ANSI_ARGS_((Tcl_Interp *interp,
+@@ -112,5 +112,5 @@
+ static void DeleteEnsemble _ANSI_ARGS_((ClientData clientData));
+
+-static int FindEnsemble _ANSI_ARGS_((Tcl_Interp *interp, char **nameArgv,
++static int FindEnsemble _ANSI_ARGS_((Tcl_Interp *interp, const char **nameArgv,
+ int nameArgc, Ensemble** ensDataPtr));
+
+@@ -212,5 +212,5 @@
+ CONST char* ensName; /* name of the new ensemble */
+ {
+- char **nameArgv = NULL;
++ const char **nameArgv = NULL;
+ int nameArgc;
+ Ensemble *parentEnsData;
+@@ -319,5 +319,5 @@
+ Tcl_CmdDeleteProc *deleteProc; /* procedure used to destroy client data */
+ {
+- char **nameArgv = NULL;
++ const char **nameArgv = NULL;
+ int nameArgc;
+ Ensemble *ensData;
+@@ -396,5 +396,5 @@
+ Tcl_CmdInfo *infoPtr; /* returns: info associated with part */
+ {
+- char **nameArgv = NULL;
++ const char **nameArgv = NULL;
+ int nameArgc;
+ Ensemble *ensData;
+@@ -508,5 +508,5 @@
+ Tcl_Obj *objPtr; /* returns: summary of usage info */
+ {
+- char **nameArgv = NULL;
++ const char **nameArgv = NULL;
+ int nameArgc;
+ Ensemble *ensData;
+@@ -752,5 +752,5 @@
+ Tcl_Interp *interp; /* interpreter to be updated */
+ Ensemble *parentEnsData; /* parent ensemble or NULL */
+- char *ensName; /* name of the new ensemble */
++ const char *ensName; /* name of the new ensemble */
+ {
+ Ensemble *ensData;
+@@ -957,5 +957,5 @@
+ FindEnsemble(interp, nameArgv, nameArgc, ensDataPtr)
+ Tcl_Interp *interp; /* interpreter containing the ensemble */
+- char **nameArgv; /* path of names leading to ensemble */
++ const char **nameArgv; /* path of names leading to ensemble */
+ int nameArgc; /* number of strings in nameArgv */
+ Ensemble** ensDataPtr; /* returns: ensemble data */
+--- generic/itcl_methods.c 2008-12-15 15:02:58.000000000 -0500
++++ generic/itcl_methods.c 2010-01-24 14:50:55.000000000 -0500
+@@ -981,6 +981,6 @@
+ }
+ else if ((mcode->flags & ITCL_IMPLEMENT_ARGCMD) != 0) {
+- char **argv;
+- argv = (char**)ckalloc( (unsigned)(objc*sizeof(char*)) );
++ const char *argv[objc];
++
+ for (i=0; i < objc; i++) {
+ argv[i] = Tcl_GetStringFromObj(objv[i], (int*)NULL);
+@@ -989,6 +989,4 @@
+ result = (*mcode->cfunc.argCmd)(mcode->clientData,
+ interp, objc, argv);
+-
+- ckfree((char*)argv);
+ }
+ else if ((mcode->flags & ITCL_IMPLEMENT_TCL) != 0) {
+@@ -1050,5 +1048,5 @@
+
+ int i, argc, fargc;
+- char **argv, **fargv;
++ const char **argv, **fargv;
+ CompiledLocal *localPtr, *last;
+
+@@ -1825,5 +1823,5 @@
+
+ int defargc;
+- char **defargv = NULL;
++ const char **defargv = NULL;
+ Tcl_Obj **defobjv = NULL;
+ int configc = 0;
+--- generic/itcl_objects.c 2007-08-07 16:05:30.000000000 -0400
++++ generic/itcl_objects.c 2010-01-24 14:52:10.000000000 -0500
+@@ -1155,5 +1155,5 @@
+ {
+ int namec;
+- char **namev;
++ const char **namev;
+ Tcl_Interp *errs;
+ Tcl_CmdInfo cmdInfo;
+--- generic/itcl_util.c 2007-08-07 16:05:30.000000000 -0400
++++ generic/itcl_util.c 2010-01-24 14:54:01.000000000 -0500
+@@ -1274,5 +1274,5 @@
+ CONST char *pos;
+ int listc, result;
+- char **listv;
++ const char **listv;
+
+ cmdName = ckalloc((unsigned)strlen(name)+1);
+--- generic/itclInt.h 2008-12-15 15:02:58.000000000 -0500
++++ generic/itclInt.h 2010-01-24 15:15:06.000000000 -0500
+@@ -207,5 +207,5 @@
+ } ItclVarInHash;
+
+-#define ItclOffset(type, field) ((int) ((char *) &((type *) 0)->field))
++#define ItclOffset(type, field) ((intptr_t)((char *) &((type *) 0)->field))
+
+ #define itclOldRuntime (itclVarFlagOffset!=0)