summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2006-05-15 17:10:33 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2006-05-15 17:10:33 +0000
commit5051bbd23fac2f2541f0a91ea3053edfe951fdf0 (patch)
treecf8e3a098c08b60954a90b79f81251f1c1eec944 /dev-tcltk
parentMarked ~ppc. (diff)
downloadgentoo-2-5051bbd23fac2f2541f0a91ea3053edfe951fdf0.tar.gz
gentoo-2-5051bbd23fac2f2541f0a91ea3053edfe951fdf0.tar.bz2
gentoo-2-5051bbd23fac2f2541f0a91ea3053edfe951fdf0.zip
Bug #119147 and #123209, a version bump, with a large configure cleanup to work under modern Gentoo TCL and Bash3.1.
(Portage version: 2.1_pre10-r5)
Diffstat (limited to 'dev-tcltk')
-rw-r--r--dev-tcltk/otcl/ChangeLog10
-rw-r--r--dev-tcltk/otcl/files/digest-otcl-1.113
-rw-r--r--dev-tcltk/otcl/files/digest-otcl-1.8-r32
-rw-r--r--dev-tcltk/otcl/files/otcl-1.11-badfreefix.patch241
-rw-r--r--dev-tcltk/otcl/files/otcl-1.11-configure-cleanup.patch291
-rw-r--r--dev-tcltk/otcl/otcl-1.11.ebuild63
6 files changed, 609 insertions, 1 deletions
diff --git a/dev-tcltk/otcl/ChangeLog b/dev-tcltk/otcl/ChangeLog
index 81c6017ec056..597997ee00df 100644
--- a/dev-tcltk/otcl/ChangeLog
+++ b/dev-tcltk/otcl/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for dev-tcltk/otcl
# Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/otcl/ChangeLog,v 1.20 2006/03/28 16:30:26 exg Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/otcl/ChangeLog,v 1.21 2006/05/15 17:10:33 robbat2 Exp $
+
+*otcl-1.11 (15 May 2006)
+
+ 15 May 2006; Robin H. Johnson <robbat2@gentoo.org>
+ +files/otcl-1.11-badfreefix.patch,
+ +files/otcl-1.11-configure-cleanup.patch, +otcl-1.11.ebuild:
+ Bug #119147 and #123209, a version bump, with a large configure cleanup to
+ work under modern Gentoo TCL and Bash3.1.
28 Mar 2006; Emanuele Giaquinta <exg@gentoo.org> otcl-1.9.ebuild:
Fix configure with bash-3.1.
diff --git a/dev-tcltk/otcl/files/digest-otcl-1.11 b/dev-tcltk/otcl/files/digest-otcl-1.11
new file mode 100644
index 000000000000..ae9b6ad2fe4c
--- /dev/null
+++ b/dev-tcltk/otcl/files/digest-otcl-1.11
@@ -0,0 +1,3 @@
+MD5 2aec90ffa9370596dc02048ba1e8b468 otcl-1.11.tar.gz 315835
+RMD160 02148865a0734fe01171f0456ed89beda1f6074e otcl-1.11.tar.gz 315835
+SHA256 ac4998748b5eb870898796beb55eba299660bee097d8dbfd10224281548cb94f otcl-1.11.tar.gz 315835
diff --git a/dev-tcltk/otcl/files/digest-otcl-1.8-r3 b/dev-tcltk/otcl/files/digest-otcl-1.8-r3
index f435025fe842..8b1ca155a68e 100644
--- a/dev-tcltk/otcl/files/digest-otcl-1.8-r3
+++ b/dev-tcltk/otcl/files/digest-otcl-1.8-r3
@@ -1 +1,3 @@
MD5 88a4b94b3a128867d3fe13b77f3b5496 otcl-1.8.tar.gz 300954
+RMD160 2627e6a8d58bd7377c1cc9c4be34b463ad0d492a otcl-1.8.tar.gz 300954
+SHA256 31e92bfcd57b3bf9b972219361b91db22ff2c7b4c7d18be80e93b7d00b13079b otcl-1.8.tar.gz 300954
diff --git a/dev-tcltk/otcl/files/otcl-1.11-badfreefix.patch b/dev-tcltk/otcl/files/otcl-1.11-badfreefix.patch
new file mode 100644
index 000000000000..2282720330b1
--- /dev/null
+++ b/dev-tcltk/otcl/files/otcl-1.11-badfreefix.patch
@@ -0,0 +1,241 @@
+diff -ur otcl-1.11/otcl.c otcl-1.11.new/otcl.c
+--- otcl-1.11/otcl.c 2004-01-05 16:56:07.000000000 -0800
++++ otcl-1.11.new/otcl.c 2004-01-13 04:12:10.000000000 -0800
+@@ -290,7 +290,7 @@
+ if (!l) return 0;
+ if (l->cl == s) {
+ *sl = l->next;
+- ckfree((char*)l);
++ ckfree((char*)l); l = NULL;
+ return 1;
+ }
+ while (l->next && l->next->cl != s) l = l->next;
+@@ -442,7 +442,7 @@
+ old_args2, argv[1], in->errorLine);
+ compat_Tcl_AddObjErrorInfo(in, msg, -1);
+ }
+- if (argc+2 > OTCLSMALLARGS) { ckfree((char*)args); args = 0; }
++ if (argc+2 > OTCLSMALLARGS) { ckfree((char*)args); args = NULL; }
+ return result;
+ }
+
+@@ -479,7 +479,7 @@
+ cl ? args[2] : argv[0], in->errorLine);
+ compat_Tcl_AddObjErrorInfo(in, msg, -1);
+ }
+- if (argc+3 > OTCLSMALLARGS) { ckfree((char*)args); args = 0; }
++ if (argc+3 > OTCLSMALLARGS) { ckfree((char*)args); args = NULL; }
+ return result;
+ }
+
+@@ -500,7 +500,7 @@
+
+ static void
+ AutoLoaderDP(ClientData cd) {
+- ckfree((char*)cd);
++ ckfree((char*)cd); cd = NULL;
+ }
+
+ static int
+@@ -579,8 +579,8 @@
+ Tcl_HashEntry *hPtr = Tcl_FindHashEntry(methods, nm);
+ if (hPtr != 0) {
+ Tcl_CmdInfo* co = (Tcl_CmdInfo*)Tcl_GetHashValue(hPtr);
+- if (co->deleteProc != 0) (*co->deleteProc)(co->deleteData);
+- ckfree((char*)co);
++ if (co->deleteProc != 0) { (*co->deleteProc)(co->deleteData); } co->deleteProc = NULL;
++ ckfree((char*)co); co = NULL;
+ Tcl_DeleteHashEntry(hPtr);
+ return 1;
+ }
+@@ -614,7 +614,7 @@
+ (Tcl_Namespace*)NULL, 0);
+ if (cmd)
+ Tcl_DeleteCommandFromToken(pdpd->interp, cmd);
+- ckfree((char*)pdpd);
++ ckfree((char*)pdpd); pdpd = NULL;
+ }
+ #endif
+
+@@ -674,7 +674,7 @@
+
+ for (i = 0; i < argc; i++)
+ Tcl_DecrRefCount(objv[i]);
+- ckfree((char *)objv);
++ ckfree((char *)objv); objv = NULL;
+
+ #else /* TCL_MAJOR_VERSION < 8 */
+
+@@ -691,7 +691,7 @@
+
+ #endif /* TCL_MAJOR_VERSION < 8 */
+
+- ckfree((char*)nargs);
++ ckfree((char*)nargs); nargs = NULL;
+ argv[1] = name;
+ argv[2] = oargs;
+
+@@ -926,7 +926,7 @@
+ static void
+ PrimitiveODestroy(ClientData cd) {
+ PrimitiveODestroyNoFree(cd);
+- ckfree((char*)cd);
++ ckfree((char*)cd); cd = NULL;
+ }
+
+ static void
+@@ -1002,18 +1002,18 @@
+ Tcl_CmdInfo* co = (Tcl_CmdInfo*)Tcl_GetHashValue(hp2);
+ ClientData cdest = cd;
+ if (co->clientData != 0) cdest = co->clientData;
+- if (co->deleteProc != 0) (*co->deleteProc)(co->deleteData);
+- ckfree((char*)co);
++ if (co->deleteProc != 0) { (*co->deleteProc)(co->deleteData); } co->deleteProc = NULL;
++ ckfree((char*)co); co = NULL;
+ }
+ if (obj->procs) {
+- Tcl_DeleteHashTable(obj->procs); ckfree((char*)(obj->procs));
++ Tcl_DeleteHashTable(obj->procs); ckfree((char*)(obj->procs)); obj->procs = NULL;
+ }
+
+ (void)RemoveInstance(obj, obj->cl);
+
+ #if TCL_MAJOR_VERSION >= 8
+- ckfree((char*)(obj->variables.procPtr));
+- ckfree((char*)(obj->variables.varTablePtr));
++ ckfree((char*)(obj->variables.procPtr)); obj->variables.procPtr = NULL;
++ ckfree((char*)(obj->variables.varTablePtr)); obj->variables.varTablePtr = NULL;
+ #endif
+ }
+
+@@ -1035,8 +1035,7 @@
+ obj->id = Tcl_CreateCommand(in, name, OTclDispatch, (ClientData)obj,
+ PrimitiveODestroy);
+ } else {
+- ckfree((char *)obj);
+- obj = NULL;
++ ckfree((char *)obj); obj = NULL;
+ }
+ #endif
+ return obj;
+@@ -1123,14 +1122,14 @@
+ Tcl_CmdInfo* co = (Tcl_CmdInfo*)Tcl_GetHashValue(hPtr);
+ ClientData cdest = cd;
+ if (co->clientData != 0) cdest = co->clientData;
+- if (co->deleteProc != 0) (*co->deleteProc)(co->deleteData);
+- ckfree((char*)co);
++ if (co->deleteProc != 0) { (*co->deleteProc)(co->deleteData); } co->deleteProc = NULL;
++ ckfree((char*)co); co = NULL;
+ }
+ Tcl_DeleteHashTable(&cl->instprocs);
+
+ if (cl->objectdata) {
+ Tcl_DeleteHashTable(cl->objectdata);
+- ckfree((char*)(cl->objectdata)); cl->objectdata = 0;
++ ckfree((char*)(cl->objectdata)); cl->objectdata = NULL;
+ }
+
+ /*
+@@ -1151,7 +1150,7 @@
+ * PrimitiveODestory to destory the hash entries first */
+ PrimitiveODestroyNoFree(cd);
+ Tcl_DeleteHashTable(&cl->instances);
+- ckfree((char*)cd);
++ ckfree((char*)cd); cd = NULL;
+ }
+
+
+@@ -1176,8 +1175,7 @@
+ obj->id = Tcl_CreateCommand(in, name, OTclDispatch, (ClientData)cl,
+ PrimitiveCDestroy);
+ } else {
+- ckfree((char *)cl);
+- cl = NULL;
++ ckfree((char *)cl); cl = NULL;
+ }
+ #endif
+ return cl;
+@@ -1359,6 +1357,9 @@
+ OTclObject* obj = OTclAsObject(in, cd);
+ Tcl_CmdInfo proc;
+ int op;
++ // NULL out the deleteProc value
++ // as it may be filled with random data on variable creation
++ proc.deleteProc = NULL; proc.deleteData = NULL;
+
+ if (!obj) return OTclErrType(in, argv[0], "Object");
+ if (argc != 7) return OTclErrArgCnt(in,argv[0],"proc name args body");
+@@ -1488,7 +1489,7 @@
+ Tcl_AppendResult(in, "expected ?inst/local? or ?inst? ?local? but got ",
+ argv[i]);
+ }
+- ckfree((char*)av);
++ ckfree((char*)av); av = NULL;
+ if (result != TCL_OK) break;
+ }
+ return result;
+@@ -1594,10 +1595,10 @@
+ scl[i] = OTclGetClass(in, av[i]);
+ loaded = (scl[i] != 0);
+ }
+- ckfree(args);
++ ckfree(args); args = NULL;
+ if (!loaded) {
+- ckfree((char*)av);
+- ckfree((char*)scl);
++ ckfree((char*)av); av = NULL;
++ ckfree((char*)scl); scl = NULL;
+ return OTclErrBadVal(in, "a list of classes", argv[4]);
+ }
+ }
+@@ -1621,8 +1622,8 @@
+ }
+
+ if (reversed != 0) {
+- ckfree((char*)av);
+- ckfree((char*)scl);
++ ckfree((char*)av); av = NULL;
++ ckfree((char*)scl); scl = NULL;
+ return OTclErrBadVal(in, "classes in dependence order", argv[4]);
+ }
+
+@@ -1641,8 +1642,8 @@
+ }
+ for (i = 0; i < ac; i++)
+ AddSuper(cl, scl[i]);
+- ckfree((char*)av);
+- ckfree((char*)scl);
++ ckfree((char*)av); av = NULL;
++ ckfree((char*)scl); scl = NULL;
+ FlushPrecedences(cl);
+
+ if (!ComputePrecedence(cl)) {
+@@ -1784,17 +1785,25 @@
+ OTclClass* cl = OTclAsClass(in, cd);
+ Tcl_CmdInfo proc;
+ int op;
++ // NULL out the deleteProc value
++ // as it may be filled with random data on variable creation
++ proc.deleteProc = NULL; proc.deleteData = NULL;
+
+ if (!cl) return OTclErrType(in, argv[0], "Class");
+ if (argc != 7) return OTclErrArgCnt(in,argv[0],"instproc name args body");
+
++
+ /*
+ * if the args list is "auto", the body is a script to load the proc
+ */
+
+- if (!strcmp("auto", argv[5])) op = MakeAuto(&proc, argv[6]);
+- else if (argv[5][0]==0 && argv[6][0]==0) op = -1;
+- else op = MakeProc(&proc,in, argc-3, argv+3);
++ if (!strcmp("auto", argv[5])) {
++ op = MakeAuto(&proc, argv[6]);
++ } else if (argv[5][0]==0 && argv[6][0]==0) {
++ op = -1;
++ } else {
++ op = MakeProc(&proc,in, argc-3, argv+3);
++ }
+
+ (void)RemoveMethod(&cl->instprocs, argv[4], (ClientData)cl);
+ if (op == 1) AddMethod(&cl->instprocs, argv[4], proc.proc,
diff --git a/dev-tcltk/otcl/files/otcl-1.11-configure-cleanup.patch b/dev-tcltk/otcl/files/otcl-1.11-configure-cleanup.patch
new file mode 100644
index 000000000000..21eab45733fd
--- /dev/null
+++ b/dev-tcltk/otcl/files/otcl-1.11-configure-cleanup.patch
@@ -0,0 +1,291 @@
+diff -Nuar otcl-1.11.orig/conf/configure.in.audio otcl-1.11/conf/configure.in.audio
+--- otcl-1.11.orig/conf/configure.in.audio 1998-07-16 23:07:29.000000000 -0700
++++ otcl-1.11/conf/configure.in.audio 2006-05-15 09:20:29.000000000 -0700
+@@ -90,10 +90,10 @@
+ fi
+ fi
+
+-AC_TEST_CPP([#include <sys/audioio.h>], x=audio/audio-sun.o, x="")
++AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <sys/audioio.h>]])],[x=audio/audio-sun.o],[x=""])
+ V_OBJ_AUDIO="$V_OBJ_AUDIO $x"
+
+-AC_TEST_CPP([#include <sun/audioio.h>], x=audio/audio-sun.o, x="")
++AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <sun/audioio.h>]])],[x=audio/audio-sun.o],[x=""])
+ V_OBJ_AUDIO="$V_OBJ_AUDIO $x"
+
+ case "$target" in
+diff -Nuar otcl-1.11.orig/conf/configure.in.dynamic otcl-1.11/conf/configure.in.dynamic
+--- otcl-1.11.orig/conf/configure.in.dynamic 1998-07-16 22:38:38.000000000 -0700
++++ otcl-1.11/conf/configure.in.dynamic 2006-05-15 09:36:26.632757055 -0700
+@@ -59,7 +59,7 @@
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print $3}' /etc/.relid'`
++ system=MP-RAS-`awk '{print $3}' /etc/.relid`
+ fi
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
+@@ -311,7 +311,7 @@
+ hold_ldflags=$LDFLAGS
+ AC_MSG_CHECKING(for ld accepts -Bexport flag)
+ LDFLAGS="${LDFLAGS} -Wl,-Bexport"
+- AC_TRY_LINK(, [int i;], found=yes, found=no)
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int i;]])],[found=yes],[found=no])
+ LDFLAGS=$hold_ldflags
+ AC_MSG_RESULT($found)
+ if test $found = yes; then
+diff -Nuar otcl-1.11.orig/conf/configure.in.head otcl-1.11/conf/configure.in.head
+--- otcl-1.11.orig/conf/configure.in.head 2001-04-11 16:49:06.000000000 -0700
++++ otcl-1.11/conf/configure.in.head 2006-05-15 09:24:21.510388584 -0700
+@@ -32,12 +32,12 @@
+ fi
+
+
+-AC_CANONICAL_SYSTEM
++AC_CANONICAL_TARGET([])
+
+ AC_PROG_CC
+ AC_PROG_CXX
+-AC_STDC_HEADERS
+-AC_HAVE_HEADERS(string.h)
++AC_HEADER_STDC([])
++AC_CHECK_HEADERS([string.h])
+
+ V_INCLUDE=""
+ V_LIB=""
+@@ -76,8 +76,7 @@
+ else
+ if test "$CC" = gcc ; then
+ AC_MSG_CHECKING(that $CXX can handle -O2)
+- AC_TRY_COMPILE(,
+- #if __GNUC__ < 2 || __GNUC_MINOR__ < 8
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[#if __GNUC__ < 2 || __GNUC_MINOR__ < 8
+ /* gcc */
+ error
+ #endif
+@@ -85,9 +84,9 @@
+ /* egcs */
+ int error;
+ #endif
+- ,AC_MSG_RESULT(yes)
+- OonS="-O2", # Optimize on Steroids
+- AC_MSG_RESULT(no))
++ ]])],[AC_MSG_RESULT(yes)
++ OonS="-O2"],[# Optimize on Steroids
++ AC_MSG_RESULT(no)])
+ fi
+ fi
+
+@@ -152,19 +151,16 @@
+
+ # Checking validity of STL
+ AC_MSG_CHECKING(standard STL is available)
+-AC_LANG_SAVE
+-AC_LANG_CPLUSPLUS
++
++AC_LANG_PUSH([C++])
+ enable_stl="no"
+-AC_TRY_COMPILE(
+- #include <list>
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <list>
+ #include <hash_map>
+ template <class _T> class tlist : public list <_T> {};
+- ,
+- return 0;
+- ,AC_MSG_RESULT(yes)
+- enable_stl="yes",
+- AC_MSG_RESULT(no))
+-AC_LANG_RESTORE
++ ]], [[return 0;
++ ]])],[AC_MSG_RESULT(yes)
++ enable_stl="yes"],[AC_MSG_RESULT(no)])
++AC_LANG_POP([C++])
+
+ # This can be extended to support compilation-time module selection
+ V_STLOBJ=""
+diff -Nuar otcl-1.11.orig/conf/configure.in.int64_t otcl-1.11/conf/configure.in.int64_t
+--- otcl-1.11.orig/conf/configure.in.int64_t 2005-08-31 18:54:05.000000000 -0700
++++ otcl-1.11/conf/configure.in.int64_t 2006-05-15 09:20:30.000000000 -0700
+@@ -22,19 +22,17 @@
+ fi
+
+ AC_CACHE_CHECK([for __int64_t],int64_t_HAVE___INT64_T,[
+-AC_TRY_RUN([
++AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ main() { __int64_t x; exit (sizeof(x) >= 8 ? 0 : 1); }
+-],
+-int64_t_HAVE___INT64_T=yes,int64_t_HAVE___INT64_T=no,int64_t_HAVE___INT64_T=cross)])
++]])],[int64_t_HAVE___INT64_T=yes],[int64_t_HAVE___INT64_T=no],[int64_t_HAVE___INT64_T=cross])])
+ if test x"$int64_t_HAVE___INT64_T" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then
+ INT64_T_ALTERNATIVE=__int64_t
+ fi
+
+ AC_CACHE_CHECK([for long long],int64_t_HAVE_LONG_LONG,[
+-AC_TRY_RUN([
++AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ main() { long long x; exit (sizeof(x) >= 8 ? 0 : 1); }
+-],
+-int64_t_HAVE_LONG_LONG=yes,int64_t_HAVE_LONG_LONG=no,int64_t_HAVE_LONG_LONG=cross)])
++]])],[int64_t_HAVE_LONG_LONG=yes],[int64_t_HAVE_LONG_LONG=no],[int64_t_HAVE_LONG_LONG=cross])])
+ if test x"$int64_t_HAVE_LONG_LONG" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then
+ INT64_T_ALTERNATIVE="long long"
+ fi
+diff -Nuar otcl-1.11.orig/conf/configure.in.nse otcl-1.11/conf/configure.in.nse
+--- otcl-1.11.orig/conf/configure.in.nse 2000-03-09 17:49:32.000000000 -0800
++++ otcl-1.11/conf/configure.in.nse 2006-05-15 09:20:30.000000000 -0700
+@@ -9,20 +9,20 @@
+ dnl
+
+ AC_MSG_CHECKING([for struct ether_header])
+-AC_TRY_COMPILE([
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdio.h>
+ #include <net/ethernet.h>
+-], [
++]], [[
+ int main()
+ {
+ struct ether_header etherHdr;
+
+ return 1;
+ }
+-], [
++]])],[
+ AC_DEFINE(HAVE_ETHER_HEADER_STRUCT)
+ AC_MSG_RESULT(found)
+-], [
++],[
+ AC_MSG_RESULT(not found)
+ ])
+
+@@ -31,20 +31,20 @@
+ dnl Look for ether_addr
+ dnl
+ AC_MSG_CHECKING([for struct ether_addr])
+-AC_TRY_COMPILE([
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdio.h>
+ #include <net/ethernet.h>
+-], [
++]], [[
+ int main()
+ {
+ struct ether_addr etherAddr;
+
+ return 0;
+ }
+-], [
++]])],[
+ AC_DEFINE(HAVE_ETHER_ADDRESS_STRUCT)
+ AC_MSG_RESULT(found)
+-], [
++],[
+ AC_MSG_RESULT(not found)
+ ])
+
+@@ -57,14 +57,13 @@
+ dnl
+ dnl look for SIOCGIFHWADDR
+ dnl
+-AC_TRY_RUN(
+-#include <stdio.h>
++AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
+ #include <sys/ioctl.h>
+ int main()
+ {
+ int i = SIOCGIFHWADDR;
+ return 0;
+ }
+-, AC_DEFINE(HAVE_SIOCGIFHWADDR), , echo 1
+-)
++]])],[AC_DEFINE(HAVE_SIOCGIFHWADDR)],[],[echo 1
++])
+
+diff -Nuar otcl-1.11.orig/conf/configure.in.perl otcl-1.11/conf/configure.in.perl
+--- otcl-1.11.orig/conf/configure.in.perl 1999-01-21 18:37:20.000000000 -0800
++++ otcl-1.11/conf/configure.in.perl 2006-05-15 09:20:30.000000000 -0700
+@@ -19,8 +19,8 @@
+ dnl
+ AC_DEFUN(CHECK_PERL_VERSION,
+ [
+-echo $[$1] -e "require $[$2]" 1>&AC_FD_CC
+-if $[$1] -e "require $[$2]" 2>&AC_FD_CC
++echo $[$1] -e "require $[$2]" 1>&AS_MESSAGE_LOG_FD()
++if $[$1] -e "require $[$2]" 2>&AS_MESSAGE_LOG_FD()
+ then
+ : good version
+ else
+diff -Nuar otcl-1.11.orig/conf/configure.in.tail otcl-1.11/conf/configure.in.tail
+--- otcl-1.11.orig/conf/configure.in.tail 2000-11-13 18:15:01.000000000 -0800
++++ otcl-1.11/conf/configure.in.tail 2006-05-15 09:40:00.160276617 -0700
+@@ -144,7 +144,8 @@
+
+ dnl backwards compability---if nothing else, do Makefile
+ define([AcOutputFiles],ifdef([AcOutputFiles],AcOutputFiles,Makefile))
+-AC_OUTPUT(AcOutputFiles)
++AC_CONFIG_FILES([Makefile])
++AC_OUTPUT
+
+ if test ! -d gen ; then
+ echo "creating ./gen"
+diff -Nuar otcl-1.11.orig/conf/configure.in.tcl otcl-1.11/conf/configure.in.tcl
+--- otcl-1.11.orig/conf/configure.in.tcl 2005-09-26 21:58:15.000000000 -0700
++++ otcl-1.11/conf/configure.in.tcl 2006-05-15 09:15:02.499646361 -0700
+@@ -84,6 +84,9 @@
+ $d/include/tcl$TCL_VERS \
+ $d/include/tcl$TCL_ALT_VERS \
+ $d/include \
++ $d/lib/tcl$TCL_HI_VERS/include \
++ $d/lib/tcl$TCL_VERS/include \
++ $d/lib/tcl$TCL_ALT_VERS/include \
+ "
+ TCL_H_PLACES=" \
+ ../include \
+@@ -134,7 +137,14 @@
+ /usr/include/tcl$TCL_VERS \
+ /usr/include/tcl$TCL_HI_VERS \
+ /usr/include/tcl$TCL_ALT_VERS \
+- /usr/include/tcl"
++ /usr/include/tcl \
++ /usr/lib/tcl$TCL_VERS/include/unix \
++ /usr/lib/tcl$TCL_HI_VERS/include/unix \
++ /usr/lib/tcl$TCL_ALT_VERS/include/unix \
++ /usr/lib/tcl$TCL_VERS/include/generic \
++ /usr/lib/tcl$TCL_HI_VERS/include/generic \
++ /usr/lib/tcl$TCL_ALT_VERS/include/generic \
++ "
+ dnl /usr/include/tcl is for Debian Linux
+ dnl /usr/include/tcl-private/generic is for FC 4
+ TCL_LIB_PLACES_D="$d \
+diff -Nuar otcl-1.11.orig/conf/configure.in.x11 otcl-1.11/conf/configure.in.x11
+--- otcl-1.11.orig/conf/configure.in.x11 1997-03-15 17:59:46.000000000 -0800
++++ otcl-1.11/conf/configure.in.x11 2006-05-15 09:20:31.000000000 -0700
+@@ -33,7 +33,7 @@
+
+ echo "checking for X11 header files"
+ if test "$x_includes" = NONE ; then
+- AC_TEST_CPP([#include <X11/Intrinsic.h>],x_includes="",x_includes=NONE)
++ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <X11/Intrinsic.h>]])],[x_includes=""],[x_includes=NONE])
+ if test "$x_includes" = NONE ; then
+ for i in $xincdirs ; do
+ if test -r $i/X11/Intrinsic.h; then
+diff -Nuar otcl-1.11.orig/configure.in otcl-1.11/configure.in
+--- otcl-1.11.orig/configure.in 2005-10-13 23:45:28.000000000 -0700
++++ otcl-1.11/configure.in 2006-05-15 09:37:50.480568397 -0700
+@@ -1,4 +1,5 @@
+-AC_INIT(otcl.c)
++AC_INIT
++AC_CONFIG_SRCDIR([otcl.c])
+
+ #XXX
+ V_PROG="otclsh"
+@@ -31,7 +32,7 @@
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+- system=MP-RAS-`awk '{print $3}' /etc/.relid'`
++ system=MP-RAS-`awk '{print $3}' /etc/.relid`
+ fi
+ AC_MSG_RESULT($system)
+ fi
diff --git a/dev-tcltk/otcl/otcl-1.11.ebuild b/dev-tcltk/otcl/otcl-1.11.ebuild
new file mode 100644
index 000000000000..15b67c420374
--- /dev/null
+++ b/dev-tcltk/otcl/otcl-1.11.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/otcl/otcl-1.11.ebuild,v 1.1 2006/05/15 17:10:33 robbat2 Exp $
+
+inherit eutils autotools virtualx
+
+DESCRIPTION="MIT Object extension to Tcl"
+HOMEPAGE="http://otcl-tclcl.sourceforge.net/otcl/"
+SRC_URI="mirror://sourceforge/otcl-tclcl/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~x86 ~sparc ~ppc ~amd64"
+IUSE=""
+
+DEPEND=">=dev-lang/tcl-8.4.5
+ >=dev-lang/tk-8.4.5"
+
+# the package is not safe :-(
+MAKEOPTS="${MAKEOPTS} -j1"
+
+src_unpack() {
+ unpack ${A}
+
+ EPATCH_OPTS="-p1 -d${S}" epatch ${FILESDIR}/otcl-1.11-badfreefix.patch
+ EPATCH_OPTS="-p1 -d${S}" epatch ${FILESDIR}/otcl-1.11-configure-cleanup.patch
+
+ cd ${S}
+ eautoconf
+ elibtoolize
+ libtoolize -f
+}
+
+src_compile() {
+ local tclv tkv myconf
+ tclv=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')
+ tkv=$(grep TK_VER /usr/include/tk.h | sed 's/^.*"\(.*\)".*/\1/')
+ myconf="--with-tcl-ver=${tclv} --with-tk-ver=${tkv}"
+ CFLAGS="${CFLAGS} -I/usr/$(get_libdir)/tcl${tkv}/include/generic"
+
+ echo myconf $myconf
+ econf ${myconf} || die "econf failed"
+ emake all || die "emake all failed"
+ emake libotcl.so || die "emake libotcl.so failed"
+}
+
+src_install() {
+ dobin otclsh owish
+ dolib libotcl.so
+ dolib.a libotcl.a
+ insinto /usr/include
+ doins otcl.h
+
+ # docs
+ dodoc VERSION
+ dohtml README.html CHANGES.html
+ docinto doc
+ dohtml doc/*.html
+}
+
+src_test() {
+ Xmake test
+}