summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Ferri <mescalinum@gentoo.org>2008-11-02 13:11:09 +0000
committerFederico Ferri <mescalinum@gentoo.org>2008-11-02 13:11:09 +0000
commit08a6e97bf6cc72073c67a6d3a1018b6e3457f13b (patch)
tree1f100152bce7a53ce3b7bd51ab59b1191654e7f1 /dev-tcltk
parentWhitespace. (diff)
downloadgentoo-2-08a6e97bf6cc72073c67a6d3a1018b6e3457f13b.tar.gz
gentoo-2-08a6e97bf6cc72073c67a6d3a1018b6e3457f13b.tar.bz2
gentoo-2-08a6e97bf6cc72073c67a6d3a1018b6e3457f13b.zip
adding v5.43.0, cause 5.44.1 was retired due to problems - bug #244827
(Portage version: 2.1.4.4)
Diffstat (limited to 'dev-tcltk')
-rw-r--r--dev-tcltk/expect/ChangeLog7
-rw-r--r--dev-tcltk/expect/expect-5.43.0.ebuild109
-rw-r--r--dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch100
-rw-r--r--dev-tcltk/expect/files/expect-5.43.0-multilib.patch11
4 files changed, 226 insertions, 1 deletions
diff --git a/dev-tcltk/expect/ChangeLog b/dev-tcltk/expect/ChangeLog
index 05eba9f516c3..020f9bd0285d 100644
--- a/dev-tcltk/expect/ChangeLog
+++ b/dev-tcltk/expect/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for dev-tcltk/expect
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/expect/ChangeLog,v 1.49 2008/11/02 10:07:08 mescalinum Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/expect/ChangeLog,v 1.50 2008/11/02 13:11:09 mescalinum Exp $
+
+ 02 Nov 2008; Federico Ferri <mescalinum@gentoo.org>
+ +files/expect-5.43.0-avoid-tcl-internals-1.patch,
+ +files/expect-5.43.0-multilib.patch, +expect-5.43.0.ebuild:
+ adding v5.43.0, cause 5.44.1 was retired due to problems - bug #244827
02 Nov 2008; Federico Ferri <mescalinum@gentoo.org> expect-5.44.1.ebuild:
tk dep isn't conditional anymore, bug #244827
diff --git a/dev-tcltk/expect/expect-5.43.0.ebuild b/dev-tcltk/expect/expect-5.43.0.ebuild
new file mode 100644
index 000000000000..abaccc67dde6
--- /dev/null
+++ b/dev-tcltk/expect/expect-5.43.0.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/expect/expect-5.43.0.ebuild,v 1.9 2008/11/02 13:11:09 mescalinum Exp $
+
+WANT_AUTOCONF="2.1"
+inherit autotools eutils
+
+DESCRIPTION="tool for automating interactive applications"
+HOMEPAGE="http://expect.nist.gov/"
+SRC_URI="http://expect.nist.gov/src/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="X doc"
+
+# We need dejagnu for src_test, but dejagnu needs expect
+# to compile/run, so we cant add dejagnu to DEPEND :/
+DEPEND=">=dev-lang/tcl-8.2
+ X? ( >=dev-lang/tk-8.2 )"
+RDEPEND="${DEPEND}"
+
+NON_MICRO_V=${P%.[0-9]}
+S=${WORKDIR}/${NON_MICRO_V}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch ${FILESDIR}/${P}-multilib.patch
+
+ #fix the rpath being set to /var/tmp/portage/...
+ epatch ${FILESDIR}/expect-5.39.0-libdir.patch
+
+ #Removes references to functions that Tcl 8.5 no longer exposes.
+ epatch ${FILESDIR}/${P}-avoid-tcl-internals-1.patch
+
+ sed -i 's#/usr/local/bin#/usr/bin#' expect.man
+ sed -i 's#/usr/local/bin#/usr/bin#' expectk.man
+ #stops any example scripts being installed by default
+ sed -i \
+ -e '/^install:/s/install-libraries //' \
+ -e 's/^SCRIPTS_MANPAGES = /_&/' \
+ Makefile.in
+ #fixes "TCL_REG_BOSONLY undeclared" error due to a change in tcl8.5
+ sed -i -e 's/^#include "tcl.h"/#include "tclInt.h"/' \
+ exp_inter.c exp_command.c
+ #fix missing define of HAVE_UNISTD_H in Dbg.c
+ sed -i -e 's/^\(#include <stdio\.h>\)/\1\n#include "expect_cf.h"/' \
+ Dbg.c
+
+ eautoconf
+}
+
+src_compile() {
+ local myconf
+ local tcl_version
+ local tcl_hdir
+ tcl_version=$(echo 'puts [set tcl_version]' | tclsh)
+ tcl_hdir="/usr/$(get_libdir)/tcl${tcl_version}/include"
+
+ #configure needs to find the file tclConfig.sh is
+ myconf="--with-tcl=/usr/$(get_libdir) --with-tclinclude=$tcl_hdir"
+
+ if use X ; then
+ #--with-x is enabled by default
+ #configure needs to find the file tkConfig.sh and tk.h
+ #tk.h is in /usr/lib so don't need to explicitly set --with-tkinclude
+ myconf="$myconf --with-tk=/usr/$(get_libdir)"
+ else
+ #configure knows that tk depends on X so just disable X
+ myconf="$myconf --without-x"
+ fi
+
+ econf $myconf --enable-shared || die "econf failed"
+ emake TCLHDIRDASHI="-I${tcl_hdir}/generic -I${tcl_hdir}/unix" \
+ || die "emake failed"
+}
+
+src_test() {
+ # we need dejagnu to do tests ... but dejagnu needs
+ # expect ... so don't do tests unless we have dejagnu
+ type -p runtest || return 0
+ make check || die "make check failed"
+}
+
+src_install() {
+ dodir /usr/$(get_libdir)
+ make install INSTALL_ROOT=${D} || die "make install failed"
+
+ dodoc ChangeLog FAQ HISTORY NEWS README
+
+ local static_lib="lib${NON_MICRO_V/-/}.a"
+ rm ${D}/usr/$(get_libdir)/${NON_MICRO_V/-/}/${static_lib}
+
+ #install examples if 'doc' is set
+ if use doc ; then
+ docinto examples
+ local scripts=$(make -qp | \
+ sed -e 's/^SCRIPTS = //' -et -ed | head -n1)
+ exeinto /usr/share/doc/${PF}/examples
+ doexe ${scripts}
+ local scripts_manpages=$(make -qp | \
+ sed -e 's/^_SCRIPTS_MANPAGES = //' -et -ed | head -n1)
+ for m in ${scripts_manpages}; do
+ dodoc example/${m}.man
+ done
+ dodoc example/README
+ fi
+}
diff --git a/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch b/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch
new file mode 100644
index 000000000000..517fe93f8b2c
--- /dev/null
+++ b/dev-tcltk/expect/files/expect-5.43.0-avoid-tcl-internals-1.patch
@@ -0,0 +1,100 @@
+Submitted By: Bryan Kadzban <bryan@kadzban.is-a-geek.net>
+Date: 2008-01-12
+Initial Package Version: 5.43
+Upstream status: Not Submitted - Test Version
+Origin: LFS ticket 2126 (http://wiki.linuxfromscratch.org/lfs/ticket/2126)
+Description: Removes references to functions that Tcl 8.5 no longer exposes.
+
+diff -Naur expect-5.43/exp_command.c expect-5.43-patched/exp_command.c
+--- expect-5.43/exp_command.c 2004-08-20 13:18:01.000000000 -0400
++++ expect-5.43-patched/exp_command.c 2008-01-12 11:42:45.000000000 -0500
+@@ -2265,6 +2265,8 @@
+ /*NOTREACHED*/
+ }
+
++static struct exp_cmd_data cmd_data[];
++
+ /*ARGSUSED*/
+ static int
+ Exp_CloseObjCmd(clientData, interp, objc, objv)
+@@ -2311,12 +2313,23 @@
+ /* Historical note: we used "close" long before there was a */
+ /* Tcl builtin by the same name. */
+
++ /* The code that registered this function as the handler for */
++ /* the "close" command stored away the old handler in the */
++ /* exp_cmd_data for the "close" command. */
++
++ struct exp_cmd_data *cmd_ptr;
+ Tcl_CmdInfo info;
++
++ for(cmd_ptr = &cmd_data[0]; cmd_ptr->name; cmd_ptr++) {
++ if(strncmp(cmd_ptr->name, "close", 5) == 0)
++ break;
++ }
++
+ Tcl_ResetResult(interp);
+ if (0 == Tcl_GetCommandInfo(interp,"close",&info)) {
+ info.clientData = 0;
+ }
+- return(Tcl_CloseObjCmd(info.clientData,interp,objc_orig,objv_orig));
++ return(cmd_ptr->old_objProc(info.clientData,interp,objc_orig,objv_orig));
+ }
+
+ if (chanName) {
+@@ -2961,7 +2974,10 @@
+ /* if successful (i.e., TCL_RETURN is returned) */
+ /* modify the result, so that we will handle it specially */
+
+- int result = Tcl_ReturnObjCmd(clientData,interp,objc,objv);
++ Tcl_CmdInfo info;
++ Tcl_GetCommandInfo(interp, "return", &info);
++
++ int result = info.objProc(clientData,interp,objc,objv);
+ if (result == TCL_RETURN)
+ result = EXP_TCL_RETURN;
+ return result;
+@@ -3062,8 +3078,7 @@
+
+ for (;c->name;c++) {
+ /* if already defined, don't redefine */
+- if ((c->flags & EXP_REDEFINE) ||
+- !(Tcl_FindHashEntry(&globalNsPtr->cmdTable,c->name) ||
++ if (!(Tcl_FindHashEntry(&globalNsPtr->cmdTable,c->name) ||
+ Tcl_FindHashEntry(&currNsPtr->cmdTable,c->name))) {
+ if (c->objproc)
+ Tcl_CreateObjCommand(interp,c->name,
+@@ -3072,6 +3087,21 @@
+ Tcl_CreateCommand(interp,c->name,c->proc,
+ c->data,exp_deleteProc);
+ }
++ else if (c->flags & EXP_REDEFINE) { /* unless the REDEFINE flag is present */
++ Tcl_CmdInfo info;
++
++ if (Tcl_GetCommandInfo(interp, c->name, &info)) {
++ c->old_proc = info.proc;
++ c->old_objProc = info.objProc;
++ }
++
++ if (c->objproc)
++ Tcl_CreateObjCommand(interp,c->name,
++ c->objproc,c->data,exp_deleteObjProc);
++ else
++ Tcl_CreateCommand(interp,c->name,c->proc,
++ c->data,exp_deleteProc);
++ }
+ if (!(c->name[0] == 'e' &&
+ c->name[1] == 'x' &&
+ c->name[2] == 'p')
+diff -Naur expect-5.43/exp_command.h expect-5.43-patched/exp_command.h
+--- expect-5.43/exp_command.h 2008-01-12 11:44:11.000000000 -0500
++++ expect-5.43-patched/exp_command.h 2008-01-12 11:26:05.000000000 -0500
+@@ -297,6 +297,8 @@
+ Tcl_CmdProc *proc;
+ ClientData data;
+ int flags;
++ Tcl_CmdProc *old_proc; /* these store the procedure for the old command, */
++ Tcl_ObjCmdProc *old_objProc; /* if any */
+ };
+
+ EXTERN void exp_create_commands _ANSI_ARGS_((Tcl_Interp *,
diff --git a/dev-tcltk/expect/files/expect-5.43.0-multilib.patch b/dev-tcltk/expect/files/expect-5.43.0-multilib.patch
new file mode 100644
index 000000000000..9257537349d5
--- /dev/null
+++ b/dev-tcltk/expect/files/expect-5.43.0-multilib.patch
@@ -0,0 +1,11 @@
+--- expect-5.42/configure.in.orig 2004-12-21 03:02:36.095170881 -0800
++++ expect-5.42/configure.in 2004-12-21 03:03:08.987170537 -0800
+@@ -1141,7 +1141,7 @@
+ fi
+
+ EXP_BUILD_LIB_SPEC="-L`pwd` -lexpect${EXP_LIB_VERSION}${DBGX}"
+-EXP_LIB_SPEC="-L\${INSTALL_ROOT}\${exec_prefix}/lib -lexpect${EXP_LIB_VERSION}${DBGX}"
++EXP_LIB_SPEC="-L\${libdir} -lexpect${EXP_LIB_VERSION}${DBGX}"
+ EXP_UNSHARED_LIB_FILE=libexpect${EXP_LIB_VERSION}${DBGX}.a
+
+ # The TCL_SHARED_LIB_SUFFIX macro below relies on the DBGX macro,