diff options
author | mi <mi@FreeBSD.org> | 2009-04-21 15:52:35 +0800 |
---|---|---|
committer | mi <mi@FreeBSD.org> | 2009-04-21 15:52:35 +0800 |
commit | a411145e1b06f67dd62101f9a201b699f00329e7 (patch) | |
tree | 17f3dc558cc73e48d8505e2d19c7c65a15b8fb60 | |
parent | 8f6f110431765ad02848c38e06bce8ebe93e6745 (diff) | |
download | freebsd-ports-gnome-a411145e1b06f67dd62101f9a201b699f00329e7.tar.gz freebsd-ports-gnome-a411145e1b06f67dd62101f9a201b699f00329e7.tar.zst freebsd-ports-gnome-a411145e1b06f67dd62101f9a201b699f00329e7.zip |
Ubreak by making the port check for availability of Tcl's man-pages.
Tcl-8.4 does not install those by default any more...
Approved by: portmgr (erwin)
PR: ports/133555
-rw-r--r-- | lang/tclX/Makefile | 16 | ||||
-rw-r--r-- | lang/tclX/files/patch-const | 184 | ||||
-rw-r--r-- | lang/tclX/files/patch-intptr | 124 |
3 files changed, 317 insertions, 7 deletions
diff --git a/lang/tclX/Makefile b/lang/tclX/Makefile index 1cd4d7eced7f..bd3a2ed2ea47 100644 --- a/lang/tclX/Makefile +++ b/lang/tclX/Makefile @@ -7,7 +7,7 @@ PORTNAME= tclX PORTVERSION= 8.4 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang tcl devel MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR=tclx @@ -16,8 +16,6 @@ DISTNAME= tclx${PORTVERSION} MAINTAINER= mi@aldan.algebra.com COMMENT= Extended TCL -BROKEN= does not compile - USE_BZIP2= yes USE_TCL_BUILD= 84 USE_TCL= 84 @@ -30,12 +28,9 @@ CONFIGURE_ARGS= --enable-shared \ --with-help=Help \ --with-tcl="${TCL_LIBDIR}" PLIST_SUB= TCLX_VER=${PORTVERSION} +MAKE_JOBS_SAFE= yes ALL_TARGET= binaries libraries # test INSTALL_TARGET= install-binaries install-libraries -.ifndef(NOPORTDOCS) -ALL_TARGET+= doc -INSTALL_TARGET+=install-help -.endif MAN3= CmdWrite.3 Handles.3 Keylist.3 ObjCmdWrite.3 TclXInit.3 MANN= TclX.n @@ -74,3 +69,10 @@ pre-su-install: cd ${WRKSRC}/doc && ${INSTALL_MAN} ${MANN} ${PREFIX}/man/mann .include <bsd.port.post.mk> + +.ifndef(NOPORTDOCS) && exists(${MANPREFIX}/man/mann/Tcl.n.gz) +ALL_TARGET+= doc +INSTALL_TARGET+=install-help +.else +PLIST_SUB:= ${PLIST_SUB:NPORTDOCS=*} PORTDOCS='@comment ' +.endif diff --git a/lang/tclX/files/patch-const b/lang/tclX/files/patch-const new file mode 100644 index 000000000000..48e3f022c337 --- /dev/null +++ b/lang/tclX/files/patch-const @@ -0,0 +1,184 @@ +Submitted to TclX developers as: + +https://sourceforge.net/tracker/index.php?func=detail&aid=2687373&group_id=13247&atid=313247 + + -mi + +--- generic/tclExtend.h 2002-09-25 20:23:29.000000000 -0400 ++++ generic/tclExtend.h 2009-03-14 17:57:46.000000000 -0400 +@@ -123,19 +123,19 @@ + EXTERN int TclX_KeyedListGet _ANSI_ARGS_((Tcl_Interp *interp, + Tcl_Obj *keylPtr, +- char *key, ++ const char *key, + Tcl_Obj **valuePtrPtr)); + + EXTERN int TclX_KeyedListSet _ANSI_ARGS_((Tcl_Interp *interp, + Tcl_Obj *keylPtr, +- char *key, ++ const char *key, + Tcl_Obj *valuePtr)); + + EXTERN int TclX_KeyedListDelete _ANSI_ARGS_((Tcl_Interp *interp, + Tcl_Obj *keylPtr, +- char *key)); ++ const char *key)); + + EXTERN int TclX_KeyedListGetKeys _ANSI_ARGS_((Tcl_Interp *interp, + Tcl_Obj *keylPtr, +- char *key, ++ const char *key, + Tcl_Obj **listObjPtrPtr)); + +--- generic/tclXkeylist.c 2005-11-21 13:54:13.000000000 -0500 ++++ generic/tclXkeylist.c 2009-03-15 00:43:31.000000000 -0400 +@@ -121,9 +121,9 @@ + int entryIdx)); + +-static int ++static intptr_t + FindKeyedListEntry _ANSI_ARGS_((keylIntObj_t *keylIntPtr, +- char *key, ++ const char *key, + int *keyLenPtr, +- char **nextSubKeyPtr)); ++ const char **nextSubKeyPtr)); + + static void +@@ -342,5 +342,5 @@ + int entryIdx; + { +- int idx; ++ intptr_t idx; + + #ifndef NO_KEYLIST_HASH_TABLE +@@ -348,5 +348,5 @@ + Tcl_HashEntry *entryPtr; + Tcl_HashSearch search; +- int nidx; ++ intptr_t nidx; + + entryPtr = Tcl_FindHashEntry(keylIntPtr->hashTbl, +@@ -364,5 +364,5 @@ + for (entryPtr = Tcl_FirstHashEntry(keylIntPtr->hashTbl, &search); + entryPtr != NULL; entryPtr = Tcl_NextHashEntry(&search)) { +- nidx = (int) Tcl_GetHashValue(entryPtr); ++ nidx = (intptr_t) Tcl_GetHashValue(entryPtr); + if (nidx > entryIdx) { + Tcl_SetHashValue(entryPtr, (ClientData) (nidx - 1)); +@@ -397,13 +397,14 @@ + *----------------------------------------------------------------------------- + */ +-static int ++static intptr_t + FindKeyedListEntry (keylIntPtr, key, keyLenPtr, nextSubKeyPtr) + keylIntObj_t *keylIntPtr; +- char *key; ++ const char *key; + int *keyLenPtr; +- char **nextSubKeyPtr; ++ const char **nextSubKeyPtr; + { +- char *keySeparPtr; +- int keyLen, findIdx = -1; ++ const char *keySeparPtr; ++ int keyLen; ++ intptr_t findIdx = -1; + + keySeparPtr = strchr (key, '.'); +@@ -417,18 +418,17 @@ + if (keylIntPtr->hashTbl != NULL) { + Tcl_HashEntry *entryPtr; +- char tmp = key[keyLen]; ++ char *tmp; ++ const char *_key; ++ + if (keySeparPtr != NULL) { +- /* +- * A few extra guards in setting this, as if we are passed +- * a const char, this can crash. +- */ +- key[keyLen] = '\0'; +- } +- entryPtr = Tcl_FindHashEntry(keylIntPtr->hashTbl, key); ++ tmp = alloca(keyLen + 1); ++ strncpy(tmp, key, keyLen); ++ tmp[keyLen] = '\0'; ++ _key = tmp; ++ } else ++ _key = key; ++ entryPtr = Tcl_FindHashEntry(keylIntPtr->hashTbl, _key); + if (entryPtr != NULL) { +- findIdx = (int) Tcl_GetHashValue(entryPtr); +- } +- if (keySeparPtr != NULL) { +- key[keyLen] = tmp; ++ findIdx = (intptr_t)Tcl_GetHashValue(entryPtr); + } + } +@@ -556,5 +556,6 @@ + keylEntry_t *keyEntryPtr; + char *key; +- int keyLen, idx, objc, subObjc; ++ int keyLen, objc, subObjc; ++ intptr_t idx; + Tcl_Obj **objv, **subObjv; + #ifndef NO_KEYLIST_HASH_TABLE +@@ -720,9 +721,9 @@ + Tcl_Interp *interp; + Tcl_Obj *keylPtr; +- char *key; ++ const char *key; + Tcl_Obj **valuePtrPtr; + { + keylIntObj_t *keylIntPtr; +- char *nextSubKey; ++ const char *nextSubKey; + int findIdx; + +@@ -775,11 +776,12 @@ + Tcl_Interp *interp; + Tcl_Obj *keylPtr; +- char *key; ++ const char *key; + Tcl_Obj *valuePtr; + { + keylIntObj_t *keylIntPtr; + keylEntry_t *keyEntryPtr; +- char *nextSubKey; +- int findIdx, keyLen, status = TCL_OK; ++ const char *nextSubKey; ++ intptr_t findIdx; ++ int keyLen, status = TCL_OK; + Tcl_Obj *newKeylPtr; + +@@ -901,9 +903,10 @@ + Tcl_Interp *interp; + Tcl_Obj *keylPtr; +- char *key; ++ const char *key; + { + keylIntObj_t *keylIntPtr, *subKeylIntPtr; +- char *nextSubKey; +- int findIdx, status; ++ const char *nextSubKey; ++ intptr_t findIdx; ++ int status; + + if (Tcl_ConvertToType (interp, keylPtr, &keyedListType) != TCL_OK) +@@ -975,11 +978,12 @@ + Tcl_Interp *interp; + Tcl_Obj *keylPtr; +- char *key; ++ const char *key; + Tcl_Obj **listObjPtrPtr; + { + keylIntObj_t *keylIntPtr; + Tcl_Obj *listObjPtr; +- char *nextSubKey; +- int idx, findIdx; ++ const char *nextSubKey; ++ int idx; ++ intptr_t findIdx; + + if (Tcl_ConvertToType (interp, keylPtr, &keyedListType) != TCL_OK) diff --git a/lang/tclX/files/patch-intptr b/lang/tclX/files/patch-intptr new file mode 100644 index 000000000000..4f5751f5016e --- /dev/null +++ b/lang/tclX/files/patch-intptr @@ -0,0 +1,124 @@ +Submitted to TclX developers as: + +https://sourceforge.net/tracker/index.php?func=detail&aid=2687373&group_id=13247&atid=313247 + + -mi + +--- unix/tclXunixDup.c 2001-10-24 19:31:50.000000000 -0400 ++++ unix/tclXunixDup.c 2009-03-14 18:01:57.000000000 -0400 +@@ -98,5 +98,5 @@ + Tcl_GetChannelHandle (srcChannel, TCL_WRITABLE, &handle); + } +- srcFileNum = (int) handle; ++ srcFileNum = (int)(intptr_t)handle; + channelType = Tcl_GetChannelType (srcChannel); + +@@ -134,7 +134,7 @@ + + if (STREQU (channelType->typeName, "tcp")) { +- newChannel = Tcl_MakeTcpClientChannel ((ClientData) newFileNum); ++ newChannel = Tcl_MakeTcpClientChannel ((ClientData)(intptr_t)newFileNum); + } else { +- newChannel = Tcl_MakeFileChannel ((ClientData) newFileNum, ++ newChannel = Tcl_MakeFileChannel ((ClientData)(intptr_t)newFileNum, + mode); + } +@@ -231,7 +231,7 @@ + + if (isSocket) { +- channel = Tcl_MakeTcpClientChannel ((ClientData) fileNum); ++ channel = Tcl_MakeTcpClientChannel ((ClientData)(intptr_t)fileNum); + } else { +- channel = Tcl_MakeFileChannel ((ClientData) fileNum, ++ channel = Tcl_MakeFileChannel ((ClientData)(intptr_t)fileNum, + mode); + } +--- generic/tclExtdInt.h 2005-07-12 15:03:15.000000000 -0400 ++++ generic/tclExtdInt.h 2009-03-14 20:54:32.000000000 -0400 +@@ -517,5 +517,5 @@ + Tcl_Channel channel, + void *sockaddr, +- int sockaddrSize)); ++ socklen_t sockaddrSize)); + + extern int +@@ -523,5 +523,5 @@ + Tcl_Channel channel, + void *sockaddr, +- int sockaddrSize)); ++ socklen_t sockaddrSize)); + + extern int +--- unix/tclXunixOS.c 2005-07-12 15:03:15.000000000 -0400 ++++ unix/tclXunixOS.c 2009-03-14 20:53:03.000000000 -0400 +@@ -118,5 +118,5 @@ + } + } +- return (int) handle; ++ return (intptr_t)handle; + } + +@@ -248,9 +248,9 @@ + return TCL_ERROR; + } +- channels [0] = Tcl_MakeFileChannel ((ClientData) fileNums [0], ++ channels [0] = Tcl_MakeFileChannel ((ClientData)(intptr_t)fileNums [0], + TCL_READABLE); + Tcl_RegisterChannel (interp, channels [0]); + +- channels [1] = Tcl_MakeFileChannel ((ClientData) fileNums [1], ++ channels [1] = Tcl_MakeFileChannel ((ClientData)(intptr_t)fileNums [1], + TCL_WRITABLE); + Tcl_RegisterChannel (interp, channels [1]); +@@ -958,5 +958,5 @@ + Tcl_Channel channel; + void *sockaddr; +- int sockaddrSize; ++ socklen_t sockaddrSize; + { + +@@ -988,5 +988,5 @@ + Tcl_Channel channel; + void *sockaddr; +- int sockaddrSize; ++ socklen_t sockaddrSize; + { + if (getsockname (ChannelToFnum (channel, 0), +@@ -1019,5 +1019,5 @@ + int *valuePtr; + { +- int valueLen = sizeof (*valuePtr); ++ socklen_t valueLen = sizeof (*valuePtr); + + if (getsockopt (ChannelToFnum (channel, 0), SOL_SOCKET, option, +@@ -1486,5 +1486,5 @@ + return TCL_ERROR; + } +- *fnumPtr = (int) handle; ++ *fnumPtr = (intptr_t)handle; + return TCL_OK; + } +--- unix/tclXunixSock.c 2004-11-22 19:13:14.000000000 -0500 ++++ unix/tclXunixSock.c 2009-03-14 20:59:08.000000000 -0400 +@@ -95,5 +95,5 @@ + Tcl_Channel channel; + +- channel = Tcl_MakeTcpClientChannel ((ClientData) socketFD); ++ channel = Tcl_MakeTcpClientChannel ((ClientData)(intptr_t)socketFD); + Tcl_RegisterChannel (interp, channel); + +@@ -225,5 +225,5 @@ + goto unixError; + +- channel = Tcl_MakeTcpClientChannel ((ClientData) socketFD); ++ channel = Tcl_MakeTcpClientChannel ((ClientData)(intptr_t)socketFD); + Tcl_RegisterChannel (interp, channel); + +@@ -267,5 +267,6 @@ + Tcl_Channel channel; + unsigned options; +- int acceptSocketFD, addrLen; ++ int acceptSocketFD; ++ socklen_t addrLen; + int socketFD = -1; + int nextArg; |