Update to 5.44.1.15 from upstream CVS, Fix unbuffer to return exit code of
ubuffered program, Fix Tk initialization
This commit is contained in:
parent
f659af23bb
commit
4789c74752
@ -1,2 +1 @@
|
|||||||
config.sub
|
expect-5.44.1.15.tar.bz2
|
||||||
expect-5.43.0.tar.bz2
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
diff -up expect-5.43/example/mkpasswd.random expect-5.43/example/mkpasswd
|
diff -up expect-5.44.1.15/example/mkpasswd.orig expect-5.44.1.15/example/mkpasswd
|
||||||
--- expect-5.43/example/mkpasswd.random 2004-12-07 00:38:21.000000000 +0100
|
--- expect-5.44.1.15/example/mkpasswd.orig 2010-03-08 16:01:05.518378075 +0100
|
||||||
+++ expect-5.43/example/mkpasswd 2008-09-25 12:27:19.000000000 +0200
|
+++ expect-5.44.1.15/example/mkpasswd 2010-03-08 16:01:27.408388162 +0100
|
||||||
@@ -92,7 +92,14 @@ proc insert {pvar char} {
|
@@ -92,7 +92,14 @@ proc insert {pvar char} {
|
||||||
}
|
}
|
||||||
|
|
||||||
proc rand {m} {
|
proc rand {m} {
|
||||||
- expr {int($m*rand())}
|
- expr {int($m*rand())}
|
||||||
+ set device /dev/urandom ;# /dev/random can block
|
+ set device /dev/urandom ;# /dev/random can block
|
||||||
+ set fileId [open $device r]
|
+ set fileId [open $device r]
|
||||||
+ binary scan [read $fileId 4] i1 number
|
+ binary scan [read $fileId 4] i1 number
|
||||||
+ set clipped [expr $number % $m]
|
+ set clipped [expr $number % $m]
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -up expect-5.43/configure.in.lib-spec expect-5.43/configure.in
|
|
||||||
--- expect-5.43/configure.in.lib-spec 2005-02-08 02:45:06.000000000 +0100
|
|
||||||
+++ expect-5.43/configure.in 2008-09-25 12:23:26.000000000 +0200
|
|
||||||
@@ -1141,7 +1141,7 @@ if test $ac_cv_sys_long_file_names = no;
|
|
||||||
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,
|
|
@ -1,212 +0,0 @@
|
|||||||
diff -up expect-5.43/exp_chan.c.spawn expect-5.43/exp_chan.c
|
|
||||||
--- expect-5.43/exp_chan.c.spawn 2005-02-08 03:01:20.000000000 +0100
|
|
||||||
+++ expect-5.43/exp_chan.c 2008-09-25 12:22:14.000000000 +0200
|
|
||||||
@@ -622,6 +622,7 @@ expCreateChannel(interp,fdin,fdout,pid)
|
|
||||||
esPtr->buffer = Tcl_NewStringObj("",0);
|
|
||||||
Tcl_IncrRefCount(esPtr->buffer);
|
|
||||||
esPtr->umsize = exp_default_match_max;
|
|
||||||
+ esPtr->umsize_changed = exp_default_match_max_changed;
|
|
||||||
/* this will reallocate object with an appropriate sized buffer */
|
|
||||||
expAdjust(esPtr);
|
|
||||||
|
|
||||||
diff -up expect-5.43/exp_command.h.spawn expect-5.43/exp_command.h
|
|
||||||
--- expect-5.43/exp_command.h.spawn 2004-07-30 17:35:28.000000000 +0200
|
|
||||||
+++ expect-5.43/exp_command.h 2008-09-25 12:22:14.000000000 +0200
|
|
||||||
@@ -30,6 +30,7 @@ would appreciate credit if this program
|
|
||||||
EXTERN char * exp_get_var _ANSI_ARGS_((Tcl_Interp *,char *));
|
|
||||||
|
|
||||||
EXTERN int exp_default_match_max;
|
|
||||||
+EXTERN int exp_default_match_max_changed;
|
|
||||||
EXTERN int exp_default_parity;
|
|
||||||
EXTERN int exp_default_rm_nulls;
|
|
||||||
EXTERN int exp_default_close_on_eof;
|
|
||||||
@@ -103,6 +104,7 @@ typedef struct ExpState {
|
|
||||||
int msize; /* # of bytes that buffer can hold (max) */
|
|
||||||
int umsize; /* # of bytes (min) that is guaranteed to match */
|
|
||||||
/* this comes from match_max command */
|
|
||||||
+ int umsize_changed; /* is umsize changed by user? */
|
|
||||||
int printed; /* # of bytes written to stdout (if logging on) */
|
|
||||||
/* but not actually returned via a match yet */
|
|
||||||
int echoed; /* additional # of bytes (beyond "printed" above) */
|
|
||||||
diff -up expect-5.43/expect.c.spawn expect-5.43/expect.c
|
|
||||||
--- expect-5.43/expect.c.spawn 2004-07-07 01:26:02.000000000 +0200
|
|
||||||
+++ expect-5.43/expect.c 2008-09-25 12:22:14.000000000 +0200
|
|
||||||
@@ -41,8 +41,17 @@ would appreciate credit if this program
|
|
||||||
#include "tcldbg.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* The initial length is 2000. We increment it by 2000. The maximum
|
|
||||||
+ is 8MB (0x800000). */
|
|
||||||
+#define EXP_MATCH_MAX 2000
|
|
||||||
+#define EXP_MATCH_INC 2000
|
|
||||||
+#define EXP_MATCH_STEP_LIMIT 0x700000
|
|
||||||
+#define EXP_MATCH_LIMIT 0x800000
|
|
||||||
+#define EXP_MATCH_LIMIT_QUOTE "0x800000"
|
|
||||||
+
|
|
||||||
/* initial length of strings that we can guarantee patterns can match */
|
|
||||||
-int exp_default_match_max = 2000;
|
|
||||||
+int exp_default_match_max = EXP_MATCH_MAX;
|
|
||||||
+int exp_default_match_max_changed = 0;
|
|
||||||
#define INIT_EXPECT_TIMEOUT_LIT "10" /* seconds */
|
|
||||||
#define INIT_EXPECT_TIMEOUT 10 /* seconds */
|
|
||||||
int exp_default_parity = TRUE;
|
|
||||||
@@ -1619,6 +1628,76 @@ expNullStrip(obj,offsetBytes)
|
|
||||||
return newsize;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* returns # of bytes until we see a newline at the end or EOF. */
|
|
||||||
+/*ARGSUSED*/
|
|
||||||
+static int
|
|
||||||
+expReadNewLine(interp,esPtr,save_flags) /* INTL */
|
|
||||||
+Tcl_Interp *interp;
|
|
||||||
+ExpState *esPtr;
|
|
||||||
+int save_flags;
|
|
||||||
+{
|
|
||||||
+ int size;
|
|
||||||
+ int exp_size;
|
|
||||||
+ int full_size;
|
|
||||||
+ int count;
|
|
||||||
+ char *str;
|
|
||||||
+
|
|
||||||
+ count = 0;
|
|
||||||
+ for (;;) {
|
|
||||||
+ exp_size = expSizeGet(esPtr);
|
|
||||||
+
|
|
||||||
+ /* When we reach the limit, we will only read one char at a
|
|
||||||
+ time. */
|
|
||||||
+ if (esPtr->umsize >= EXP_MATCH_STEP_LIMIT)
|
|
||||||
+ size = TCL_UTF_MAX;
|
|
||||||
+ else
|
|
||||||
+ size = exp_size;
|
|
||||||
+
|
|
||||||
+ if (exp_size + TCL_UTF_MAX >= esPtr->msize) {
|
|
||||||
+ if (esPtr->umsize >= EXP_MATCH_LIMIT) {
|
|
||||||
+ expDiagLogU("WARNING: interact buffer is full. probably your program\r\n");
|
|
||||||
+ expDiagLogU("is not interactive or has a very long output line. The\r\n");
|
|
||||||
+ expDiagLogU("current limit is " EXP_MATCH_LIMIT_QUOTE ".\r\n");
|
|
||||||
+ expDiagLogU("Dumping first half of buffer in order to continue\r\n");
|
|
||||||
+ expDiagLogU("Recommend you enlarge the buffer.\r\n");
|
|
||||||
+ exp_buffer_shuffle(interp,esPtr,save_flags,EXPECT_OUT,"expect");
|
|
||||||
+ return count;
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ esPtr->umsize += EXP_MATCH_INC;
|
|
||||||
+ expAdjust(esPtr);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ full_size = esPtr->msize - (size / TCL_UTF_MAX);
|
|
||||||
+ size = Tcl_ReadChars(esPtr->channel,
|
|
||||||
+ esPtr->buffer,
|
|
||||||
+ full_size,
|
|
||||||
+ 1 /* append */);
|
|
||||||
+ if (size > 0) {
|
|
||||||
+ count += size;
|
|
||||||
+ /* We try again if there are more to read and we haven't
|
|
||||||
+ seen a newline at the end. */
|
|
||||||
+ if (size == full_size) {
|
|
||||||
+ str = Tcl_GetStringFromObj(esPtr->buffer, &size);
|
|
||||||
+ if (str[size - 1] != '\n')
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ /* It is even trickier. We got an error from read. We have
|
|
||||||
+ to recover from it. Let's make sure the size of
|
|
||||||
+ buffer is correct. It can be corrupted. */
|
|
||||||
+ str = Tcl_GetString(esPtr->buffer);
|
|
||||||
+ Tcl_SetObjLength(esPtr->buffer, strlen(str));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return count;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* returns # of bytes read or (non-positive) error of form EXP_XXX */
|
|
||||||
/* returns 0 for end of file */
|
|
||||||
/* If timeout is non-zero, set an alarm before doing the read, else assume */
|
|
||||||
@@ -1633,6 +1712,8 @@ int save_flags;
|
|
||||||
{
|
|
||||||
int cc = EXP_TIMEOUT;
|
|
||||||
int size = expSizeGet(esPtr);
|
|
||||||
+ int full_size;
|
|
||||||
+ int count;
|
|
||||||
|
|
||||||
if (size + TCL_UTF_MAX >= esPtr->msize)
|
|
||||||
exp_buffer_shuffle(interp,esPtr,save_flags,EXPECT_OUT,"expect");
|
|
||||||
@@ -1649,11 +1730,43 @@ int save_flags;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-
|
|
||||||
+ /* FIXME: If we ask less than what is available in the tcl buffer
|
|
||||||
+ when tcl has seen EOF, we will throw away the remaining data
|
|
||||||
+ since the next read will get EOF. Since expect is line-oriented,
|
|
||||||
+ we exand our buffer to get EOF or the next newline at the end of
|
|
||||||
+ the input buffer. I don't know if it is the right fix. H.J. */
|
|
||||||
+ count = 0;
|
|
||||||
+ full_size = esPtr->msize - (size / TCL_UTF_MAX);
|
|
||||||
cc = Tcl_ReadChars(esPtr->channel,
|
|
||||||
- esPtr->buffer,
|
|
||||||
- esPtr->msize - (size / TCL_UTF_MAX),
|
|
||||||
- 1 /* append */);
|
|
||||||
+ esPtr->buffer,
|
|
||||||
+ full_size,
|
|
||||||
+ 1 /* append */);
|
|
||||||
+ if (cc > 0) {
|
|
||||||
+ count += cc;
|
|
||||||
+ /* It gets very tricky. There are more to read. We will expand
|
|
||||||
+ our buffer and get EOF or a newline at the end unless the
|
|
||||||
+ buffer length has been changed. */
|
|
||||||
+ if (cc == full_size) {
|
|
||||||
+ char *str;
|
|
||||||
+ str = Tcl_GetStringFromObj(esPtr->buffer, &size);
|
|
||||||
+ if (str[size - 1] != '\n') {
|
|
||||||
+ if (esPtr->umsize_changed) {
|
|
||||||
+ char buf[20]; /* big enough for 64bit int in hex. */
|
|
||||||
+ snprintf(buf,sizeof(buf),"0x%x", esPtr->umsize);
|
|
||||||
+ expDiagLogU("WARNING: interact buffer is not large enough to hold\r\n");
|
|
||||||
+ expDiagLogU("all output. probably your program is not interactive or\r\n");
|
|
||||||
+ expDiagLogU("has a very long output line. The current limit is ");
|
|
||||||
+ expDiagLogU(buf);
|
|
||||||
+ expDiagLogU(".\r\n");
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ cc = expReadNewLine(interp,esPtr,save_flags);
|
|
||||||
+ if (cc > 0)
|
|
||||||
+ count += cc;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
i_read_errno = errno;
|
|
||||||
|
|
||||||
#ifdef SIMPLE_EVENT
|
|
||||||
@@ -1674,7 +1787,7 @@ int save_flags;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
- return cc;
|
|
||||||
+ return count > 0 ? count : cc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -2751,8 +2864,14 @@ char **argv;
|
|
||||||
return(TCL_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (Default) exp_default_match_max = size;
|
|
||||||
- else esPtr->umsize = size;
|
|
||||||
+ if (Default) {
|
|
||||||
+ exp_default_match_max = size;
|
|
||||||
+ exp_default_match_max_changed = 1;
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ esPtr->umsize = size;
|
|
||||||
+ esPtr->umsize_changed = 1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return(TCL_OK);
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
diff -up expect-5.43/expect_cf.h.in.h-comments expect-5.43/expect_cf.h.in
|
|
||||||
--- expect-5.43/expect_cf.h.in.h-comments 2004-05-07 19:48:02.000000000 +0200
|
|
||||||
+++ expect-5.43/expect_cf.h.in 2008-09-25 12:22:37.000000000 +0200
|
|
||||||
@@ -4,7 +4,8 @@
|
|
||||||
#ifndef __EXPECT_CF_H__
|
|
||||||
#define __EXPECT_CF_H__
|
|
||||||
|
|
||||||
-#undef NO_STDLIB_H /* Tcl requires this name */
|
|
||||||
+/* Tcl requires this name */
|
|
||||||
+#undef NO_STDLIB_H
|
|
||||||
#undef NO_UNION_WAIT
|
|
||||||
#undef HAVE_STDARG_H
|
|
||||||
#undef HAVE_VARARGS_H
|
|
||||||
@@ -12,12 +13,18 @@
|
|
||||||
#undef HAVE_SYSCONF_H
|
|
||||||
#undef HAVE_SYS_FCNTL_H
|
|
||||||
#undef HAVE_SYS_WAIT_H
|
|
||||||
-#undef HAVE_SYS_BSDTYPES_H /* nice ISC special */
|
|
||||||
-#undef HAVE_SYS_SELECT_H /* nice ISC special */
|
|
||||||
-#undef HAVE_SYS_TIME_H /* nice ISC special */
|
|
||||||
-#undef HAVE_SYS_PTEM_H /* SCO needs this for window size */
|
|
||||||
-#undef HAVE_STRREDIR_H /* Solaris needs this for console redir */
|
|
||||||
-#undef HAVE_STRPTY_H /* old-style Dynix ptys need this */
|
|
||||||
+/* nice ISC special */
|
|
||||||
+#undef HAVE_SYS_BSDTYPES_H
|
|
||||||
+/* nice ISC special */
|
|
||||||
+#undef HAVE_SYS_SELECT_H
|
|
||||||
+/* nice ISC special */
|
|
||||||
+#undef HAVE_SYS_TIME_H
|
|
||||||
+/* SCO needs this for window size */
|
|
||||||
+#undef HAVE_SYS_PTEM_H
|
|
||||||
+/* Solaris needs this for console redir */
|
|
||||||
+#undef HAVE_STRREDIR_H
|
|
||||||
+/* old-style Dynix ptys need this */
|
|
||||||
+#undef HAVE_STRPTY_H
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
#undef HAVE_SYSMACROS_H
|
|
||||||
#undef HAVE_INTTYPES_H
|
|
||||||
@@ -26,8 +33,10 @@
|
|
||||||
|
|
||||||
#undef pid_t
|
|
||||||
#undef RETSIGTYPE
|
|
||||||
-#undef TIME_WITH_SYS_TIME /* ok to include both time.h and sys/time.h */
|
|
||||||
-#undef SETPGRP_VOID /* if setpgrp takes 0 args */
|
|
||||||
+/* ok to include both time.h and sys/time.h */
|
|
||||||
+#undef TIME_WITH_SYS_TIME
|
|
||||||
+/* if setpgrp takes 0 args */
|
|
||||||
+#undef SETPGRP_VOID
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This section is for compile macros needed by
|
|
||||||
@@ -42,7 +51,8 @@
|
|
||||||
#undef SIMPLE_EVENT
|
|
||||||
#undef HAVE_STRFTIME
|
|
||||||
#undef HAVE_MEMMOVE
|
|
||||||
-#undef HAVE_TIMEZONE /* timezone() a la Pyramid */
|
|
||||||
+/* timezone() a la Pyramid */
|
|
||||||
+#undef HAVE_TIMEZONE
|
|
||||||
#undef HAVE_SIGLONGJMP
|
|
||||||
#undef HAVE_STRCHR
|
|
||||||
|
|
||||||
diff -up expect-5.43/tcldbgcf.h.in.h-comments expect-5.43/tcldbgcf.h.in
|
|
||||||
--- expect-5.43/tcldbgcf.h.in.h-comments 2002-02-12 03:00:56.000000000 +0100
|
|
||||||
+++ expect-5.43/tcldbgcf.h.in 2008-09-25 12:22:37.000000000 +0200
|
|
||||||
@@ -7,7 +7,8 @@
|
|
||||||
#ifndef __NIST_DBG_CF_H__
|
|
||||||
#define __NIST_DBG_CF_H__
|
|
||||||
|
|
||||||
-#undef NO_STDLIB_H /* Tcl requires this name */
|
|
||||||
+/* Tcl requires this name */
|
|
||||||
+#undef NO_STDLIB_H
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Check for functions
|
|
@ -1,12 +1,12 @@
|
|||||||
diff -up expect-5.43/exp_log.c.log_file expect-5.43/exp_log.c
|
diff -up expect-5.44.1.15/exp_log.c.orig expect-5.44.1.15/exp_log.c
|
||||||
--- expect-5.43/exp_log.c.log_file 2004-08-18 22:54:35.000000000 +0200
|
--- expect-5.44.1.15/exp_log.c.orig 2010-03-08 15:45:20.581378309 +0100
|
||||||
+++ expect-5.43/exp_log.c 2008-09-25 12:24:42.000000000 +0200
|
+++ expect-5.44.1.15/exp_log.c 2010-03-08 15:45:38.838398279 +0100
|
||||||
@@ -471,7 +471,7 @@ expLogChannelOpen(interp,filename,append
|
@@ -374,7 +374,7 @@ expDiagChannelOpen(interp,filename)
|
||||||
Tcl_DStringAppend(&tsdPtr->logFilename,filename,-1);
|
Tcl_DStringAppend(&tsdPtr->diagFilename,filename,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
- tsdPtr->logChannel = Tcl_OpenFileChannel(interp,newfilename,mode,0777);
|
- tsdPtr->diagChannel = Tcl_OpenFileChannel(interp,newfilename,"a",0777);
|
||||||
+ tsdPtr->logChannel = Tcl_OpenFileChannel(interp,newfilename,mode,0666);
|
+ tsdPtr->diagChannel = Tcl_OpenFileChannel(interp,newfilename,"a",0666);
|
||||||
if (!tsdPtr->logChannel) {
|
if (!tsdPtr->diagChannel) {
|
||||||
Tcl_DStringFree(&tsdPtr->logFilename);
|
Tcl_DStringFree(&tsdPtr->diagFilename);
|
||||||
return TCL_ERROR;
|
return TCL_ERROR;
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
diff -up expect-5.43/Makefile.in.pkgIndex-x expect-5.43/Makefile.in
|
|
||||||
--- expect-5.43/Makefile.in.pkgIndex-x 2008-09-25 12:26:26.000000000 +0200
|
|
||||||
+++ expect-5.43/Makefile.in 2008-09-25 12:26:26.000000000 +0200
|
|
||||||
@@ -368,7 +368,7 @@ install_shared_lib: $(EXP_LIB_FILES)
|
|
||||||
else true; fi
|
|
||||||
if [ -s $(EXP_SHARED_LIB_FILE) ] ; then \
|
|
||||||
$(INSTALL_PROGRAM) $(EXP_SHARED_LIB_FILE) $(tcl_libdir)/$(EXP_SHARED_LIB_FILE) ; \
|
|
||||||
- $(INSTALL_PROGRAM) pkgIndex $(libdir)/pkgIndex.tcl ; \
|
|
||||||
+ $(INSTALL_DATA) pkgIndex $(libdir)/pkgIndex.tcl ; \
|
|
||||||
else true; fi
|
|
||||||
|
|
||||||
expect_installed: exp_main_exp.o $(EXP_LIB_FILE) install_shared_lib
|
|
@ -1,34 +1,46 @@
|
|||||||
diff -up expect-5.43/configure.in.pkgpath expect-5.43/configure.in
|
diff -up expect-5.44.1.15/configure.in.pkgpath expect-5.44.1.15/configure.in
|
||||||
--- expect-5.43/configure.in.pkgpath 2008-09-25 12:28:28.000000000 +0200
|
--- expect-5.44.1.15/configure.in.pkgpath 2009-11-03 20:27:58.000000000 +0100
|
||||||
+++ expect-5.43/configure.in 2008-09-25 12:28:28.000000000 +0200
|
+++ expect-5.44.1.15/configure.in 2010-03-09 14:46:47.997377875 +0100
|
||||||
@@ -1260,6 +1260,7 @@ AC_SUBST(SETUID)
|
@@ -1198,6 +1198,7 @@ AC_SUBST(EXP_SHLIB_LD_LIBS)
|
||||||
AC_SUBST(UNSHARED_RANLIB)
|
AC_SUBST(SETUID)
|
||||||
|
AC_SUBST(SETPGRP_VOID)
|
||||||
AC_SUBST(DEFAULT_STTY_ARGS)
|
AC_SUBST(DEFAULT_STTY_ARGS)
|
||||||
AC_SUBST(STTY_BIN)
|
|
||||||
+AC_SUBST(TCL_VERSION)
|
+AC_SUBST(TCL_VERSION)
|
||||||
AC_OUTPUT([Makefile \
|
|
||||||
pkgIndex],
|
|
||||||
chmod +x ${srcdir}/install-sh ${srcdir}/mkinstalldirs)
|
|
||||||
diff -up expect-5.43/Makefile.in.pkgpath expect-5.43/Makefile.in
|
|
||||||
--- expect-5.43/Makefile.in.pkgpath 2008-09-25 12:28:28.000000000 +0200
|
|
||||||
+++ expect-5.43/Makefile.in 2008-09-25 12:28:28.000000000 +0200
|
|
||||||
@@ -173,8 +173,8 @@ STTY = -DDFLT_STTY="\"@DEFAULT_STTY_ARGS
|
|
||||||
bindir = $(INSTALL_ROOT)@bindir@
|
|
||||||
bindir_arch_indep = $(INSTALL_ROOT)$(prefix)/bin
|
|
||||||
tcl_libdir = $(INSTALL_ROOT)@libdir@
|
|
||||||
-libdir = $(INSTALL_ROOT)@libdir@/expect$(VERSION)
|
|
||||||
-libdir_arch_indep = $(INSTALL_ROOT)$(prefix)/lib/expect$(VERSION)
|
|
||||||
+libdir = $(INSTALL_ROOT)@libdir@/tcl@TCL_VERSION@/expect$(VERSION)
|
|
||||||
+libdir_arch_indep = $(INSTALL_ROOT)@datadir@/tcl@TCL_VERSION@/expect$(VERSION)
|
|
||||||
|
|
||||||
mandir = $(INSTALL_ROOT)@mandir@
|
#--------------------------------------------------------------------
|
||||||
man1dir = $(mandir)/man1
|
#--------------------------------------------------------------------
|
||||||
diff -up expect-5.43/pkgIndex.in.pkgpath expect-5.43/pkgIndex.in
|
diff -up expect-5.44.1.15/Makefile.in.pkgpath expect-5.44.1.15/Makefile.in
|
||||||
--- expect-5.43/pkgIndex.in.pkgpath 2002-02-12 03:00:56.000000000 +0100
|
--- expect-5.44.1.15/Makefile.in.pkgpath 2008-10-03 19:05:14.000000000 +0200
|
||||||
+++ expect-5.43/pkgIndex.in 2008-09-25 12:28:28.000000000 +0200
|
+++ expect-5.44.1.15/Makefile.in 2010-03-09 14:47:20.101376873 +0100
|
||||||
@@ -7,4 +7,4 @@
|
@@ -121,8 +121,8 @@ includedir = @includedir@
|
||||||
# script is sourced, the variable $dir must contain the
|
DESTDIR =
|
||||||
# full path name of this file's directory.
|
|
||||||
|
PKG_DIR = $(PACKAGE_NAME)$(PACKAGE_VERSION)
|
||||||
|
-pkgdatadir = $(datadir)/$(PKG_DIR)
|
||||||
|
-pkglibdir = $(libdir)/$(PKG_DIR)
|
||||||
|
+pkgdatadir = $(datadir)/tcl@TCL_VERSION@/$(PKG_DIR)
|
||||||
|
+pkglibdir = $(libdir)/tcl@TCL_VERSION@/$(PKG_DIR)
|
||||||
|
pkgincludedir = $(includedir)/$(PKG_DIR)
|
||||||
|
|
||||||
|
top_builddir = .
|
||||||
|
@@ -267,7 +267,7 @@ install-doc: doc
|
||||||
|
else true; fi ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
-test: binaries libraries
|
||||||
|
+test: binaries libraries pkgIndex.tcl-test
|
||||||
|
$(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS)
|
||||||
|
|
||||||
|
shell: binaries libraries
|
||||||
|
@@ -331,6 +331,11 @@ pkgIndex.tcl:
|
||||||
|
|
||||||
|
pkgIndex.tcl-hand:
|
||||||
|
(echo 'package ifneeded Expect $(PACKAGE_VERSION) \
|
||||||
|
+ [list load [file join $$dir .. .. $(PKG_LIB_FILE)]]'\
|
||||||
|
+ ) > pkgIndex.tcl
|
||||||
|
+
|
||||||
|
+pkgIndex.tcl-test:
|
||||||
|
+ (echo 'package ifneeded Expect $(PACKAGE_VERSION) \
|
||||||
|
[list load [file join $$dir $(PKG_LIB_FILE)]]'\
|
||||||
|
) > pkgIndex.tcl
|
||||||
|
|
||||||
-package ifneeded Expect @EXP_VERSION_FULL@ [list load [file join $dir .. @EXP_SHARED_LIB_FILE@]]
|
|
||||||
+package ifneeded Expect @EXP_VERSION_FULL@ [list load [file join $dir .. .. @EXP_SHARED_LIB_FILE@]]
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
diff -up expect-5.43/exp_command.c_old expect-5.43/exp_command.c
|
|
||||||
--- expect-5.43/exp_command.c_old 2009-02-10 16:23:48.000000000 +0100
|
|
||||||
+++ expect-5.43/exp_command.c 2009-02-10 16:31:38.000000000 +0100
|
|
||||||
@@ -2311,12 +2311,11 @@ Tcl_Obj *CONST objv[]; /* Argument objec
|
|
||||||
/* Historical note: we used "close" long before there was a */
|
|
||||||
/* Tcl builtin by the same name. */
|
|
||||||
|
|
||||||
- Tcl_CmdInfo info;
|
|
||||||
+ Tcl_CmdInfo* close_info;
|
|
||||||
Tcl_ResetResult(interp);
|
|
||||||
- if (0 == Tcl_GetCommandInfo(interp,"close",&info)) {
|
|
||||||
- info.clientData = 0;
|
|
||||||
- }
|
|
||||||
- return(Tcl_CloseObjCmd(info.clientData,interp,objc_orig,objv_orig));
|
|
||||||
+
|
|
||||||
+ close_info = (Tcl_CmdInfo*) Tcl_GetAssocData (interp, EXP_CMDINFO_CLOSE, NULL);
|
|
||||||
+ return(close_info->objProc(close_info->objClientData,interp,objc,objv));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chanName) {
|
|
||||||
@@ -2961,7 +2960,10 @@ Tcl_Obj *CONST objv[];
|
|
||||||
/* 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* return_info = (Tcl_CmdInfo*)
|
|
||||||
+ Tcl_GetAssocData (interp, EXP_CMDINFO_RETURN, NULL);
|
|
||||||
+
|
|
||||||
+ int result = return_info->objProc(return_info->objClientData,interp,objc,objv);
|
|
||||||
if (result == TCL_RETURN)
|
|
||||||
result = EXP_TCL_RETURN;
|
|
||||||
return result;
|
|
||||||
diff -up expect-5.43/exp_command.h_old expect-5.43/exp_command.h
|
|
||||||
--- expect-5.43/exp_command.h_old 2009-02-10 17:33:19.000000000 +0100
|
|
||||||
+++ expect-5.43/exp_command.h 2009-02-10 17:33:46.000000000 +0100
|
|
||||||
@@ -326,3 +326,6 @@ EXTERN ExpState * expDevttyGet _ANSI_ARG
|
|
||||||
/* generic functions that really should be provided by Tcl */
|
|
||||||
EXTERN int expSizeGet _ANSI_ARGS_((ExpState *));
|
|
||||||
EXTERN int expSizeZero _ANSI_ARGS_((ExpState *));
|
|
||||||
+
|
|
||||||
+#define EXP_CMDINFO_CLOSE "expect/cmdinfo/close"
|
|
||||||
+#define EXP_CMDINFO_RETURN "expect/cmdinfo/return"
|
|
@ -1,22 +0,0 @@
|
|||||||
diff -up expect-5.43/Dbg.c.tcl8.5 expect-5.43/Dbg.c
|
|
||||||
--- expect-5.43/Dbg.c.tcl8.5 2002-03-23 05:11:54.000000000 +0100
|
|
||||||
+++ expect-5.43/Dbg.c 2008-09-25 12:25:40.000000000 +0200
|
|
||||||
@@ -10,6 +10,7 @@ would appreciate credit if this program
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
+#include "expect_cf.h"
|
|
||||||
#include "tcldbgcf.h"
|
|
||||||
#if 0
|
|
||||||
/* tclInt.h drags in stdlib. By claiming no-stdlib, force it to drag in */
|
|
||||||
diff -up expect-5.43/exp_inter.c.tcl8.5 expect-5.43/exp_inter.c
|
|
||||||
--- expect-5.43/exp_inter.c.tcl8.5 2004-08-18 04:03:00.000000000 +0200
|
|
||||||
+++ expect-5.43/exp_inter.c 2008-09-25 12:25:40.000000000 +0200
|
|
||||||
@@ -36,6 +36,7 @@ would appreciate credit if this program
|
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
#include "tcl.h"
|
|
||||||
+#include "tclInt.h"
|
|
||||||
#include "string.h"
|
|
||||||
|
|
||||||
#include "exp_tty_in.h"
|
|
232
expect-5.44.1.15-tk-init.patch
Normal file
232
expect-5.44.1.15-tk-init.patch
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
Author: Sergei Golovan <sgolovan@debian.org>
|
||||||
|
Description: Fixes Tk intialization by calling Tk_Init instead of
|
||||||
|
using copy&pasted Tk_Init from older Tk.
|
||||||
|
|
||||||
|
--- expect-5.44.1.14.orig/exp_main_tk.c
|
||||||
|
+++ expect-5.44.1.14/exp_main_tk.c
|
||||||
|
@@ -162,13 +162,7 @@
|
||||||
|
* the "argv" variable in Tk_Init.
|
||||||
|
*/
|
||||||
|
|
||||||
|
-static int synchronize;
|
||||||
|
-static CONST char *name;
|
||||||
|
-static char *display;
|
||||||
|
-static char *geometry;
|
||||||
|
-static char *colormap;
|
||||||
|
-static char *visual;
|
||||||
|
-static int rest = 0;
|
||||||
|
+static int rest;
|
||||||
|
|
||||||
|
/* for Expect */
|
||||||
|
int my_rc = 1;
|
||||||
|
@@ -181,21 +175,6 @@
|
||||||
|
int print_version = 0;
|
||||||
|
|
||||||
|
static Tk_ArgvInfo argTable[] = {
|
||||||
|
- {"-colormap", TK_ARGV_STRING, (char *) NULL, (char *) &colormap,
|
||||||
|
- "Colormap for main window"},
|
||||||
|
- {"-display", TK_ARGV_STRING, (char *) NULL, (char *) &display,
|
||||||
|
- "Display to use"},
|
||||||
|
- {"-geometry", TK_ARGV_STRING, (char *) NULL, (char *) &geometry,
|
||||||
|
- "Initial geometry for window"},
|
||||||
|
- {"-name", TK_ARGV_STRING, (char *) NULL, (char *) &name,
|
||||||
|
- "Name to use for application"},
|
||||||
|
- {"-sync", TK_ARGV_CONSTANT, (char *) 1, (char *) &synchronize,
|
||||||
|
- "Use synchronous mode for display server"},
|
||||||
|
- {"-visual", TK_ARGV_STRING, (char *) NULL, (char *) &visual,
|
||||||
|
- "Visual for main window"},
|
||||||
|
- {"--", TK_ARGV_REST, (char *) 1, (char *) &rest,
|
||||||
|
- "Pass all remaining arguments through to script"},
|
||||||
|
-/* for Expect */
|
||||||
|
{"-command", TK_ARGV_GENFUNC, (char *) optcmd_eval, (char *)0,
|
||||||
|
"Command(s) to execute immediately"},
|
||||||
|
{"-diag", TK_ARGV_CONSTANT, (char *) optcmd_diagToStderr, (char *)0,
|
||||||
|
@@ -210,6 +189,8 @@
|
||||||
|
{"-Debug", TK_ARGV_GENFUNC, (char *) optcmd_debug, (char *)0,
|
||||||
|
"Enable debugger"},
|
||||||
|
#endif
|
||||||
|
+ {"--", TK_ARGV_REST, (char *) 1, (char *) &rest,
|
||||||
|
+ "Pass all remaining arguments through to script"},
|
||||||
|
{(char *) NULL, TK_ARGV_END, (char *) NULL, (char *) NULL,
|
||||||
|
(char *) NULL}
|
||||||
|
};
|
||||||
|
@@ -243,11 +224,11 @@
|
||||||
|
Tcl_Interp *interp; /* Interpreter to initialize. */
|
||||||
|
{
|
||||||
|
CONST char *p;
|
||||||
|
- char* alist, *cstr;
|
||||||
|
- int argc, code;
|
||||||
|
- char **argv, *args[20];
|
||||||
|
- Tcl_DString class;
|
||||||
|
+ char *alist, *pp;
|
||||||
|
+ int argc, length, i, j;
|
||||||
|
+ char **argv, **newargv;
|
||||||
|
char buffer[30];
|
||||||
|
+ size_t len;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If there is an "argv" variable, get its value, extract out
|
||||||
|
@@ -255,8 +236,7 @@
|
||||||
|
* the arguments that we used.
|
||||||
|
*/
|
||||||
|
|
||||||
|
- synchronize = 0;
|
||||||
|
- name = display = geometry = colormap = visual = NULL;
|
||||||
|
+ rest = -1;
|
||||||
|
p = Tcl_GetVar2(interp, "argv", (char *) NULL, TCL_GLOBAL_ONLY);
|
||||||
|
argv = NULL;
|
||||||
|
if (p != NULL) {
|
||||||
|
@@ -285,115 +265,57 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- alist = Tcl_Merge(argc, argv);
|
||||||
|
- Tcl_SetVar2(interp, "argv", (char *) NULL, alist, TCL_GLOBAL_ONLY);
|
||||||
|
- sprintf(buffer, "%d", argc);
|
||||||
|
- Tcl_SetVar2(interp, "argc", (char *) NULL, buffer, TCL_GLOBAL_ONLY);
|
||||||
|
- ckfree(alist);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * Figure out the application's name and class.
|
||||||
|
- */
|
||||||
|
+ if (rest >= 0) {
|
||||||
|
+ /* Resore '--' in arguments list
|
||||||
|
+ */
|
||||||
|
|
||||||
|
- if (name == NULL) {
|
||||||
|
- name = Tcl_GetVar(interp, "argv0", TCL_GLOBAL_ONLY);
|
||||||
|
- if ((name == NULL) || (*name == 0)) {
|
||||||
|
- name = "tk";
|
||||||
|
- } else {
|
||||||
|
- p = (char *)strrchr(name, '/'); /* added cast - DEL */
|
||||||
|
- if (p != NULL) {
|
||||||
|
- name = p+1;
|
||||||
|
+ length = 0;
|
||||||
|
+ for (i = 0; i < argc; i++) {
|
||||||
|
+ length += strlen(argv[i]) + 1;
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- Tcl_DStringInit(&class);
|
||||||
|
- Tcl_DStringAppend(&class, name, -1);
|
||||||
|
- cstr = Tcl_DStringValue(&class);
|
||||||
|
- if (islower(*cstr)) {
|
||||||
|
- *cstr = toupper((unsigned char) *cstr);
|
||||||
|
- }
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Create an argument list for creating the top-level window,
|
||||||
|
- * using the information parsed from argv, if any.
|
||||||
|
- */
|
||||||
|
+ newargv = (char **) ckalloc((unsigned) ((argc+2)*sizeof(char *)) + length + 3);
|
||||||
|
|
||||||
|
- args[0] = "toplevel";
|
||||||
|
- args[1] = ".";
|
||||||
|
- args[2] = "-class";
|
||||||
|
- args[3] = Tcl_DStringValue(&class);
|
||||||
|
- argc = 4;
|
||||||
|
- if (display != NULL) {
|
||||||
|
- args[argc] = "-screen";
|
||||||
|
- args[argc+1] = display;
|
||||||
|
- argc += 2;
|
||||||
|
-
|
||||||
|
- /*
|
||||||
|
- * If this is the first application for this process, save
|
||||||
|
- * the display name in the DISPLAY environment variable so
|
||||||
|
- * that it will be available to subprocesses created by us.
|
||||||
|
- */
|
||||||
|
+ pp = ((char *) newargv) + (argc+2)*sizeof(char *);
|
||||||
|
+ j = 0;
|
||||||
|
+ for (i = 0; i < argc; i++) {
|
||||||
|
+ if (i == rest) {
|
||||||
|
+ memcpy(pp, "--", 3);
|
||||||
|
+ newargv[j++] = pp;
|
||||||
|
+ pp += 3;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ len = strlen(argv[i]) + 1;
|
||||||
|
+ memcpy(pp, argv[i], len);
|
||||||
|
+ newargv[j++] = pp;
|
||||||
|
+ pp += len;
|
||||||
|
+ }
|
||||||
|
+ newargv[j] = NULL;
|
||||||
|
|
||||||
|
- if (numMainWindows == 0) {
|
||||||
|
- Tcl_SetVar2(interp, "env", "DISPLAY", display, TCL_GLOBAL_ONLY);
|
||||||
|
+ alist = Tcl_Merge(argc+1, newargv);
|
||||||
|
+ } else {
|
||||||
|
+ newargv = NULL;
|
||||||
|
+ alist = Tcl_Merge(argc, argv);
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
- if (colormap != NULL) {
|
||||||
|
- args[argc] = "-colormap";
|
||||||
|
- args[argc+1] = colormap;
|
||||||
|
- argc += 2;
|
||||||
|
- }
|
||||||
|
- if (visual != NULL) {
|
||||||
|
- args[argc] = "-visual";
|
||||||
|
- args[argc+1] = visual;
|
||||||
|
- argc += 2;
|
||||||
|
- }
|
||||||
|
- args[argc] = NULL;
|
||||||
|
- code = TkCreateFrame((ClientData) NULL, interp, argc, args, 1, name);
|
||||||
|
- Tcl_DStringFree(&class);
|
||||||
|
- if (code != TCL_OK) {
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
- Tcl_ResetResult(interp);
|
||||||
|
-#ifndef MAC_OSX_TK
|
||||||
|
- if (synchronize) {
|
||||||
|
- XSynchronize(Tk_Display(Tk_MainWindow(interp)), True);
|
||||||
|
- }
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Set the geometry of the main window, if requested. Put the
|
||||||
|
- * requested geometry into the "geometry" variable.
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
- if (geometry != NULL) {
|
||||||
|
- Tcl_SetVar(interp, "geometry", geometry, TCL_GLOBAL_ONLY);
|
||||||
|
- code = Tcl_VarEval(interp, "wm geometry . ", geometry, (char *) NULL);
|
||||||
|
- if (code != TCL_OK) {
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, 1) == NULL) {
|
||||||
|
- code = TCL_ERROR;
|
||||||
|
- goto done;
|
||||||
|
- }
|
||||||
|
- code = Tcl_PkgProvide(interp, "Tk", TK_VERSION);
|
||||||
|
- if (code != TCL_OK) {
|
||||||
|
- goto done;
|
||||||
|
+ Tcl_SetVar2(interp, "argv", (char *) NULL, alist, TCL_GLOBAL_ONLY);
|
||||||
|
+ sprintf(buffer, "%d", argc);
|
||||||
|
+ Tcl_SetVar2(interp, "argc", (char *) NULL, buffer, TCL_GLOBAL_ONLY);
|
||||||
|
+ ckfree(alist);
|
||||||
|
}
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Invoke platform-specific initialization.
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
- code = TkpInit(interp, 0);
|
||||||
|
+ if (Tk_Init(interp) == TCL_ERROR) {
|
||||||
|
+ return TCL_ERROR;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- done:
|
||||||
|
if (argv != NULL) {
|
||||||
|
ckfree((char *) argv);
|
||||||
|
}
|
||||||
|
- return code;
|
||||||
|
+ if (newargv != NULL) {
|
||||||
|
+ ckfree((char *) newargv);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return TCL_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*ARGSUSED*/
|
9
expect-5.44.1.15-unbuffer-exit-code.patch
Normal file
9
expect-5.44.1.15-unbuffer-exit-code.patch
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
diff -up expect-5.44.1.15/example/unbuffer.orig expect-5.44.1.15/example/unbuffer
|
||||||
|
--- expect-5.44.1.15/example/unbuffer.orig 2010-03-08 16:24:38.260378258 +0100
|
||||||
|
+++ expect-5.44.1.15/example/unbuffer 2010-03-08 16:24:57.525387178 +0100
|
||||||
|
@@ -19,4 +19,5 @@ if {[string compare [lindex $argv 0] "-p
|
||||||
|
set timeout -1
|
||||||
|
eval [list spawn -noecho] $argv
|
||||||
|
expect
|
||||||
|
+ exit [lindex [eval wait] 3]
|
||||||
|
}
|
79
expect.spec
79
expect.spec
@ -1,31 +1,31 @@
|
|||||||
%{!?tcl_version: %define tcl_version %(echo 'puts $tcl_version' | tclsh)}
|
%{!?tcl_version: %define tcl_version %(echo 'puts $tcl_version' | tclsh)}
|
||||||
%{!?tcl_sitearch: %define tcl_sitearch %{_libdir}/tcl%{tcl_version}}
|
%{!?tcl_sitearch: %define tcl_sitearch %{_libdir}/tcl%{tcl_version}}
|
||||||
%define majorver 5.43
|
%define majorver 5.44
|
||||||
|
|
||||||
Summary: A program-script interaction and testing utility
|
Summary: A program-script interaction and testing utility
|
||||||
Name: expect
|
Name: expect
|
||||||
Version: %{majorver}.0
|
Version: %{majorver}.1.15
|
||||||
Release: 19%{?dist}
|
Release: 1%{?dist}
|
||||||
License: Public Domain
|
License: Public Domain
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
# URL: probably more useful is http://sourceforge.net/projects/expect/
|
||||||
URL: http://expect.nist.gov/
|
URL: http://expect.nist.gov/
|
||||||
Source: http://expect.nist.gov/src/%{name}-%{version}.tar.bz2
|
# Source: upstream doesn't release tarballs, CVS snapshot packed
|
||||||
Source1: config.sub
|
Source: %{name}-%{version}.tar.bz2
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Buildrequires: tcl-devel tk-devel autoconf automake libXft-devel
|
Buildrequires: tcl-devel tk-devel autoconf automake libXft-devel chrpath
|
||||||
Patch0: expect-5.38.0-spawn-43310.patch
|
# Patch0: fixes change log file permissions
|
||||||
Patch1: expect-5.43.0-h-comments.patch
|
Patch0: expect-5.43.0-log_file.patch
|
||||||
Patch2: expect-5.38.0-lib-spec.patch
|
# Patch1: fixes install location, change pkgIndex
|
||||||
Patch3: expect-5.39.0-libdir.patch
|
Patch1: expect-5.43.0-pkgpath.patch
|
||||||
Patch4: expect-5.43.0-log_file.patch
|
# Patch2: fixes bz456738, expectk is unsupported by upstream actually,
|
||||||
Patch5: expect-5.43.0-tcl8.5.patch
|
# but the patch is under discussion (patch by Sergei Golovan)
|
||||||
Patch6: expect-5.43.0-pkgIndex-x.patch
|
Patch2: expect-5.44.1.15-tk-init.patch
|
||||||
Patch7: expect-5.43.0-tcl8.5.6.patch
|
|
||||||
# examples patches
|
# examples patches
|
||||||
|
# Patch100: changes random function
|
||||||
Patch100: expect-5.32.2-random.patch
|
Patch100: expect-5.32.2-random.patch
|
||||||
Patch101: unbuffer-child-flush-143963.patch
|
# Patch101: bz547686, no response from upstream
|
||||||
# Fix install location for tcl 8.5
|
Patch101: expect-5.44.1.15-unbuffer-exit-code.patch
|
||||||
Patch200: expect-5.43.0-pkgpath.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Expect is a tcl application for automating and testing
|
Expect is a tcl application for automating and testing
|
||||||
@ -62,27 +62,20 @@ control another program and interact with it.
|
|||||||
This package contains expectk and some scripts that use it.
|
This package contains expectk and some scripts that use it.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n expect-%{majorver}
|
%setup -q -n expect-%{version}
|
||||||
%patch0 -p1 -b .spawn
|
%patch0 -p1 -b .log_file
|
||||||
%patch1 -p1 -b .h-comments
|
%patch1 -p1 -b .pkgpath
|
||||||
%patch2 -p1 -b .lib-spec
|
%patch2 -p1 -b .tk-init
|
||||||
%patch3 -p1 -b .libdir
|
|
||||||
%patch4 -p1 -b .log_file
|
|
||||||
%patch5 -p1 -b .tcl8.5
|
|
||||||
%patch6 -p1 -b .pkgIndex-x
|
|
||||||
#%patch7 -p1 -b .tcl8.5.6
|
|
||||||
# examples fixes
|
# examples fixes
|
||||||
%patch100 -p1 -b .random
|
%patch100 -p1 -b .random
|
||||||
%patch101 -p1 -b .unbuffer
|
%patch101 -p1 -b .unbuffer-exit-code
|
||||||
%patch200 -p1 -b .pkgpath
|
# -pkgpath.patch touch configure.in
|
||||||
# *-lib-spec.patch and *-tcl8.5.patch and -pkgpath.patch touch configure.in
|
|
||||||
aclocal
|
aclocal
|
||||||
autoconf
|
autoconf
|
||||||
( cd testsuite
|
( cd testsuite
|
||||||
autoconf -I.. )
|
autoconf -I.. )
|
||||||
|
|
||||||
%build
|
%build
|
||||||
cp -fp %SOURCE1 .;
|
|
||||||
%configure --with-tcl=%{_libdir} --with-tk=%{_libdir} --enable-shared \
|
%configure --with-tcl=%{_libdir} --with-tk=%{_libdir} --enable-shared \
|
||||||
--with-tclinclude=%{_includedir}/tcl-private
|
--with-tclinclude=%{_includedir}/tcl-private
|
||||||
make %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
@ -92,7 +85,10 @@ make test
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf "$RPM_BUILD_ROOT"
|
rm -rf "$RPM_BUILD_ROOT"
|
||||||
make install INSTALL_ROOT="$RPM_BUILD_ROOT"
|
make install DESTDIR="$RPM_BUILD_ROOT"
|
||||||
|
|
||||||
|
# move
|
||||||
|
mv "$RPM_BUILD_ROOT"%{tcl_sitearch}/expect%{version}/libexpect%{version}.so "$RPM_BUILD_ROOT"%{_libdir}
|
||||||
|
|
||||||
# for linking with -lexpect
|
# for linking with -lexpect
|
||||||
ln -s libexpect%{majorver}.so "$RPM_BUILD_ROOT"%{_libdir}/libexpect.so
|
ln -s libexpect%{majorver}.so "$RPM_BUILD_ROOT"%{_libdir}/libexpect.so
|
||||||
@ -102,6 +98,9 @@ rm -f "$RPM_BUILD_ROOT"%{_bindir}/{cryptdir,decryptdir}
|
|||||||
rm -f "$RPM_BUILD_ROOT"%{_mandir}/man1/{cryptdir,decryptdir}.1*
|
rm -f "$RPM_BUILD_ROOT"%{_mandir}/man1/{cryptdir,decryptdir}.1*
|
||||||
rm -f "$RPM_BUILD_ROOT"%{_bindir}/autopasswd
|
rm -f "$RPM_BUILD_ROOT"%{_bindir}/autopasswd
|
||||||
|
|
||||||
|
# remove rpath
|
||||||
|
chrpath --delete $RPM_BUILD_ROOT%{_libdir}/libexpect%{version}.so
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf "$RPM_BUILD_ROOT"
|
rm -rf "$RPM_BUILD_ROOT"
|
||||||
|
|
||||||
@ -124,9 +123,9 @@ rm -rf "$RPM_BUILD_ROOT"
|
|||||||
%{_bindir}/unbuffer
|
%{_bindir}/unbuffer
|
||||||
%{_bindir}/weather
|
%{_bindir}/weather
|
||||||
%{_bindir}/xkibitz
|
%{_bindir}/xkibitz
|
||||||
%dir %{tcl_sitearch}/expect%{majorver}
|
%dir %{tcl_sitearch}/expect%{version}
|
||||||
%{tcl_sitearch}/expect%{majorver}/pkgIndex.tcl
|
%{tcl_sitearch}/expect%{version}/pkgIndex.tcl
|
||||||
%{_libdir}/libexpect%{majorver}.so
|
%{_libdir}/libexpect%{version}.so
|
||||||
%{_mandir}/man1/autoexpect.1.gz
|
%{_mandir}/man1/autoexpect.1.gz
|
||||||
%{_mandir}/man1/dislocate.1.gz
|
%{_mandir}/man1/dislocate.1.gz
|
||||||
%{_mandir}/man1/expect.1.gz
|
%{_mandir}/man1/expect.1.gz
|
||||||
@ -139,8 +138,6 @@ rm -rf "$RPM_BUILD_ROOT"
|
|||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%exclude %{tcl_sitearch}/expect%{majorver}/libexpect%{majorver}.a
|
|
||||||
%exclude %{_libdir}/libexpect%{majorver}.a
|
|
||||||
%{_libdir}/libexpect.so
|
%{_libdir}/libexpect.so
|
||||||
%{_mandir}/man3/libexpect.3*
|
%{_mandir}/man3/libexpect.3*
|
||||||
%{_includedir}/*
|
%{_includedir}/*
|
||||||
@ -157,6 +154,16 @@ rm -rf "$RPM_BUILD_ROOT"
|
|||||||
%{_mandir}/man1/tknewsbiff.1*
|
%{_mandir}/man1/tknewsbiff.1*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 10 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 5.44.1.15-1
|
||||||
|
- Update to 5.44.1.15 from upstream CVS
|
||||||
|
Resolves: #528654, Resolves: #501820
|
||||||
|
- Remove config.sub (no longer needed), remove unused patches (few are
|
||||||
|
upstream now, few are pointless with new version), comment patches
|
||||||
|
- Fix unbuffer to return exit code of ubuffered program
|
||||||
|
Resolves: #547686
|
||||||
|
- Fix Tk initialization
|
||||||
|
Resolves: #456738
|
||||||
|
|
||||||
* Mon Aug 10 2009 Ville Skyttä <ville.skytta@iki.fi> - 5.43.0-19
|
* Mon Aug 10 2009 Ville Skyttä <ville.skytta@iki.fi> - 5.43.0-19
|
||||||
- Use bzipped upstream tarball.
|
- Use bzipped upstream tarball.
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
|||||||
|
7b4ffbcfcbe779a6b8e1f2931f0aeff7 expect-5.44.1.15.tar.bz2
|
||||||
d2ef2acafb72e8f3f3029d30e2a8e228 config.sub
|
d2ef2acafb72e8f3f3029d30e2a8e228 config.sub
|
||||||
e6aaab98967f6410099b40f2b3ddebb4 expect-5.43.0.tar.bz2
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
diff -up expect-5.43/example/unbuffer.unbuffer expect-5.43/example/unbuffer
|
|
||||||
--- expect-5.43/example/unbuffer.unbuffer 2004-01-25 02:37:49.000000000 +0100
|
|
||||||
+++ expect-5.43/example/unbuffer 2008-09-25 12:27:48.000000000 +0200
|
|
||||||
@@ -6,10 +6,17 @@ if {[string compare [lindex $argv 0] "-p
|
|
||||||
# pipeline
|
|
||||||
set stty_init "-echo"
|
|
||||||
eval spawn -noecho [lrange $argv 1 end]
|
|
||||||
- interact
|
|
||||||
+ close_on_eof -i $user_spawn_id 0
|
|
||||||
+ interact {
|
|
||||||
+ eof {
|
|
||||||
+ # flush remaining output from child
|
|
||||||
+ expect -timeout 1 -re .+
|
|
||||||
+ return
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
} else {
|
|
||||||
set stty_init "-opost"
|
|
||||||
- eval spawn -noecho $argv
|
|
||||||
set timeout -1
|
|
||||||
+ eval spawn -noecho $argv
|
|
||||||
expect
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user